libtool: fix different files in sysroot of sdk
cover libtool: fix different files in sysroot of sdk
The following changes since commit 6879c3c903ec7d08cf0240281c83d85b4a42b6db:
maintainers.inc: add info for libical (2014-07-08 11:20:14 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib chonglu/libtool
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=chonglu/libtool
Chong Lu (1):
libtool: fix different files in sysroot of sdk
.../libtool/libtool-cross_2.4.2.bb | 1 + .../libtool/libtool-native_2.4.2.bb | 1 + .../libtool/libtool/fixinstall.patch | 139 +++++++++++++-------- meta/recipes-devtools/libtool/libtool/prefix.patch | 23 ---- .../libtool/libtool/rename-libtool.patch | 40 ++++++ meta/recipes-devtools/libtool/libtool_2.4.2.bb | 3 + .../libtool/nativesdk-libtool_2.4.2.bb | 1 + 7 files changed, 131 insertions(+), 77 deletions(-) create mode 100644 meta/recipes-devtools/libtool/libtool/rename-libtool.patch
Signature · 1 line
1.9.1
PATCH 1/1 libtool: fix different files in sysroot of sdk
The libtool.m4 and ltmain.m4sh are different in target sysroot between sdk and build environment. The reason is that we have two patches (fixinstall.patch and prefix.patch) for libtool-cross. They change libtool.m4 and ltmain.m4sh and generate files to sysroot dir. But we don't need them for libtool target. In sdk environment, We get libtool.m4 and ltmain.sh that don't apply on two patches.
This patch splits prefix.patch to prefix.patch and rename-libtool.patch. Then, improves fixinstall.patch and rename-libtool.patch to apply on conditionally. Apply on both libtool target and libtool-cross to fix different issue in sysroot between sdk and build environment.
--- .../libtool/libtool-cross_2.4.2.bb | 1 + .../libtool/libtool-native_2.4.2.bb | 1 + .../libtool/libtool/fixinstall.patch | 139 +++++++++++++-------- meta/recipes-devtools/libtool/libtool/prefix.patch | 23 ---- .../libtool/libtool/rename-libtool.patch | 40 ++++++ meta/recipes-devtools/libtool/libtool_2.4.2.bb | 3 + .../libtool/nativesdk-libtool_2.4.2.bb | 1 + 7 files changed, 131 insertions(+), 77 deletions(-) create mode 100644 meta/recipes-devtools/libtool/libtool/rename-libtool.patch
meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb +1 -0
@@ -3,6 +3,7 @@ require libtool-${PV}.inc PR = "${INC_PR}.1" PACKAGES = "" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" SRC_URI += "file://fixinstall.patch" datadir = "${STAGING_DIR_TARGET}${target_datadir}"
meta/recipes-devtools/libtool/libtool-native_2.4.2.bb +1 -0
@@ -4,6 +4,7 @@ DEPENDS = "" PR = "${INC_PR}.1" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" inherit native
meta/recipes-devtools/libtool/libtool/fixinstall.patch +85 -54
173 lines not on this page · raw message
meta/recipes-devtools/libtool/libtool/prefix.patch +0 -23
@@ -18,29 +18,6 @@ the simplest fix is just to remove $SHELL. Updated: Date: 2011/11/09 RP -Index: libtool-2.4.2/libltdl/m4/libtool.m4 -=================================================================== ---- libtool-2.4.2.orig/libltdl/m4/libtool.m4 -+++ libtool-2.4.2/libltdl/m4/libtool.m4 -@@ -94,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1]) - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - AC_SUBST(LIBTOOL)dnl - - _LT_SETUP -@@ -206,7 +207,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, Index: libtool-2.4.2/Makefile.am =================================================================== --- libtool-2.4.2.orig/Makefile.am
meta/recipes-devtools/libtool/libtool/rename-libtool.patch new file +40 -0
@@ -0,0 +1,40 @@ +Upstream-Status: Inappropriate [embedded specific] + +Renames "libtool" -> "${TARGET_PREFIX}libtool" which makes sure +it can't be confused with the host libtool. + +Signed-off-by: Richard Purdie <[email protected]> +Signed-off-by: Chong Lu <[email protected]> +--- +diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4 +index 3866498..008675c 100644 +--- a/libltdl/m4/libtool.m4 ++++ b/libltdl/m4/libtool.m4 +@@ -94,7 +94,12 @@ _LT_SET_OPTIONS([$0], [$1]) + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. ++if test "$buildtarget" == yes; then + LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++else ++LIBTOOL='$(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" ++fi + AC_SUBST(LIBTOOL)dnl + + _LT_SETUP +@@ -206,7 +211,11 @@ aix3*) + esac + + # Global variables: ++if test "$buildtarget" == yes; then + ofile=libtool ++else ++ofile=${host_alias}-libtool ++fi + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +-- +1.9.1 +
meta/recipes-devtools/libtool/libtool_2.4.2.bb +3 -0
@@ -1,6 +1,8 @@ require libtool-${PV}.inc PR = "${INC_PR}.0" +SRC_URI += "file://rename-libtool.patch" +SRC_URI += "file://fixinstall.patch" # # We want the results of libtool-cross preserved - don't stage anything ourselves.
@@ -13,3 +15,4 @@ libtool_sysroot_preprocess () { rm -rf ${SYSROOT_DESTDIR}${datadir}/libtool/config/* } +EXTRA_OECONF = "buildtarget=yes"
meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb +1 -0
@@ -5,6 +5,7 @@ PR = "${INC_PR}.0" FILESEXTRAPATHS =. "${FILE_DIRNAME}/libtool:" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" SRC_URI += "file://fixinstall.patch" inherit nativesdk
Signature · 1 line
1.9.1
ping
Quoted 334 lines · Chong Lu
The libtool.m4 and ltmain.m4sh are different in target sysroot between sdk and build environment. The reason is that we have two patches (fixinstall.patch and prefix.patch) for libtool-cross. They change libtool.m4 and ltmain.m4sh and generate files to sysroot dir. But we don't need them for libtool target. In sdk environment, We get libtool.m4 and
ltmain.shthat don't apply on two patches.This patch splits prefix.patch to prefix.patch and rename-libtool.patch. Then, improves fixinstall.patch and rename-libtool.patch to apply on conditionally. Apply on both libtool target and libtool-cross to fix different issue in sysroot between sdk and build environment.
Signed-off-by Chong Lu <[email protected]>--- .../libtool/libtool-cross_2.4.2.bb | 1 + .../libtool/libtool-native_2.4.2.bb | 1 + .../libtool/libtool/fixinstall.patch | 139 +++++++++++++-------- meta/recipes-devtools/libtool/libtool/prefix.patch | 23 ---- .../libtool/libtool/rename-libtool.patch | 40 ++++++ meta/recipes-devtools/libtool/libtool_2.4.2.bb | 3 + .../libtool/nativesdk-libtool_2.4.2.bb | 1 + 7 files changed, 131 insertions(+), 77 deletions(-)create mode 100644
meta/recipes-devtools/libtool/libtool/rename-libtool.patchmeta/recipes-devtools/libtool/libtool-cross_2.4.2.bb +1
-0@@ -3,6 +3,7 @@ require libtool-${PV}.inc PR = "${INC_PR}.1" PACKAGES = "" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" SRC_URI += "file://fixinstall.patch" datadir = "${STAGING_DIR_TARGET}${target_datadir}"meta/recipes-devtools/libtool/libtool-native_2.4.2.bb +1
-0@@ -4,6 +4,7 @@ DEPENDS = "" PR = "${INC_PR}.1" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" inherit nativemeta/recipes-devtools/libtool/libtool/fixinstall.patch +85
-54@@ -14,88 +14,119 @@ which is totally bogus in the sysroot case. Upstream-Status: Inappropriate [upstream are unlikely to take a patch like this] -RP 2011/11/16 +Signed-off-by: Richard Purdie <[email protected]> +Signed-off-by: Chong Lu <[email protected]> +--- + libltdl/config/ltmain.m4sh | 44 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 44 insertions(+) -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 @@ +diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh +index eebb56e..9480cb8 100644 +--- a/libltdl/config/ltmain.m4sh ++++ b/libltdl/config/ltmain.m4sh +@@ -2166,6 +2166,7 @@ func_mode_install () dir="$func_dirname_result" func_append dir "$objdir" -- if test -n "$relink_command"; then -+ if test "$fast_install" = no && test -n "$relink_command"; then ++ if test "$buildtarget" == yes; then + if test -n "$relink_command"; then # Strip any trailing slash from the destination. func_stripname '' '/' "$libdir" - destlibdir=$func_stripname_result -@@ -2202,7 +2202,7 @@ +@@ -2197,6 +2198,39 @@ func_mode_install () + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi ++ else ++ if test "$fast_install" = no && test -n "$relink_command"; then ++ # Strip any trailing slash from the destination. ++ func_stripname '' '/' "$libdir" ++ destlibdir=$func_stripname_result ++ ++ func_stripname '' '/' "$destdir" ++ s_destdir=$func_stripname_result ++ ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ # At present, this check doesn't affect windows .dll's that ++ # are installed into $libdir/../bin (currently, that works fine) ++ # but it's something to keep an eye on. ++ test "$inst_prefix_dir" = "$destdir" && \ ++ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` ++ fi ++ ++ func_warning "relinking \`$file'" ++ func_show_eval "$relink_command" \ ++ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' ++ fi ++ fi + + # See the names of the shared library. + set dummy $library_names; shift +@@ -2205,7 +2239,11 @@ func_mode_install () shift srcname="$realname" -- test -n "$relink_command" && srcname="$realname"T ++ if test "$buildtarget" == yes; then + test -n "$relink_command" && srcname="$realname"T ++ else + test "$fast_install" = no && test -n "$relink_command" && srcname="$realname"T ++ fi # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ -@@ -5856,15 +5856,15 @@ +@@ -5873,6 +5911,7 @@ func_mode_link () # 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 ++ if test "$buildtarget" == yes; then + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) +@@ -5882,6 +5921,7 @@ func_mode_link () + esac + ;; + esac ++ fi case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) -@@ -5930,15 +5930,15 @@ +@@ -5947,6 +5987,7 @@ func_mode_link () # 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 ++ if test "$buildtarget" == yes; then + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) +@@ -5956,6 +5997,7 @@ func_mode_link () + esac + ;; + esac ++ fi case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) -@@ -6284,8 +6284,8 @@ +@@ -6301,8 +6343,10 @@ func_mode_link () 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" ++ if test "$buildtarget" == yes; then + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" ++ fi path="-L$absdir" fi +-- +1.9.1 +meta/recipes-devtools/libtool/libtool/prefix.patch +0
-23@@ -18,29 +18,6 @@ the simplest fix is just to remove $SHELL. Updated: Date: 2011/11/09 RP -Index: libtool-2.4.2/libltdl/m4/libtool.m4 -=================================================================== ---- libtool-2.4.2.orig/libltdl/m4/libtool.m4 -+++ libtool-2.4.2/libltdl/m4/libtool.m4 -@@ -94,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1]) - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - AC_SUBST(LIBTOOL)dnl - - _LT_SETUP -@@ -206,7 +207,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, Index: libtool-2.4.2/Makefile.am =================================================================== --- libtool-2.4.2.orig/Makefile.ammeta/recipes-devtools/libtool/libtool/rename-libtool.patch new file +40
-0@@ -0,0 +1,40 @@ +Upstream-Status: Inappropriate [embedded specific] + +Renames "libtool" -> "${TARGET_PREFIX}libtool" which makes sure +it can't be confused with the host libtool. + +Signed-off-by: Richard Purdie <[email protected]> +Signed-off-by: Chong Lu <[email protected]> +--- +diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4 +index 3866498..008675c 100644 +--- a/libltdl/m4/libtool.m4 ++++ b/libltdl/m4/libtool.m4 +@@ -94,7 +94,12 @@ _LT_SET_OPTIONS([$0], [$1]) + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. ++if test "$buildtarget" == yes; then + LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++else ++LIBTOOL='$(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" ++fi + AC_SUBST(LIBTOOL)dnl + + _LT_SETUP +@@ -206,7 +211,11 @@ aix3*) + esac + + # Global variables: ++if test "$buildtarget" == yes; then + ofile=libtool ++else ++ofile=${host_alias}-libtool ++fi + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +-- +1.9.1 +meta/recipes-devtools/libtool/libtool_2.4.2.bb +3
-0@@ -1,6 +1,8 @@ require libtool-${PV}.inc PR = "${INC_PR}.0" +SRC_URI += "file://rename-libtool.patch" +SRC_URI += "file://fixinstall.patch" # # We want the results of libtool-cross preserved - don't stage anything ourselves.@@ -13,3 +15,4 @@ libtool_sysroot_preprocess () { rm -rf ${SYSROOT_DESTDIR}${datadir}/libtool/config/* } +EXTRA_OECONF = "buildtarget=yes"meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb +1
-0@@ -5,6 +5,7 @@ PR = "${INC_PR}.0" FILESEXTRAPATHS =. "${FILE_DIRNAME}/libtool:" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" SRC_URI += "file://fixinstall.patch" inherit nativesdk
ping
Quoted 334 lines · Chong Lu
The libtool.m4 and ltmain.m4sh are different in target sysroot between sdk and build environment. The reason is that we have two patches (fixinstall.patch and prefix.patch) for libtool-cross. They change libtool.m4 and ltmain.m4sh and generate files to sysroot dir. But we don't need them for libtool target. In sdk environment, We get libtool.m4 and
ltmain.shthat don't apply on two patches.This patch splits prefix.patch to prefix.patch and rename-libtool.patch. Then, improves fixinstall.patch and rename-libtool.patch to apply on conditionally. Apply on both libtool target and libtool-cross to fix different issue in sysroot between sdk and build environment.
Signed-off-by Chong Lu <[email protected]>--- .../libtool/libtool-cross_2.4.2.bb | 1 + .../libtool/libtool-native_2.4.2.bb | 1 + .../libtool/libtool/fixinstall.patch | 139 +++++++++++++-------- meta/recipes-devtools/libtool/libtool/prefix.patch | 23 ---- .../libtool/libtool/rename-libtool.patch | 40 ++++++ meta/recipes-devtools/libtool/libtool_2.4.2.bb | 3 + .../libtool/nativesdk-libtool_2.4.2.bb | 1 + 7 files changed, 131 insertions(+), 77 deletions(-)create mode 100644
meta/recipes-devtools/libtool/libtool/rename-libtool.patchmeta/recipes-devtools/libtool/libtool-cross_2.4.2.bb +1
-0@@ -3,6 +3,7 @@ require libtool-${PV}.inc PR = "${INC_PR}.1" PACKAGES = "" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" SRC_URI += "file://fixinstall.patch" datadir = "${STAGING_DIR_TARGET}${target_datadir}"meta/recipes-devtools/libtool/libtool-native_2.4.2.bb +1
-0@@ -4,6 +4,7 @@ DEPENDS = "" PR = "${INC_PR}.1" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" inherit nativemeta/recipes-devtools/libtool/libtool/fixinstall.patch +85
-54@@ -14,88 +14,119 @@ which is totally bogus in the sysroot case. Upstream-Status: Inappropriate [upstream are unlikely to take a patch like this] -RP 2011/11/16 +Signed-off-by: Richard Purdie <[email protected]> +Signed-off-by: Chong Lu <[email protected]> +--- + libltdl/config/ltmain.m4sh | 44 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 44 insertions(+) -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 @@ +diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh +index eebb56e..9480cb8 100644 +--- a/libltdl/config/ltmain.m4sh ++++ b/libltdl/config/ltmain.m4sh +@@ -2166,6 +2166,7 @@ func_mode_install () dir="$func_dirname_result" func_append dir "$objdir" -- if test -n "$relink_command"; then -+ if test "$fast_install" = no && test -n "$relink_command"; then ++ if test "$buildtarget" == yes; then + if test -n "$relink_command"; then # Strip any trailing slash from the destination. func_stripname '' '/' "$libdir" - destlibdir=$func_stripname_result -@@ -2202,7 +2202,7 @@ +@@ -2197,6 +2198,39 @@ func_mode_install () + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi ++ else ++ if test "$fast_install" = no && test -n "$relink_command"; then ++ # Strip any trailing slash from the destination. ++ func_stripname '' '/' "$libdir" ++ destlibdir=$func_stripname_result ++ ++ func_stripname '' '/' "$destdir" ++ s_destdir=$func_stripname_result ++ ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ # At present, this check doesn't affect windows .dll's that ++ # are installed into $libdir/../bin (currently, that works fine) ++ # but it's something to keep an eye on. ++ test "$inst_prefix_dir" = "$destdir" && \ ++ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` ++ fi ++ ++ func_warning "relinking \`$file'" ++ func_show_eval "$relink_command" \ ++ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' ++ fi ++ fi + + # See the names of the shared library. + set dummy $library_names; shift +@@ -2205,7 +2239,11 @@ func_mode_install () shift srcname="$realname" -- test -n "$relink_command" && srcname="$realname"T ++ if test "$buildtarget" == yes; then + test -n "$relink_command" && srcname="$realname"T ++ else + test "$fast_install" = no && test -n "$relink_command" && srcname="$realname"T ++ fi # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ -@@ -5856,15 +5856,15 @@ +@@ -5873,6 +5911,7 @@ func_mode_link () # 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 ++ if test "$buildtarget" == yes; then + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) +@@ -5882,6 +5921,7 @@ func_mode_link () + esac + ;; + esac ++ fi case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) -@@ -5930,15 +5930,15 @@ +@@ -5947,6 +5987,7 @@ func_mode_link () # 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 ++ if test "$buildtarget" == yes; then + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) +@@ -5956,6 +5997,7 @@ func_mode_link () + esac + ;; + esac ++ fi case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) -@@ -6284,8 +6284,8 @@ +@@ -6301,8 +6343,10 @@ func_mode_link () 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" ++ if test "$buildtarget" == yes; then + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" ++ fi path="-L$absdir" fi +-- +1.9.1 +meta/recipes-devtools/libtool/libtool/prefix.patch +0
-23@@ -18,29 +18,6 @@ the simplest fix is just to remove $SHELL. Updated: Date: 2011/11/09 RP -Index: libtool-2.4.2/libltdl/m4/libtool.m4 -=================================================================== ---- libtool-2.4.2.orig/libltdl/m4/libtool.m4 -+++ libtool-2.4.2/libltdl/m4/libtool.m4 -@@ -94,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1]) - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - AC_SUBST(LIBTOOL)dnl - - _LT_SETUP -@@ -206,7 +207,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, Index: libtool-2.4.2/Makefile.am =================================================================== --- libtool-2.4.2.orig/Makefile.ammeta/recipes-devtools/libtool/libtool/rename-libtool.patch new file +40
-0@@ -0,0 +1,40 @@ +Upstream-Status: Inappropriate [embedded specific] + +Renames "libtool" -> "${TARGET_PREFIX}libtool" which makes sure +it can't be confused with the host libtool. + +Signed-off-by: Richard Purdie <[email protected]> +Signed-off-by: Chong Lu <[email protected]> +--- +diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4 +index 3866498..008675c 100644 +--- a/libltdl/m4/libtool.m4 ++++ b/libltdl/m4/libtool.m4 +@@ -94,7 +94,12 @@ _LT_SET_OPTIONS([$0], [$1]) + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. ++if test "$buildtarget" == yes; then + LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++else ++LIBTOOL='$(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" ++fi + AC_SUBST(LIBTOOL)dnl + + _LT_SETUP +@@ -206,7 +211,11 @@ aix3*) + esac + + # Global variables: ++if test "$buildtarget" == yes; then + ofile=libtool ++else ++ofile=${host_alias}-libtool ++fi + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +-- +1.9.1 +meta/recipes-devtools/libtool/libtool_2.4.2.bb +3
-0@@ -1,6 +1,8 @@ require libtool-${PV}.inc PR = "${INC_PR}.0" +SRC_URI += "file://rename-libtool.patch" +SRC_URI += "file://fixinstall.patch" # # We want the results of libtool-cross preserved - don't stage anything ourselves.@@ -13,3 +15,4 @@ libtool_sysroot_preprocess () { rm -rf ${SYSROOT_DESTDIR}${datadir}/libtool/config/* } +EXTRA_OECONF = "buildtarget=yes"meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb +1
-0@@ -5,6 +5,7 @@ PR = "${INC_PR}.0" FILESEXTRAPATHS =. "${FILE_DIRNAME}/libtool:" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" SRC_URI += "file://fixinstall.patch" inherit nativesdk
Quoted 11 lines · Chong Lu
The libtool.m4 and ltmain.m4sh are different in target sysroot between sdk and build environment. The reason is that we have two patches (fixinstall.patch and prefix.patch) for libtool-cross. They change libtool.m4 and ltmain.m4sh and generate files to sysroot dir. But we don't need them for libtool target. In sdk environment, We get libtool.m4 and
ltmain.shthat don't apply on two patches.This patch splits prefix.patch to prefix.patch and rename-libtool.patch. Then, improves fixinstall.patch and rename-libtool.patch to apply on conditionally. Apply on both libtool target and libtool-cross to fix different issue in sysroot between sdk and build environment.
Signed-off-by Chong Lu <[email protected]>
Quoted 10 lines
--- .../libtool/libtool-cross_2.4.2.bb | 1 + .../libtool/libtool-native_2.4.2.bb | 1 + .../libtool/libtool/fixinstall.patch | 139 +++++++++++++-------- meta/recipes-devtools/libtool/libtool/prefix.patch | 23 ---- .../libtool/libtool/rename-libtool.patch | 40 ++++++ meta/recipes-devtools/libtool/libtool_2.4.2.bb | 3 + .../libtool/nativesdk-libtool_2.4.2.bb | 1 + 7 files changed, 131 insertions(+), 77 deletions(-) create mode 100644 meta/recipes-devtools/libtool/libtool/rename-libtool.patch
I was reminded I hadn't reviewed this, sorry for the delay. I had a look at it now and this change isn't correct unfortunately.
Quoted 87 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb +1
-0@@ -3,6 +3,7 @@ require libtool-${PV}.inc PR = "${INC_PR}.1" PACKAGES = "" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" SRC_URI += "file://fixinstall.patch" datadir = "${STAGING_DIR_TARGET}${target_datadir}"meta/recipes-devtools/libtool/libtool-native_2.4.2.bb +1
-0@@ -4,6 +4,7 @@ DEPENDS = "" PR = "${INC_PR}.1" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" inherit nativemeta/recipes-devtools/libtool/libtool/fixinstall.patch +39
-10@@ -14,88 +14,119 @@ which is totally bogus in the sysroot case. Upstream-Status: Inappropriate [upstream are unlikely to take a patch like this] -RP 2011/11/16 +Signed-off-by: Richard Purdie <[email protected]> +Signed-off-by: Chong Lu <[email protected]> +--- + libltdl/config/ltmain.m4sh | 44 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 44 insertions(+) -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 @@ +diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh +index eebb56e..9480cb8 100644 +--- a/libltdl/config/ltmain.m4sh ++++ b/libltdl/config/ltmain.m4sh +@@ -2166,6 +2166,7 @@ func_mode_install () dir="$func_dirname_result" func_append dir "$objdir" -- if test -n "$relink_command"; then -+ if test "$fast_install" = no && test -n "$relink_command"; then ++ if test "$buildtarget" == yes; then + if test -n "$relink_command"; then # Strip any trailing slash from the destination. func_stripname '' '/' "$libdir" - destlibdir=$func_stripname_result -@@ -2202,7 +2202,7 @@ +@@ -2197,6 +2198,39 @@ func_mode_install () + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi ++ else ++ if test "$fast_install" = no && test -n "$relink_command"; then ++ # Strip any trailing slash from the destination. ++ func_stripname '' '/' "$libdir" ++ destlibdir=$func_stripname_result ++ ++ func_stripname '' '/' "$destdir" ++ s_destdir=$func_stripname_result ++ ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ # At present, this check doesn't affect windows .dll's that ++ # are installed into $libdir/../bin (currently, that works fine) ++ # but it's something to keep an eye on. ++ test "$inst_prefix_dir" = "$destdir" && \ ++ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command.
meta/recipes-devtools/libtool/libtool/fixinstall.patch which is totally bogus in the sysroot case. · line 71
Quoted 10 lines
meta/recipes-devtools/libtool/libtool/fixinstall.patch +10
-0++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` ++ fi ++ ++ func_warning "relinking \`$file'" ++ func_show_eval "$relink_command" \ ++ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' ++ fi ++ fi
Duplicating a block of code like this with cut and paste is bad practise. If we wanted this to be conditional we should improve the original condition block rather that copying it. This makes the patch easier to review too.
Quoted 32 lines
meta/recipes-devtools/libtool/libtool/fixinstall.patch +8
-14+ # See the names of the shared library. + set dummy $library_names; shift +@@ -2205,7 +2239,11 @@ func_mode_install () shift srcname="$realname" -- test -n "$relink_command" && srcname="$realname"T ++ if test "$buildtarget" == yes; then + test -n "$relink_command" && srcname="$realname"T ++ else + test "$fast_install" = no && test -n "$relink_command" && srcname="$realname"T ++ fi # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ -@@ -5856,15 +5856,15 @@ +@@ -5873,6 +5911,7 @@ func_mode_link () # 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 "*) ;; -+ #*)
meta/recipes-devtools/libtool/libtool/fixinstall.patch which is totally bogus in the sysroot case. · line 94
Quoted 10 lines
meta/recipes-devtools/libtool/libtool/fixinstall.patch +4
-6-+ # case "$compile_rpath " in -+ # *" $absdir "*) ;; -+ # *) func_append compile_rpath " $absdir" ;; -+ # esac -+ # ;; -+ #esac ++ if test "$buildtarget" == yes; then + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *)
This is roughly the idea with a conditional however buildtarget is not going to be set to yes other than possibly at build time. The requirement would be to have this set in all cases where libtool is used "on target" which is not the way this will work.
The point in disabling this code is to avoid having to relink the files in the ./libs/ directory. When cross compiling we don't execute them and libtool jumps through more hoops than we need. This therefore gives quite a nice speedup. We might be able to make these sections conditional upon cross compilation although libtool doesn't appear to have any knowledge of that making it harder to do.
Quoted 156 lines
meta/recipes-devtools/libtool/libtool/fixinstall.patch +23
-24+@@ -5882,6 +5921,7 @@ func_mode_link () + esac + ;; + esac ++ fi case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) -@@ -5930,15 +5930,15 @@ +@@ -5947,6 +5987,7 @@ func_mode_link () # 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 ++ if test "$buildtarget" == yes; then + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) +@@ -5956,6 +5997,7 @@ func_mode_link () + esac + ;; + esac ++ fi case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) -@@ -6284,8 +6284,8 @@ +@@ -6301,8 +6343,10 @@ func_mode_link () 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" ++ if test "$buildtarget" == yes; then + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" ++ fi path="-L$absdir" fi +-- +1.9.1 +meta/recipes-devtools/libtool/libtool/prefix.patch +0
-23@@ -18,29 +18,6 @@ the simplest fix is just to remove $SHELL. Updated: Date: 2011/11/09 RP -Index: libtool-2.4.2/libltdl/m4/libtool.m4 -=================================================================== ---- libtool-2.4.2.orig/libltdl/m4/libtool.m4 -+++ libtool-2.4.2/libltdl/m4/libtool.m4 -@@ -94,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1]) - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - AC_SUBST(LIBTOOL)dnl - - _LT_SETUP -@@ -206,7 +207,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, Index: libtool-2.4.2/Makefile.am =================================================================== --- libtool-2.4.2.orig/Makefile.ammeta/recipes-devtools/libtool/libtool/rename-libtool.patch new file +40
-0@@ -0,0 +1,40 @@ +Upstream-Status: Inappropriate [embedded specific] + +Renames "libtool" -> "${TARGET_PREFIX}libtool" which makes sure +it can't be confused with the host libtool. + +Signed-off-by: Richard Purdie <[email protected]> +Signed-off-by: Chong Lu <[email protected]> +--- +diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4 +index 3866498..008675c 100644 +--- a/libltdl/m4/libtool.m4 ++++ b/libltdl/m4/libtool.m4 +@@ -94,7 +94,12 @@ _LT_SET_OPTIONS([$0], [$1]) + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. ++if test "$buildtarget" == yes; then + LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++else ++LIBTOOL='$(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" ++fi + AC_SUBST(LIBTOOL)dnl + + _LT_SETUP +@@ -206,7 +211,11 @@ aix3*) + esac + + # Global variables: ++if test "$buildtarget" == yes; then + ofile=libtool ++else ++ofile=${host_alias}-libtool ++fi + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +-- +1.9.1 +meta/recipes-devtools/libtool/libtool_2.4.2.bb +2
-0@@ -1,6 +1,8 @@ require libtool-${PV}.inc PR = "${INC_PR}.0" +SRC_URI += "file://rename-libtool.patch" +SRC_URI += "file://fixinstall.patch" # # We want the results of libtool-cross preserved - don't stage anything ourselves.
meta/recipes-devtools/libtool/libtool_2.4.2.bb libtool_sysroot_preprocess () { · line 18
Quoted 4 lines
meta/recipes-devtools/libtool/libtool_2.4.2.bb +1
-0@@ -13,3 +15,4 @@ libtool_sysroot_preprocess () { rm -rf ${SYSROOT_DESTDIR}${datadir}/libtool/config/* } +EXTRA_OECONF = "buildtarget=yes"
This will perhaps influnce the built version of libtool, it will not influence the macros themselves which do need to run differently depending on the environment.
Can we take a step back for a minute and remind ourselves why we need this change. There are differences in the sysroots due to this change, why is that an issue?
Cheers,
Richard
Quoted 15 lines
meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb +1
-0@@ -5,6 +5,7 @@ PR = "${INC_PR}.0" FILESEXTRAPATHS =. "${FILE_DIRNAME}/libtool:" SRC_URI += "file://prefix.patch" +SRC_URI += "file://rename-libtool.patch" SRC_URI += "file://fixinstall.patch" inherit nativesdkSignature · 1 line
1.9.1