Bug 96718

Summary: 25_algorithms/pstl/feature_test-3.cc has excess error
Product: gcc Reporter: seurer
Component: libstdc++Assignee: Jonathan Wakely <redi>
Status: RESOLVED FIXED    
Severity: normal CC: bergner
Priority: P3    
Version: 11.0   
Target Milestone: 10.3   
Host: powerpc64le-linux-gnu Target: powerpc64le-linux-gnu
Build: powerpc64le-linux-gnu Known to work:
Known to fail: Last reconfirmed: 2020-08-20 00:00:00

Description seurer 2020-08-19 22:29:01 UTC
g:d367f5fcb579d21c3093cf5c464f5787fe584a1d, r11-2743

Executing on host: /home/seurer/gcc/git/build/gcc-test/./gcc/xg++ -shared-libgcc -B/home/seurer/gcc/git/build/gcc-test/./gcc -nostdinc++ -L/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/src -L/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/src/.libs -L/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -B/home/seurer/gcc/git/install/gcc-test/powerpc64le-unknown-linux-gnu/bin/ -B/home/seurer/gcc/git/install/gcc-test/powerpc64le-unknown-linux-gnu/lib/ -isystem /home/seurer/gcc/git/install/gcc-test/powerpc64le-unknown-linux-gnu/include -isystem /home/seurer/gcc/git/install/gcc-test/powerpc64le-unknown-linux-gnu/sys-include -B/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/./libstdc++-v3/src/.libs -fmessage-length=0 -fno-show-column -ffunction-sections -fdata-sections -g -O2 -D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++ -I/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/powerpc64le-unknown-linux-gnu -I/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/libsupc++ -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/include/backward -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/testsuite/util /home/seurer/gcc/git/gcc-test/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc    -std=gnu++17 -fdiagnostics-plain-output -E -o feature_test-3.i    (timeout = 600)
spawn -ignore SIGHUP /home/seurer/gcc/git/build/gcc-test/./gcc/xg++ -shared-libgcc -B/home/seurer/gcc/git/build/gcc-test/./gcc -nostdinc++ -L/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/src -L/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/src/.libs -L/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -B/home/seurer/gcc/git/install/gcc-test/powerpc64le-unknown-linux-gnu/bin/ -B/home/seurer/gcc/git/install/gcc-test/powerpc64le-unknown-linux-gnu/lib/ -isystem /home/seurer/gcc/git/install/gcc-test/powerpc64le-unknown-linux-gnu/include -isystem /home/seurer/gcc/git/install/gcc-test/powerpc64le-unknown-linux-gnu/sys-include -B/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/./libstdc++-v3/src/.libs -fmessage-length=0 -fno-show-column -ffunction-sections -fdata-sections -g -O2 -D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++ -I/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/powerpc64le-unknown-linux-gnu -I/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/libsupc++ -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/include/backward -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/testsuite/util /home/seurer/gcc/git/gcc-test/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc -std=gnu++17 -fdiagnostics-plain-output -E -o feature_test-3.i
In file included from /home/seurer/gcc/git/gcc-test/libstdc++-v3/include/pstl/parallel_backend.h:16,
                 from /home/seurer/gcc/git/gcc-test/libstdc++-v3/include/pstl/algorithm_impl.h:22,
                 from /home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/pstl/glue_execution_defs.h:50,
                 from /home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/execution:32,
                 from /home/seurer/gcc/git/gcc-test/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc:21:
/home/seurer/gcc/git/gcc-test/libstdc++-v3/include/pstl/parallel_backend_tbb.h:28: error: #error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.
compiler exited with status 1
FAIL: 25_algorithms/pstl/feature_test-3.cc (test for excess errors)
Excess errors:
/home/seurer/gcc/git/gcc-test/libstdc++-v3/include/pstl/parallel_backend_tbb.h:28: error: #error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.

testcase /home/seurer/gcc/git/gcc-test/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp completed in 14 seconds

		=== libstdc++ Summary ===

# of unexpected failures	1
Comment 1 seurer 2020-08-19 22:58:13 UTC
Sorry, git bisect lead me astray.  I will reopen once I narrow it down to the actual failing revision.
Comment 2 seurer 2020-08-20 15:41:26 UTC
Ignore the above mention of a specific revision.  This always fails for me even going back to r11-1 on one (just the one) of my power 8 LE test machines.  I thought it might be something to do with the older binutils 2.27 version on that system but I tested with binutils 2.35 and it does the same thing.

Anyone know what might be going on?
Comment 3 Jonathan Wakely 2020-08-21 09:02:32 UTC
I forgot to add this to that test:

// { dg-require-effective-target tbb-backend }
Comment 4 GCC Commits 2020-08-21 11:01:09 UTC
The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

https://gcc.gnu.org/g:988fb2f597d67cdf3603654372c020c28448441f

commit r11-2797-g988fb2f597d67cdf3603654372c020c28448441f
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Aug 21 12:01:05 2020 +0100

    libstdc++: Skip PSTL tests when installed TBB is too old [PR 96718]
    
    These tests do not actually require TBB, because they only inspect the
    feature test macros present in the headers. However, if TBB is installed
    then its headers will be included, and the version will be checked. If
    the version is too old, compilation fails due to a #error directive.
    
    This change disables the tests if TBB is not present, so that we skip
    them instead of failing.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/96718
            * testsuite/25_algorithms/pstl/feature_test-2.cc: Require
            tbb-backend effective target.
            * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
            * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
            * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
Comment 5 GCC Commits 2020-08-21 11:11:09 UTC
The releases/gcc-10 branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

https://gcc.gnu.org/g:098a67ff74cca5f17ed630d870adf364c47031f6

commit r10-8652-g098a67ff74cca5f17ed630d870adf364c47031f6
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Aug 21 12:01:05 2020 +0100

    libstdc++: Skip PSTL tests when installed TBB is too old [PR 96718]
    
    These tests do not actually require TBB, because they only inspect the
    feature test macros present in the headers. However, if TBB is installed
    then its headers will be included, and the version will be checked. If
    the version is too old, compilation fails due to a #error directive.
    
    This change disables the tests if TBB is not present, so that we skip
    them instead of failing.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/96718
            * testsuite/25_algorithms/pstl/feature_test-2.cc: Require
            tbb-backend effective target.
            * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
            * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
            * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
    
    (cherry picked from commit 988fb2f597d67cdf3603654372c020c28448441f)
Comment 6 Jonathan Wakely 2020-08-21 11:12:18 UTC
This should be fixed on master and gcc-10 now, please reopen if you still see it (I didn't change one of the related tests, but I think that one shouldn't be failing).