summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/libtool
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-11-16 16:58:34 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-11-24 00:02:27 +0000
commit0a1dedeb8eea4e230b47d1516b3e6e90495fe49d (patch)
tree573414491534128864788aaea09cbe57570f3680 /meta/recipes-devtools/libtool
parentca8237ee51053d70b5e7579c224a824db2be76b2 (diff)
downloadopenembedded-core-0a1dedeb8eea4e230b47d1516b3e6e90495fe49d.tar.gz
openembedded-core-0a1dedeb8eea4e230b47d1516b3e6e90495fe49d.tar.bz2
openembedded-core-0a1dedeb8eea4e230b47d1516b3e6e90495fe49d.zip
libtool: Avoid relinking when cross compiling, its pointless
There is no point in having "executable" binaries in the .libs directory linked with different rpaths to the target which could concivably be run on the build system when cross compiling. This patch removes the extra rpaths ($compile_rpath) so that the output from the "link" stage can be used on the target. We can then avoid having to "relink" during the install stage. This saves some build time (do_install is over 2 minutes faster for pulseaudio). This patch also removes an annoying "seems to be moved" warning which is totally bogus in the sysroot case. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/libtool')
-rw-r--r--meta/recipes-devtools/libtool/libtool-cross_2.4.bb3
-rw-r--r--meta/recipes-devtools/libtool/libtool-nativesdk_2.4.bb3
-rw-r--r--meta/recipes-devtools/libtool/libtool/fixinstall.patch101
3 files changed, 105 insertions, 2 deletions
diff --git a/meta/recipes-devtools/libtool/libtool-cross_2.4.bb b/meta/recipes-devtools/libtool/libtool-cross_2.4.bb
index 5c06987195..5df690868f 100644
--- a/meta/recipes-devtools/libtool/libtool-cross_2.4.bb
+++ b/meta/recipes-devtools/libtool/libtool-cross_2.4.bb
@@ -1,8 +1,9 @@
require libtool-${PV}.inc
-PR = "r4"
+PR = "r5"
PACKAGES = ""
SRC_URI += "file://prefix.patch"
+SRC_URI += "file://fixinstall.patch"
datadir = "${STAGING_DIR_TARGET}${target_datadir}"
diff --git a/meta/recipes-devtools/libtool/libtool-nativesdk_2.4.bb b/meta/recipes-devtools/libtool/libtool-nativesdk_2.4.bb
index a96d1d1ac4..bf1928d8b0 100644
--- a/meta/recipes-devtools/libtool/libtool-nativesdk_2.4.bb
+++ b/meta/recipes-devtools/libtool/libtool-nativesdk_2.4.bb
@@ -1,7 +1,8 @@
require libtool-${PV}.inc
-PR = "r4"
+PR = "r5"
SRC_URI += "file://prefix.patch"
+SRC_URI += "file://fixinstall.patch"
inherit nativesdk
diff --git a/meta/recipes-devtools/libtool/libtool/fixinstall.patch b/meta/recipes-devtools/libtool/libtool/fixinstall.patch
new file mode 100644
index 0000000000..279c07be37
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/fixinstall.patch
@@ -0,0 +1,101 @@
+There is no point in having "executable" binaries in the .libs
+directory linked with different rpaths to the target which
+could concivably be run on the build system when cross compiling.
+
+This patch removes the extra rpaths ($compile_rpath) so that the
+output from the "link" stage can be used on the target. We can then
+avoid having to "relink" during the install stage.
+
+This saves some build time (do_install is over 2 minutes faster for
+pulseaudio).
+
+This patch also removes an annoying "seems to be moved" warning
+which is totally bogus in the sysroot case.
+
+Upstream-Status: Inappropriate [upstream are unlikely to take a patch like this]
+
+RP 2011/11/16
+
+Index: libtool-2.4/libltdl/config/ltmain.m4sh
+===================================================================
+--- libtool-2.4.orig/libltdl/config/ltmain.m4sh 2011-11-16 14:50:01.070383779 +0000
++++ libtool-2.4/libltdl/config/ltmain.m4sh 2011-11-16 15:27:13.582310413 +0000
+@@ -2163,7 +2163,7 @@
+ dir="$func_dirname_result"
+ func_append dir "$objdir"
+
+- if test -n "$relink_command"; then
++ if test "$fast_install" = no && test -n "$relink_command"; then
+ # Strip any trailing slash from the destination.
+ func_stripname '' '/' "$libdir"
+ destlibdir=$func_stripname_result
+@@ -2202,7 +2202,7 @@
+ shift
+
+ srcname="$realname"
+- test -n "$relink_command" && srcname="$realname"T
++ test "$fast_install" = no && test -n "$relink_command" && srcname="$realname"T
+
+ # Install the shared library and build the symlinks.
+ func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
+@@ -5856,15 +5856,15 @@
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+- case " $sys_lib_dlsearch_path " in
+- *" $absdir "*) ;;
+- *)
+- case "$compile_rpath " in
+- *" $absdir "*) ;;
+- *) func_append compile_rpath " $absdir" ;;
+- esac
+- ;;
+- esac
++ #case " $sys_lib_dlsearch_path " in
++ #*" $absdir "*) ;;
++ #*)
++ # case "$compile_rpath " in
++ # *" $absdir "*) ;;
++ # *) func_append compile_rpath " $absdir" ;;
++ # esac
++ # ;;
++ #esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+@@ -5930,15 +5930,15 @@
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+- case " $sys_lib_dlsearch_path " in
+- *" $absdir "*) ;;
+- *)
+- case "$compile_rpath " in
+- *" $absdir "*) ;;
+- *) func_append compile_rpath " $absdir" ;;
+- esac
+- ;;
+- esac
++ #case " $sys_lib_dlsearch_path " in
++ #*" $absdir "*) ;;
++ #*)
++ # case "$compile_rpath " in
++ # *" $absdir "*) ;;
++ # *) func_append compile_rpath " $absdir" ;;
++ # esac
++ # ;;
++ #esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+@@ -6284,8 +6284,8 @@
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ test -z "$libdir" && \
+ func_fatal_error "\`$deplib' is not a valid libtool archive"
+- test "$absdir" != "$libdir" && \
+- func_warning "\`$deplib' seems to be moved"
++ #test "$absdir" != "$libdir" && \
++ # func_warning "\`$deplib' seems to be moved"
+
+ path="-L$absdir"
+ fi