summaryrefslogtreecommitdiff
blob: 21fdf128863c9a7583981275e563dddeb42a9961 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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