diff -r 1fc32bf069ff Modules/_ctypes/libffi/src/x86/ffi.c --- a/Modules/_ctypes/libffi/src/x86/ffi.c Wed Mar 18 14:39:33 2015 +0100 +++ b/Modules/_ctypes/libffi/src/x86/ffi.c Thu Mar 19 08:39:52 2015 +0000 @@ -332,9 +332,11 @@ ffi_call_win64(void (*)(char *, extended_cif *), extended_cif *, unsigned, unsigned, unsigned *, void (*fn)(void)); #else +#ifdef X86_WIN32 extern void ffi_call_win32(void (*)(char *, extended_cif *), extended_cif *, unsigned, unsigned, unsigned, unsigned *, void (*fn)(void)); +#endif extern void ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *, unsigned, unsigned, unsigned *, void (*fn)(void)); #endif @@ -386,6 +388,7 @@ case FFI_SYSV: case FFI_MS_CDECL: #endif +#ifdef X86_WIN32 case FFI_STDCALL: ffi_call_win32(ffi_prep_args, &ecif, cif->abi, cif->bytes, cif->flags, ecif.rvalue, fn); @@ -420,6 +423,7 @@ } break; #endif +#endif default: FFI_ASSERT(0); break; @@ -674,6 +678,7 @@ &ffi_closure_SYSV, (void*)codeloc); } +#ifdef X86_WIN32 else if (cif->abi == FFI_FASTCALL) { FFI_INIT_TRAMPOLINE_STDCALL (&closure->tramp[0], @@ -692,7 +697,6 @@ &ffi_closure_STDCALL, (void*)codeloc); } -#ifdef X86_WIN32 else if (cif->abi == FFI_MS_CDECL) { FFI_INIT_TRAMPOLINE (&closure->tramp[0], @@ -809,6 +813,7 @@ case FFI_MS_CDECL: #endif #ifndef X86_WIN64 +#ifdef X86_WIN32 case FFI_STDCALL: ffi_call_win32(ffi_prep_args_raw, &ecif, cif->abi, cif->bytes, cif->flags, ecif.rvalue, fn); @@ -843,6 +848,7 @@ } break; #endif +#endif default: FFI_ASSERT(0); break;