diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-01-17 13:02:49 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-01-19 00:14:23 +0000 |
commit | 1315f7ccaf2b1d5fb91e3c726447883058fb5ec3 (patch) | |
tree | e4a8c5cfd02a8c50e96bad9ffc0920e0a916651f | |
parent | d7644baaf99b5593b356c395b232088436ae2e30 (diff) | |
download | openembedded-core-1315f7ccaf2b1d5fb91e3c726447883058fb5ec3.tar.gz |
libtool: Update cleanup sysroot handling patch
The sysroot path cleanup change was reworked after discussion/review upstream. It
appeared there were two different changes in one of our patches so separate out
the second one and mark as inappropriate as it is unlikely upstream would take
such a change in defaults. We need further investigation to decide if OE really
wants/needs this going forward.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
3 files changed, 52 insertions, 19 deletions
diff --git a/meta/recipes-devtools/libtool/libtool-2.4.7.inc b/meta/recipes-devtools/libtool/libtool-2.4.7.inc index a07df720ac..16bb10d48f 100644 --- a/meta/recipes-devtools/libtool/libtool-2.4.7.inc +++ b/meta/recipes-devtools/libtool/libtool-2.4.7.inc @@ -15,6 +15,7 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \ file://0004-ltmain.sh-Fix-sysroot-paths-being-encoded-into-RPATH.patch \ file://0005-ltmain.in-Don-t-encode-RATHS-which-match-default-lin.patch \ file://dont-depend-on-help2man.patch \ + file://0003-libtool.m4-Cleanup-sysroot-trailing.patch \ file://0006-libtool.m4-Handle-as-a-sysroot-correctly.patch \ file://nohardcodepaths.patch \ file://0007-libtool-Fix-support-for-NIOS2-processor.patch \ diff --git a/meta/recipes-devtools/libtool/libtool/0003-libtool.m4-Cleanup-sysroot-trailing.patch b/meta/recipes-devtools/libtool/libtool/0003-libtool.m4-Cleanup-sysroot-trailing.patch new file mode 100644 index 0000000000..b6175903da --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/0003-libtool.m4-Cleanup-sysroot-trailing.patch @@ -0,0 +1,37 @@ +libtool.m4: Cleanup sysroot trailing "/" + +If $CC has --sysroot=/, it is a valid configuration however libtool will +then set lt_sysroot to "/". + +This means references like $lt_sysroot$libdir become //usr/lib instead +of the more normally expected /usr/lib. This may or may not break something +but certainly is confusing to the user and gives confusing output. Making +"/" simply unset lt_sysroot is much cleaner. + +Whilst here, trim any trailing '/' from sysroot paths to drop the duplication +and result in cleaner/consistent output. + +* m4/libtool.m4: Cleanup sysroot trailing '/' handling + +Upstream-Status: Submitted [https://lists.gnu.org/archive/html/libtool-patches/2024-01/msg00111.html] +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> + +--- + m4/libtool.m4 | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/m4/libtool.m4 b/m4/libtool.m4 +index fa1ae91..2f31d24 100644 +--- a/m4/libtool.m4 ++++ b/m4/libtool.m4 +@@ -1256,7 +1256,9 @@ lt_sysroot= + case $with_libtool_sysroot in #( + yes) + if test yes = "$GCC"; then +- lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ # Trim trailing / since we'll always append absolute paths and we want ++ # to avoid //, if only for less confusing output for the user. ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null | $SED 's:/\+$::'` + fi + ;; #( + /*) diff --git a/meta/recipes-devtools/libtool/libtool/0006-libtool.m4-Handle-as-a-sysroot-correctly.patch b/meta/recipes-devtools/libtool/libtool/0006-libtool.m4-Handle-as-a-sysroot-correctly.patch index a221dab528..c104e904cc 100644 --- a/meta/recipes-devtools/libtool/libtool/0006-libtool.m4-Handle-as-a-sysroot-correctly.patch +++ b/meta/recipes-devtools/libtool/libtool/0006-libtool.m4-Handle-as-a-sysroot-correctly.patch @@ -1,34 +1,29 @@ -From: Richard Purdie <richard.purdie@linuxfoundation.org> -Subject: [PATCH 06/12] libtool.m4: Handle "/" as a sysroot correctly +libtool.m4: Change libtool to handle sysroots by default -Update libtool.m4 to resolve a problem with lt_sysroot not being properly -updated if the option '--with[-libtool]-sysroot' is not provided when -running the 'configure' script for a package so that "/" as a sysroot -is handled correctly by libtool. +Rather than using no sysroot by default, always query gcc to obtain the sysroot. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> -Upstream Report: -http://lists.gnu.org/archive/html/bug-libtool/2013-09/msg00005.html +Upstream-Status: Inappropriate [Upstream are unlikely to accept this change of default] -Upstream-Status: Submitted [https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00018.html] +--- + m4/libtool.m4 | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) -Index: libtool-2.4.7/m4/libtool.m4 -=================================================================== ---- libtool-2.4.7.orig/m4/libtool.m4 -+++ libtool-2.4.7/m4/libtool.m4 -@@ -1254,16 +1254,20 @@ dnl lt_sysroot will always be passed unq +diff --git a/m4/libtool.m4 b/m4/libtool.m4 +index 2f31d24..bd90775 100644 +--- a/m4/libtool.m4 ++++ b/m4/libtool.m4 +@@ -1254,18 +1254,18 @@ dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_libtool_sysroot in #( - yes) + no) if test yes = "$GCC"; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ # Treat "/" the same a an unset sysroot. -+ if test "$lt_sysroot" = /; then -+ lt_sysroot= -+ fi + # Trim trailing / since we'll always append absolute paths and we want + # to avoid //, if only for less confusing output for the user. + lt_sysroot=`$CC --print-sysroot 2>/dev/null | $SED 's:/\+$::'` fi ;; #( + yes|''|/) |