diff mbox series

[4/5] libtool: Update cleanup sysroot handling patch

Message ID 20240117130822.3928928-4-richard.purdie@linuxfoundation.org
State Accepted, archived
Commit 1315f7ccaf2b1d5fb91e3c726447883058fb5ec3
Headers show
Series [1/5] libtool: Update patches to mark as backports | expand

Commit Message

Richard Purdie Jan. 17, 2024, 1:08 p.m. UTC
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>
---
 .../libtool/libtool-2.4.7.inc                 |  1 +
 ...-libtool.m4-Cleanup-sysroot-trailing.patch | 37 +++++++++++++++++++
 ...ool.m4-Handle-as-a-sysroot-correctly.patch | 33 +++++++----------
 3 files changed, 52 insertions(+), 19 deletions(-)
 create mode 100644 meta/recipes-devtools/libtool/libtool/0003-libtool.m4-Cleanup-sysroot-trailing.patch
diff mbox series

Patch

diff --git a/meta/recipes-devtools/libtool/libtool-2.4.7.inc b/meta/recipes-devtools/libtool/libtool-2.4.7.inc
index a07df720acf..16bb10d48f8 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 00000000000..b6175903daf
--- /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 a221dab5283..c104e904cc4 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|''|/)