In an attempt to build GRASS with MinGW against a normal VC++ build of GDAL I ran into the following two problems:
1) The redefinitions of copysign, copysignf and copysignl to _copysign in cpl_config.h.vc causes syntax errors while including the mingw math.h. The solution is to only redefine them if the compiler in use is MS VC++.
2) Currently CPL_STDCALL is only being redefined to _ _stdcall for VC++ compilers. This means that an MinGW app build against a VC++ built GDAL does not use stdcall where appropriate. The solution is for cpl_config.h.vc to always define CPL_STDCALL to _ _stdcall as long as CPL_DISABLE_STDCALL is not defined.