]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Ensure use of gcc's version of stdatomic.h in gthr-vxworks
authorAshley Gay <gay@adacore.com>
Fri, 8 Mar 2024 11:30:35 +0000 (11:30 +0000)
committerOlivier Hainque <hainque@adacore.com>
Mon, 20 Oct 2025 17:09:54 +0000 (17:09 +0000)
VxWorks provides its own version of the standard stdatomic.h, possibly
relying on non-gcc builtins, and our implementation of the gthr API resorts
to VxWorks specific functions for atomicity features.

When compiling libgcc (with gcc), make sure gcc's version of stdatomic.h
is used: #include it here, first, then define the macro used to guard the
system version so it doesn't get expanded when included indirectly by
other system headers.

2025-10-20  Olivier Hainque  <hainque@adacore.com>
    Ashley Gay  <gay@adacore.com>

libgcc/
* config/gthr-vxworks.h: Include stdatomic.h and prevent indirect
inclusion of contents from the system version of that header.

libgcc/config/gthr-vxworks.h

index 2f5a2ca0a143cd66d6b26d92104c251e71fd290d..3918790145a3279640d8630435a688804f4ee935 100644 (file)
@@ -34,6 +34,19 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #else
 
+/* VxWorks provides its own version of the standard stdatomic.h, possibly
+   relying on non-gcc builtins, and our implementation of the gthr API resorts
+   to VxWorks specific functions for atomicity features.
+
+   When compiling libgcc (with gcc), make sure gcc's version of stdatomic.h
+   is used: #include it here, first, then define the macro used to guard the
+   system version so it doesn't get expanded when included indirectly by
+   other system headers.  */
+#if defined(IN_LIBGCC2)
+#include <../include/stdatomic.h>
+#define __INCstdatomich
+#endif
+
 #include <vxWorks.h>
 #include <_vxworks-versions.h>