aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEneas U de Queiroz <cotequeiroz@gmail.com>2021-09-13 18:08:55 -0300
committerHauke Mehrtens <hauke@hauke-m.de>2023-03-13 22:53:41 +0100
commit0d0cfe9f2d086404093b547b89afec822c32bd76 (patch)
tree7ca3845eeecf542c61a42c33523c2bbe8cc649ab
parenta22c54e39f8cb668ea5d717a51359fe2409fa336 (diff)
downloadupstream-0d0cfe9f2d086404093b547b89afec822c32bd76.tar.gz
upstream-0d0cfe9f2d086404093b547b89afec822c32bd76.tar.bz2
upstream-0d0cfe9f2d086404093b547b89afec822c32bd76.zip
tools/libtool: bump to 2.4.6
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>
-rw-r--r--tools/libtool/Makefile11
-rw-r--r--tools/libtool/patches/000-relocatable.patch107
-rw-r--r--tools/libtool/patches/100-libdir-fixes.patch77
-rw-r--r--tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch40
-rw-r--r--tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch22
-rw-r--r--tools/libtool/patches/130-trailingslash.patch (renamed from tools/libtool/patches/150-trailingslash.patch)25
-rw-r--r--tools/libtool/patches/140-don-t-quote-SHELL-in-Makefile.am.patch72
-rw-r--r--tools/libtool/patches/150-libtool-mitigate-the-sed_quote_subst-slowdown.patch224
-rw-r--r--tools/libtool/patches/160-passthrough-ssp.patch11
-rw-r--r--tools/libtool/patches/200-openwrt-branding.patch132
10 files changed, 395 insertions, 326 deletions
diff --git a/tools/libtool/Makefile b/tools/libtool/Makefile
index fcac06e269..4149491bd3 100644
--- a/tools/libtool/Makefile
+++ b/tools/libtool/Makefile
@@ -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
diff --git a/tools/libtool/patches/000-relocatable.patch b/tools/libtool/patches/000-relocatable.patch
index f4d5b47677..e6189d562a 100644
--- a/tools/libtool/patches/000-relocatable.patch
+++ b/tools/libtool/patches/000-relocatable.patch
@@ -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
diff --git a/tools/libtool/patches/100-libdir-fixes.patch b/tools/libtool/patches/100-libdir-fixes.patch
index 75ab583806..671040b3e1 100644
--- a/tools/libtool/patches/100-libdir-fixes.patch
+++ b/tools/libtool/patches/100-libdir-fixes.patch
@@ -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
diff --git a/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch b/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch
index be25c29e87..b76877a8b8 100644
--- a/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch
+++ b/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch
@@ -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:" ;;
diff --git a/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch b/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch
index 575b5fd24b..42a3ed7a32 100644
--- a/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch
+++ b/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch
@@ -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/150-trailingslash.patch b/tools/libtool/patches/130-trailingslash.patch
index 833acbb38f..343ce4ab65 100644
--- a/tools/libtool/patches/150-trailingslash.patch
+++ b/tools/libtool/patches/130-trailingslash.patch
@@ -16,28 +16,9 @@ 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 ()
+--- 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
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
index 0000000000..513b521834
--- /dev/null
+++ b/tools/libtool/patches/140-don-t-quote-SHELL-in-Makefile.am.patch
@@ -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
index 0000000000..27ea6a1d53
--- /dev/null
+++ b/tools/libtool/patches/150-libtool-mitigate-the-sed_quote_subst-slowdown.patch
@@ -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/160-passthrough-ssp.patch b/tools/libtool/patches/160-passthrough-ssp.patch
deleted file mode 100644
index 2f6838cb85..0000000000
--- a/tools/libtool/patches/160-passthrough-ssp.patch
+++ /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"
diff --git a/tools/libtool/patches/200-openwrt-branding.patch b/tools/libtool/patches/200-openwrt-branding.patch
index 1c599b0201..50b5c03d4c 100644
--- a/tools/libtool/patches/200-openwrt-branding.patch
+++ b/tools/libtool/patches/200-openwrt-branding.patch
@@ -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:
- :