diff --git a/include/windef.h b/include/windef.h index 9cf98e7931c..eb5935322b5 100644 --- a/include/windef.h +++ b/include/windef.h @@ -53,7 +53,7 @@ extern "C" { #ifndef __stdcall # ifdef __i386__ # ifdef __GNUC__ -# ifdef __APPLE__ /* Mac OS X uses a 16-byte aligned stack and not a 4-byte one */ +# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) || defined(__APPLE__) # define __stdcall __attribute__((__stdcall__)) __attribute__((__force_align_arg_pointer__)) # else # define __stdcall __attribute__((__stdcall__)) @@ -72,7 +72,7 @@ extern "C" { #ifndef __cdecl # if defined(__i386__) && defined(__GNUC__) -# ifdef __APPLE__ /* Mac OS X uses 16-byte aligned stack and not a 4-byte one */ +# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) || defined(__APPLE__) # define __cdecl __attribute__((__cdecl__)) __attribute__((__force_align_arg_pointer__)) # else # define __cdecl __attribute__((__cdecl__))