https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93151
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=93469 --- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- This is related to PR 93469: darwin headers ignore the value of __STDC_VERSION or __cplusplus if _XOPEN_VERSION is used to select an old POSIX standard. But in this case the problem appears to be in the C++ standard. These error numbers are required by C++11, which refers to ISO/IEC 9945:2003, which (I believe) is aligned with POSIX:2001 aka SUSv3. But POSIX:2001 doesn't define all the error numbers required by C++11. So if you ask the system to conform to SUSv3 (by defining _XOPEN_VERSION=600) some error numbers that C++11 requires are absent. I think we need to fix the C++ standard, but also change libstdc++ to use #ifdef for the error numbers that aren't required by SUSv3.