From f7d11c71dbf23b6a7bc8a273782d3aa3dab08b23 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 87ca46721..322ca1fe0 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" -- 2.47.3