[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sr #110294] AC_LANG_PUSH/AC_LANG_POP malfunction inside AC_DEFUN
From: |
Bruno Haible |
Subject: |
[sr #110294] AC_LANG_PUSH/AC_LANG_POP malfunction inside AC_DEFUN |
Date: |
Sun, 6 Dec 2020 19:21:13 -0500 (EST) |
User-agent: |
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0 |
Follow-up Comment #3, sr #110294 (project autoconf):
Comment #2 was truncated. It was meant to read:
After a bunch of head-scratching I have figured out what's going on. This
code
AC_LANG_PUSH([C++])
AC_CACHE_CHECK([whether the C++ compiler has <cuchar>],
[gl_cv_cxxheader_cuchar],
[
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <cuchar>]],
[[]])
],
[gl_cv_cxxheader_cuchar=yes],
[gl_cv_cxxheader_cuchar=no])
])
AC_LANG_POP([C++])
invokes AC_COMPILE_IFELSE with the current language set to C++.
AC_COMPILE_IFELSE calls AC_LANG_COMPILER_REQUIRE, which AC_REQUIREs
AC_LANG_COMPILER(C++), which AC_REQUIREs AC_PROG_CXX. Because of your earlier
"kind of an optional AC_PROG_CXX" code, this causes the AC_LANG machinery to
get confused about what the correct setting for $ac_compile is, for checks in
between the top of the AC_DEFUN and the AC_LANG_PUSH.
We can't support your code as-is in Autoconf 2.70. However, I can offer you a
simple workaround. Move all of the "optional AC_PROG_CXX" code into a new
AC_DEFUN. Make the last line of that AC_DEFUN be
m4_provide([AC_PROG_CXX])
(right after the "Determine a good default for CXXFLAGS" if-block).
In my testing, those modifications make your sample configure script work
correctly. They should be harmless with 2.69.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/support/?110294>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/