From f445f0f06cf6c5d44675a5c3aaeb54e7258a4e01 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 21 May 2019 14:50:41 +0100 Subject: [PATCH] PR libstdc++/90252 fix effective-target check for TBB PR libstdc++/90252 * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend): Use "additional_flags" to pass -ltbb to v3_target_compile command. Use check_v3_target_prop_cached to cache the result of the test. From-SVN: r271466 --- libstdc++-v3/ChangeLog | 5 +++ libstdc++-v3/testsuite/lib/libstdc++.exp | 51 ++++++++++++------------ 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 90708f98025..804bace5e03 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,10 @@ 2019-05-21 Jonathan Wakely + PR libstdc++/90252 + * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend): + Use "additional_flags" to pass -ltbb to v3_target_compile command. + Use check_v3_target_prop_cached to cache the result of the test. + * doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants. 2019-05-20 Thomas Rodgers diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp index 26f3d46e089..868a7cf7aec 100644 --- a/libstdc++-v3/testsuite/lib/libstdc++.exp +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp @@ -1581,34 +1581,33 @@ proc check_effective_target_random_device { } { # Return 1 if tbb parallel backend is available proc check_effective_target_tbb-backend { } { - global cxxflags + return [check_v3_target_prop_cached et_tbb { + # Set up and compile a C++ test program that depends on tbb + set src tbb_backend[pid].cc + set exe tbb_backend[pid].x - # Set up and preprocess a C++ test program that depends - # on tbb - set src tbb_backend[pid].cc - set exe tbb_backend[pid].x - - set f [open $src "w"] - puts $f "#include " - puts $f "#if TBB_INTERFACE_VERSION < 10000" - puts $f "# error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported." - puts $f "#endif" - puts $f "int main ()" - puts $f "{" - puts $f " return 0;" - puts $f "}" - close $f - - set lines [v3_target_compile $src $exe executable "-ltbb"] - file delete $src + set f [open $src "w"] + puts $f "#include " + puts $f "#if TBB_INTERFACE_VERSION < 10000" + puts $f "# error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported." + puts $f "#endif" + puts $f "int main ()" + puts $f "{" + puts $f " return 0;" + puts $f "}" + close $f - if [string match "" $lines] { - # No error message, preprocessing succeeded. - verbose "check_v3_tbb-backend: `1'" 2 - return 1 - } - verbose "check_v3_tbb-backend: `0'" 2 - return 0 + set lines [v3_target_compile $src $exe executable "additional_flags=-std=c++17 additional_flags=-ltbb"] + file delete $src + + if [string match "" $lines] { + # No error message, compilation succeeded. + verbose "check_v3_tbb-backend: `1'" 2 + return 1 + } + verbose "check_v3_tbb-backend: `0'" 2 + return 0 + }] } set additional_prunes ""