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
>> 

Reply via email to