From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id D7EAF3858C54 for ; Fri, 12 May 2023 08:27:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D7EAF3858C54 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.99,269,1677571200"; d="scan'208,223";a="5024162" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 12 May 2023 00:27:38 -0800 IronPort-SDR: IzJwH2QDPmymmoQT7VOqlNJazRDCwHO6UMc3ob/9Pl4z7D6gGGRjDzFtPLjtdh9iO2vN57+3mN wlfdc3GdbqwsEw9YWS6q5OJg/QjOKXYexJAHl7SqawlOoz9il1GSeqsD0C6adFtk63wev8e/Qv l1qiQE0hd7Qam7ALyqtSyG3UYE+67VOvpQ2wMaqJUJouSEpcRR+9KlAOfBTs1K6GqKMZlToRbA kyy4fByGsY7x1iwl/RSFxy21dTIB/QsAZtKRi4Bvl41Sco4xsxpUtKRLiIVgzrcnWde0mSXsfs ws4= From: Thomas Schwinge To: CC: Mike Stump , Jakub Jelinek , Tobias Burnus , Rainer Orth Subject: libgomp testsuite: Have each '*.exp' file specify the compiler to use [PR91884] (was: libgomp testsuite: (not) using a specific driver for C++, Fortran?) In-Reply-To: References: <87h9z5wd1z.fsf@schwinge.name> <87y4rrrwnc.fsf@schwinge.name> User-Agent: Notmuch/0.29.3+94~g74c3f1b (https://notmuchmail.org) Emacs/28.2 (x86_64-pc-linux-gnu) Date: Fri, 12 May 2023 10:27:29 +0200 Message-ID: <87bkiq9cpa.fsf@euler.schwinge.homeip.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-15.mgc.mentorg.com (139.181.222.15) To svr-ies-mbx-10.mgc.mentorg.com (139.181.222.10) X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --=-=-= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 wrote: > On Nov 4, 2014, at 4:13 AM, Thomas Schwinge wro= te: >> 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 wha= t >>> would happen if using the gfortran driver to build (which is what a use= r >>> would be doing -- which we should replicate as much as possible at leas= t >>> 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 th= e >>> 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=E2=80=99t 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, . > 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 [PR9= 1884]" ("..., which is still 'GCC_UNDER_TEST' for all of them"), see attached. Gr=C3=BC=C3=9Fe Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename="0001-libgomp-testsuite-Have-each-.exp-file-specify-the-co.patch" >From 1b2c8132495435dd4455a1c79e5abbd88073c754 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge 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 --=-=-=--