123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- 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),
|