sys-devel/libtool: Sync with Gentoo

It's from Gentoo commit 111847c60008231e6329949ec6ce2c8e18ffe41b.
This commit is contained in:
Flatcar Buildbot 2022-12-12 07:15:24 +00:00
parent 835e1dd756
commit 03fda422c6
12 changed files with 69 additions and 593 deletions

View File

@ -1,2 +1 @@
DIST libtool-2.4.6.tar.xz 973080 BLAKE2B 0865af9f8701ca9dc62eec8294a088d24f4a3ff541bc76acfe7b69f70637d7e8261a17d69f7d54a4177f974c429be68467883a1560edb539061966cbf7d4a356 SHA512 a6eef35f3cbccf2c9e2667f44a476ebc80ab888725eb768e91a3a6c33b8c931afc46eb23efaee76c8696d3e4eed74ab1c71157bcb924f38ee912c8a90a6521a4
DIST libtool-2.4.7.tar.xz 1016040 BLAKE2B 5e022586337637dd634bd40578ad944bec6e3b8de41f95d55777b90cc88cbc4badb3d76cbf0e638166ece1ea7de828e83590e1e6bac30c1e4b1c254a11a742f2 SHA512 47f4c6de40927254ff9ba452612c0702aea6f4edc7e797f0966c8c6bf0340d533598976cdba17f0bdc64545572e71cd319bbb587aa5f47cd2e7c1d96f873a3da

View File

@ -1,13 +0,0 @@
macOS Big Sur is 11.0, Darwin 20, after a long line of 10.X releases.
macOS Monterey is 12.0.
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1076,7 +1076,7 @@
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10.[[012]][[,.]]*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- 10.*)
+ 10.*|11.*|12.*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
esac
;;

View File

@ -1,53 +0,0 @@
https://lists.gnu.org/archive/html/libtool-patches/2016-02/msg00002.html
From 53419307d5b44e5b0cff80d76f88ea02f237b747 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Sat, 13 Feb 2016 03:32:20 -0500
Subject: [PATCH] libtoolize: don't execute automake and autoconf on every
invocation.
Same fix as applied to libtool in commit 408cfb9c5fa8a666917167ffb806cb
to delay use of automake/autoconf to when the --help option is actually
specified.
* libtoolize.in (func_help): Override func_help() from
gl/build-aux/options-parser to only run automake --version and
autoconf --version when libtool --help is executed on the command
line.
---
libtoolize.in | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/libtoolize.in b/libtoolize.in
index 3fe61ce..0d4af3d 100644
--- a/libtoolize.in
+++ b/libtoolize.in
@@ -94,7 +94,12 @@ usage_message="Options:
"
# Additional text appended to 'usage_message' in response to '--help'.
-long_help_message=$long_help_message"
+func_help ()
+{
+ $debug_cmd
+
+ func_usage_message
+ $ECHO "$long_help_message
'environment' show warnings about LIBTOOLIZE_OPTIONS content
'file' show warnings about file copying and linking
@@ -120,8 +125,9 @@ include the following information:
Report bugs to <@PACKAGE_BUGREPORT@>.
GNU @PACKAGE@ home page: <@PACKAGE_URL@>.
-General help using GNU software: <http://www.gnu.org/gethelp/>.
-"
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+ exit 0
+}
warning_categories='environment file'
--
2.6.2

View File

