| https://github.com/matplotlib/matplotlib/pull/4430 |
| |
| From d077e49be318c851f6bbd64708efeed78a3ece3f Mon Sep 17 00:00:00 2001 |
| From: Mike Frysinger <vapier@chromium.org> |
| Date: Fri, 15 May 2015 03:49:02 -0400 |
| Subject: [PATCH 3/3] setupext: do not hardcode system -I/-L paths |
| |
| The native compiler should already know the right paths to look for |
| includes and libraries. Hardcoding a specific list of those paths |
| breaks both cross-compiling and multilib. In the former, paths like |
| /usr/include and /usr/lib are for x86 but when you want to build for |
| arm, mixing them leads to bad failures. In the latter, paths like |
| /usr/lib typically hold 32it libraries, but when you're building for |
| 64bit, you want the libs from /usr/lib64. This goes even further as |
| there are other mixed ABIs like /usr/libx32 and /usr/lib32, neither |
| of which are handled here. |
| |
| Instead, delete the code entirely and rely on the compiler being |
| properly configured. If you want to use a misconfigured compiler, |
| you can always set CFLAGS/CPPFLAGS/LDFLAGS to include the -I/-L |
| that your system needs. |
| --- |
| setupext.py | 12 +----------- |
| 1 file changed, 1 insertion(+), 11 deletions(-) |
| |
| diff --git a/setupext.py b/setupext.py |
| index 57d80e7..7473e3a 100755 |
| --- a/setupext.py |
| +++ b/setupext.py |
| @@ -216,9 +216,7 @@ sysconfig.customize_compiler = my_customize_compiler |
| |
| def make_extension(name, files, *args, **kwargs): |
| """ |
| - Make a new extension. Automatically sets include_dirs and |
| - library_dirs to the base directories appropriate for this |
| - platform. |
| + Make a new extension. |
| |
| `name` is the name of the extension. |
| |
| @@ -228,14 +226,6 @@ def make_extension(name, files, *args, **kwargs): |
| `distutils.core.Extension` constructor. |
| """ |
| ext = DelayedExtension(name, files, *args, **kwargs) |
| - for dir in get_base_dirs(): |
| - include_dir = os.path.join(dir, 'include') |
| - if os.path.exists(include_dir): |
| - ext.include_dirs.append(include_dir) |
| - for lib in ('lib', 'lib64'): |
| - lib_dir = os.path.join(dir, lib) |
| - if os.path.exists(lib_dir): |
| - ext.library_dirs.append(lib_dir) |
| ext.include_dirs.append('.') |
| |
| return ext |
| -- |
| 2.4.0 |
| |