summaryrefslogtreecommitdiff
path: root/meta
diff options
context:
space:
mode:
authorScott Garman <scott.a.garman@intel.com>2011-01-11 23:20:02 -0800
committerSaul Wold <sgw@linux.intel.com>2011-01-21 01:36:14 -0800
commitded899b5804c7ceb108e9476d1164f7da0adfb34 (patch)
tree86df8a26a32558e36fc2a622b076dd9634e7d4a6 /meta
parent62dc23953d87babc69a7fbf4b0bd61d093577167 (diff)
downloadopenembedded-core-ded899b5804c7ceb108e9476d1164f7da0adfb34.tar.gz
openembedded-core-ded899b5804c7ceb108e9476d1164f7da0adfb34.tar.bz2
openembedded-core-ded899b5804c7ceb108e9476d1164f7da0adfb34.tar.xz
openembedded-core-ded899b5804c7ceb108e9476d1164f7da0adfb34.zip
libtool: fix library RPATHs
Enabling sysroot support 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>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-devtools/libtool/libtool.inc3
-rw-r--r--meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch36
2 files changed, 38 insertions, 1 deletions
diff --git a/meta/recipes-devtools/libtool/libtool.inc b/meta/recipes-devtools/libtool/libtool.inc
index bccb7698b..8701c820d 100644
--- a/meta/recipes-devtools/libtool/libtool.inc
+++ b/meta/recipes-devtools/libtool/libtool.inc
@@ -13,7 +13,8 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
file://prefix-manpage-fix.patch \
file://rename-with-sysroot.patch \
file://resolve-sysroot.patch \
- file://use-sysroot-in-libpath.patch"
+ file://use-sysroot-in-libpath.patch \
+ file://fix-final-rpath.patch"
do_compile_prepend () {
# Sometimes this file doesn't get rebuilt, force the issue
diff --git a/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch b/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch
new file mode 100644
index 000000000..402e2c6b5
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch
@@ -0,0 +1,36 @@
+Enalbing sysroot support 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@intel.com>
+Signed-off-by: Scott Garman <scott.a.garman@intel.com>
+
+Index: libtool-2.4/libltdl/config/ltmain.m4sh
+===================================================================
+--- libtool-2.4.orig/libltdl/config/ltmain.m4sh 2011-01-13 14:10:14.580025108 +0000
++++ libtool-2.4/libltdl/config/ltmain.m4sh 2011-01-13 15:10:18.540025113 +0000
+@@ -7246,9 +7246,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
+@@ -7981,6 +7983,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"