@ -1,118 +0,0 @@
From 351a88feee66eda6ce33eb06acdebb8e9c6d6716 Mon Sep 17 00:00:00 2001
From: Pavel Raiskup <praiskup@redhat.com>
Date: Fri, 18 Sep 2015 23:17:07 +0200
Subject: [PATCH] libtoolize: fix infinite recursion in m4
Some projects use this construct in configure.ac:
m4_define([version], m4_include([version]))
pkg_version=version
When the m4_include builtin is undefined (as was done in
libtoolize and extract-trace scripts), the call to this 'version'
macro enters an infinite recursion (until ENOMEM). So rather
re-define all potentially dangerous macros by empty strings,
suggested by Eric Blake.
While we are on it, merge the macro-"blacklist" with similar list
implemented in gettext, except for 'm4_esyscmd'. It's kept
defined because we already trace AC_INIT macro for package
version, while it is often specified by
m4_esyscmd(git-version-gen). Similarly to m4_include, m4_esyscmd
might be opt-in-blacklisted in future.
References:
http://lists.gnu.org/archive/html/libtool/2015-09/msg00000.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764580
* gl/build-aux/extract-trace (_G_mini): Redefine trace-breaking
macros to empty strings rather than undefining those. Use 'dnl'
for comments.
* bootstrap: Likewise, sync with extract-trace.
* NEWS: Document.
* NO-THANKS: Mention Hiroyuki Sato.
Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
---
NEWS | 4 ++++
NO-THANKS | 1 +
bootstrap | 42 +++++++++++++++++++++++++++---------------
build-aux/extract-trace | 42 +++++++++++++++++++++++++++---------------
4 files changed, 59 insertions(+), 30 deletions(-)
diff --git a/gl/build-aux/extract-trace b/gl/build-aux/extract-trace
index 315a32a..c6abd21 100755
--- a/build-aux/extract-trace
+++ b/build-aux/extract-trace
@@ -329,29 +329,41 @@ func_extract_trace ()
# arguments to Autocof functions, but without following
# 'm4_s?include' files.
_G_mini='
- # Initialisation.
+ dnl Initialisation.
m4_changequote([,])
m4_define([m4_copy], [m4_define([$2], m4_defn([$1]))])
m4_define([m4_rename], [m4_copy([$1], [$2])m4_undefine([$1])])
- # Disable these macros.
- m4_undefine([m4_dnl])
- m4_undefine([m4_include])
- m4_undefine([m4_m4exit])
- m4_undefine([m4_m4wrap])
- m4_undefine([m4_maketemp])
+ dnl Replace macros which may abort m4 with a no-op variant.
+ m4_pushdef([m4_assert])
+ m4_pushdef([m4_exit])
+ m4_pushdef([m4_fatal])
+ m4_pushdef([m4_m4exit])
- # Copy and rename macros not handled by "m4 --prefix".
+ dnl Replace macros that might break stderr of m4.
+ m4_pushdef([m4_errprint])
+ m4_pushdef([m4_errprintn])
+ m4_pushdef([m4_include])
+ m4_pushdef([m4_warn])
+
+ dnl Avoid side-effects of tracing by extract-trace.
+ m4_pushdef([m4_maketemp])
+ m4_pushdef([m4_mkstemp])
+
+ dnl TODO: reasons for this
+ m4_pushdef([m4_dnl])
+ m4_pushdef([m4_m4wrap])
+
+ dnl Copy and rename macros not handled by "m4 --prefix".
m4_define([dnl], [m4_builtin([dnl])])
m4_copy([m4_define], [m4_defun])
m4_rename([m4_ifelse], [m4_if])
- m4_ifdef([m4_mkstemp], [m4_undefine([m4_mkstemp])])
m4_rename([m4_patsubst], [m4_bpatsubst])
m4_rename([m4_regexp], [m4_bregexp])
- # "m4sugar.mini" - useful m4-time macros for dynamic arguments.
- # If we discover packages that need more m4 macros defined in
- # order to bootstrap correctly, add them here:
+ dnl "m4sugar.mini" - useful m4-time macros for dynamic arguments.
+ dnl If we discover packages that need more m4 macros defined in
+ dnl order to bootstrap correctly, add them here:
m4_define([m4_bmatch],
[m4_if([$#], 0, [], [$#], 1, [], [$#], 2, [$2],
[m4_if(m4_bregexp([$1], [$2]), -1,
@@ -362,11 +374,11 @@ func_extract_trace ()
m4_define([m4_require], [$1])
m4_define([m4_shift3], [m4_shift(m4shift(m4shift($@)))])
- # "autoconf.mini" - things from autoconf macros we care about.
+ dnl "autoconf.mini" - things from autoconf macros we care about.
m4_copy([m4_defun], [AC_DEFUN])
- # Dummy definitions for the macros we want to trace.
- # AM_INIT_AUTOMAKE at least produces no trace without this.
+ dnl Dummy definitions for the macros we want to trace.
+ dnl AM_INIT_AUTOMAKE at least produces no trace without this.
'
_G_save=$IFS
--
2.6.2

View File

@ -1,46 +0,0 @@
https://bugs.gentoo.org/573744
From a5c6466528c060cc4660ad0319c00740db0e42ba Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
Date: Sun, 18 Oct 2015 21:55:39 -0700
Subject: [PATCH] libtool: fix GCC/clang linking with -fsanitize=*
References:
https://lists.gnu.org/archive/html/libtool/2014-04/msg00026.html
* build-aux/ltmain.in (func_mode_link): Pass -fsanitize=* to the
linker to allow trivial use of the clang address sanitizer.
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
Copyright-paperwork-exempt: Yes
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -5362,10 +5362,11 @@
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
# -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
+ # -fsanitize=* Clang/GCC memory and address sanitizer
-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*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
- -specs=*)
+ -specs=*|-fsanitize=*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"
--- a/build-aux/ltmain.sh
+++ b/build-aux/ltmain.sh
@@ -7274,10 +7274,11 @@
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
# -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
+ # -fsanitize=* Clang/GCC memory and address sanitizer
-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*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
- -specs=*)
+ -specs=*|-fsanitize=*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"

View File

@ -1,43 +0,0 @@
https://lists.gnu.org/archive/html/libtool-patches/2015-03/msg00000.html
https://lists.gnu.org/archive/html/libtool-patches/2016-02/msg00001.html
From 2f258b87ce4415edede1b2a84a3a7dbcf44555c2 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Mon, 16 Mar 2015 18:17:31 -0400
Subject: [PATCH] libtool: pass through -fuse-ld flags
Starting with gcc-4.8, there's a -fuse-ld flag that can be used to select
between bfd & gold. Make sure we pass it through to the linking stage.
* build-aux/ltmain.in (func_mode_link): Pass -fuse-ld=* flags through.
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -5363,10 +5363,11 @@
# -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
# -fsanitize=* Clang/GCC memory and address sanitizer
+ # -fuse-ld=* Linker select flags for GCC
-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*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
- -specs=*|-fsanitize=*)
+ -specs=*|-fsanitize=*|-fuse-ld=*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"
--- a/build-aux/ltmain.sh
+++ b/build-aux/ltmain.sh
@@ -7275,10 +7275,11 @@
# -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
# -fsanitize=* Clang/GCC memory and address sanitizer
+ # -fuse-ld=* Linker select flags for GCC
-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*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
- -specs=*|-fsanitize=*)
+ -specs=*|-fsanitize=*|-fuse-ld=*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"

View File

@ -1,45 +0,0 @@
From 702a97fbb09bd7088a50f2b239016d1e32843c24 Mon Sep 17 00:00:00 2001
From: Pavel Raiskup <praiskup@redhat.com>
Date: Fri, 18 Sep 2015 10:36:43 +0200
Subject: [PATCH] libtool: fix GCC linking with -specs=*
References:
https://bugzilla.redhat.com/show_bug.cgi?id=985592
* build-aux/ltmain.in (func_mode_link): Pass -specs=*
to the linker, Fedora uses this option for hardening.
Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -5360,10 +5360,12 @@
# -tp=* Portland pgcc target processor selection
# --sysroot=* for sysroot support
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+ # -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
-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*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
+ -specs=*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"
--- a/build-aux/ltmain.sh
+++ b/build-aux/ltmain.sh
@@ -7272,10 +7272,12 @@
# -tp=* Portland pgcc target processor selection
# --sysroot=* for sysroot support
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+ # -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
-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*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
+ -specs=*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"

View File

@ -1,253 +0,0 @@
https://bugs.gentoo.org/542252
From 32f0df9835ac15ac17e04be57c368172c3ad1d19 Mon Sep 17 00:00:00 2001
From: Pavel Raiskup <praiskup@redhat.com>
Date: Sun, 4 Oct 2015 21:55:03 +0200
Subject: [PATCH] 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.
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -3346,7 +3346,8 @@
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.
@@ -8598,8 +8599,8 @@
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.
@@ -8845,7 +8846,8 @@
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_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_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.sh
+++ b/build-aux/ltmain.sh
@@ -64,7 +64,7 @@
# libraries, which are installed to $pkgauxdir.
# 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
@@ -1091,6 +1091,57 @@
}
+# 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.
@@ -1107,12 +1158,8 @@
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
@@ -5258,7 +5305,8 @@
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.
@@ -10510,8 +10558,8 @@
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.
@@ -10757,7 +10805,8 @@
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

View File

@ -0,0 +1,47 @@
https://lists.gnu.org/archive/html/libtool-patches/2022-12/msg00000.html
From d72817b1ee5d7b666bf30b0234e32423252d6ad8 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Sat, 10 Dec 2022 02:00:22 +0000
Subject: [PATCH] Allow -Werror and -Werror=* through flag filtering
* build-aux/ltmain.in (func_mode_link): allow -Werror and -Werror=* through
flat filtering at link time.
This is needed for detecting likely-runtime problems with LTO using
e.g. -Werror=odr or -Werror=lto-type-mismatch.
Bug: https://bugs.gentoo.org/884767
Signed-off-by: Sam James <sam@gentoo.org>
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -5408,10 +5408,11 @@ func_mode_link ()
# -fsanitize=* Clang/GCC memory and address sanitizer
# -fuse-ld=* Linker select flags for GCC
# -Wa,* Pass flags directly to the assembler
+ # -Werror, -Werror=* Report (specified) warnings as errors
-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*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
- -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*)
+ -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*|-Werror|-Werror=*)
func_quote_arg pretty "$arg"
arg=$func_quote_arg_result
func_append compile_command " $arg"
--- a/build-aux/ltmain.sh
+++ a/build-aux/ltmain.sh
@@ -5408,10 +5408,11 @@ func_mode_link ()
# -fsanitize=* Clang/GCC memory and address sanitizer
# -fuse-ld=* Linker select flags for GCC
# -Wa,* Pass flags directly to the assembler
+ # -Werror, -Werror=* Report (specified) warnings as errors
-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*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
- -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*)
+ -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*|-Werror|-Werror=*)
func_quote_arg pretty "$arg"
arg=$func_quote_arg_result
func_append compile_command " $arg"
--
2.38.1

