]> code.ossystems Code Review - openembedded-core.git/commitdiff
binutils: fix library RPATHs
authorScott Garman <scott.a.garman@intel.com>
Tue, 18 Jan 2011 20:02:23 +0000 (12:02 -0800)
committerSaul Wold <sgw@linux.intel.com>
Fri, 21 Jan 2011 09:36:16 +0000 (01:36 -0800)
This integrates the RPATH fixes we recently applied to libtool.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
meta/recipes-devtools/binutils/binutils-2.21/libtool-rpath-fix.patch [new file with mode: 0644]
meta/recipes-devtools/binutils/binutils_2.21.bb

diff --git a/meta/recipes-devtools/binutils/binutils-2.21/libtool-rpath-fix.patch b/meta/recipes-devtools/binutils/binutils-2.21/libtool-rpath-fix.patch
new file mode 100644 (file)
index 0000000..a0058c1
--- /dev/null
@@ -0,0 +1,36 @@
+Enabling sysroot support in libtool exposed a bug where the final
+library had an RPATH encoded into it which still pointed to the
+sysroot. This works around the issue until it gets sorted out
+upstream.
+
+Fix suggested by Richard Purdie <richard.purdie@linuxfoundation.org> 
+Signed-off-by: Scott Garman <scott.a.garman@intel.com>
+
+diff -urN binutils-2.21.orig//ltmain.sh binutils-2.21/ltmain.sh
+--- binutils-2.21.orig//ltmain.sh      2011-01-18 11:50:40.821710085 -0800
++++ binutils-2.21/ltmain.sh    2011-01-18 11:51:38.774952785 -0800
+@@ -8035,9 +8035,11 @@
+         test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
+         for libdir in $rpath; do
+           if test -n "$hardcode_libdir_flag_spec"; then
++                func_replace_sysroot "$libdir"
++                libdir=$func_replace_sysroot_result
++                func_stripname '=' '' "$libdir"
++                libdir=$func_stripname_result
+             if test -n "$hardcode_libdir_separator"; then
+-              func_replace_sysroot "$libdir"
+-              libdir=$func_replace_sysroot_result
+               if test -z "$hardcode_libdirs"; then
+                 hardcode_libdirs="$libdir"
+               else
+@@ -8770,6 +8772,10 @@
+       hardcode_libdirs=
+       for libdir in $compile_rpath $finalize_rpath; do
+       if test -n "$hardcode_libdir_flag_spec"; then
++        func_replace_sysroot "$libdir"
++        libdir=$func_replace_sysroot_result
++        func_stripname '=' '' "$libdir"
++        libdir=$func_stripname_result
+         if test -n "$hardcode_libdir_separator"; then
+           if test -z "$hardcode_libdirs"; then
+             hardcode_libdirs="$libdir"
index 1d6a3c4fad499dc453c39d5fe321fee2b3c3c733..270c720c393e2f7778beb1989777c5909a9ca475 100644 (file)
@@ -28,6 +28,7 @@ SRC_URI = "\
      file://binutils-2.19.1-ld-sysroot.patch \
      file://libiberty_path_fix.patch \
      file://binutils-poison.patch \
+     file://libtool-rpath-fix.patch \
      "
 
 SRC_URI[md5sum] = "c84c5acc9d266f1a7044b51c85a823f5"