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, 20 Sep 2021 13:21:17 +0000 (15:21 +0200)
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.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
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 2bc9db7d0dabff54ae372bedb0a47dc850917c90..b237884b64454cb43a1eb3326f63b40193d60114 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 6d1651be317a28cb0e2457a4d400403a1c553cc8..88d1eaed02ceb8b554196150bbbc12e58341b1f4 100644 (file)
@@ -1,46 +1,24 @@
---- 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"; 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//"}
+From ca10caa502f971f90d8c041aa2476de54ef0ce2b Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cotequeiroz@gmail.com>
+Date: Tue, 20 Jul 2021 16:41:11 -0300
+Subject: openwrt: make relocatable, search resources relative to STAGING_DIR
+
+This was originally commited to openwrt by Jo-Philipp Wich
+<jow@openwrt.org>.
+
+(adjusted to v2.4.6)
+Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
+
 --- a/libtoolize.in
 +++ b/libtoolize.in
-@@ -334,15 +334,22 @@ as_unset=as_fn_unset
+@@ -40,11 +40,18 @@
  
- : ${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"; then
 +      : ${EGREP="$STAGING_DIR/../host/bin/grep -E"}
 +      : ${GREP="@GREP@"}
 +      : ${SED="@SED@"}
 +fi
- : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
- : ${Xsed="$SED -e 1s/^X//"}
-@@ -2487,10 +2494,17 @@ func_check_macros ()
  
-   # Locations for important files:
-   prefix=@prefix@
--  datadir=@datadir@
--  pkgdatadir=@pkgdatadir@
--  pkgltdldir=@pkgdatadir@
--  aclocaldir=@aclocaldir@
-+  if test -n "$STAGING_DIR"; then
-+    datadir="$STAGING_DIR/../host/share"
-+    pkgdatadir="$STAGING_DIR/../host/share/libtool"
-+    pkgltdldir="$STAGING_DIR/../host/share/libtool"
-+    aclocaldir="$STAGING_DIR/../host/share/aclocal"
-+  else
-+    datadir=@datadir@
-+    pkgdatadir=@pkgdatadir@
-+    pkgltdldir=@pkgdatadir@
-+    aclocaldir=@aclocaldir@
-+  fi
-   auxdir=
-   macrodir=
-   configure_ac=configure.in
---- a/libtoolize.m4sh
-+++ b/libtoolize.m4sh
-@@ -1453,10 +1453,17 @@ func_check_macros ()
  
-   # Locations for important files:
-   prefix=@prefix@
--  datadir=@datadir@
--  pkgdatadir=@pkgdatadir@
--  pkgltdldir=@pkgdatadir@
--  aclocaldir=@aclocaldir@
-+  if test -n "$STAGING_DIR"; then
-+    datadir="$STAGING_DIR/../host/share"
-+    pkgdatadir="$STAGING_DIR/../host/share/libtool"
-+    pkgltdldir="$STAGING_DIR/../host/share/libtool"
-+    aclocaldir="$STAGING_DIR/../host/share/aclocal"
-+  else
-+    datadir=@datadir@
-+    pkgdatadir=@pkgdatadir@
-+    pkgltdldir=@pkgdatadir@
-+    aclocaldir=@aclocaldir@
-+  fi
-   auxdir=
-   macrodir=
-   configure_ac=configure.in
---- a/libltdl/m4/libtool.m4
-+++ b/libltdl/m4/libtool.m4
-@@ -907,9 +907,8 @@ dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+ ## -------------------------- ##
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -929,9 +929,8 @@ dnl AC_DEFUN([AC_LIBTOOL_RC], [])
  # ----------------
  m4_defun([_LT_TAG_COMPILER],
  [AC_REQUIRE([AC_PROG_CC])dnl
  _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 +7659,9 @@ m4_defun([_LT_DECL_EGREP],
+@@ -8160,9 +8159,9 @@ m4_defun([_LT_DECL_EGREP],
  [AC_REQUIRE([AC_PROG_EGREP])dnl
  AC_REQUIRE([AC_PROG_FGREP])dnl
  test -z "$GREP" && GREP=grep
  dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
  AC_SUBST([GREP])
  ])
-@@ -7695,9 +7694,8 @@ AC_SUBST([DLLTOOL])
+@@ -8195,9 +8194,8 @@ AC_SUBST([DLLTOOL])
  # as few characters as possible.  Prefer GNU sed if found.
  m4_defun([_LT_DECL_SED],
  [AC_PROG_SED
index 3df2b14b60b92f68f86de32df8978a07e57df2fd..dd17dd97e58250dbd9a703ca776f615fe64c3486 100644 (file)
@@ -1,83 +1,56 @@
---- a/libltdl/config/ltmain.m4sh
-+++ b/libltdl/config/ltmain.m4sh
-@@ -5731,8 +5731,14 @@ func_mode_link ()
-           absdir="$abs_ladir"
-           libdir="$abs_ladir"
+From 67ffe8e8582a7ba1f1d1307a419098e6dd88bdaf Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cotequeiroz@gmail.com>
+Date: Tue, 20 Jul 2021 16:41:11 -0300
+Subject: openwrt: cross-compilation path adjustments
+
+Comments from the patch:
+
+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
+
+OE sets installed=no in staging. We need to look in $objdir and $absdir,
+preferring $objdir. RP 31/04/2008
+
+This was originally commited to openwrt by Jo-Philipp Wich
+<jow@openwrt.org>.
+
+(adjusted to v2.4.6)
+Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
+
+--- 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 bbfd12500306d5a26696d7af84a7c50fb1660b43..d613440167581e45883a8f6f3a34a2b026694c67 100644 (file)
@@ -1,20 +1,33 @@
---- 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
+From 375833af93999f8b0a747c8a1dfa3ec8d347743d Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cotequeiroz@gmail.com>
+Date: Tue, 20 Jul 2021 16:52:37 -0300
+Subject: openwrt: don't use target dir for relinking
+
+This was originally commited to openwrt by Jo-Philipp Wich
+<jow@openwrt.org>.
+
+(adjusted to v2.4.6)
+Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
+
+--- 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 8840ee056998c5d7459b5c8f0badde98ab7530ff..715c254999288d29c131cb5f390497cccef91d1a 100644 (file)
@@ -1,24 +1,26 @@
---- a/libltdl/config/ltmain.m4sh
-+++ b/libltdl/config/ltmain.m4sh
-@@ -2183,6 +2183,9 @@ func_mode_install ()
+From 7f2b8a1ab4fa1475eeeddfb84eb5b92594bfce43 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cotequeiroz@gmail.com>
+Date: Tue, 20 Jul 2021 16:54:12 -0300
+Subject: openwrt: strip unsave directories from relink command
+
+strip unsave directories from relink command, nuke every -L that looks
+like /usr/lib or /lib
+
+This was originally commited to openwrt by Jo-Philipp Wich
+<jow@openwrt.org>.
+
+(adjusted to v2.4.6)
+Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
+
+--- 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..fc28027
--- /dev/null
@@ -0,0 +1,38 @@
+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>
+
+(adjusted to v2.4.6)
+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 423911c..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-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>
-
---- 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 da44c61..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur libtool-2.4.orig/libltdl/config/ltmain.m4sh libtool-2.4/libltdl/config/ltmain.m4sh
---- libtool-2.4.orig/libltdl/config/ltmain.m4sh        2015-06-18 10:46:15.499996979 +0200
-+++ libtool-2.4/libltdl/config/ltmain.m4sh     2015-06-18 10:48:24.686882213 +0200
-@@ -5076,7 +5076,7 @@
-       # -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 3fc0afb866549472decf38fa06a67a1e638284d2..95fa8c0f37008648c8e0b16dce7d4231748f26f0 100644 (file)
---- 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: }$*"
+From 90707200efadc8e230635c7c204c9c272cbc8631 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cotequeiroz@gmail.com>
+Date: Tue, 20 Jul 2021 17:01:03 -0300
+Subject: openwrt: add openwrt branding
+
+This prepends program name with "OpenWrt-".
+
+This was originally commited to openwrt by Jo-Philipp Wich
+<jow@openwrt.org>.
+
+(adjusted to v2.4.6)
+Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
+
+--- 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
  }
- # 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:
-     :