From 5139403de64120f21245410c1b5eba7ac1559a9e Mon Sep 17 00:00:00 2001 From: Vincent Lefevre Date: Tue, 2 Oct 2018 20:25:29 +0300 Subject: [PATCH] libtool.m4: Avoid a broken AC_TRY_EVAL macro As said in the Autoconf source, the AC_TRY_EVAL macro is dangerous and undocumented, and should not be used. In particular, the one related to nm yields binary data in the config.log file with dash, where "echo \\1" (echo with the argument \1) produces the control character ^A instead of the usual \1 with most shells (POSIX says that the result is implementation-defined). See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=910076 This patch attempts to replace this AC_TRY_EVAL occurrence by code with similar behavior, but using $ECHO instead of echo in order to avoid the backslash issue. https://debbugs.gnu.org/cgi/bugreport.cgi?bug=21309 --- m4/libtool.m4 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/m4/libtool.m4 b/m4/libtool.m4 index 7875302a..054b3abf 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -4129,7 +4129,8 @@ _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist"