Hi, comex wrote: > From m4/lib-prefix.m4: > > -- > AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], > [AC_EGREP_CPP([Extensible Linking Format], > [#ifdef __ELF__ > Extensible Linking Format > #endif > ], > [gl_cv_elf=yes], > [gl_cv_elf=no]) > ]) > if test $gl_cv_elf; then > — > > I believe this does not work as intended. 'test $gl_cv_elf' is equivalent to > 'test -n $gl_cv_elf', i.e. it tests whether the variable is nonempty. Both > ‘yes’ and ‘no’ are nonempty, so the ‘if’ will always be taken.
Ouch, indeed. This probably breaks the whole 'havelib' module for platforms such as macOS, AIX, HP-UX. Thanks for the report!! 2020-11-30 Bruno Haible <br...@clisp.org> havelib: Fix for non-ELF platforms (regression 2019-11-17). Reported by comex <com...@gmail.com> in <https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00188.html>. * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): On non-ELF platforms, don't expect an ELF header. diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 index c8a0b46..28bb3d3 100644 --- a/m4/lib-prefix.m4 +++ b/m4/lib-prefix.m4 @@ -1,4 +1,4 @@ -# lib-prefix.m4 serial 17 +# lib-prefix.m4 serial 18 dnl Copyright (C) 2001-2005, 2008-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -180,8 +180,8 @@ AC_DEFUN([AC_LIB_PREPARE_MULTILIB], ], [gl_cv_elf=yes], [gl_cv_elf=no]) - ]) - if test $gl_cv_elf; then + ]) + if test $gl_cv_elf = yes; then # Extract the ELF class of a file (5th byte) in decimal. # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header if od -A x < /dev/null >/dev/null 2>/dev/null; then