https://gcc.gnu.org/g:29b2cb40ee848928385a48c4fdeb9b7a2ae0aecd

commit r16-1264-g29b2cb40ee848928385a48c4fdeb9b7a2ae0aecd
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Wed Jun 4 20:09:21 2025 +0100

    libstdc++: Adjust effective-target requirements for <barrier> and 
<semaphore>
    
    These features depend on __cpp_lib_atomic_wait which is not available
    for freestanding, and is available when either gthreads is supported, or
    the target is linux (for futex support).
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/30_threads/barrier/1.cc: Require hosted. Only
            require gthreads for non-linux targets.
            * testsuite/30_threads/barrier/2.cc: Likewise.
            * testsuite/30_threads/semaphore/1.cc: Likewise.
            * testsuite/30_threads/semaphore/2.cc: Likewise.
            * testsuite/30_threads/semaphore/cons.cc: Likewise.
            * testsuite/30_threads/semaphore/least_max_value_neg.cc:
            Likewise.
            * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
    
    Reviewed-by: Tomasz KamiƄski <tkami...@redhat.com>

Diff:
---
 libstdc++-v3/testsuite/30_threads/barrier/1.cc                     | 3 ++-
 libstdc++-v3/testsuite/30_threads/barrier/2.cc                     | 2 +-
 libstdc++-v3/testsuite/30_threads/semaphore/1.cc                   | 2 ++
 libstdc++-v3/testsuite/30_threads/semaphore/2.cc                   | 1 +
 libstdc++-v3/testsuite/30_threads/semaphore/cons.cc                | 2 ++
 libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc | 4 ++--
 libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc         | 3 ++-
 7 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/libstdc++-v3/testsuite/30_threads/barrier/1.cc 
b/libstdc++-v3/testsuite/30_threads/barrier/1.cc
index eff8ef3a174b..01c55d96cd20 100644
--- a/libstdc++-v3/testsuite/30_threads/barrier/1.cc
+++ b/libstdc++-v3/testsuite/30_threads/barrier/1.cc
@@ -16,7 +16,8 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile { target c++20 } }
-// { dg-require-effective-target gthreads }
+// { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
+// { dg-require-effective-target hosted }
 // { dg-add-options no_pch }
 
 #include <barrier>
diff --git a/libstdc++-v3/testsuite/30_threads/barrier/2.cc 
b/libstdc++-v3/testsuite/30_threads/barrier/2.cc
index e0188b3fd8ea..728030babbd1 100644
--- a/libstdc++-v3/testsuite/30_threads/barrier/2.cc
+++ b/libstdc++-v3/testsuite/30_threads/barrier/2.cc
@@ -16,7 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile { target c++20 } }
-// { dg-require-effective-target gthreads }
+// { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
 // { dg-require-effective-target hosted }
 // { dg-add-options no_pch }
 
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/1.cc 
b/libstdc++-v3/testsuite/30_threads/semaphore/1.cc
index ac9f97b816fe..cc6befcc1a50 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/1.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/1.cc
@@ -16,6 +16,8 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile { target c++20 } }
+// { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
+// { dg-require-effective-target hosted }
 // { dg-add-options no_pch }
 
 #include <semaphore>
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/2.cc 
b/libstdc++-v3/testsuite/30_threads/semaphore/2.cc
index 251e96adae68..bff747c0aa33 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/2.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/2.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile { target c++20 } }
+// { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
 // { dg-require-effective-target hosted }
 // { dg-add-options no_pch }
 
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/cons.cc 
b/libstdc++-v3/testsuite/30_threads/semaphore/cons.cc
index 920f7423332b..790ff2eab557 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/cons.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/cons.cc
@@ -1,4 +1,6 @@
 // { dg-do compile { target c++20 } }
+// { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
+// { dg-require-effective-target hosted }
 
 #include <semaphore>
 
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc 
b/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
index 1498d38cb93a..e2680b12e5ae 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
@@ -16,8 +16,8 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile { target c++20 } }
-// { dg-require-effective-target pthread }
-// { dg-require-gthreads "" }
+// { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
+// { dg-require-effective-target hosted }
 
 #include <semaphore>
 
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc 
b/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
index d709126cf342..ea7859b22c6c 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
@@ -17,7 +17,8 @@
 
 // { dg-do run { target c++20 } }
 // { dg-additional-options "-pthread" { target pthread } }
-// { dg-require-gthreads "" }
+// { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
+// { dg-require-effective-target hosted }
 // { dg-add-options libatomic }
 
 #include <semaphore>

Reply via email to