python-native: Fix the _ctypes module (and remove some dead files)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
parent
06e878caad
commit
9db2b57fca
|
@ -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;
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
|
||||
#
|
||||
# Made by http://www.mn-logistik.de/unsupported/pxa250/patcher
|
||||
#
|
||||
|
||||
--- Python-2.3.1/Makefile.pre.in~bindir-libdir 2003-09-20 12:50:28.000000000 +0200
|
||||
+++ Python-2.3.1/Makefile.pre.in 2003-11-02 19:53:17.000000000 +0100
|
||||
@@ -78,8 +78,8 @@
|
||||
exec_prefix= @exec_prefix@
|
||||
|
||||
# Expanded directories
|
||||
-BINDIR= $(exec_prefix)/bin
|
||||
-LIBDIR= $(exec_prefix)/lib
|
||||
+BINDIR= @bindir@
|
||||
+LIBDIR= @libdir@
|
||||
MANDIR= @mandir@
|
||||
INCLUDEDIR= @includedir@
|
||||
CONFINCLUDEDIR= $(exec_prefix)/include
|
|
@ -1,36 +0,0 @@
|
|||
|
||||
#
|
||||
# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
|
||||
#
|
||||
|
||||
--- Python-2.3.3/Lib/distutils/sysconfig.py~cross-distutils 2003-02-10 15:02:33.000000000 +0100
|
||||
+++ Python-2.3.3/Lib/distutils/sysconfig.py 2004-03-02 20:15:05.000000000 +0100
|
||||
@@ -19,8 +19,8 @@
|
||||
from errors import DistutilsPlatformError
|
||||
|
||||
# These are needed in a couple of spots, so just compute them once.
|
||||
-PREFIX = os.path.normpath(sys.prefix)
|
||||
-EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
|
||||
+PREFIX = os.path.normpath(sys.prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
|
||||
+EXEC_PREFIX = os.path.normpath(sys.exec_prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
|
||||
|
||||
# python_build: (Boolean) if true, we're either building Python or
|
||||
# building an extension with an un-installed Python, so we use
|
||||
@@ -192,7 +192,7 @@
|
||||
else:
|
||||
# The name of the config.h file changed in 2.2
|
||||
config_h = 'pyconfig.h'
|
||||
- return os.path.join(inc_dir, config_h)
|
||||
+ return os.path.join(inc_dir, config_h).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
|
||||
|
||||
|
||||
def get_makefile_filename():
|
||||
@@ -200,7 +200,7 @@
|
||||
if python_build:
|
||||
return os.path.join(os.path.dirname(sys.executable), "Makefile")
|
||||
lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
|
||||
- return os.path.join(lib_dir, "config", "Makefile")
|
||||
+ return os.path.join(lib_dir, "config", "Makefile").replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
|
||||
|
||||
|
||||
def parse_config_h(fp, g=None):
|
|
@ -1,13 +0,0 @@
|
|||
Index: Python-2.5.1/Python/compile.c
|
||||
===================================================================
|
||||
--- Python-2.5.1.orig/Python/compile.c
|
||||
+++ Python-2.5.1/Python/compile.c
|
||||
@@ -30,7 +30,7 @@
|
||||
#include "symtable.h"
|
||||
#include "opcode.h"
|
||||
|
||||
-int Py_OptimizeFlag = 0;
|
||||
+int Py_OptimizeFlag = 1;
|
||||
|
||||
/*
|
||||
ISSUES:
|
|
@ -1,16 +0,0 @@
|
|||
|
||||
#
|
||||
# Signed off by Michael 'Mickey' Lauer <mickey@Vanille.de>
|
||||
#
|
||||
|
||||
--- Python-2.4/Lib/distutils/command/build_scripts.py~dont-modify-shebang-line
|
||||
+++ Python-2.4/Lib/distutils/command/build_scripts.py
|
||||
@@ -87,7 +87,7 @@
|
||||
continue
|
||||
|
||||
match = first_line_re.match(first_line)
|
||||
- if match:
|
||||
+ if False: #match:
|
||||
adjust = 1
|
||||
post_interp = match.group(1) or ''
|
||||
|
|
@ -4,7 +4,7 @@ LICENSE = "PSF"
|
|||
DEPENDS = "openssl-native bzip2-full-native sqlite3-native"
|
||||
SECTION = "devel/python"
|
||||
PRIORITY = "optional"
|
||||
PR = "ml5"
|
||||
PR = "ml6"
|
||||
|
||||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
||||
|
@ -16,6 +16,7 @@ SRC_URI = "\
|
|||
file://default-is-optimized.patch;patch=1 \
|
||||
file://catchup-with-swig.patch;patch=1 \
|
||||
file://fix-staging.patch;patch=1 \
|
||||
file://enable-ctypes-module.patch;patch=1 \
|
||||
"
|
||||
S = "${WORKDIR}/Python-${PV}"
|
||||
|
||||
|
|
Loading…
Reference in New Issue