| Remove runtime library paths |
| |
| For some extensions (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 | 12 ++++++++++-- |
| 1 file changed, 10 insertions(+), 2 deletions(-) |
| |
| Index: Python-3.3.0/setup.py |
| =================================================================== |
| --- Python-3.3.0.orig/setup.py |
| +++ Python-3.3.0/setup.py |
| @@ -1134,11 +1134,15 @@ |
| # can end up with a bad search path order. |
| if sqlite_incdir not in self.compiler.include_dirs: |
| include_dirs.append(sqlite_incdir) |
| + if cross_compiling: |
| + sqlite_runtime_libdir = None |
| + else: |
| + sqlite_runtime_libdir = sqlite_libdir |
| exts.append(Extension('_sqlite3', sqlite_srcs, |
| define_macros=sqlite_defines, |
| include_dirs=include_dirs, |
| library_dirs=sqlite_libdir, |
| - runtime_library_dirs=sqlite_libdir, |
| + runtime_library_dirs=sqlite_runtime_libdir, |
| extra_link_args=sqlite_extra_link_args, |
| libraries=["sqlite3",])) |
| else: |
| @@ -1205,9 +1209,13 @@ |
| elif cand == "bdb": |
| if db_incs is not None: |
| if dbm_setup_debug: print("building dbm using bdb") |
| + if cross_compiling: |
| + dblib_runtime_libdir = None |
| + else: |
| + dblib_runtime_libdir = dblib_dir |
| dbmext = Extension('_dbm', ['_dbmmodule.c'], |
| library_dirs=dblib_dir, |
| - runtime_library_dirs=dblib_dir, |
| + runtime_library_dirs=dblib_runtime_libdir, |
| include_dirs=db_incs, |
| define_macros=[ |
| ('HAVE_BERKDB_H', None), |