[libstdc++] [testsuite] no libatomic for vxworks

Alexandre Oliva oliva@adacore.com
Mon Jun 24 18:03:24 GMT 2024


libatomic hasn't been ported to vxworks.  Most of the stdatomic.h and
<atomic> underlying requirements are provided by builtins and libgcc,
and the vxworks libc already provides remaining __atomic symbols, so
porting libatomic doesn't seem to make sense.

However, some of the target arch-only tests in
add_options_for_libatomic cover vxworks targets, so we end up
attempting to link libatomic in, even though it's not there.
Preempt those too-broad tests.

We've long been using a workaround very similar to this on ppc, and now
that we've made sure there's nothing in libatomic that we'd need on any
vxworks targets, we're ready to contribute this change.  Regstrapping on
x86_64-linux-gnu, just to be sure.  Ok to install?


Co-Authored-By: Marc Poulhiès <poulhies@adacore.com>

for  libstdc++-v3/ChangeLog

	* testsuite/lib/dg-options.exp (add_options_for_libatomic):
	None for *-*-vxworks*.
---
 libstdc++-v3/testsuite/lib/dg-options.exp |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp
index 84f9e3ebc730c..0d77fb029b09b 100644
--- a/libstdc++-v3/testsuite/lib/dg-options.exp
+++ b/libstdc++-v3/testsuite/lib/dg-options.exp
@@ -338,6 +338,11 @@ proc atomic_link_flags { paths } {
 }
 
 proc add_options_for_libatomic { flags } {
+    # We don't (need to) build libatomic for vxworks.  Don't try to
+    # link it in, even on arches that support libatomic.
+    if { [istarget *-*-vxworks*] } {
+	return $flags
+    }
     if { [istarget hppa*-*-hpux*]
 	 || ([istarget powerpc*-*-*] && [check_effective_target_ilp32])
 	 || [istarget riscv*-*-*]

-- 
Alexandre Oliva, happy hacker            https://FSFLA.org/blogs/lxo/
   Free Software Activist                   GNU Toolchain Engineer
More tolerance and less prejudice are key for inclusion and diversity
Excluding neuro-others for not behaving ""normal"" is *not* inclusive


More information about the Gcc-patches mailing list