diff -Naur libffi-3.1.orig/Makefile.am libffi-3.1/Makefile.am --- libffi-3.1.orig/Makefile.am 2014-07-11 11:39:48.902401983 -0600 +++ libffi-3.1/Makefile.am 2014-07-11 11:47:55.798678458 -0600 @@ -138,9 +138,9 @@ endif if X86_DARWIN nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S -if X86_DARWIN32 -nodist_libffi_la_SOURCES += src/x86/win32.S -endif +#if X86_DARWIN32 +#nodist_libffi_la_SOURCES += src/x86/win32.S +#endif endif if SPARC nodist_libffi_la_SOURCES += src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S diff -Naur libffi-3.1.orig/Makefile.in libffi-3.1/Makefile.in --- libffi-3.1.orig/Makefile.in 2014-07-11 11:49:38.360000568 -0600 +++ libffi-3.1/Makefile.in 2014-07-11 11:56:13.915099572 -0600 @@ -88,7 +88,7 @@ @X86_WIN32_TRUE@am__append_6 = src/x86/ffi.c src/x86/win32.S @X86_WIN64_TRUE@am__append_7 = src/x86/ffi.c src/x86/win64.S @X86_DARWIN_TRUE@am__append_8 = src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S -@X86_DARWIN32_TRUE@@X86_DARWIN_TRUE@am__append_9 = src/x86/win32.S +#@X86_DARWIN32_TRUE@@X86_DARWIN_TRUE@am__append_9 = src/x86/win32.S @SPARC_TRUE@am__append_10 = src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S @ALPHA_TRUE@am__append_11 = src/alpha/ffi.c src/alpha/osf.S @IA64_TRUE@am__append_12 = src/ia64/ffi.c src/ia64/unix.S @@ -198,7 +198,7 @@ @X86_WIN64_TRUE@am__objects_7 = src/x86/ffi.lo src/x86/win64.lo @X86_DARWIN_TRUE@am__objects_8 = src/x86/ffi.lo src/x86/darwin.lo \ @X86_DARWIN_TRUE@ src/x86/ffi64.lo src/x86/darwin64.lo -@X86_DARWIN32_TRUE@@X86_DARWIN_TRUE@am__objects_9 = src/x86/win32.lo +#@X86_DARWIN32_TRUE@@X86_DARWIN_TRUE@am__objects_9 = src/x86/win32.lo @SPARC_TRUE@am__objects_10 = src/sparc/ffi.lo src/sparc/v8.lo \ @SPARC_TRUE@ src/sparc/v9.lo @ALPHA_TRUE@am__objects_11 = src/alpha/ffi.lo src/alpha/osf.lo diff -Naur libffi-3.1.orig/src/x86/ffi.c libffi-3.1/src/x86/ffi.c --- libffi-3.1.orig/src/x86/ffi.c 2014-07-11 11:39:48.902401983 -0600 +++ libffi-3.1/src/x86/ffi.c 2014-07-11 14:02:24.743088317 -0600 @@ -331,10 +331,11 @@ extern int ffi_call_win64(void (*)(char *, extended_cif *), extended_cif *, unsigned, unsigned, unsigned *, void (*fn)(void)); -#else +#elif defined(X86_WIN32) extern void ffi_call_win32(void (*)(char *, extended_cif *), extended_cif *, unsigned, unsigned, unsigned, unsigned *, void (*fn)(void)); +#else extern void ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *, unsigned, unsigned, unsigned *, void (*fn)(void)); #endif @@ -386,6 +387,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 +422,7 @@ } break; #endif +#endif default: FFI_ASSERT(0); break; @@ -674,6 +677,7 @@ &ffi_closure_SYSV, (void*)codeloc); } +#ifdef X86_WIN32 else if (cif->abi == FFI_FASTCALL) { FFI_INIT_TRAMPOLINE_STDCALL (&closure->tramp[0], @@ -692,6 +696,7 @@ &ffi_closure_STDCALL, (void*)codeloc); } +#endif #ifdef X86_WIN32 else if (cif->abi == FFI_MS_CDECL) { @@ -808,6 +813,7 @@ case FFI_SYSV: case FFI_MS_CDECL: #endif +#ifdef X86_WIN32 #ifndef X86_WIN64 case FFI_STDCALL: ffi_call_win32(ffi_prep_args_raw, &ecif, cif->abi, cif->bytes, cif->flags, @@ -843,6 +849,7 @@ } break; #endif +#endif default: FFI_ASSERT(0); break;