summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/libtool/files/libtool-2.4.6-libtoolize-slow.patch')
-rw-r--r--sys-devel/libtool/files/libtool-2.4.6-libtoolize-slow.patch118
1 files changed, 118 insertions, 0 deletions
diff --git a/sys-devel/libtool/files/libtool-2.4.6-libtoolize-slow.patch b/sys-devel/libtool/files/libtool-2.4.6-libtoolize-slow.patch
new file mode 100644
index 00000000000..abddee13dc3
--- /dev/null
+++ b/sys-devel/libtool/files/libtool-2.4.6-libtoolize-slow.patch
@@ -0,0 +1,118 @@
+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 +++++++++++++++++++++++++++---------------
+ gl/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/gl/build-aux/extract-trace
++++ b/gl/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
+