aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2020-01-13 16:07:27 -0800
committerPaul Eggert2020-01-13 16:27:02 -0800
commit0abda558bc547991cddd9667be722eaeb428dca8 (patch)
tree61f1c6c7d382156988ac6b22e4f5981b09bc8691
parent6100f9a19e9d8d8e688ad8bbec2233bd6782cbde (diff)
downloademacs-0abda558bc547991cddd9667be722eaeb428dca8.tar.gz
emacs-0abda558bc547991cddd9667be722eaeb428dca8.zip
Port configure.ac to future Gnulib
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.
-rw-r--r--configure.ac17
1 files changed, 7 insertions, 10 deletions
diff --git a/configure.ac b/configure.ac
index 08a45021224..f040b748d0a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1508,6 +1508,7 @@ case "$opsys" in
1508 UNEXEC_OBJ=unexelf.o 1508 UNEXEC_OBJ=unexelf.o
1509 ;; 1509 ;;
1510esac 1510esac
1511AC_SUBST(UNEXEC_OBJ)
1511 1512
1512LD_SWITCH_SYSTEM= 1513LD_SWITCH_SYSTEM=
1513test "$with_unexec" = no || case "$opsys" in 1514test "$with_unexec" = no || case "$opsys" in
@@ -1561,8 +1562,6 @@ C_SWITCH_MACHINE=
1561test $with_unexec = yes && 1562test $with_unexec = yes &&
1562case $canonical in 1563case $canonical in
1563 alpha*) 1564 alpha*)
1564 AC_CHECK_DECL([__ELF__])
1565 if test "$ac_cv_have_decl___ELF__" = "yes"; then
1566 ## With ELF, make sure that all common symbols get allocated to in the 1565 ## With ELF, make sure that all common symbols get allocated to in the
1567 ## data section. Otherwise, the dump of temacs may miss variables in 1566 ## data section. Otherwise, the dump of temacs may miss variables in
1568 ## the shared library that have been initialized. For example, with 1567 ## the shared library that have been initialized. For example, with
@@ -1573,18 +1572,10 @@ case $canonical in
1573 else 1572 else
1574 AC_MSG_ERROR([Non-GCC compilers are not supported.]) 1573 AC_MSG_ERROR([Non-GCC compilers are not supported.])
1575 fi 1574 fi
1576 else
1577 dnl This was the unexalpha.c case. Removed in 24.1, 2010-07-24,
1578 dnl albeit under the mistaken assumption that said file
1579 dnl was no longer used.
1580 AC_MSG_ERROR([Non-ELF systems are not supported since Emacs 24.1.])
1581 fi
1582 ;; 1575 ;;
1583esac 1576esac
1584AC_SUBST(C_SWITCH_MACHINE) 1577AC_SUBST(C_SWITCH_MACHINE)
1585 1578
1586AC_SUBST(UNEXEC_OBJ)
1587
1588C_SWITCH_SYSTEM= 1579C_SWITCH_SYSTEM=
1589## Some programs in src produce warnings saying certain subprograms 1580## Some programs in src produce warnings saying certain subprograms
1590## are too complex and need a MAXMEM value greater than 2000 for 1581## are too complex and need a MAXMEM value greater than 2000 for
@@ -4216,6 +4207,12 @@ dnl No need to check for posix_memalign if aligned_alloc works.
4216AC_CHECK_FUNCS([aligned_alloc posix_memalign], [break]) 4207AC_CHECK_FUNCS([aligned_alloc posix_memalign], [break])
4217AC_CHECK_DECLS([aligned_alloc], [], [], [[#include <stdlib.h>]]) 4208AC_CHECK_DECLS([aligned_alloc], [], [], [[#include <stdlib.h>]])
4218 4209
4210case $with_unexec,$canonical in
4211 yes,alpha*)
4212 AC_CHECK_DECL([__ELF__], [],
4213 [AC_MSG_ERROR([Non-ELF systems are not supported on this platform.])]);;
4214esac
4215
4219# Dump loading 4216# Dump loading
4220AC_CHECK_FUNCS([posix_madvise]) 4217AC_CHECK_FUNCS([posix_madvise])
4221 4218