The hppa*-*-hpux* target has no builtin atomic support, so we need to 
explicitly link
applications requiring atomic support against libatomic.

Okay?

Dave
-- 
John David Anglin  dave.ang...@bell.net

2019-03-09  John David Anglin  <dave.ang...@bell.net>

        PR libstdc++/89461
        * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Link
        against libatomic on hppa*-*-hpux*.
        * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
        * testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
        * testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
        * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
        * testsuite/lib/libstdc++.exp: Locate libatomic.

Index: testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
===================================================================
--- testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc (revision 
269442)
+++ testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc (working copy)
@@ -22,6 +22,7 @@
 // { dg-require-effective-target c++11 }
 // { dg-require-effective-target pthread }
 // { dg-require-cstdint "" }
+// { dg-additional-options "-L../../libatomic/.libs -latomic" { target 
hppa*-*-hpux* } }

 #include <memory>
 #include <random>
Index: testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc
===================================================================
--- testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc   (revision 
269442)
+++ testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc   (working copy)
@@ -22,6 +22,7 @@
 // { dg-require-effective-target c++11 }
 // { dg-require-effective-target pthread }
 // { dg-require-cstdint "" }
+// { dg-additional-options "-L../../libatomic/.libs -latomic" { target 
hppa*-*-hpux* } }

 #include <memory>
 #include <random>
Index: testsuite/experimental/net/timer/waitable/cons.cc
===================================================================
--- testsuite/experimental/net/timer/waitable/cons.cc   (revision 269442)
+++ testsuite/experimental/net/timer/waitable/cons.cc   (working copy)
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.

 // { dg-do run { target c++14 } }
+// { dg-additional-options "-L../../libatomic/.libs -latomic" { target 
hppa*-*-hpux* } }

 #include <experimental/timer>
 #include <testsuite_hooks.h>
Index: testsuite/experimental/net/timer/waitable/dest.cc
===================================================================
--- testsuite/experimental/net/timer/waitable/dest.cc   (revision 269442)
+++ testsuite/experimental/net/timer/waitable/dest.cc   (working copy)
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.

 // { dg-do run { target c++14 } }
+// { dg-additional-options "-L../../libatomic/.libs -latomic" { target 
hppa*-*-hpux* } }

 #include <experimental/timer>
 #include <testsuite_hooks.h>
Index: testsuite/experimental/net/timer/waitable/ops.cc
===================================================================
--- testsuite/experimental/net/timer/waitable/ops.cc    (revision 269442)
+++ testsuite/experimental/net/timer/waitable/ops.cc    (working copy)
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.

 // { dg-do run { target c++14 } }
+// { dg-additional-options "-L../../libatomic/.libs -latomic" { target 
hppa*-*-hpux* } }

 #include <experimental/timer>
 #include <testsuite_hooks.h>
Index: testsuite/lib/libstdc++.exp
===================================================================
--- testsuite/lib/libstdc++.exp (revision 269442)
+++ testsuite/lib/libstdc++.exp (working copy)
@@ -161,6 +161,17 @@
     }
     v3track gccdir 3

+    # Locate libatomic.
+    set v3-libatomic 0
+    set libatomicdir [lookfor_file $blddir/../libatomic 
.libs/libatomic.$shlib_ext]
+    if {$libatomicdir != ""} {
+       set v3-libatomic 1
+       set libatomicdir [file dirname $libatomicdir]
+       append ld_library_path_tmp ":${libatomicdir}"
+       verbose -log "libatomic support detected"
+    }
+    v3track libatomicdir 3
+
     # Locate libgomp. This is only required for parallel mode.
     set v3-libgomp 0
     set libgompdir [lookfor_file $blddir/../libgomp .libs/libgomp.$shlib_ext]

Reply via email to