tools/libtool: bump to 2.4.6
authorEneas U de Queiroz <cotequeiroz@gmail.com>
Mon, 13 Sep 2021 21:08:55 +0000 (18:08 -0300)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 13 Mar 2023 21:53:41 +0000 (22:53 +0100)
This updates libtool to its current release, from 2015.  Current patches
were renumbered and given a description text.  The fix in
160-passthrough-ssp.patch is no longer needed.

A patch to speed up build was cherry-picked, and another openwrt
specific patch was needed to not use quotes in $(SHELL), to acommodate
our "SHELL=/usr/bin/env bash" usage.

The already present call to ./bootstrap ensures that generated files are
refreshed, so the patches are applied only to their sources.  Also, that
bootstrap call was adjusted to run at the appropriate time when QUILT=1.

References below are relevant commits to upstream libtool
regarding some of the changes to patches.

This commit is being reapplied after previous revertion, and after some editing.
The fix for the issue that prompted reverting is the parent of this commit.

Ref: 435cb8d71 ("libtoolize: simplify runtime by substituting pkgauxdir")
Ref: 3cf11cfe2 ("libtoolize: rewritten over funclib.sh instead of general.m4sh")
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
[refactored to simplify patch changes, expanded patches, added upstream references]
Signed-off-by: Michael Pratt <mcpratt@pm.me>
tools/libtool/Makefile
tools/libtool/patches/000-relocatable.patch
tools/libtool/patches/100-libdir-fixes.patch
tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch
tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch
tools/libtool/patches/130-trailingslash.patch [new file with mode: 0644]
tools/libtool/patches/140-don-t-quote-SHELL-in-Makefile.am.patch [new file with mode: 0644]
tools/libtool/patches/150-libtool-mitigate-the-sed_quote_subst-slowdown.patch [new file with mode: 0644]
tools/libtool/patches/150-trailingslash.patch [deleted file]
tools/libtool/patches/160-passthrough-ssp.patch [deleted file]
tools/libtool/patches/200-openwrt-branding.patch

index fcac06e269775bd40ef5b8776a25c98d210e3b2a..4149491bd3a87ebc4c523a995d6a8a058dafdac3 100644 (file)
@@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libtool
 PKG_CPE_ID:=cpe:/a:gnu:libtool
-PKG_VERSION:=2.4.2
+PKG_VERSION:=2.4.6
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_HASH:=1d7b6862c1ed162e327f083a6f78f40eae29218f0db8c38393d61dab764c4407
+PKG_HASH:=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
 
 HOST_BUILD_PARALLEL:=1
 
@@ -24,7 +24,12 @@ HOST_CONFIGURE_VARS += \
 define Host/Prepare
        $(call Host/Prepare/Default)
        (cd $(STAGING_DIR_HOST)/share/aclocal/ && rm -f libtool.m4 ltdl.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4)
-       (cd $(HOST_BUILD_DIR); $(AM_TOOL_PATHS) ./bootstrap)
+       $(if $(QUILT),,(cd $(HOST_BUILD_DIR); touch README-release; $(AM_TOOL_PATHS) ./bootstrap --skip-git --skip-po --force))
+endef
+
+define Host/Configure
+       $(if $(QUILT),(cd $(HOST_BUILD_DIR); touch README-release; $(AM_TOOL_PATHS) ./bootstrap --skip-git --skip-po --force))
+       $(call Host/Configure/Default)
 endef
 
 define Host/Install
index f4d5b47677514cbb275e67c2c46355bb5048f554..e6189d562a4024a46afac576e4293b3c08145ffc 100644 (file)
@@ -8,73 +8,47 @@ This was originally commited to openwrt by Jo-Philipp Wich
 
 Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
 
