URL: <https://savannah.gnu.org/support/?110879>
Summary: revert forcing/setting -std=gnu++11 by default (introduced in Autoconf 2.70) Group: Autoconf Submitter: manx Submitted: Sun 07 May 2023 07:26:46 AM UTC Category: None Priority: 5 - Normal Severity: 4 - Important Status: None Privacy: Public Assigned to: None Originator Email: Open/Closed: Open Discussion Lock: Any Operating System: None _______________________________________________________ Follow-up Comments: ------------------------------------------------------- Date: Sun 07 May 2023 07:26:46 AM UTC By: Jörn Heusipp <manx> > * Noteworthy changes in release 2.70 (2020-12-08) [stable] [...] > *** AC_PROG_CC now enables C2011 mode if the compiler supports it. > > If not, it will fall back to C99 and C89, as before. Similarly, > AC_PROG_CXX now enables C++2011 if available, falling back on C++98. This breaks existing packages that have been relying on `AX_CXX_COMPILE_STDCXX` from the autoconf-archive package (<https://github.com/autoconf-archive/autoconf-archive/blob/master/m4/ax_cxx_compile_stdcxx.m4>) since about forever, because Autoconf itself did never care about the C++ standard version at all. There appears to be no documentation on how to avoid the introduced behaviour, as far as I can see. The new behaviour causes CXXFLAGS to look like '-std=gnu++11 -std=c++20', which is just confusing and arguably outright wrong. In other cases, where the compiler default is actually newer than C++11 (e.g. GCC6 defaults to C++14, GCC11 defaults to C++17), it actively breaks compilation for programs that simply rely on the toolchain default. See <https://github.com/macports/macports-ports/pull/17284#pullrequestreview-1415834125>. Please revert this change. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/support/?110879> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/