diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index 113819d26cc..40dacf8fdde 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -287,7 +287,14 @@ static void compile(struct options* opts, const char* lang) if (gcc_defs) { -#ifdef __APPLE__ /* Mac OS X uses a 16-byte aligned stack and not a 4-byte one */ +#ifdef __x86_64__ + strarray_add(comp_args, "-D__stdcall=__attribute__((ms_abi))"); + strarray_add(comp_args, "-D__cdecl=__attribute__((ms_abi))"); + strarray_add(comp_args, "-D_stdcall=__attribute__((ms_abi))"); + strarray_add(comp_args, "-D_cdecl=__attribute__((ms_abi))"); + strarray_add(comp_args, "-D__fastcall=__attribute__((ms_abi))"); + strarray_add(comp_args, "-D_fastcall=__attribute__((ms_abi))"); +#elif defined(__APPLE__) /* Mac OS X uses a 16-byte aligned stack and not a 4-byte one */ strarray_add(comp_args, "-D__stdcall=__attribute__((__stdcall__)) __attribute__((__force_align_arg_pointer__))"); strarray_add(comp_args, "-D__cdecl=__attribute__((__cdecl__)) __attribute__((__force_align_arg_pointer__))"); strarray_add(comp_args, "-D_stdcall=__attribute__((__stdcall__)) __attribute__((__force_align_arg_pointer__))");