Hi! The cleanup is done, now turn ourselves to the changes proper re PR91884 "libgomp testsuite: (not) using a specific driver for C++, Fortran":
On 2014-11-04T10:31:37-0800, Mike Stump <mikest...@comcast.net> wrote: > On Nov 4, 2014, at 4:13 AM, Thomas Schwinge <tho...@codesourcery.com> wrote: >> On Wed, 15 Oct 2014 17:46:48 +0200, I wrote: >>> No matter whether it's C, C++, or Fortran source code, the libgomp >>> testsuite always uses (for build-tree testing) gcc/xgcc, or (for >>> installed testing) GCC_UNDER_TEST. It doesn't make use of >>> GXX_UNDER_TEST, GFORTRAN_UNDER_TEST. To support the latter two >>> languages' needs, some -l[...] flags are then added via lang_link_flags. >>> For example, for Fortran this is -lgfortran. This is, however, not what >>> would happen if using the gfortran driver to build (which is what a user >>> would be doing -- which we should replicate as much as possible at least >>> for installed testing): the gfortran driver also adds -lquadmath, if >>> applicable. >>> >>> Now, I wonder why to re-invent all that in the libgomp testsuite, if the >>> respective driver already has that knowledge, via spec files, for >>> example? (Also, the regular GCC compiler tests, gcc/testsuite/, are >>> doing the right thing.) Why is libgomp testsuite implemented this way -- >>> just a legacy of the past, or is there a need for that (that I'm not >>> seeing)? >>> >>> [...] >>> >>> Am I on the right track with the following? >> >> Nobody commented, which also means nobody disagreed > > :-) > >> OK to commit all that to trunk? > > Ok, thanks. > Watch for any review points from the libgomp people, they might trickle a few > in. I don’t mean to cut short any review points from them. After Tobias in his 2019 "PR testsuite/91884 Add -lquadmath if available" again picked up my idea and parts of my 2014 patches (... but in the end settled for a "simpler" solution to the problem at hand), my original proposal also got an ACK from Rainer, <https://inbox.sourceware.org/ydd36g2jc7a....@cebitec.uni-bielefeld.de>. > Also, please watch for breakage. Always. :-) First, another "no change in behavior" new patch, loosely based on/extracted out of my earlier work. I'm posting it separately, but given that it's in line with my earlier work (just a separate step), I intend to push it soon, unless there are any objections, of course. "libgomp testsuite: Have each '*.exp' file specify the compiler to use [PR91884]" ("..., which is still 'GCC_UNDER_TEST' for all of them"), see attached. Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
>From 1b2c8132495435dd4455a1c79e5abbd88073c754 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tho...@codesourcery.com> Date: Wed, 10 May 2023 14:43:21 +0200 Subject: [PATCH] libgomp testsuite: Have each '*.exp' file specify the compiler to use [PR91884] ..., which is still 'GCC_UNDER_TEST' for all of them; no change in behavior. PR testsuite/91884 libgomp/ * testsuite/lib/libgomp.exp (libgomp_target_compile): Don't specify compiler. * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Specify compiler. * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise. * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise. * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS): Likewise. * testsuite/libgomp.oacc-c++/c++.exp (ALWAYS_CFLAGS): Likewise. * testsuite/libgomp.oacc-c/c.exp (ALWAYS_CFLAGS): Likewise. * testsuite/libgomp.oacc-fortran/fortran.exp (ALWAYS_CFLAGS): Likewise. --- libgomp/testsuite/lib/libgomp.exp | 5 ----- libgomp/testsuite/libgomp.c++/c++.exp | 10 +++++----- libgomp/testsuite/libgomp.c/c.exp | 2 ++ libgomp/testsuite/libgomp.fortran/fortran.exp | 1 + libgomp/testsuite/libgomp.graphite/graphite.exp | 1 + libgomp/testsuite/libgomp.oacc-c++/c++.exp | 10 +++++----- libgomp/testsuite/libgomp.oacc-c/c.exp | 2 ++ libgomp/testsuite/libgomp.oacc-fortran/fortran.exp | 1 + 8 files changed, 17 insertions(+), 15 deletions(-) diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp index 9fea31d8067..48c43e4a136 100644 --- a/libgomp/testsuite/lib/libgomp.exp +++ b/libgomp/testsuite/lib/libgomp.exp @@ -46,10 +46,6 @@ load_file libgomp-test-support.exp set dg-do-what-default run -# -# GCC_UNDER_TEST is the compiler under test. -# - set libgomp_compile_options "" # @@ -262,7 +258,6 @@ proc libgomp_target_compile { source dest type options } { lappend options "additional_flags=[libio_include_flags]" lappend options "timeout=[timeout_value]" - lappend options "compiler=$GCC_UNDER_TEST" set options [concat $libgomp_compile_options $options] diff --git a/libgomp/testsuite/libgomp.c++/c++.exp b/libgomp/testsuite/libgomp.c++/c++.exp index 1a1c3ee2225..4110ada7c46 100644 --- a/libgomp/testsuite/libgomp.c++/c++.exp +++ b/libgomp/testsuite/libgomp.c++/c++.exp @@ -16,6 +16,11 @@ if { $blddir != "" } { return } set lang_link_flags "-lstdc++" +# Switch into C++ mode. Otherwise, the 'libgomp.c-c++-common/*.c' +# files would be compiled as C files. +set SAVE_GCC_UNDER_TEST "$GCC_UNDER_TEST" +set GCC_UNDER_TEST "$GCC_UNDER_TEST -x c++" +lappend ALWAYS_CFLAGS "compiler=$GCC_UNDER_TEST" # If a testcase doesn't have special options, use these. if ![info exists DEFAULT_CFLAGS] then { @@ -28,11 +33,6 @@ dg-init # Turn on OpenMP. lappend ALWAYS_CFLAGS "additional_flags=-fopenmp" -# Switch into C++ mode. Otherwise, the libgomp.c-c++-common/*.c -# files would be compiled as C files. -set SAVE_GCC_UNDER_TEST "$GCC_UNDER_TEST" -set GCC_UNDER_TEST "$GCC_UNDER_TEST -x c++" - # Gather a list of all tests. set tests [lsort [concat \ [find $srcdir/$subdir *.C] \ diff --git a/libgomp/testsuite/libgomp.c/c.exp b/libgomp/testsuite/libgomp.c/c.exp index 0ee28ed723e..aae282478db 100644 --- a/libgomp/testsuite/libgomp.c/c.exp +++ b/libgomp/testsuite/libgomp.c/c.exp @@ -1,6 +1,8 @@ load_lib libgomp-dg.exp load_gcc_lib gcc-dg.exp +lappend ALWAYS_CFLAGS "compiler=$GCC_UNDER_TEST" + # If a testcase doesn't have special options, use these. if ![info exists DEFAULT_CFLAGS] then { set DEFAULT_CFLAGS "-O2" diff --git a/libgomp/testsuite/libgomp.fortran/fortran.exp b/libgomp/testsuite/libgomp.fortran/fortran.exp index 9295bbae65d..9aeebd3af7c 100644 --- a/libgomp/testsuite/libgomp.fortran/fortran.exp +++ b/libgomp/testsuite/libgomp.fortran/fortran.exp @@ -29,6 +29,7 @@ if { $blddir != "" } { set lang_include_flags "-fintrinsic-modules-path=${blddir}" } set lang_link_flags "-lgfortran -foffload=-lgfortran" +lappend ALWAYS_CFLAGS "compiler=$GCC_UNDER_TEST" # Initialize dg. dg-init diff --git a/libgomp/testsuite/libgomp.graphite/graphite.exp b/libgomp/testsuite/libgomp.graphite/graphite.exp index ff53a31272c..bc3a82d8804 100644 --- a/libgomp/testsuite/libgomp.graphite/graphite.exp +++ b/libgomp/testsuite/libgomp.graphite/graphite.exp @@ -25,6 +25,7 @@ if ![check_effective_target_fgraphite] { return } +lappend ALWAYS_CFLAGS "compiler=$GCC_UNDER_TEST" # Flags for force-parallel-*.c testcases. set PARALLEL_CFLAGS "-ansi -pedantic-errors -O2 \ -ftree-parallelize-loops=4 -floop-parallelize-all \ diff --git a/libgomp/testsuite/libgomp.oacc-c++/c++.exp b/libgomp/testsuite/libgomp.oacc-c++/c++.exp index 63d1d7650a2..70fb9da0ef4 100644 --- a/libgomp/testsuite/libgomp.oacc-c++/c++.exp +++ b/libgomp/testsuite/libgomp.oacc-c++/c++.exp @@ -26,6 +26,11 @@ if { $blddir != "" } { return } set lang_link_flags "-lstdc++" +# Switch into C++ mode. Otherwise, the 'libgomp.oacc-c-c++-common/*.c' +# files would be compiled as C files. +set SAVE_GCC_UNDER_TEST "$GCC_UNDER_TEST" +set GCC_UNDER_TEST "$GCC_UNDER_TEST -x c++" +lappend ALWAYS_CFLAGS "compiler=$GCC_UNDER_TEST" # Initialize dg. dg-init @@ -34,11 +39,6 @@ torture-init # Turn on OpenACC. lappend ALWAYS_CFLAGS "additional_flags=-fopenacc" -# Switch into C++ mode. Otherwise, the libgomp.oacc-c-c++-common/*.c -# files would be compiled as C files. -set SAVE_GCC_UNDER_TEST "$GCC_UNDER_TEST" -set GCC_UNDER_TEST "$GCC_UNDER_TEST -x c++" - # Gather a list of all tests. set tests [lsort [concat \ [find $srcdir/$subdir *.C] \ diff --git a/libgomp/testsuite/libgomp.oacc-c/c.exp b/libgomp/testsuite/libgomp.oacc-c/c.exp index ca61a82937a..8ca0c81687c 100644 --- a/libgomp/testsuite/libgomp.oacc-c/c.exp +++ b/libgomp/testsuite/libgomp.oacc-c/c.exp @@ -15,6 +15,8 @@ proc check_effective_target_c++ { } { dg-init torture-init +lappend ALWAYS_CFLAGS "compiler=$GCC_UNDER_TEST" + # Turn on OpenACC. lappend ALWAYS_CFLAGS "additional_flags=-fopenacc" diff --git a/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp b/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp index af0a4f7ff31..56dd9485339 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp +++ b/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp @@ -31,6 +31,7 @@ if { $blddir != "" } { set lang_include_flags "-fintrinsic-modules-path=${blddir}" } set lang_link_flags "-lgfortran -foffload=-lgfortran" +lappend ALWAYS_CFLAGS "compiler=$GCC_UNDER_TEST" # Initialize dg. dg-init -- 2.34.1