testsuite: libstdc++ atomic_float/value_init.cc requires libatomic
authorDavid Edelsohn <dje.gcc@gmail.com>
Tue, 28 Jul 2020 20:22:04 +0000 (16:22 -0400)
committerDavid Edelsohn <dje.gcc@gmail.com>
Wed, 29 Jul 2020 14:00:05 +0000 (10:00 -0400)
atomic_float/value_init.cc requires libatomic for some targets, i.e., when
it tries to perform an atomic operation with a 64 bit floating point
double type on a 32 bit target.  This patch adds AIX and Darwin to the
list of targets that require the libatomic option and adds the option to
the atomic_float/value_init.cc testcase.

libstdc++-v3/ChangeLog:

2020-07-28  David Edelsohn  <dje.gcc@gmail.com>
    Jonathan Wakely  <jwakely@redhat.com>
    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

* testsuite/lib/dg-options.exp (add_options_for_libatomic): Add
target powerpc-ibm-aix* and powerpc*-*-darwin*.
* testsuite/29_atomics/atomic_float/value_init.cc: Add options
for libatomic.

libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
libstdc++-v3/testsuite/lib/dg-options.exp

index 237c0dd13ed5aa455b8232b9496306b53f6f7e17..38af9bdc8d42a42243fa69b3f4407dab7079bbc2 100644 (file)
@@ -17,6 +17,7 @@
 
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { target c++2a } }
+// { dg-add-options libatomic }
 
 #include <atomic>
 #include <testsuite_hooks.h>
index 9bfae71adf30c7d95f72008b1c6aff555b406fe8..d3f61cb52671593c58b0c72a74748e3dc0492c2f 100644 (file)
@@ -260,7 +260,10 @@ proc add_options_for_net_ts { flags } {
 # Add to FLAGS all the target-specific flags to link to libatomic, if required.
 
 proc add_options_for_libatomic { flags } {
-    if { [istarget hppa*-*-hpux*] || [istarget riscv*-*-*] } {
+    if { [istarget hppa*-*-hpux*]
+        || [istarget powerpc-ibm-aix*]
+        || [istarget powerpc*-*-darwin*]
+        || [istarget riscv*-*-*] } {
        return "$flags -L../../libatomic/.libs -latomic"
     }
     return $flags