]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
libtool.m4: Avoid a broken AC_TRY_EVAL macro
authorVincent Lefevre <vincent@vinc17.net>
Tue, 2 Oct 2018 17:25:29 +0000 (20:25 +0300)
committerIleana Dumitrescu <ileanadumitrescu95@gmail.com>
Tue, 22 Oct 2024 17:02:16 +0000 (20:02 +0300)
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

index 7875302a4b72be4a804e2ae2bf21b314fccc0215..054b3abf912be1ffb38d022bef4ea3446f112c8c 100644 (file)
@@ -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"