On 3/29/26 10:58, Yuri wrote:

dnl If the user did not specify a C++ version.
if test -z `echo "$PRESET_CXXFLAGS" | $GREP -o -E "\\-std="`; then
  dnl Set highest possible C++ support
  AX_CXX_COMPILE_STDCXX(20, [noext], [optional])
  if test "$HAVE_CXX20" = "0"; then
    AX_CXX_COMPILE_STDCXX(17, [noext], [optional])
  elif test "$HAVE_CXX17" = "0"; then
    AX_CXX_COMPILE_STDCXX(14, [noext], [optional])
  elif test "$HAVE_CXX14" = "0"; then
    AX_CXX_COMPILE_STDCXX(11, [noext], [mandatory])
  fi
fi

This could be a bug with AX_CXX_COMPILE_STDCXX, in that it is not checking for C++11 (or whatever) features appropriately. If so, the bug would be masked in Autoconf 2.70 through 2.72 (which defaulted to C++11 if you did nothing else), but exposed by Autoconf 2.73 (which doesn't default in that way). Can you investigate this possibility? You should be a able to do that by looking at config.log.


This is ... about selecting the highest fully supported standard automatically when the user provides no flags.

Yes, but Autoconf 2.73 got out of that business, and reverted to its behavior in Autoconf 2.69 and earlier, for reasons discussed in the top thread listed here:

https://lists.gnu.org/r/autoconf/2024-05/threads.html

The consensus there, by people who know C++ implementations on GNU/Linux a lot better than I do, was that Autoconf should not mess with the C++ compiler's default -std= value.



Reply via email to