summaryrefslogtreecommitdiff
path: root/packages/python/python-2.5.1
diff options
context:
space:
mode:
authorMichael Lauer <mickey@vanille-media.de>2007-12-05 17:06:14 +0000
committerMichael Lauer <mickey@vanille-media.de>2007-12-05 17:06:14 +0000
commit20f081f50569670fdc7088d711ed2bd34b2bb11b (patch)
treeac0247b980c05786e1fb8cadb5e7e59794318c8a /packages/python/python-2.5.1
parent85ad8d701fd3606dabd76c7cce2c74f080d0d984 (diff)
python 2.5.1 enable and package ctypes module/package. closes #3368 -- thanks emdete!
Diffstat (limited to 'packages/python/python-2.5.1')
-rw-r--r--packages/python/python-2.5.1/enable-ctypes-module.patch106
1 files changed, 106 insertions, 0 deletions
diff --git a/packages/python/python-2.5.1/enable-ctypes-module.patch b/packages/python/python-2.5.1/enable-ctypes-module.patch
new file mode 100644
index 0000000000..dd5adaf0e7
--- /dev/null
+++ b/packages/python/python-2.5.1/enable-ctypes-module.patch
@@ -0,0 +1,106 @@
+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;
+