[OE-core] [PATCH 1/1] libtool: fix different files in sysroot of sdk
Chong Lu
Chong.Lu at windriver.com
Mon Jul 21 02:08:49 UTC 2014
ping
On 07/14/2014 04:10 PM, Chong Lu wrote:
> 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.
>
> Signed-off-by: Chong Lu <Chong.Lu at windriver.com>
> ---
> .../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
>
> diff --git a/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb b/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb
> index 72fad37..b189413 100644
> --- a/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb
> +++ b/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb
> @@ -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}"
> diff --git a/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb b/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb
> index f1051d8..d060cb8 100644
> --- a/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb
> +++ b/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb
> @@ -4,6 +4,7 @@ DEPENDS = ""
>
> PR = "${INC_PR}.1"
> SRC_URI += "file://prefix.patch"
> +SRC_URI += "file://rename-libtool.patch"
>
> inherit native
>
> diff --git a/meta/recipes-devtools/libtool/libtool/fixinstall.patch b/meta/recipes-devtools/libtool/libtool/fixinstall.patch
> index 279c07b..1bfd292 100644
> --- a/meta/recipes-devtools/libtool/libtool/fixinstall.patch
> +++ b/meta/recipes-devtools/libtool/libtool/fixinstall.patch
> @@ -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 <richard.purdie at linuxfoundation.org>
> +Signed-off-by: Chong Lu <Chong.Lu at windriver.com>
> +---
> + 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
> +
> diff --git a/meta/recipes-devtools/libtool/libtool/prefix.patch b/meta/recipes-devtools/libtool/libtool/prefix.patch
> index 5e46e68..a242019 100644
> --- a/meta/recipes-devtools/libtool/libtool/prefix.patch
> +++ b/meta/recipes-devtools/libtool/libtool/prefix.patch
> @@ -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
> diff --git a/meta/recipes-devtools/libtool/libtool/rename-libtool.patch b/meta/recipes-devtools/libtool/libtool/rename-libtool.patch
> new file mode 100644
> index 0000000..9726e98
> --- /dev/null
> +++ b/meta/recipes-devtools/libtool/libtool/rename-libtool.patch
> @@ -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 <richard.purdie at linuxfoundation.org>
> +Signed-off-by: Chong Lu <Chong.Lu at windriver.com>
> +---
> +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
> +
> diff --git a/meta/recipes-devtools/libtool/libtool_2.4.2.bb b/meta/recipes-devtools/libtool/libtool_2.4.2.bb
> index a2eb4ea..14301ca 100644
> --- a/meta/recipes-devtools/libtool/libtool_2.4.2.bb
> +++ b/meta/recipes-devtools/libtool/libtool_2.4.2.bb
> @@ -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"
> diff --git a/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb b/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb
> index fff15e9..993fe74 100644
> --- a/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb
> +++ b/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb
> @@ -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
More information about the Openembedded-core
mailing list