On 11/08/20 16:38 +0100, Jonathan Wakely wrote:
Make the experimental Networking TS code work without std::mutex and
std::condition_variable.

libstdc++-v3/ChangeLog:

        PR libstdc++/89760
        * include/experimental/executor [!_GLIBCXX_HAS_GTHREADS]:
        (execution_context::mutex_type): Define dummy mutex type.
        (system_context): Use execution_context::mutex_type.
        (system_context) [!_GLIBCXX_HAS_GTHREADS]: Define dummy
        thread and condition variable types.
        [!_GLIBCXX_HAS_GTHREADS] (system_context::_M_run()): Do not
        define.
        (system_context::_M_post) [!_GLIBCXX_HAS_GTHREADS]: Throw
        an exception when threads aren't available.
        (strand::running_in_this_thread()): Defer to _M_state.
        (strand::_State::running_in_this_thread()): New function.
        (use_future_t): Do not depend on _GLIBCXX_USE_C99_STDINT_TR1.
        * include/experimental/io_context (io_context): Use the
        execution_context::mutex_type alias. Replace stack of thread
        IDs with counter.
        * testsuite/experimental/net/execution_context/use_service.cc:
        Enable test for non-pthread targets.

For the branches I'm just making the tests depend on gthreads.

Tested x86_64-linux, with both --enable-threads and --disable-threads.
Committed to trunk.


commit afd61b43808cebe0882cdf13dcdd766cae4ce4e7
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Tue Aug 11 16:55:01 2020

    libstdc++: Disable net tests that depend on threads [PR 89760]
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/89760
            * testsuite/experimental/net/execution_context/make_service.cc:
            Add dg-require-gthreads.
            * testsuite/experimental/net/executor/1.cc: Likewise.
            * testsuite/experimental/net/headers.cc: Likewise.
            * testsuite/experimental/net/internet/address/v4/comparisons.cc:
            Likewise.
            * testsuite/experimental/net/internet/address/v4/cons.cc:
            Likewise.
            * testsuite/experimental/net/internet/address/v4/creation.cc:
            Likewise.
            * testsuite/experimental/net/internet/address/v4/members.cc:
            Likewise.
            * testsuite/experimental/net/internet/resolver/base.cc:
            Likewise.
            * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
            Likewise.
            * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
            Likewise.
            * testsuite/experimental/net/socket/basic_socket.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.

diff --git a/libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc b/libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc
index 0898d12927a..fe8d385b0f7 100644
--- a/libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc
+++ b/libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile { target c++14 } }
+// { dg-require-gthreads "" }
 
 #include <experimental/executor>
 
diff --git a/libstdc++-v3/testsuite/experimental/net/executor/1.cc b/libstdc++-v3/testsuite/experimental/net/executor/1.cc
index cd0af4b7737..88e263297ee 100644
--- a/libstdc++-v3/testsuite/experimental/net/executor/1.cc
+++ b/libstdc++-v3/testsuite/experimental/net/executor/1.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++14 } }
+// { dg-require-gthreads "" }
 
 #include <experimental/executor>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/headers.cc b/libstdc++-v3/testsuite/experimental/net/headers.cc
index 957135bbf23..a896f9509ee 100644
--- a/libstdc++-v3/testsuite/experimental/net/headers.cc
+++ b/libstdc++-v3/testsuite/experimental/net/headers.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile }
+// { dg-require-gthreads "" }
 
 #include <experimental/net>
 
diff --git a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc
index 098fc5e18e2..51fc2917d0a 100644
--- a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc
+++ b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options net_ts }
+// { dg-require-gthreads "" }
 
 #include <experimental/internet>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc
index 93c42c59b0f..0f47d9a863b 100644
--- a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc
+++ b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options net_ts }
+// { dg-require-gthreads "" }
 
 #include <experimental/internet>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc
index 0c49ae70c35..63deb5497ae 100644
--- a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc
+++ b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options net_ts }
+// { dg-require-gthreads "" }
 
 #include <experimental/internet>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc
index 63d70f7f5aa..14a1e14dd14 100644
--- a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc
+++ b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options net_ts }
+// { dg-require-gthreads "" }
 
 #include <experimental/internet>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc
index fb6b11b58d7..3f146f8a988 100644
--- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc
+++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options net_ts }
+// { dg-require-gthreads "" }
 
 #include <experimental/internet>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc
index e4aedd6218e..b6e1577ec0a 100644
--- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc
+++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options net_ts }
+// { dg-require-gthreads "" }
 
 #include <experimental/internet>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc
index f7223253fc6..dae89054722 100644
--- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc
+++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options net_ts }
+// { dg-require-gthreads "" }
 
 #include <experimental/internet>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/socket/basic_socket.cc b/libstdc++-v3/testsuite/experimental/net/socket/basic_socket.cc
index 14dbff6659d..134cb7633e3 100644
--- a/libstdc++-v3/testsuite/experimental/net/socket/basic_socket.cc
+++ b/libstdc++-v3/testsuite/experimental/net/socket/basic_socket.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile { target c++14 } }
+// { dg-require-gthreads "" }
 
 #include <experimental/socket>
 
diff --git a/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc b/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc
index fdfdc718113..1373c402fba 100644
--- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc
+++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options libatomic }
+// { dg-require-gthreads "" }
 
 #include <experimental/timer>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc b/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
index 180ad7c9993..8a3e0601722 100644
--- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
+++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options libatomic }
+// { dg-require-gthreads "" }
 
 #include <experimental/timer>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc b/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
index c9c5d21117a..fd95b9e77f2 100644
--- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
+++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options libatomic }
+// { dg-require-gthreads "" }
 
 #include <experimental/timer>
 #include <testsuite_hooks.h>

Reply via email to