>From 49ad550af6b5c1cfcb2fd31962967d7be71bfcc3 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 13 Jan 2020 16:07:27 -0800 Subject: [PATCH] Port configure.ac to future Gnulib MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rewrite an ancient Alpha ELF check to port to a future Gnulib version that may require AC_CHECK_DECL to be set up properly as per the ‘Expanded Before Required’ section of the Autoconf manual Autoconf doesn’t guarantee that AC_CHECK_DECL will work properly if called conditionally (e.g., inside a shell ‘case’ statement) and the condition is false. Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-01/msg00088.html * configure.ac (LD_SWITCH_MACHINE): Migrate ELF check later, when AC_CHECK_DECL is properly set up. --- configure.ac | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index 08a4502122..f040b748d0 100644 --- a/configure.ac +++ b/configure.ac @@ -1508,6 +1508,7 @@ AC_DEFUN UNEXEC_OBJ=unexelf.o ;; esac +AC_SUBST(UNEXEC_OBJ) LD_SWITCH_SYSTEM= test "$with_unexec" = no || case "$opsys" in @@ -1561,8 +1562,6 @@ AC_DEFUN test $with_unexec = yes && case $canonical in alpha*) - AC_CHECK_DECL([__ELF__]) - if test "$ac_cv_have_decl___ELF__" = "yes"; then ## With ELF, make sure that all common symbols get allocated to in the ## data section. Otherwise, the dump of temacs may miss variables in ## the shared library that have been initialized. For example, with @@ -1573,18 +1572,10 @@ AC_DEFUN else AC_MSG_ERROR([Non-GCC compilers are not supported.]) fi - else - dnl This was the unexalpha.c case. Removed in 24.1, 2010-07-24, - dnl albeit under the mistaken assumption that said file - dnl was no longer used. - AC_MSG_ERROR([Non-ELF systems are not supported since Emacs 24.1.]) - fi ;; esac AC_SUBST(C_SWITCH_MACHINE) -AC_SUBST(UNEXEC_OBJ) - C_SWITCH_SYSTEM= ## Some programs in src produce warnings saying certain subprograms ## are too complex and need a MAXMEM value greater than 2000 for @@ -4216,6 +4207,12 @@ AC_DEFUN AC_CHECK_FUNCS([aligned_alloc posix_memalign], [break]) AC_CHECK_DECLS([aligned_alloc], [], [], [[#include ]]) +case $with_unexec,$canonical in + yes,alpha*) + AC_CHECK_DECL([__ELF__], [], + [AC_MSG_ERROR([Non-ELF systems are not supported on this platform.])]);; +esac + # Dump loading AC_CHECK_FUNCS([posix_madvise]) -- 2.24.1