summaryrefslogtreecommitdiff
path: root/package/python/python-2.7-011-no-rpath.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/python/python-2.7-011-no-rpath.patch')
-rw-r--r--package/python/python-2.7-011-no-rpath.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/package/python/python-2.7-011-no-rpath.patch b/package/python/python-2.7-011-no-rpath.patch
new file mode 100644
index 000000000..700c4be8d
--- /dev/null
+++ b/package/python/python-2.7-011-no-rpath.patch
@@ -0,0 +1,75 @@
+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),