[issue23042] Python 2.7.9 ctypes module doesn't build on FreeBSD x86
Marc-Andre Lemburg
report at bugs.python.org
Fri Dec 12 21:50:31 CET 2014
Marc-Andre Lemburg added the comment:
The cause seems to be these changes of the file (diff between the 2.7.8 and 2.7.9 version):
@@ -368,14 +374,21 @@ void ffi_call(ffi_cif *cif, void (*fn)(v
#ifdef X86_WIN64
case FFI_WIN64:
ffi_call_win64(ffi_prep_args, &ecif, cif->bytes,
cif->flags, ecif.rvalue, fn);
break;
-#elif defined(X86_WIN32)
+#else
+#ifndef X86_WIN32
+ case FFI_SYSV:
+ ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes, cif->flags, ecif.rvalue,
+ fn);
+ break;
+#else
case FFI_SYSV:
- case FFI_STDCALL:
case FFI_MS_CDECL:
+#endif
+ case FFI_STDCALL:
ffi_call_win32(ffi_prep_args, &ecif, cif->abi, cif->bytes, cif->flags,
ecif.rvalue, fn);
break;
case FFI_THISCALL:
case FFI_FASTCALL:
@@ -404,15 +417,10 @@ void ffi_call(ffi_cif *cif, void (*fn)(v
abi = FFI_STDCALL;
ffi_call_win32(ffi_prep_args, &ecif, abi, cif->bytes, cif->flags,
ecif.rvalue, fn);
}
break;
-#else
- case FFI_SYSV:
- ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes, cif->flags, ecif.rvalue,
- fn);
- break;
#endif
default:
FFI_ASSERT(0);
break;
}
@@ -785,14 +797,21 @@ ffi_raw_call(ffi_cif *cif, void (*fn)(vo
ecif.rvalue = rvalue;
switch (cif->abi)
{
-#ifdef X86_WIN32
+#ifndef X86_WIN32
+ case FFI_SYSV:
+ ffi_call_SYSV(ffi_prep_args_raw, &ecif, cif->bytes, cif->flags,
+ ecif.rvalue, fn);
+ break;
+#else
case FFI_SYSV:
- case FFI_STDCALL:
case FFI_MS_CDECL:
+#endif
+#ifndef X86_WIN64
+ case FFI_STDCALL:
ffi_call_win32(ffi_prep_args_raw, &ecif, cif->abi, cif->bytes, cif->flags,
ecif.rvalue, fn);
break;
case FFI_THISCALL:
case FFI_FASTCALL:
@@ -821,15 +840,10 @@ ffi_raw_call(ffi_cif *cif, void (*fn)(vo
cif->abi = abi = FFI_STDCALL;
ffi_call_win32(ffi_prep_args_raw, &ecif, abi, cif->bytes, cif->flags,
ecif.rvalue, fn);
}
break;
-#else
- case FFI_SYSV:
- ffi_call_SYSV(ffi_prep_args_raw, &ecif, cif->bytes, cif->flags,
- ecif.rvalue, fn);
- break;
#endif
default:
FFI_ASSERT(0);
break;
}
If neither X86_WIN64 nor X86_WIN32 are defined, the #ifndefs cause the functions calls to be compiled in.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue23042>
_______________________________________
More information about the Python-bugs-list
mailing list