76 lines
3.5 KiB
Diff
76 lines
3.5 KiB
Diff
|
Remove runtime library paths
|
||
|
|
||
|
For some extensions (bsddb, sqlite and dbm), Python setup.py script
|
||
|
hardcode a runtime path (rpath) into the extension. However, this
|
||
|
runtime path is incorrect (because it points to the location of the
|
||
|
library directory on the development machine) and useless (because on
|
||
|
the target, all useful libraries are in a standard directory searched
|
||
|
by the dynamic loader). For those reasons, we just get rid of the
|
||
|
runtime paths in cross-compilation mode.
|
||
|
|
||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||
|
---
|
||
|
setup.py | 21 ++++++++++++++++++---
|
||
|
1 file changed, 18 insertions(+), 3 deletions(-)
|
||
|
|
||
|
Index: Python-2.7.1/setup.py
|
||
|
===================================================================
|
||
|
--- Python-2.7.1.orig/setup.py
|
||
|
+++ Python-2.7.1/setup.py
|
||
|
@@ -977,6 +977,12 @@
|
||
|
print "bsddb lib dir:", dblib_dir, " inc dir:", db_incdir
|
||
|
db_incs = [db_incdir]
|
||
|
dblibs = [dblib]
|
||
|
+
|
||
|
+ if os.environ.get('CROSS_COMPILING') == 'yes':
|
||
|
+ bsddb_runtime_library_dir = None
|
||
|
+ else:
|
||
|
+ bsddb_runtime_library_dir = dblib_dir
|
||
|
+
|
||
|
# We add the runtime_library_dirs argument because the
|
||
|
# BerkeleyDB lib we're linking against often isn't in the
|
||
|
# system dynamic library search path. This is usually
|
||
|
@@ -986,7 +992,7 @@
|
||
|
exts.append(Extension('_bsddb', ['_bsddb.c'],
|
||
|
depends = ['bsddb.h'],
|
||
|
library_dirs=dblib_dir,
|
||
|
- runtime_library_dirs=dblib_dir,
|
||
|
+ runtime_library_dirs=bsddb_runtime_library_dir,
|
||
|
include_dirs=db_incs,
|
||
|
libraries=dblibs))
|
||
|
else:
|
||
|
@@ -1092,12 +1098,17 @@
|
||
|
else:
|
||
|
sqlite_extra_link_args = ()
|
||
|
|
||
|
+ if os.environ.get('CROSS_COMPILING') == 'yes':
|
||
|
+ sqlite_runtime_library_dirs = None
|
||
|
+ else:
|
||
|
+ sqlite_runtime_library_dirs = sqlite_libdir
|
||
|
+
|
||
|
exts.append(Extension('_sqlite3', sqlite_srcs,
|
||
|
define_macros=sqlite_defines,
|
||
|
include_dirs=["Modules/_sqlite",
|
||
|
sqlite_incdir],
|
||
|
library_dirs=sqlite_libdir,
|
||
|
- runtime_library_dirs=sqlite_libdir,
|
||
|
+ runtime_library_dirs=sqlite_runtime_library_dirs,
|
||
|
extra_link_args=sqlite_extra_link_args,
|
||
|
libraries=["sqlite3",]))
|
||
|
else:
|
||
|
@@ -1198,9 +1209,13 @@
|
||
|
elif cand == "bdb":
|
||
|
if db_incs is not None:
|
||
|
print "building dbm using bdb"
|
||
|
+ if os.environ.get('CROSS_COMPILING') == 'yes':
|
||
|
+ db_runtime_library_dir = None
|
||
|
+ else:
|
||
|
+ db_runtime_library_dir = dblib_dir
|
||
|
dbmext = Extension('dbm', ['dbmmodule.c'],
|
||
|
library_dirs=dblib_dir,
|
||
|
- runtime_library_dirs=dblib_dir,
|
||
|
+ runtime_library_dirs=db_runtime_library_dir,
|
||
|
include_dirs=db_incs,
|
||
|
define_macros=[
|
||
|
('HAVE_BERKDB_H', None),
|