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
This commit is contained in:
Jonathan Wakely 2019-05-21 14:50:41 +01:00 committed by Jonathan Wakely
parent 049f115abb
commit f445f0f06c
2 changed files with 30 additions and 26 deletions

View File

@ -1,5 +1,10 @@
2019-05-21 Jonathan Wakely <jwakely@redhat.com> 2019-05-21 Jonathan Wakely <jwakely@redhat.com>
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. * doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants.
2019-05-20 Thomas Rodgers <trodgers@redhat.com> 2019-05-20 Thomas Rodgers <trodgers@redhat.com>

View File

@ -1581,34 +1581,33 @@ proc check_effective_target_random_device { } {
# Return 1 if tbb parallel backend is available # Return 1 if tbb parallel backend is available
proc check_effective_target_tbb-backend { } { 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 set f [open $src "w"]
# on tbb puts $f "#include <tbb/tbb.h>"
set src tbb_backend[pid].cc puts $f "#if TBB_INTERFACE_VERSION < 10000"
set exe tbb_backend[pid].x puts $f "# error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported."
puts $f "#endif"
set f [open $src "w"] puts $f "int main ()"
puts $f "#include <tbb/tbb.h>" puts $f "{"
puts $f "#if TBB_INTERFACE_VERSION < 10000" puts $f " return 0;"
puts $f "# error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported." puts $f "}"
puts $f "#endif" close $f
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
if [string match "" $lines] { set lines [v3_target_compile $src $exe executable "additional_flags=-std=c++17 additional_flags=-ltbb"]
# No error message, preprocessing succeeded. file delete $src
verbose "check_v3_tbb-backend: `1'" 2
return 1 if [string match "" $lines] {
} # No error message, compilation succeeded.
verbose "check_v3_tbb-backend: `0'" 2 verbose "check_v3_tbb-backend: `1'" 2
return 0 return 1
}
verbose "check_v3_tbb-backend: `0'" 2
return 0
}]
} }
set additional_prunes "" set additional_prunes ""