View File

@ -1,9 +1,12 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
LIBTOOLIZE="true" #225559
# Please bump with dev-libs/libltdl.
# bug #225559
LIBTOOLIZE="true"
WANT_LIBTOOL="none"
inherit autotools prefix
@ -12,7 +15,7 @@ if [[ ${PV} == *9999 ]] ; then
inherit git-r3
else
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
fi
DESCRIPTION="A shared library tool for developers"
@ -27,33 +30,29 @@ RDEPEND="
sys-devel/gnuconfig
>=sys-devel/autoconf-2.69:*
>=sys-devel/automake-1.13:*
dev-libs/libltdl:0"
>=dev-libs/libltdl-2.4.7"
DEPEND="${RDEPEND}"
[[ ${PV} == *9999 ]] && BDEPEND="sys-apps/help2man"
PATCHES=(
"${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch #109105
"${FILESDIR}"/${PN}-2.4.6-link-specs.patch
"${FILESDIR}"/${PN}-2.4.6-link-fsanitize.patch #573744
"${FILESDIR}"/${PN}-2.4.6-link-fuse-ld.patch
"${FILESDIR}"/${PN}-2.4.6-libtoolize-slow.patch
"${FILESDIR}"/${PN}-2.4.6-libtoolize-delay-help.patch
"${FILESDIR}"/${PN}-2.4.6-sed-quote-speedup.patch #542252
"${FILESDIR}"/${PN}-2.4.6-ppc64le.patch #581314
# bug #109105
"${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch
# bug #581314
"${FILESDIR}"/${PN}-2.4.6-ppc64le.patch
"${FILESDIR}"/${PN}-2.4.6-mint.patch
"${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch
"${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch
"${FILESDIR}"/${PN}-2.4.6-darwin20.patch
"${FILESDIR}"/${PN}-2.4.7-werror-lto.patch
)
src_prepare() {
if [[ ${PV} == *9999 ]] ; then
eapply "${FILESDIR}"/${PN}-2.4.6-pthread.patch #650876
eapply "${FILESDIR}"/${PN}-2.4.6-pthread.patch # bug #650876
./bootstrap || die
else
PATCHES+=(
"${FILESDIR}"/${PN}-2.4.6-pthread_bootstrapped.patch #650876
"${FILESDIR}"/${PN}-2.4.6-pthread_bootstrapped.patch # bug #650876
)
fi
@ -87,7 +86,7 @@ src_prepare() {
# Make sure timestamps don't trigger a rebuild of man pages. #556512
if [[ ${PV} != *9999 ]] ; then
touch doc/*.1 || die
export HELP2MAN=false
export HELP2MAN=true
fi
}
@ -98,11 +97,13 @@ src_configure() {
# shells, so just force libtool to use /bin/bash all the time.
export CONFIG_SHELL="$(type -P bash)"
# Do not bother hardcoding the full path to sed. Just rely on $PATH. #574550
# Do not bother hardcoding the full path to sed.
# Just rely on $PATH. bug #574550
export ac_cv_path_SED="$(basename "$(type -P sed)")"
[[ ${CHOST} == *-darwin* ]] && local myconf="--program-prefix=g"
ECONF_SOURCE=${S} econf ${myconf} --disable-ltdl-install
ECONF_SOURCE="${S}" econf ${myconf} --disable-ltdl-install
}
src_install() {

View File

@ -85,7 +85,7 @@ src_prepare() {
# Make sure timestamps don't trigger a rebuild of man pages. #556512
if [[ ${PV} != *9999 ]] ; then
touch doc/*.1 || die
export HELP2MAN=false
export HELP2MAN=true
fi
}

View File

@ -15,7 +15,7 @@ if [[ ${PV} == *9999 ]] ; then
inherit git-r3
else
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
fi
DESCRIPTION="A shared library tool for developers"
@ -85,7 +85,7 @@ src_prepare() {
# Make sure timestamps don't trigger a rebuild of man pages. #556512
if [[ ${PV} != *9999 ]] ; then
touch doc/*.1 || die
export HELP2MAN=false
export HELP2MAN=true
fi
}