]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
libtool: Update cleanup sysroot handling patch
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 17 Jan 2024 13:02:49 +0000 (13:02 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 19 Jan 2024 00:14:23 +0000 (00:14 +0000)
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>
meta/recipes-devtools/libtool/libtool-2.4.7.inc
meta/recipes-devtools/libtool/libtool/0003-libtool.m4-Cleanup-sysroot-trailing.patch [new file with mode: 0644]
meta/recipes-devtools/libtool/libtool/0006-libtool.m4-Handle-as-a-sysroot-correctly.patch

index a07df720acff338da84cbc0c7637bdba9fc7e24d..16bb10d48f8ad785c8fb42f8d7a331d26488f5f0 100644 (file)
@@ -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 (file)
index 0000000..b617590
--- /dev/null
@@ -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
+    ;; #(
+  /*)
index a221dab5283619beebe88e2e5c6757bf60b2be61..c104e904cc4dee42d62c30f11c5c3b9939f09f27 100644 (file)
@@ -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|''|/)