diff options
Diffstat (limited to 'package/python3/python3-3.3-008-no-rpath.patch')
-rw-r--r-- | package/python3/python3-3.3-008-no-rpath.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/package/python3/python3-3.3-008-no-rpath.patch b/package/python3/python3-3.3-008-no-rpath.patch new file mode 100644 index 000000000..cdeec22ce --- /dev/null +++ b/package/python3/python3-3.3-008-no-rpath.patch @@ -0,0 +1,51 @@ +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), |