diff options
| author | Paul Eggert | 2020-01-13 16:07:27 -0800 |
|---|---|---|
| committer | Paul Eggert | 2020-01-13 16:27:02 -0800 |
| commit | 0abda558bc547991cddd9667be722eaeb428dca8 (patch) | |
| tree | 61f1c6c7d382156988ac6b22e4f5981b09bc8691 | |
| parent | 6100f9a19e9d8d8e688ad8bbec2233bd6782cbde (diff) | |
| download | emacs-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.ac | 17 |
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 | ;; |
| 1510 | esac | 1510 | esac |
| 1511 | AC_SUBST(UNEXEC_OBJ) | ||
| 1511 | 1512 | ||
| 1512 | LD_SWITCH_SYSTEM= | 1513 | LD_SWITCH_SYSTEM= |
| 1513 | test "$with_unexec" = no || case "$opsys" in | 1514 | test "$with_unexec" = no || case "$opsys" in |
| @@ -1561,8 +1562,6 @@ C_SWITCH_MACHINE= | |||
| 1561 | test $with_unexec = yes && | 1562 | test $with_unexec = yes && |
| 1562 | case $canonical in | 1563 | case $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 | ;; |
| 1583 | esac | 1576 | esac |
| 1584 | AC_SUBST(C_SWITCH_MACHINE) | 1577 | AC_SUBST(C_SWITCH_MACHINE) |
| 1585 | 1578 | ||
| 1586 | AC_SUBST(UNEXEC_OBJ) | ||
| 1587 | |||
| 1588 | C_SWITCH_SYSTEM= | 1579 | C_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. | |||
| 4216 | AC_CHECK_FUNCS([aligned_alloc posix_memalign], [break]) | 4207 | AC_CHECK_FUNCS([aligned_alloc posix_memalign], [break]) |
| 4217 | AC_CHECK_DECLS([aligned_alloc], [], [], [[#include <stdlib.h>]]) | 4208 | AC_CHECK_DECLS([aligned_alloc], [], [], [[#include <stdlib.h>]]) |
| 4218 | 4209 | ||
| 4210 | case $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.])]);; | ||
| 4214 | esac | ||
| 4215 | |||
| 4219 | # Dump loading | 4216 | # Dump loading |
| 4220 | AC_CHECK_FUNCS([posix_madvise]) | 4217 | AC_CHECK_FUNCS([posix_madvise]) |
| 4221 | 4218 | ||