From 907150679d0e4c44182b4cc8e8f18b090e58fef6 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 17 Jan 2024 13:02:49 +0000 Subject: 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. (From OE-Core rev: 1315f7ccaf2b1d5fb91e3c726447883058fb5ec3) Signed-off-by: Richard Purdie --- .../0003-libtool.m4-Cleanup-sysroot-trailing.patch | 37 ++++++++++++++++++++++ ...-libtool.m4-Handle-as-a-sysroot-correctly.patch | 33 ++++++++----------- 2 files changed, 51 insertions(+), 19 deletions(-) create mode 100644 meta/recipes-devtools/libtool/libtool/0003-libtool.m4-Cleanup-sysroot-trailing.patch (limited to 'meta/recipes-devtools/libtool/libtool') 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 + +--- + 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 -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 -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|''|/) -- cgit v1.2.3-54-g00ecf