https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120567

--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <[email protected]>:

https://gcc.gnu.org/g:4046caad61a0406e42cae0c38a6aa26f5975a197

commit r16-7357-g4046caad61a0406e42cae0c38a6aa26f5975a197
Author: Jonathan Wakely <[email protected]>
Date:   Tue Dec 9 21:02:56 2025 +0000

    libstdc++: Prevent std::stacktrace from using atomics on arm-eabi
[PR120567]

    The conftest.cc in GLIBCXX_ENABLE_BACKTRACE checks if calls to
    __atomic_load and __atomic_store result in libatomic calls. For arm-eabi
    those expand to normal loads with a call to __sync_synchronize to ensure
    correct ordering. That means the generated assembly does not match the
    grep pattern "__atomic_" and so configure incorrectly assumes we can use
    atomics in libbacktrace.

    The fix is to grep for "__atomic_|__sync_" instead of just "__atomic_".

    As explained in the bug comments, the similar grep for "__atomic_" in
    the GLIBCXX_ENABLE_ATOMIC_BUILTINS macro doesn't need the same change.
    That conftest.cc program does emit a call to a libatomic function that
    matches the grep pattern "__atomic_" so the test gives the right answer
    for arm-eabi.

    libstdc++-v3/ChangeLog:

            PR libstdc++/120567
            * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Include "__sync_" in
            grep command to check for extern calls to libatomic.
            * configure: Regenerate.

    Reviewed-by: Tomasz KamiÅski <[email protected]>

Reply via email to