https://gcc.gnu.org/g:83ef989ee189902ca1d434feb0f3dd50519e92cb
commit r16-437-g83ef989ee189902ca1d434feb0f3dd50519e92cb Author: Jonathan Wakely <jwak...@redhat.com> Date: Wed May 7 10:44:49 2025 +0100 libstdc++: Remove use of undefined GLIBCXX_LANG_{PUSH,POP} [PR120147] Commit r16-427-g86627faec10da5 was using the new GLIBCXX_LANG_PUSH and GLIBCXX_LANG_POP macros from a change that I haven't pushed yet, resulting in changes to CXXFLAGS not being restored after the GLIBCXX_ENABLE_BACKTRACE checks. libstdc++-v3/ChangeLog: PR libstdc++/120147 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Restore use of AC_LANG_CPLUSPLUS. * configure: Regenerate. Diff: --- libstdc++-v3/acinclude.m4 | 6 ++++-- libstdc++-v3/configure | 20 ++++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 0fc74d00a98f..204bed5b27be 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -5290,7 +5290,8 @@ AC_DEFUN([GLIBCXX_ENABLE_BACKTRACE], [ BACKTRACE_CPPFLAGS="-D_GNU_SOURCE" - GLIBCXX_LANG_PUSH + AC_LANG_CPLUSPLUS + old_CXXFLAGS="$CXXFLAGS" # libbacktrace's own configure.ac only tests atomics for int, # but the code actually uses atomics for size_t and pointers as well. @@ -5356,7 +5357,8 @@ EOF rm -f conftest* fi - GLIBCXX_LANG_POP + CXXFLAGS="$old_CXXFLAGS" + AC_LANG_RESTORE if test "$glibcxx_cv_libbacktrace_atomics" = yes; then BACKTRACE_CPPFLAGS="$BACKTRACE_CPPFLAGS -DHAVE_ATOMIC_FUNCTIONS=1" diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 3fd03b8a95d6..0529ff5708f1 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -53537,7 +53537,13 @@ fi BACKTRACE_CPPFLAGS="-D_GNU_SOURCE" - GLIBCXX_LANG_PUSH + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + old_CXXFLAGS="$CXXFLAGS" # libbacktrace's own configure.ac only tests atomics for int, # but the code actually uses atomics for size_t and pointers as well. @@ -53578,7 +53584,7 @@ main () return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : glibcxx_cv_libbacktrace_atomics=yes else glibcxx_cv_libbacktrace_atomics=no @@ -53595,7 +53601,7 @@ $as_echo "$glibcxx_cv_libbacktrace_atomics" >&6; } CXXFLAGS='-O0 -S' cat > conftest.$ac_ext << EOF -#line 53598 "configure" +#line 53604 "configure" #include <stddef.h> int main() { @@ -53633,7 +53639,13 @@ $as_echo "$glibcxx_cv_libbacktrace_atomics" >&6; } rm -f conftest* fi - GLIBCXX_LANG_POP + CXXFLAGS="$old_CXXFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test "$glibcxx_cv_libbacktrace_atomics" = yes; then BACKTRACE_CPPFLAGS="$BACKTRACE_CPPFLAGS -DHAVE_ATOMIC_FUNCTIONS=1"