Hi!
On 2025-01-12T08:38:05+0100, Torbjorn SVENSSON <[email protected]>
wrote:
> On 2025-01-12 01:05, Jonathan Wakely wrote:
>> On Mon, 23 Dec 2024, 19:05 Torbjörn SVENSSON,
>> <[email protected] <mailto:[email protected]>>
>> 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 <[email protected]>
>> ---
>> .../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
>>