107 lines
3.6 KiB
Diff
107 lines
3.6 KiB
Diff
diff -Naur Python-2.5.1.orig/setup.py Python-2.5.1/setup.py
|
|
--- Python-2.5.orig/setup.py 2006-08-10 01:42:18.000000000 +0200
|
|
+++ Python-2.5/setup.py 2007-11-21 18:00:43.000000000 +0100
|
|
@@ -1321,16 +1329,16 @@
|
|
ffi_configfile):
|
|
from distutils.dir_util import mkpath
|
|
mkpath(ffi_builddir)
|
|
- config_args = []
|
|
+ config_args = ['--host=%s' % os.environ["HOST_SYS"], ]
|
|
|
|
# Pass empty CFLAGS because we'll just append the resulting
|
|
# CFLAGS to Python's; -g or -O2 is to be avoided.
|
|
- cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \
|
|
- % (ffi_builddir, ffi_srcdir, " ".join(config_args))
|
|
+ cmd = "(cd %s && autoconf -W cross) && (cd %s && env CFLAGS='' '%s/configure' %s)" \
|
|
+ % (ffi_srcdir, ffi_builddir, ffi_srcdir, " ".join(config_args))
|
|
|
|
res = os.system(cmd)
|
|
if res or not os.path.exists(ffi_configfile):
|
|
- print "Failed to configure _ctypes module"
|
|
+ print "Failed to configure _ctypes module, ret %d or missing %s"% (res, ffi_configfile, )
|
|
return False
|
|
|
|
fficonfig = {}
|
|
diff -Naur Python-2.5.1.orig/Modules/_ctypes/callbacks.c Python-2.5.1/Modules/_ctypes/callbacks.c
|
|
--- Python-2.5.1.orig/Modules/_ctypes/callbacks.c 2006-10-17 21:41:10.000000000 +0200
|
|
+++ Python-2.5.1/Modules/_ctypes/callbacks.c 2007-11-22 10:29:33.000000000 +0100
|
|
@@ -273,11 +273,13 @@
|
|
PyErr_NoMemory();
|
|
return NULL;
|
|
}
|
|
+#if FFI_CLOSURES
|
|
p->pcl = MallocClosure();
|
|
if (p->pcl == NULL) {
|
|
PyErr_NoMemory();
|
|
goto error;
|
|
}
|
|
+#endif
|
|
|
|
for (i = 0; i < nArgs; ++i) {
|
|
PyObject *cnv = PySequence_GetItem(converters, i);
|
|
@@ -315,12 +317,14 @@
|
|
"ffi_prep_cif failed with %d", result);
|
|
goto error;
|
|
}
|
|
+#if FFI_CLOSURES
|
|
result = ffi_prep_closure(p->pcl, &p->cif, closure_fcn, p);
|
|
if (result != FFI_OK) {
|
|
PyErr_Format(PyExc_RuntimeError,
|
|
"ffi_prep_closure failed with %d", result);
|
|
goto error;
|
|
}
|
|
+#endif
|
|
|
|
p->converters = converters;
|
|
p->callable = callable;
|
|
@@ -328,8 +332,10 @@
|
|
|
|
error:
|
|
if (p) {
|
|
+#if FFI_CLOSURES
|
|
if (p->pcl)
|
|
FreeClosure(p->pcl);
|
|
+#endif
|
|
PyMem_Free(p);
|
|
}
|
|
return NULL;
|
|
diff -Naur Python-2.5.1.orig/Modules/_ctypes/_ctypes.c Python-2.5.1/Modules/_ctypes/_ctypes.c
|
|
--- Python-2.5.1.orig/Modules/_ctypes/_ctypes.c 2007-03-23 20:56:45.000000000 +0100
|
|
+++ Python-2.5.1/Modules/_ctypes/_ctypes.c 2007-11-22 10:29:01.000000000 +0100
|
|
@@ -3419,7 +3419,9 @@
|
|
Py_CLEAR(self->paramflags);
|
|
|
|
if (self->thunk) {
|
|
+#if FFI_CLOSURES
|
|
FreeClosure(self->thunk->pcl);
|
|
+#endif
|
|
PyMem_Free(self->thunk);
|
|
self->thunk = NULL;
|
|
}
|
|
diff -Naur Python-2.5.1.orig/Modules/_ctypes/ctypes.h Python-2.5.1/Modules/_ctypes/ctypes.h
|
|
--- Python-2.5.1.orig/Modules/_ctypes/ctypes.h 2006-08-14 13:17:48.000000000 +0200
|
|
+++ Python-2.5.1/Modules/_ctypes/ctypes.h 2007-11-22 10:29:44.000000000 +0100
|
|
@@ -68,7 +68,9 @@
|
|
};
|
|
|
|
typedef struct {
|
|
+#if FFI_CLOSURES
|
|
ffi_closure *pcl; /* the C callable */
|
|
+#endif
|
|
ffi_cif cif;
|
|
PyObject *converters;
|
|
PyObject *callable;
|
|
diff -Naur Python-2.5.1.orig/Modules/_ctypes/malloc_closure.c Python-2.5.1/Modules/_ctypes/malloc_closure.c
|
|
--- Python-2.5.1.orig/Modules/_ctypes/malloc_closure.c 2006-06-12 22:56:48.000000000 +0200
|
|
+++ Python-2.5.1/Modules/_ctypes/malloc_closure.c 2007-11-22 10:30:17.000000000 +0100
|
|
@@ -27,7 +27,9 @@
|
|
/******************************************************************/
|
|
|
|
typedef union _tagITEM {
|
|
+#if FFI_CLOSURES
|
|
ffi_closure closure;
|
|
+#endif
|
|
union _tagITEM *next;
|
|
} ITEM;
|
|
|