---- a/libltdl/config/general.m4sh
-+++ b/libltdl/config/general.m4sh
-@@ -45,15 +45,22 @@ progpath="$0"
- M4SH_VERBATIM([[
- : ${CP="cp -f"}
- test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
--: ${EGREP="@EGREP@"}
--: ${FGREP="@FGREP@"}
--: ${GREP="@GREP@"}
- : ${LN_S="@LN_S@"}
- : ${MAKE="make"}
- : ${MKDIR="mkdir"}
- : ${MV="mv -f"}
- : ${RM="rm -f"}
--: ${SED="@SED@"}
-+if test -n "$STAGING_DIR_HOST"; then
-+      : ${EGREP="$STAGING_DIR_HOST/bin/grep -E"}
-+      : ${FGREP="$STAGING_DIR_HOST/bin/grep -F"}
-+      : ${GREP="$STAGING_DIR_HOST/bin/grep"}
-+      : ${SED="$STAGING_DIR_HOST/bin/sed"}
-+else
-+      : ${EGREP="@EGREP@"}
-+      : ${FGREP="@FGREP@"}
-+      : ${GREP="@GREP@"}
-+      : ${SED="@SED@"}
-+fi
- : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
- : ${Xsed="$SED -e 1s/^X//"}
 --- a/libtoolize.in
 +++ b/libtoolize.in
-@@ -334,15 +334,22 @@ as_unset=as_fn_unset
+@@ -38,14 +38,23 @@
+ # with bootstrap, so set those here where they can still be over-
+ # ridden by the user, but otherwise take precedence.
  
- : ${CP="cp -f"}
- test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
+-: ${AUTOCONF="autoconf"}
+-: ${AUTOMAKE="automake"}
 -: ${EGREP="@EGREP@"}
 -: ${FGREP="@FGREP@"}
 -: ${GREP="@GREP@"}
  : ${LN_S="@LN_S@"}
- : ${MAKE="make"}
- : ${MKDIR="mkdir"}
- : ${MV="mv -f"}
- : ${RM="rm -f"}
 -: ${SED="@SED@"}
 +if test -n "$STAGING_DIR_HOST"; then
++      : ${AUTOCONF="$STAGING_DIR_HOST/bin/autoconf"}
++      : ${AUTOMAKE="$STAGING_DIR_HOST/bin/automake"}
 +      : ${EGREP="$STAGING_DIR_HOST/bin/grep -E"}
 +      : ${FGREP="$STAGING_DIR_HOST/bin/grep -F"}
 +      : ${GREP="$STAGING_DIR_HOST/bin/grep"}
 +      : ${SED="$STAGING_DIR_HOST/bin/sed"}
 +else
++      : ${AUTOCONF="autoconf"}
++      : ${AUTOMAKE="automake"}
 +      : ${EGREP="@EGREP@"}
 +      : ${FGREP="@FGREP@"}
 +      : ${GREP="@GREP@"}
 +      : ${SED="@SED@"}
 +fi
- : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
- : ${Xsed="$SED -e 1s/^X//"}
  
-@@ -2486,11 +2493,21 @@ func_check_macros ()
-   all_pkgltdl_files="COPYING.LIB Makefile Makefile.in Makefile.inc Makefile.am README acinclude.m4 aclocal.m4 argz_.h argz.c config.h.in config-h.in configure configure.ac configure.in libltdl/lt__alloc.h libltdl/lt__dirent.h libltdl/lt__glibc.h libltdl/lt__private.h libltdl/lt__strl.h libltdl/lt_dlloader.h libltdl/lt_error.h libltdl/lt_system.h libltdl/slist.h loaders/dld_link.c loaders/dlopen.c loaders/dyld.c loaders/load_add_on.c loaders/loadlibrary.c loaders/preopen.c loaders/shl_load.c lt__alloc.c lt__dirent.c lt__strl.c lt_dlloader.c lt_error.c ltdl.c ltdl.h slist.c"
+ ## -------------------------- ##
+ ## Source external libraries. ##
+@@ -1901,11 +1910,21 @@ func_require_seen_libtool ()
+   pkgmacro_files="@pkgmacro_files@"
  
    # Locations for important files:
--  prefix=@prefix@
--  datadir=@datadir@
--  pkgdatadir=@pkgdatadir@
--  pkgltdldir=@pkgdatadir@
--  aclocaldir=@aclocaldir@
+-  prefix="@prefix@"
+-  datadir="@datadir@"
+-  pkgauxdir="@pkgauxdir@"
+-  pkgltdldir="@pkgdatadir@"
+-  aclocaldir="@aclocaldir@"
 +  if test -n "$STAGING_DIR_HOST"; then
 +    prefix="$STAGING_DIR_HOST"
 +    datadir="$STAGING_DIR_HOST/share"
@@ -90,41 +64,12 @@ Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
 +    pkgltdldir="@pkgdatadir@"
 +    aclocaldir="@aclocaldir@"
 +  fi
-   auxdir=
-   macrodir=
-   configure_ac=configure.in
---- a/libtoolize.m4sh
-+++ b/libtoolize.m4sh
-@@ -1452,11 +1452,21 @@ func_check_macros ()
-   all_pkgltdl_files="COPYING.LIB Makefile Makefile.in Makefile.inc Makefile.am README acinclude.m4 aclocal.m4 argz_.h argz.c config.h.in config-h.in configure configure.ac configure.in libltdl/lt__alloc.h libltdl/lt__dirent.h libltdl/lt__glibc.h libltdl/lt__private.h libltdl/lt__strl.h libltdl/lt_dlloader.h libltdl/lt_error.h libltdl/lt_system.h libltdl/slist.h loaders/dld_link.c loaders/dlopen.c loaders/dyld.c loaders/load_add_on.c loaders/loadlibrary.c loaders/preopen.c loaders/shl_load.c lt__alloc.c lt__dirent.c lt__strl.c lt_dlloader.c lt_error.c ltdl.c ltdl.h slist.c"
  
-   # Locations for important files:
--  prefix=@prefix@
--  datadir=@datadir@
--  pkgdatadir=@pkgdatadir@
--  pkgltdldir=@pkgdatadir@
--  aclocaldir=@aclocaldir@
-+  if test -n "$STAGING_DIR_HOST"; then
-+    prefix="$STAGING_DIR_HOST"
-+    datadir="$STAGING_DIR_HOST/share"
-+    pkgauxdir="$STAGING_DIR_HOST/share/libtool/build-aux"
-+    pkgdatadir="$STAGING_DIR_HOST/share/libtool"
-+    pkgltdldir="$STAGING_DIR_HOST/share/libtool"
-+    aclocaldir="$STAGING_DIR_HOST/share/aclocal"
-+  else
-+    prefix="@prefix@"
-+    datadir="@datadir@"
-+    pkgauxdir="@pkgauxdir@"
-+    pkgdatadir="@pkgdatadir@"
-+    pkgltdldir="@pkgdatadir@"
-+    aclocaldir="@aclocaldir@"
-+  fi
-   auxdir=
-   macrodir=
-   configure_ac=configure.in
---- a/libltdl/m4/libtool.m4
-+++ b/libltdl/m4/libtool.m4
-@@ -909,7 +909,7 @@ m4_defun([_LT_TAG_COMPILER],
+   # Allow the user to override the master libtoolize repository:
+   if test -n "$_lt_pkgdatadir"; then
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -931,7 +931,7 @@ m4_defun([_LT_TAG_COMPILER],
  [AC_REQUIRE([AC_PROG_CC])dnl
  
  _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
@@ -133,7 +78,7 @@ Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
  _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
  _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
  
-@@ -7660,9 +7660,9 @@ m4_defun([_LT_DECL_EGREP],
+@@ -8160,9 +8160,9 @@ m4_defun([_LT_DECL_EGREP],
  [AC_REQUIRE([AC_PROG_EGREP])dnl
  AC_REQUIRE([AC_PROG_FGREP])dnl
  test -z "$GREP" && GREP=grep
@@ -146,7 +91,7 @@ Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
  dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
  AC_SUBST([GREP])
  ])
-@@ -7695,9 +7695,8 @@ AC_SUBST([DLLTOOL])
+@@ -8195,9 +8195,8 @@ AC_SUBST([DLLTOOL])
  # as few characters as possible.  Prefer GNU sed if found.
  m4_defun([_LT_DECL_SED],
  [AC_PROG_SED
index 75ab5838069a37cd08cc3c1f2c219f59c1bf0f13..671040b3e105840fe3ae9ecc945143cc41d06238 100644 (file)
@@ -17,86 +17,39 @@ This was originally commited to openwrt by Jo-Philipp Wich
 
 Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
 
---- a/libltdl/config/ltmain.m4sh
-+++ b/libltdl/config/ltmain.m4sh
-@@ -5731,8 +5731,14 @@ func_mode_link ()
-           absdir="$abs_ladir"
-           libdir="$abs_ladir"
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -6049,8 +6049,14 @@ func_mode_link ()
+           absdir=$abs_ladir
+           libdir=$abs_ladir
          else
--          dir="$lt_sysroot$libdir"
--          absdir="$lt_sysroot$libdir"
+-          dir=$lt_sysroot$libdir
+-          absdir=$lt_sysroot$libdir
 +          # Adding 'libdir' from the .la file to our library search paths
 +          # breaks crosscompilation horribly.  We cheat here and don't add
 +          # it, instead adding the path where we found the .la.  -CL
 +          dir="$lt_sysroot$abs_ladir"
 +          absdir="$abs_ladir"
 +          libdir="$abs_ladir"
-+          #dir="$libdir"
-+          #absdir="$lt_sysroot$libdir"
++          #dir=$lt_sysroot$libdir
++          #absdir=$lt_sysroot$libdir
          fi
-         test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+         test yes = "$hardcode_automatic" && avoidtemprpath=yes
        else
-@@ -6130,8 +6136,6 @@ func_mode_link ()
-               add="$libdir/$linklib"
+@@ -6448,8 +6454,6 @@ func_mode_link ()
+               add=$libdir/$linklib
              fi
            else
 -            # We cannot seem to hardcode it, guess we'll fake it.
--            add_dir="-L$libdir"
+-            add_dir=-L$libdir
              # Try looking first in the location we're being installed to.
              if test -n "$inst_prefix_dir"; then
                case $libdir in
-@@ -6286,7 +6290,17 @@ func_mode_link ()
+@@ -6604,7 +6608,17 @@ func_mode_link ()
                  fi
                  ;;
                *)
--                path="-L$absdir/$objdir"
-+                  # OE sets installed=no in staging. We need to look in $objdir and $absdir, 
-+                  # preferring $objdir. RP 31/04/2008
-+                  if test -f "$absdir/$objdir/$depdepl" ; then
-+                  depdepl="$absdir/$objdir/$depdepl"
-+                  path="-L$absdir/$objdir"
-+                  elif test -f "$absdir/$depdepl" ; then
-+                  depdepl="$absdir/$depdepl"
-+                  path="-L$absdir"
-+                  else
-+                  path="-L$absdir/$objdir"
-+                  fi
-                 ;;
-               esac
-               else
---- a/libltdl/config/ltmain.sh
-+++ b/libltdl/config/ltmain.sh
-@@ -6518,8 +6518,14 @@ func_mode_link ()
-           absdir="$abs_ladir"
-           libdir="$abs_ladir"
-         else
--          dir="$lt_sysroot$libdir"
--          absdir="$lt_sysroot$libdir"
-+          # Adding 'libdir' from the .la file to our library search paths
-+          # breaks crosscompilation horribly.  We cheat here and don't add
-+          # it, instead adding the path where we found the .la.  -CL
-+          dir="$lt_sysroot$abs_ladir"
-+          absdir="$abs_ladir"
-+          libdir="$abs_ladir"
-+          #dir="$libdir"
-+          #absdir="$lt_sysroot$libdir"
-         fi
-         test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
-       else
-@@ -6917,8 +6923,6 @@ func_mode_link ()
-               add="$libdir/$linklib"
-             fi
-           else
--            # We cannot seem to hardcode it, guess we'll fake it.
--            add_dir="-L$libdir"
-             # Try looking first in the location we're being installed to.
-             if test -n "$inst_prefix_dir"; then
-               case $libdir in
-@@ -7073,7 +7077,17 @@ func_mode_link ()
-                 fi
-                 ;;
-               *)
--                path="-L$absdir/$objdir"
+-                path=-L$absdir/$objdir
 +                  # OE sets installed=no in staging. We need to look in $objdir and $absdir, 
 +                  # preferring $objdir. RP 31/04/2008
 +                  if test -f "$absdir/$objdir/$depdepl" ; then
index be25c29e8702ee57596d5e64d394c1ad1d76166e..b76877a8b8a53b95749d70039d24cb1b265596d9 100644 (file)
@@ -8,23 +8,25 @@ This was originally commited to openwrt by Jo-Philipp Wich
 
 Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
 
---- a/libltdl/config/ltmain.m4sh
-+++ b/libltdl/config/ltmain.m4sh
-@@ -6120,7 +6120,6 @@ func_mode_link ()
-              test "$hardcode_direct_absolute" = no; then
-             add="$libdir/$linklib"
-           elif test "$hardcode_minus_L" = yes; then
--            add_dir="-L$libdir"
-             add="-l$name"
-           elif test "$hardcode_shlibpath_var" = yes; then
-             case :$finalize_shlibpath: in
---- a/libltdl/config/ltmain.sh
-+++ b/libltdl/config/ltmain.sh
-@@ -6907,7 +6907,6 @@ func_mode_link ()
-              test "$hardcode_direct_absolute" = no; then
-             add="$libdir/$linklib"
-           elif test "$hardcode_minus_L" = yes; then
--            add_dir="-L$libdir"
-             add="-l$name"
-           elif test "$hardcode_shlibpath_var" = yes; then
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -6434,13 +6434,13 @@ func_mode_link ()
+           add_dir=
+           add=
+           # Finalize command for both is simple: just hardcode it.
+-          if test yes = "$hardcode_direct" &&
+-             test no = "$hardcode_direct_absolute"; then
+-            add=$libdir/$linklib
+-          elif test yes = "$hardcode_minus_L"; then
++          if test "$hardcode_direct" = yes &&
++             test "$hardcode_direct_absolute" = no; then
++            add="$libdir/$linklib"
++          elif test "$hardcode_minus_L" = yes; then
+             add_dir=-L$libdir
+-            add=-l$name
+-          elif test yes = "$hardcode_shlibpath_var"; then
++            add="-l$name"
++          elif test "$hardcode_shlibpath_var" = yes; then
              case :$finalize_shlibpath: in
+             *":$libdir:"*) ;;
+             *) func_append finalize_shlibpath "$libdir:" ;;
index 575b5fd24bbfcaf307c746a1ba3734aabe6ea2f1..42a3ed7a3217ffdbf416f0d2786740ecb4256dd7 100644 (file)
@@ -11,27 +11,15 @@ This was originally commited to openwrt by Jo-Philipp Wich
 
 Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
 
---- a/libltdl/config/ltmain.m4sh
-+++ b/libltdl/config/ltmain.m4sh
-@@ -2186,6 +2186,9 @@ func_mode_install ()
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -2382,6 +2382,9 @@ func_mode_install ()
            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
          fi
  
 +        relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/lib[^[:space:]]*%%"`
 +        relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/usr/lib[^[:space:]]*%%"`
 +
-         func_warning "relinking \`$file'"
+         func_warning "relinking '$file'"
          func_show_eval "$relink_command" \
-           'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
---- a/libltdl/config/ltmain.sh
-+++ b/libltdl/config/ltmain.sh
-@@ -2973,6 +2973,9 @@ func_mode_install ()
-           relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
-         fi
-+        relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/lib[^[:space:]]*%%"`
-+        relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/usr/lib[^[:space:]]*%%"`
-+
-         func_warning "relinking \`$file'"
-         func_show_eval "$relink_command" \
-           'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
+           'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
diff --git a/tools/libtool/patches/130-trailingslash.patch b/tools/libtool/patches/130-trailingslash.patch
new file mode 100644 (file)
index 0000000..343ce4a
--- /dev/null
@@ -0,0 +1,37 @@
+From 1b45c3c0d6682be7f4876b620780ee246a5acbaa Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cotequeiroz@gmail.com>
+Date: Tue, 20 Jul 2021 16:56:16 -0300
+Subject: openwrt: remove trailing slash in install destdir
+
+A command like /bin/sh ../../i586-poky-linux-libtool   --mode=install /usr/bin/install -c   gck-roots-store-standalone.la '/media/data1/builds/poky1/tmp/work/core2-poky-linux/gnome-keyring-2.26.1-r1/image/usr/lib/gnome-keyring/standalone/' fails (e.g. gnome-keyring or pulseaudio)
+
+This is because libdir has a trailing slash which breaks the comparision.
+
+RP 2/1/10
+
+Merged a patch received from Gary Thomas <gary@mlbassoc.com>
+
+Date: 2010/07/12
+Nitin A Kamble <nitin.a.kamble@intel.com>
+
+Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
+
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -2363,8 +2363,15 @@ func_mode_install ()
+       func_append dir "$objdir"
+       if 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 "$destdir" | $SED -e "s%$libdir\$%%"`
++        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
diff --git a/tools/libtool/patches/140-don-t-quote-SHELL-in-Makefile.am.patch b/tools/libtool/patches/140-don-t-quote-SHELL-in-Makefile.am.patch
new file mode 100644 (file)
index 0000000..513b521
--- /dev/null
@@ -0,0 +1,72 @@
+From 879578d3f4dc9bc42aa433b1fb6b584564f83617 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cotequeiroz@gmail.com>
+Date: Wed, 21 Jul 2021 13:38:24 -0300
+Subject: openwrt: don't quote $(SHELL) in Makefile.am
+
+This allows to use SHELL="env bash" to get a controlled enviroment.
+
+Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -46,7 +46,7 @@ EXTRA_LTLIBRARIES    =
+ # Using 'cd' in backquotes may print the directory name, use this instead:
+ lt__cd                = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-git_version_gen = '$(SHELL)' '$(aux_dir)/git-version-gen' '--fallback' '$(VERSION)' '.tarball-version'
++git_version_gen = $(SHELL) '$(aux_dir)/git-version-gen' '--fallback' '$(VERSION)' '.tarball-version'
+ rebuild = rebuild=:; revision=`$(lt__cd) $(srcdir) && $(git_version_gen) | $(SED) 's|-.*$$||'`
+@@ -301,7 +301,7 @@ libtool: $(ltmain_sh) $(config_status) $
+         if test 0 = '$(AM_DEFAULT_VERBOSITY)' && test 1 != '$(V)'; \
+           then echo "  GEN     " $@; \
+         else echo '$(SHELL) $(top_builddir)/config.status "$@"'; fi; \
+-        cd '$(top_builddir)' && '$(SHELL)' ./config.status '$@'; \
++        cd '$(top_builddir)' && $(SHELL) ./config.status '$@'; \
+       fi
+@@ -788,13 +788,13 @@ testsuite_deps_uninstalled = $(testsuite
+ # Hook the test suite into the check rule
+ check-local: $(testsuite_deps_uninstalled)
+       $(AM_V_at)$(CD_TESTDIR); \
+-      CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
++      CONFIG_SHELL=$(SHELL) $(SHELL) "$$abs_srcdir/$(TESTSUITE)" \
+         $(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) $(TESTSUITEFLAGS)
+ # Run the test suite on the *installed* tree.
+ installcheck-local: $(testsuite_deps)
+       $(AM_V_at)$(CD_TESTDIR); \
+-      CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
++      CONFIG_SHELL=$(SHELL) $(SHELL) "$$abs_srcdir/$(TESTSUITE)" \
+         $(TESTS_ENVIRONMENT) $(INSTALLCHECK_ENVIRONMENT) $(TESTSUITEFLAGS) \
+         AUTOTEST_PATH='$(exec_prefix)/bin'
+@@ -806,7 +806,7 @@ check-noninteractive-old:
+ .PHONY: check-noninteractive-new
+ check-noninteractive-new: $(testsuite_deps_uninstalled)
+       $(AM_V_at)$(CD_TESTDIR); \
+-      CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
++      CONFIG_SHELL=$(SHELL) $(SHELL) "$$abs_srcdir/$(TESTSUITE)" \
+         $(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) \
+         -k '!interactive' INNER_TESTSUITEFLAGS=',!interactive' \
+         $(TESTSUITEFLAGS)
+@@ -815,7 +815,7 @@ check-noninteractive-new: $(testsuite_de
+ .PHONY: check-interactive
+ check-interactive: $(testsuite_deps_uninstalled)
+       $(AM_V_at)$(CD_TESTDIR); \
+-      CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
++      CONFIG_SHELL=$(SHELL) $(SHELL) "$$abs_srcdir/$(TESTSUITE)" \
+         $(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) \
+         -k interactive -k recursive INNER_TESTSUITEFLAGS=',interactive' \
+         $(TESTSUITEFLAGS)
+@@ -827,7 +827,7 @@ check-noninteractive: check-noninteracti
+ clean-local:
+       -$(CD_TESTDIR); \
+       test -f "$$abs_srcdir/$(TESTSUITE)" && \
+-          '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" --clean
++          $(SHELL) "$$abs_srcdir/$(TESTSUITE)" --clean
+ ## An empty target to depend on when a rule needs to always run
+ ## whenever it is visited.
diff --git a/tools/libtool/patches/150-libtool-mitigate-the-sed_quote_subst-slowdown.patch b/tools/libtool/patches/150-libtool-mitigate-the-sed_quote_subst-slowdown.patch
new file mode 100644 (file)
index 0000000..27ea6a1
--- /dev/null
@@ -0,0 +1,224 @@
+From 3adadb568fbf15d952bd25a005b6a9afb7e59dc7 Mon Sep 17 00:00:00 2001
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Sun, 4 Oct 2015 21:55:03 +0200
+Subject: libtool: mitigate the $sed_quote_subst slowdown
+
+When it is reasonably possible, use shell implementation for
+quoting.
+
+References:
+http://lists.gnu.org/archive/html/libtool/2015-03/msg00005.html
+http://lists.gnu.org/archive/html/libtool/2015-02/msg00000.html
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20006
+
+* gl/build-aux/funclib.sh (func_quote): New function that can be
+used as substitution for '$SED $sed_quote_subst' call.
+* build-aux/ltmain.in (func_emit_wrapper): Use func_quote instead
+of '$SED $sed_quote_subst'.
+(func_mode_link): Likewise.
+* NEWS: Document.
+* bootstrap: Sync with funclib.sh.
+
+(cherry picked from commit 32f0df9835ac15ac17e04be57c368172c3ad1d19)
+(skipping NEWS change)
+Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
+
+--- a/bootstrap
++++ b/bootstrap
+@@ -230,7 +230,7 @@ vc_ignore=
+ # Source required external libraries:
+ # Set a version string for this script.
+-scriptversion=2015-01-20.17; # UTC
++scriptversion=2015-10-04.22; # UTC
+ # General shell script boiler plate, and helper functions.
+ # Written by Gary V. Vaughan, 2004
+@@ -1257,6 +1257,57 @@ func_relative_path ()
+ }
++# func_quote ARG
++# --------------
++# Aesthetically quote one ARG, store the result into $func_quote_result.  Note
++# that we keep attention to performance here (so far O(N) complexity as long as
++# func_append is O(1)).
++func_quote ()
++{
++    $debug_cmd
++
++    func_quote_result=$1
++
++    case $func_quote_result in
++      *[\\\`\"\$]*)
++        case $func_quote_result in
++          *'*'*|*'['*)
++            func_quote_result=`$ECHO "$func_quote_result" | $SED "$sed_quote_subst"`
++            return 0
++            ;;
++        esac
++
++        func_quote_old_IFS=$IFS
++        for _G_char in '\' '`' '"' '$'
++        do
++          # STATE($1) PREV($2) SEPARATOR($3)
++          set start "" ""
++          func_quote_result=dummy"$_G_char$func_quote_result$_G_char"dummy
++          IFS=$_G_char
++          for _G_part in $func_quote_result
++          do
++            case $1 in
++            quote)
++              func_append func_quote_result "$3$2"
++              set quote "$_G_part" "\\$_G_char"
++              ;;
++            start)
++              set first "" ""
++              func_quote_result=
++              ;;
++            first)
++              set quote "$_G_part" ""
++              ;;
++            esac
++          done
++          IFS=$func_quote_old_IFS
++        done
++        ;;
++      *) ;;
++    esac
++}
++
++
+ # func_quote_for_eval ARG...
+ # --------------------------
+ # Aesthetically quote ARGs to be evaled later.
+@@ -1273,12 +1324,8 @@ func_quote_for_eval ()
+     func_quote_for_eval_unquoted_result=
+     func_quote_for_eval_result=
+     while test 0 -lt $#; do
+-      case $1 in
+-        *[\\\`\"\$]*)
+-        _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
+-        *)
+-          _G_unquoted_arg=$1 ;;
+-      esac
++      func_quote "$1"
++      _G_unquoted_arg=$func_quote_result
+       if test -n "$func_quote_for_eval_unquoted_result"; then
+       func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
+       else
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -3356,7 +3356,8 @@ else
+   if test \"\$libtool_execute_magic\" != \"$magic\"; then
+     file=\"\$0\""
+-    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
++    func_quote "$ECHO"
++    qECHO=$func_quote_result
+     $ECHO "\
+ # A function that is used when there is no print builtin or printf.
+@@ -8618,8 +8619,8 @@ EOF
+           relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+         fi
+       done
+-      relink_command="(cd `pwd`; $relink_command)"
+-      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
++      func_quote "(cd `pwd`; $relink_command)"
++      relink_command=$func_quote_result
+       fi
+       # Only actually do things if not in dry run mode.
+@@ -8865,7 +8866,8 @@ EOF
+       done
+       # Quote the link command for shipping.
+       relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+-      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
++      func_quote "$relink_command"
++      relink_command=$func_quote_result
+       if test yes = "$hardcode_automatic"; then
+       relink_command=
+       fi
+--- a/build-aux/funclib.sh
++++ b/build-aux/funclib.sh
+@@ -1,5 +1,5 @@
+ # Set a version string for this script.
+-scriptversion=2015-01-20.17; # UTC
++scriptversion=2015-10-04.22; # UTC
+ # General shell script boiler plate, and helper functions.
+ # Written by Gary V. Vaughan, 2004
+@@ -1026,6 +1026,57 @@ func_relative_path ()
+ }
++# func_quote ARG
++# --------------
++# Aesthetically quote one ARG, store the result into $func_quote_result.  Note
++# that we keep attention to performance here (so far O(N) complexity as long as
++# func_append is O(1)).
++func_quote ()
++{
++    $debug_cmd
++
++    func_quote_result=$1
++
++    case $func_quote_result in
++      *[\\\`\"\$]*)
++        case $func_quote_result in
++          *[\[\*\?]*)
++            func_quote_result=`$ECHO "$func_quote_result" | $SED "$sed_quote_subst"`
++            return 0
++            ;;
++        esac
++
++        func_quote_old_IFS=$IFS
++        for _G_char in '\' '`' '"' '$'
++        do
++          # STATE($1) PREV($2) SEPARATOR($3)
++          set start "" ""
++          func_quote_result=dummy"$_G_char$func_quote_result$_G_char"dummy
++          IFS=$_G_char
++          for _G_part in $func_quote_result
++          do
++            case $1 in
++            quote)
++              func_append func_quote_result "$3$2"
++              set quote "$_G_part" "\\$_G_char"
++              ;;
++            start)
++              set first "" ""
++              func_quote_result=
++              ;;
++            first)
++              set quote "$_G_part" ""
++              ;;
++            esac
++          done
++          IFS=$func_quote_old_IFS
++        done
++        ;;
++      *) ;;
++    esac
++}
++
++
+ # func_quote_for_eval ARG...
+ # --------------------------
+ # Aesthetically quote ARGs to be evaled later.
+@@ -1042,12 +1093,8 @@ func_quote_for_eval ()
+     func_quote_for_eval_unquoted_result=
+     func_quote_for_eval_result=
+     while test 0 -lt $#; do
+-      case $1 in
+-        *[\\\`\"\$]*)
+-        _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
+-        *)
+-          _G_unquoted_arg=$1 ;;
+-      esac
++      func_quote "$1"
++      _G_unquoted_arg=$func_quote_result
+       if test -n "$func_quote_for_eval_unquoted_result"; then
+       func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
+       else
diff --git a/tools/libtool/patches/150-trailingslash.patch b/tools/libtool/patches/150-trailingslash.patch
deleted file mode 100644 (file)
index 833acbb..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-From 1b45c3c0d6682be7f4876b620780ee246a5acbaa Mon Sep 17 00:00:00 2001
-From: Eneas U de Queiroz <cotequeiroz@gmail.com>
-Date: Tue, 20 Jul 2021 16:56:16 -0300
-Subject: openwrt: remove trailing slash in install destdir
-
-A command like /bin/sh ../../i586-poky-linux-libtool   --mode=install /usr/bin/install -c   gck-roots-store-standalone.la '/media/data1/builds/poky1/tmp/work/core2-poky-linux/gnome-keyring-2.26.1-r1/image/usr/lib/gnome-keyring/standalone/' fails (e.g. gnome-keyring or pulseaudio)
-
-This is because libdir has a trailing slash which breaks the comparision.
-
-RP 2/1/10
-
-Merged a patch received from Gary Thomas <gary@mlbassoc.com>
-
-Date: 2010/07/12
-Nitin A Kamble <nitin.a.kamble@intel.com>
-
-Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
-
---- a/libltdl/config/ltmain.m4sh
-+++ b/libltdl/config/ltmain.m4sh
-@@ -2167,8 +2167,15 @@ func_mode_install ()
-       func_append dir "$objdir"
-       if 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 "$destdir" | $SED -e "s%$libdir\$%%"`
-+        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
---- a/libltdl/config/ltmain.sh
-+++ b/libltdl/config/ltmain.sh
-@@ -2954,8 +2954,15 @@ func_mode_install ()
-       func_append dir "$objdir"
-       if 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 "$destdir" | $SED -e "s%$libdir\$%%"`
-+        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
diff --git a/tools/libtool/patches/160-passthrough-ssp.patch b/tools/libtool/patches/160-passthrough-ssp.patch
deleted file mode 100644 (file)
index 2f6838c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libltdl/config/ltmain.m4sh
-+++ b/libltdl/config/ltmain.m4sh
-@@ -5076,7 +5076,7 @@ func_mode_link ()
-       # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
-       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-       -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
--      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
-+      -O*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*)
-         func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
-         func_append compile_command " $arg"
index 1c599b0201c49af8468ff9ea1f8ea701cd5fa460..50b5c03d4c4ebaed68ce40e045f380ff15a9b9c4 100644 (file)
@@ -10,115 +10,25 @@ This was originally commited to openwrt by Jo-Philipp Wich
 
 Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
 
---- a/libltdl/config/general.m4sh
-+++ b/libltdl/config/general.m4sh
-@@ -359,7 +359,7 @@ opt_warning=:
- # name if it has been set yet.
- func_echo ()
- {
--    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-+    $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -82,7 +82,7 @@ func_echo ()
+     IFS=$nl
+     for _G_line in $_G_message; do
+       IFS=$func_echo_IFS
+-      $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
++      $ECHO "OpenWrt-$progname${opt_mode+: $opt_mode}: $_G_line"
+     done
+     IFS=$func_echo_IFS
+ }
+--- a/build-aux/funclib.sh
++++ b/build-aux/funclib.sh
+@@ -656,7 +656,7 @@ func_echo ()
+     IFS=$nl
+     for _G_line in $_G_message; do
+       IFS=$func_echo_IFS
+-      $ECHO "$progname: $_G_line"
++      $ECHO "OpenWrt-$progname: $_G_line"
+     done
+     IFS=$func_echo_IFS
  }
- # func_verbose arg...
-@@ -385,14 +385,14 @@ func_echo_all ()
- # Echo program name prefixed message to standard error.
- func_error ()
- {
--    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-+    $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
- }
- # func_warning arg...
- # Echo program name prefixed warning message to standard error.
- func_warning ()
- {
--    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-+    $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-     # bash bug again:
-     :
---- a/libltdl/config/ltmain.sh
-+++ b/libltdl/config/ltmain.sh
-@@ -439,7 +439,7 @@ opt_warning=:
- # name if it has been set yet.
- func_echo ()
- {
--    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-+    $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
- }
- # func_verbose arg...
-@@ -465,14 +465,14 @@ func_echo_all ()
- # Echo program name prefixed message to standard error.
- func_error ()
- {
--    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-+    $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
- }
- # func_warning arg...
- # Echo program name prefixed warning message to standard error.
- func_warning ()
- {
--    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-+    $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-     # bash bug again:
-     :
---- a/libtoolize.in
-+++ b/libtoolize.in
-@@ -648,7 +648,7 @@ opt_warning=:
- # name if it has been set yet.
- func_echo ()
- {
--    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-+    $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
- }
- # func_verbose arg...
-@@ -674,14 +674,14 @@ func_echo_all ()
- # Echo program name prefixed message to standard error.
- func_error ()
- {
--    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-+    $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
- }
- # func_warning arg...
- # Echo program name prefixed warning message to standard error.
- func_warning ()
- {
--    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-+    $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-     # bash bug again:
-     :
---- a/tests/defs.in
-+++ b/tests/defs.in
-@@ -596,7 +596,7 @@ opt_warning=:
- # name if it has been set yet.
- func_echo ()
- {
--    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-+    $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
- }
- # func_verbose arg...
-@@ -622,14 +622,14 @@ func_echo_all ()
- # Echo program name prefixed message to standard error.
- func_error ()
- {
--    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-+    $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
- }
- # func_warning arg...
- # Echo program name prefixed warning message to standard error.
- func_warning ()
- {
--    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-+    $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-     # bash bug again:
-     :