dev-lang/python: fix system libffi handling
authorMike Frysinger <vapier@gentoo.org>
Thu, 19 Nov 2015 19:31:33 +0000 (14:31 -0500)
committerMike Frysinger <vapier@gentoo.org>
Thu, 19 Nov 2015 19:40:49 +0000 (14:40 -0500)
dev-lang/python/files/python-2.7.10-system-libffi.patch [new file with mode: 0644]
dev-lang/python/python-2.7.10-r3.ebuild
dev-lang/python/python-2.7.10-r4.ebuild

diff --git a/dev-lang/python/files/python-2.7.10-system-libffi.patch b/dev-lang/python/files/python-2.7.10-system-libffi.patch
new file mode 100644 (file)
index 0000000..0b49b79
--- /dev/null
@@ -0,0 +1,36 @@
+make sure we respect the system libffi setting in our build config.
+the compiler probing is fragile and can break in some situations.
+
+--- a/setup.py
++++ b/setup.py
+@@ -2069,7 +2069,7 @@ class PyBuildExt(build_ext):
+         return True
+ 
+     def detect_ctypes(self, inc_dirs, lib_dirs):
+-        self.use_system_libffi = False
++        self.use_system_libffi = ('--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"))
+         include_dirs = []
+         extra_compile_args = []
+         extra_link_args = []
+@@ -2113,7 +2113,7 @@ class PyBuildExt(build_ext):
+                              sources=['_ctypes/_ctypes_test.c'])
+         self.extensions.extend([ext, ext_test])
+ 
+-        if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"):
++        if not self.use_system_libffi:
+             return
+ 
+         if host_platform == 'darwin':
+@@ -2141,10 +2141,10 @@ class PyBuildExt(build_ext):
+                     ffi_lib = lib_name
+                     break
+ 
+-        if ffi_inc and ffi_lib:
++        if ffi_inc:
+             ext.include_dirs.extend(ffi_inc)
++        if ffi_lib:
+             ext.libraries.append(ffi_lib)
+-            self.use_system_libffi = True
+ 
+ 
+ class PyBuildInstall(install):
index 0a4bd58c953d4b50e2954f6a2565c37b4e7c4800..f0723ccf511e6986731dbb42b66bc3ce6e25da3f 100644 (file)
@@ -101,6 +101,7 @@ src_prepare() {
        epatch "${FILESDIR}/python-2.7.5-nonfatal-compileall.patch"
        epatch "${FILESDIR}/python-2.7.9-ncurses-pkg-config.patch"
        epatch "${FILESDIR}/python-2.7.10-cross-compile-warn-test.patch"
+       epatch "${FILESDIR}/python-2.7.10-system-libffi.patch"
 
        sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
                Lib/distutils/command/install.py \
index 2158a5471c81056d2b9bc44a1a52cb3d328d43c6..f947f6116be771186d35cdd2e963991fa8d041e6 100644 (file)
@@ -102,6 +102,7 @@ src_prepare() {
        epatch "${FILESDIR}/python-2.7.5-nonfatal-compileall.patch"
        epatch "${FILESDIR}/python-2.7.9-ncurses-pkg-config.patch"
        epatch "${FILESDIR}/python-2.7.10-cross-compile-warn-test.patch"
+       epatch "${FILESDIR}/python-2.7.10-system-libffi.patch"
 
        sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
                Lib/distutils/command/install.py \