Tested x86_64-linux, committed to trunk.

Thomas Rodgers writes:

>       * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
>       Add check for Thread Building Blocks 2018 or later.
>
> From bd3de7b67f184ed1387b63dc3bda1d12f7ebee04 Mon Sep 17 00:00:00 2001
> From: Thomas Rodgers <trodg...@redhat.com>
> Date: Wed, 24 Apr 2019 11:34:14 -0700
> Subject: [PATCH] Check TBB version in tbb-backed effective target check
>
>       * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
>       Add check for Thread Building Blocks 2018 or later.
> ---
>  libstdc++-v3/testsuite/lib/libstdc++.exp | 42 +++++++++++++-----------
>  1 file changed, 23 insertions(+), 19 deletions(-)
>
> diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp 
> b/libstdc++-v3/testsuite/lib/libstdc++.exp
> index d0efc90a1ba..c48b4d78bbb 100644
> --- a/libstdc++-v3/testsuite/lib/libstdc++.exp
> +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
> @@ -1607,25 +1607,29 @@ proc check_effective_target_random_device { } {
>  
>  # Return 1 if tbb parallel backend is available
>  proc check_effective_target_tbb-backend { } {
> -             global cxxflags
> -
> -             # Set up and preprocess a C++ test program that depends
> -             # on tbb
> -             set src tbb_backend[pid].cc
> -
> -             set f [open $src "w"]
> -             puts $f "#include <tbb/tbb.h>"
> -             close $f
> -             set lines [v3_target_compile $src /dev/null preprocess ""]
> -             file delete $src
> -
> -             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
> +    global cxxflags
> +
> +    # Set up and preprocess a C++ test program that depends
> +    # on tbb
> +    set src tbb_backend[pid].cc
> +
> +    set f [open $src "w"]
> +    puts $f "#include <tbb/tbb.h>"
> +    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"
> +    close $f
> +    
> +    set lines [v3_target_compile $src /dev/null preprocess ""]
> +    file delete $src
> +
> +    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 additional_prunes ""

Reply via email to