Hi! On 2025-01-12T08:38:05+0100, Torbjorn SVENSSON <torbjorn.svens...@foss.st.com> wrote: > On 2025-01-12 01:05, Jonathan Wakely wrote: >> On Mon, 23 Dec 2024, 19:05 Torbjörn SVENSSON, >> <torbjorn.svens...@foss.st.com <mailto:torbjorn.svens...@foss.st.com>> >> wrote: >> >> Ok for trunk and releases/gcc-14? >> >> OK > > Pushed as r15-6828-g4b0ef49d02f and r14.2.0-680-gd82fc939f91.
On a configuration where libatomic does get built, I see (with standard build-tree testing: 'make check'): [-PASS:-]{+UNSUPPORTED:+} 29_atomics/atomic_float/compare_exchange_padding.cc -std=gnu++20[-(test for excess errors)-] [-PASS: 29_atomics/atomic_float/compare_exchange_padding.cc -std=gnu++20 execution test-] [Etc.] [...] spawn -ignore SIGHUP [...]/gcc/xg++ [...] libatomic_available1221570.c -latomic [...] -o libatomic_available1221570.exe /usr/bin/ld: cannot find -latomic: No such file or directory [...] I presume that the new 'dg-require-effective-target libatomic_available' is evaluated when the 'atomic_link_flags' via 'dg-additional-options' have not yet been set? Would it work to call 'atomic_init' (plus 'atomic_finish', I suppose?) (see 'gcc/testsuite/lib/atomic-dg.exp') in libstdc++ test suite setup, and then to '29_atomics/atomic_float/compare_exchange_padding.cc' apply the usual pattern: -// { dg-require-effective-target libatomic_available } -// { dg-additional-options "[atomic_link_flags [get_multilibs]] -latomic" } +// { dg-additional-options -latomic { target libatomic_available } } Grüße Thomas >> Test assumes libatomic.a is always available, but for some embedded >> targets, there is no libatomic.a and the test thus fail. >> >> libstdc++/ChangeLog: >> >> * 29_atomics/atomic_float/compare_exchange_padding.cc: Use >> effective-target libatomic_available. >> >> Signed-off-by: Torbjörn SVENSSON <torbjorn.svens...@foss.st.com> >> --- >> .../29_atomics/atomic_float/compare_exchange_padding.cc | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git >> a/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc >> b/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc >> index 49626ac6651..9395e3026a7 100644 >> --- >> a/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc >> +++ >> b/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc >> @@ -1,5 +1,6 @@ >> // { dg-do run { target c++20 } } >> // { dg-options "-O0" } >> +// { dg-require-effective-target libatomic_available } >> // { dg-additional-options "[atomic_link_flags [get_multilibs]] >> -latomic" } >> >> #include <atomic> >> -- >> 2.25.1 >>