Bug 89760 - [9/10 Regression] libstdc++ experimental testsuite failures
Summary: [9/10 Regression] libstdc++ experimental testsuite failures
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 9.0
: P3 normal
Target Milestone: 9.4
Assignee: Jonathan Wakely
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-03-18 14:37 UTC by David Edelsohn
Modified: 2020-08-11 16:24 UTC (History)
2 users (show)

See Also:
Host:
Target: powerpc-ibm-aix*
Build:
Known to work:
Known to fail:
Last reconfirmed: 2019-03-18 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Edelsohn 2019-03-18 14:37:01 UTC
Twelve new failures in experimental code, all like:

FAIL: experimental/net/execution_context/use_service.cc (test for excess errors)
Excess errors:
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:507: error: 'mutex' in namespace 'std' does not name a type
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:554: error: 'mutex' is not a member of 'std'
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:554: error: 'mutex' is not a member of 'std'
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:554: error: template argument 1 is invalid
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:554: error: 'class std::experimental::net::v1::execution_context' has no member named '_M_mutex'
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:578: error: 'mutex' is not a member of 'std'
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:578: error: 'mutex' is not a member of 'std'
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:578: error: template argument 1 is invalid
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:578: error: 'class std::experimental::net::v1::execution_context' has no member named '_M_mutex'
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:600: error: 'mutex' is not a member of 'std'
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:600: error: 'mutex' is not a member of 'std'
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:600: error: template argument 1 is invalid
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:600: error: 'const class std::experimental::net::v1::execution_context' has no member named '_M_mutex'
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:888: error: 'thread' does not name a type; did you mean 'fread'?
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:889: error: 'mutex' does not name a type
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:890: error: 'condition_variable' does not name a type
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:866: error: 'mutex' was not declared in this scope
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:866: error: template argument 1 is invalid
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:866: error: '_M_mtx' was not declared in this scope
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:868: error: '_M_cv' was not declared in this scope
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:873: error: 'mutex' was not declared in this scope
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:873: error: template argument 1 is invalid
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:873: error: '_M_mtx' was not declared in this scope
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:879: error: '_M_thread' was not declared in this scope; did you mean '__n_pthreads'?
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:901: error: 'mutex' was not declared in this scope
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:901: error: template argument 1 is invalid
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:901: error: '_M_mtx' was not declared in this scope
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:902: error: '_M_cv' was not declared in this scope
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:916: error: 'mutex' was not declared in this scope
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:916: error: template argument 1 is invalid
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:916: error: '_M_mtx' was not declared in this scope
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:919: error: '_M_thread' was not declared in this scope; did you mean '__n_pthreads'?
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:920: error: 'thread' is not a member of 'std'
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:922: error: '_M_cv' was not declared in this scope
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:1489: error: 'thread' in namespace 'std' does not name a type
/tmp/GCC/powerpc-ibm-aix7.2.0.0/libstdc++-v3/include/experimental/executor:1453: error: 'std::this_thread' has not been declared

UNRESOLVED: experimental/net/execution_context/use_service.cc compilation failed to produce executable
Comment 1 David Edelsohn 2019-03-18 14:37:18 UTC
Confirmed.
Comment 2 Jonathan Wakely 2019-04-25 08:50:36 UTC
This isn't rejects-valid, the code is fine, the tests are the problem.
Comment 3 Jakub Jelinek 2019-05-03 09:17:23 UTC
GCC 9.1 has been released.
Comment 4 Jakub Jelinek 2019-08-12 08:56:32 UTC
GCC 9.2 has been released.
Comment 5 Jakub Jelinek 2020-03-12 11:58:40 UTC
GCC 9.3.0 has been released, adjusting target milestone.
Comment 6 GCC Commits 2020-08-11 15:36:55 UTC
The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

https://gcc.gnu.org/g:18095be17013444d9e91aa8c73ebe5cf58ccb3f1

commit r11-2653-g18095be17013444d9e91aa8c73ebe5cf58ccb3f1
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Aug 11 16:16:22 2020 +0100

    libstdc++: Make Networking TS work without gthreads [PR 89760]
    
    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.
Comment 7 GCC Commits 2020-08-11 15:59:46 UTC
The releases/gcc-10 branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

https://gcc.gnu.org/g:afd61b43808cebe0882cdf13dcdd766cae4ce4e7

commit r10-8605-gafd61b43808cebe0882cdf13dcdd766cae4ce4e7
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Aug 11 16:55:01 2020 +0100

    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.
Comment 8 GCC Commits 2020-08-11 16:23:49 UTC
The releases/gcc-9 branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

https://gcc.gnu.org/g:f7a449909a53ec6e4ea13f197f86ed1aed7de560

commit r9-8802-gf7a449909a53ec6e4ea13f197f86ed1aed7de560
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Aug 11 16:55:01 2020 +0100

    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/timer/waitable/cons.cc: Likewise.
            * testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
            * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
Comment 9 Jonathan Wakely 2020-08-11 16:24:14 UTC
Should be fixed on all relevant branches.