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

John Scott <jscott at posteo dot net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jscott at posteo dot net

--- Comment #16 from John Scott <jscott at posteo dot net> ---
I'm an Austin Group member who's been watching the C11 integration closely, so
I'd like to share what I've observed for the requirements on conforming
compiler drivers (which, unless gcc is installed under the name 'c17', it
doesn't technically purport to be). ISO C makes atomics optional and POSIX/SUS
does *not* strengthen this. However, IEEE 1003.1-2024 does specify the
<stdatomic.h> header and the atomic functions as an option group in the "System
Interfaces" section.

If one refers to [the part of the standard for the c17
command](https://pubs.opengroup.org/onlinepubs/9799919799/utilities/c17.html#tag_20_11_13_01),
it says that conforming implementations must expose symbols for all of the
standard System Interfaces with a few exceptions (like <math.h>). No exception
was added for atomics, so I believe conforming systems must not require the
addition of a flag like -latomic in order for the symbols to be linked with.

I would like to affirm what Adrian Bunk said too in that this is not merely a
theoretical issue: I think (maybe?) riscv64-linux-gnu has even been hit by this
and packages are failing to build. Thus this is an area where adhering to the
letter of the standard will benefit applications greatly.

Reply via email to