On 1/3/24 13:03, Kim Barrett wrote:
On Jan 3, 2024, at 7:16 AM, Baesken, Matthias <matthias.baes...@sap.com> wrote:

Btw.  I found  this rather recent discussion about   reverting the  forcing   
of setting -std=gnu++11  in autoconf :

https://urldefense.com/v3/__https://mail.gnu.org/archive/html/bug-autoconf/2023-12/msg00073.html__;!!ACWV5N9M2RV99hQ!KfFeVOARPmr8RlTN3t2qMgkljzWkcpqA_NwxnyMtkaHzz3dwDxZjVsZZZvQLEXP-Rd6rngZKnovzj0C6Uzn-XF_4Gw$
https://urldefense.com/v3/__https://savannah.gnu.org/support/?110879__;!!ACWV5N9M2RV99hQ!KfFeVOARPmr8RlTN3t2qMgkljzWkcpqA_NwxnyMtkaHzz3dwDxZjVsZZZvQLEXP-Rd6rngZKnovzj0C6Uzk4Umn7ug$

revert forcing/setting -std=gnu++11 by default (introduced in Autoconf 2.70)
So autoconf forcibly selects a -std= option, possibly overriding either an
explicit option or the compiler's default.  Who thought that was a good idea?
There are even comments from the time that question that "feature".

It looks like there is code to attempt to deal with that sort of thing in our
build system. See TOOLCHAIN_POST_DETECTION in make/autoconf/toolchain.m4. That
dates back to JDK 9. However, that only deals with CFLAGS and CXXFLAGS. The
AC_PROG_CC/CXX feature affects the CC/CXX variables. Bleh!

Looks like we need to extend this functionality and filter out any "-std*" flags added by autoconf from CC/CXX. Even if later "-std=c++14" on the command line overrides correctly, it would be good for sanitation. I think such a fix should be done in mainline to avoid different behavior with different versions of autoconf. It can then be backported to openjdk 11 to fix the more severe issue described here.

/Erik

Reply via email to