public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Thomas Schwinge <thomas@codesourcery.com>
To: <gcc-patches@gcc.gnu.org>
Cc: Mike Stump <mikestump@comcast.net>,
	Jakub Jelinek <jakub@redhat.com>,
	Tobias Burnus <tobias@codesourcery.com>,
	Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Subject: libgomp testsuite: Generalize 'lang_library_path' into a list of 'lang_library_paths' (was: libgomp testsuite: (not) using a specific driver for C++, Fortran?)
Date: Fri, 12 May 2023 09:26:32 +0200	[thread overview]
Message-ID: <87h6si9fiv.fsf@euler.schwinge.homeip.net> (raw)
In-Reply-To: <D735408D-F684-4083-920D-F47765B5B6A8@comcast.net>

[-- Attachment #1: Type: text/plain, Size: 977 bytes --]

Hi!

On 2014-11-04T10:31:37-0800, Mike Stump <mikestump@comcast.net> wrote:
> On Nov 4, 2014, at 4:13 AM, Thomas Schwinge <thomas@codesourcery.com> wrote:
>> On Wed, 15 Oct 2014 17:46:48 +0200, I wrote:
>>> [...]
>>>
>>> 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.

Rebased, adjusted, retested another 2014 clean-up patch; pushed to
master branch commit b794dc779382bb9e645ccc10b4447d4e411f6000
"libgomp testsuite: Generalize 'lang_library_path' into a list of 'lang_library_paths'"
("..., and use that for libquadmath, too"), 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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-libgomp-testsuite-Generalize-lang_library_path-into-.patch --]
[-- Type: text/x-diff, Size: 11361 bytes --]

From b794dc779382bb9e645ccc10b4447d4e411f6000 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Sun, 2 Nov 2014 17:49:31 +0100
Subject: [PATCH] libgomp testsuite: Generalize 'lang_library_path' into a list
 of 'lang_library_paths'

..., and use that for libquadmath, too.

	libgomp/
	* testsuite/lib/libgomp.exp (libgomp_target_compile): Generalize
	'lang_library_path' into a list of 'lang_library_paths'.
	* testsuite/libgomp.c++/c++.exp: Adjust.
	* testsuite/libgomp.oacc-c++/c++.exp: Likewise.
	* testsuite/libgomp.fortran/fortran.exp: Adjust.  Use that for
	libquadmath, too.
	* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
---
 libgomp/testsuite/lib/libgomp.exp             | 14 ++++----
 libgomp/testsuite/libgomp.c++/c++.exp         | 14 ++++----
 libgomp/testsuite/libgomp.fortran/fortran.exp | 33 +++++++++--------
 libgomp/testsuite/libgomp.oacc-c++/c++.exp    | 14 ++++----
 .../libgomp.oacc-fortran/fortran.exp          | 35 +++++++++++--------
 5 files changed, 63 insertions(+), 47 deletions(-)

diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp
index 2295fbbbd417..9fea31d80672 100644
--- a/libgomp/testsuite/lib/libgomp.exp
+++ b/libgomp/testsuite/lib/libgomp.exp
@@ -241,12 +241,14 @@ proc libgomp_target_compile { source dest type options } {
 	lappend options "additional_flags=${lang_include_flags}"
     }
 
-    global lang_library_path
-    if { [info exists lang_library_path] } {
-	# Some targets use libgfortran.a%s in their specs, so they need
-	# a -B option for uninstalled testing.
-	lappend options "additional_flags=-B${blddir}/${lang_library_path}"
-	lappend options "ldflags=-L${blddir}/${lang_library_path}"
+    global lang_library_paths
+    if { [info exists lang_library_paths] } {
+	foreach lang_library_path $lang_library_paths {
+	    # targets that use lib[...].a%s in their specs need a -B option
+	    # for uninstalled testing.
+	    lappend options "additional_flags=-B${blddir}/${lang_library_path}"
+	    lappend options "ldflags=-L${blddir}/${lang_library_path}"
+	}
     }
     global lang_link_flags
     if { [info exists lang_link_flags] } {
diff --git a/libgomp/testsuite/libgomp.c++/c++.exp b/libgomp/testsuite/libgomp.c++/c++.exp
index 8307baf32fcf..1a1c3ee22252 100644
--- a/libgomp/testsuite/libgomp.c++/c++.exp
+++ b/libgomp/testsuite/libgomp.c++/c++.exp
@@ -2,14 +2,15 @@ load_lib libgomp-dg.exp
 load_gcc_lib gcc-dg.exp
 
 if { $blddir != "" } {
-    set lang_library_path "../libstdc++-v3/src/.libs"
+    set libstdc++_library_path "../libstdc++-v3/src/.libs"
     set shlib_ext [get_shlib_extension]
-    if { ![file exists "${blddir}/${lang_library_path}/libstdc++.a"]
-	 && ![file exists "${blddir}/${lang_library_path}/libstdc++.${shlib_ext}"] } {
+    if { ![file exists "${blddir}/${libstdc++_library_path}/libstdc++.a"]
+	 && ![file exists "${blddir}/${libstdc++_library_path}/libstdc++.${shlib_ext}"] } {
 	verbose -log "No libstdc++ library found, will not execute c++ tests"
-	unset lang_library_path
+	unset libstdc++_library_path
 	return
     }
+    lappend lang_library_paths ${libstdc++_library_path}
 } elseif { ![info exists GXX_UNDER_TEST] } {
     verbose -log "GXX_UNDER_TEST not defined, will not execute c++ tests"
     return
@@ -39,7 +40,7 @@ set tests [lsort [concat \
 
 set ld_library_path $always_ld_library_path
 if { $blddir != "" } {
-    append ld_library_path ":${blddir}/${lang_library_path}"
+    append ld_library_path ":${blddir}/${libstdc++_library_path}"
 }
 append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST]
 set_ld_library_path_env_vars
@@ -62,7 +63,8 @@ if [info exists lang_include_flags] then {
     unset lang_include_flags
 }
 if { $blddir != "" } {
-    unset lang_library_path
+    unset libstdc++_library_path
+    unset lang_library_paths
 }
 unset lang_link_flags
 
diff --git a/libgomp/testsuite/libgomp.fortran/fortran.exp b/libgomp/testsuite/libgomp.fortran/fortran.exp
index d98739c8c99d..9295bbae65dd 100644
--- a/libgomp/testsuite/libgomp.fortran/fortran.exp
+++ b/libgomp/testsuite/libgomp.fortran/fortran.exp
@@ -3,14 +3,23 @@ load_gcc_lib gcc-dg.exp
 load_gcc_lib gfortran-dg.exp
 
 if { $blddir != "" } {
-    set lang_library_path "../libgfortran/.libs"
+    set libgfortran_library_path "../libgfortran/.libs"
     set shlib_ext [get_shlib_extension]
-    if { ![file exists "${blddir}/${lang_library_path}/libgfortran.a"]
-	 && ![file exists "${blddir}/${lang_library_path}/libgfortran.${shlib_ext}"] } {
+    if { ![file exists "${blddir}/${libgfortran_library_path}/libgfortran.a"]
+	 && ![file exists "${blddir}/${libgfortran_library_path}/libgfortran.${shlib_ext}"] } {
         verbose -log "No libgfortran library found, will not execute fortran tests"
-	unset lang_library_path
+	unset libgfortran_library_path
 	return
     }
+    lappend lang_library_paths $libgfortran_library_path
+
+    set libquadmath_library_path "../libquadmath/.libs"
+    if { [file exists "${blddir}/${libquadmath_library_path}/libquadmath.a"]
+	 || [file exists "${blddir}/${libquadmath_library_path}/libquadmath.${shlib_ext}"] } {
+	lappend lang_library_paths $libquadmath_library_path
+    } else {
+	set libquadmath_library_path ""
+    }
 } elseif { ![info exists GFORTRAN_UNDER_TEST] } {
     verbose -log "GFORTRAN_UNDER_TEST not defined, will not execute fortran tests"
     return
@@ -32,18 +41,12 @@ set tests [lsort [find $srcdir/$subdir *.\[fF\]{,90,95,03,08}]]
 
 set ld_library_path $always_ld_library_path
 if { $blddir != "" } {
-    append ld_library_path ":${blddir}/${lang_library_path}"
+    append ld_library_path ":${blddir}/${libgfortran_library_path}"
 
-    set quadmath_library_path "../libquadmath/.libs"
-    if { [file exists "${blddir}/${quadmath_library_path}/libquadmath.a"]
-	 || [file exists "${blddir}/${quadmath_library_path}/libquadmath.${shlib_ext}"] } {
-	lappend ALWAYS_CFLAGS "ldflags=-L${blddir}/${quadmath_library_path}/"
-	# Allow for spec subsitution.
-	lappend ALWAYS_CFLAGS "additional_flags=-B${blddir}/${quadmath_library_path}/"
-	append ld_library_path ":${blddir}/${quadmath_library_path}"
+    if { $libquadmath_library_path != "" } {
+	append ld_library_path ":${blddir}/${libquadmath_library_path}"
 	append lang_link_flags " -lquadmath"
     }
-    unset quadmath_library_path
 } else {
     if { [check_no_compiler_messages has_libquadmath executable {
              int main() {return 0;}
@@ -62,7 +65,9 @@ gfortran-dg-runtest $tests "" ""
 if { $blddir != "" } {
     unset lang_source_re
     unset lang_include_flags
-    unset lang_library_path
+    unset libgfortran_library_path
+    unset libquadmath_library_path
+    unset lang_library_paths
 }
 unset lang_link_flags
 
diff --git a/libgomp/testsuite/libgomp.oacc-c++/c++.exp b/libgomp/testsuite/libgomp.oacc-c++/c++.exp
index 5e4f70493490..63d1d7650a20 100644
--- a/libgomp/testsuite/libgomp.oacc-c++/c++.exp
+++ b/libgomp/testsuite/libgomp.oacc-c++/c++.exp
@@ -12,14 +12,15 @@ proc check_effective_target_c++ { } {
 }
 
 if { $blddir != "" } {
-    set lang_library_path "../libstdc++-v3/src/.libs"
+    set libstdc++_library_path "../libstdc++-v3/src/.libs"
     set shlib_ext [get_shlib_extension]
-    if { ![file exists "${blddir}/${lang_library_path}/libstdc++.a"]
-	 && ![file exists "${blddir}/${lang_library_path}/libstdc++.${shlib_ext}"] } {
+    if { ![file exists "${blddir}/${libstdc++_library_path}/libstdc++.a"]
+	 && ![file exists "${blddir}/${libstdc++_library_path}/libstdc++.${shlib_ext}"] } {
         verbose -log "No libstdc++ library found, will not execute c++ tests"
-	unset lang_library_path
+	unset libstdc++_library_path
 	return
     }
+    lappend lang_library_paths ${libstdc++_library_path}
 } elseif { ![info exists GXX_UNDER_TEST] } {
     verbose -log "GXX_UNDER_TEST not defined, will not execute c++ tests"
     return
@@ -45,7 +46,7 @@ set tests [lsort [concat \
 
 set ld_library_path $always_ld_library_path
 if { $blddir != "" } {
-    append ld_library_path ":${blddir}/${lang_library_path}"
+    append ld_library_path ":${blddir}/${libstdc++_library_path}"
 }
 append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST]
 set_ld_library_path_env_vars
@@ -139,7 +140,8 @@ if [info exists lang_include_flags] then {
     unset lang_include_flags
 }
 if { $blddir != "" } {
-    unset lang_library_path
+    unset libstdc++_library_path
+    unset lang_library_paths
 }
 unset lang_link_flags
 
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp b/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
index a590558a1950..af0a4f7ff311 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
+++ b/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
@@ -5,14 +5,23 @@ load_gcc_lib gcc-dg.exp
 load_gcc_lib gfortran-dg.exp
 
 if { $blddir != "" } {
-    set lang_library_path "../libgfortran/.libs"
+    set libgfortran_library_path "../libgfortran/.libs"
     set shlib_ext [get_shlib_extension]
-    if { ![file exists "${blddir}/${lang_library_path}/libgfortran.a"]
-	 && ![file exists "${blddir}/${lang_library_path}/libgfortran.${shlib_ext}"] } {
+    if { ![file exists "${blddir}/${libgfortran_library_path}/libgfortran.a"]
+	 && ![file exists "${blddir}/${libgfortran_library_path}/libgfortran.${shlib_ext}"] } {
         verbose -log "No libgfortran library found, will not execute fortran tests"
-	unset lang_library_path
+	unset libgfortran_library_path
 	return
     }
+    lappend lang_library_paths $libgfortran_library_path
+
+    set libquadmath_library_path "../libquadmath/.libs"
+    if { [file exists "${blddir}/${libquadmath_library_path}/libquadmath.a"]
+	 || [file exists "${blddir}/${libquadmath_library_path}/libquadmath.${shlib_ext}"] } {
+	lappend lang_library_paths $libquadmath_library_path
+    } else {
+	set libquadmath_library_path ""
+    }
 } elseif { ![info exists GFORTRAN_UNDER_TEST] } {
     verbose -log "GFORTRAN_UNDER_TEST not defined, will not execute fortran tests"
     return
@@ -35,18 +44,12 @@ set tests [lsort [find $srcdir/$subdir *.\[fF\]{,90,95,03,08}]]
 
 set ld_library_path $always_ld_library_path
 if { $blddir != "" } {
-    append ld_library_path ":${blddir}/${lang_library_path}"
-
-    set quadmath_library_path "../libquadmath/.libs"
-    if { [file exists "${blddir}/${quadmath_library_path}/libquadmath.a"]
-	 || [file exists "${blddir}/${quadmath_library_path}/libquadmath.${shlib_ext}"] } {
-	lappend ALWAYS_CFLAGS "ldflags=-L${blddir}/${quadmath_library_path}/"
-	# Allow for spec subsitution.
-	lappend ALWAYS_CFLAGS "additional_flags=-B${blddir}/${quadmath_library_path}/"
-	append ld_library_path ":${blddir}/${quadmath_library_path}"
+    append ld_library_path ":${blddir}/${libgfortran_library_path}"
+
+    if { $libquadmath_library_path != "" } {
+	append ld_library_path ":${blddir}/${libquadmath_library_path}"
 	append lang_link_flags " -lquadmath"
     }
-    unset quadmath_library_path
 } else {
     if { [check_no_compiler_messages has_libquadmath executable {
              int main() {return 0;}
@@ -112,7 +115,9 @@ unset offload_target
 if { $blddir != "" } {
     unset lang_source_re
     unset lang_include_flags
-    unset lang_library_path
+    unset libgfortran_library_path
+    unset libquadmath_library_path
+    unset lang_library_paths
 }
 unset lang_link_flags
 
-- 
2.39.2


  parent reply	other threads:[~2023-05-12  7:26 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-15 15:52 libgomp testsuite: (not) using a specific driver for C++, Fortran? Thomas Schwinge
2014-11-04 12:14 ` Thomas Schwinge
2014-11-04 18:32   ` Mike Stump
2023-05-09 12:36     ` libgomp C++ testsuite: Don't compute 'blddir' twice (was: libgomp testsuite: (not) using a specific driver for C++, Fortran?) Thomas Schwinge
2023-05-09 12:39       ` libgomp testsuite: Only use 'blddir' if set (was: libgomp C++ testsuite: Don't compute 'blddir' twice (was: libgomp testsuite: (not) using a specific driver for C++, Fortran?)) Thomas Schwinge
2023-05-09 12:41         ` libgomp testsuite: Use 'lang_test_file_found' instead of 'lang_test_file' (was: libgomp testsuite: Only use 'blddir' if set (was: libgomp C++ testsuite: Don't compute 'blddir' twice (was: libgomp testsuite: (not) using a specific driver for C++, Fortran?))) Thomas Schwinge
2023-05-09 12:54     ` libgomp testsuite: Localize 'lang_[...]' etc. (was: libgomp testsuite: (not) using a specific driver for C++, Fortran?) Thomas Schwinge
2023-05-09 12:59       ` libgomp C++, Fortran testsuites: Resolve 'lang_test_file_found' first (was: libgomp testsuite: Localize 'lang_[...]' etc. (was: libgomp testsuite: (not) using a specific driver for C++, Fortran?)) Thomas Schwinge
2023-05-09 13:05         ` libgomp testsuite: Get rid of 'lang_test_file_found' (was: libgomp C++, Fortran testsuites: Resolve 'lang_test_file_found' first (was: libgomp testsuite: Localize 'lang_[...]' etc. (was: libgomp testsuite: (not) using a specific driver for C++, Fortran?))) Thomas Schwinge
2023-05-12  7:26     ` Thomas Schwinge [this message]
2023-05-12  8:27     ` libgomp testsuite: Have each '*.exp' file specify the compiler to use [PR91884] (was: libgomp testsuite: (not) using a specific driver for C++, Fortran?) Thomas Schwinge
2023-05-12  8:33       ` libgomp testsuite: As appropriate, use the 'gcc', 'g++', 'gfortran' driver [PR91884] (was: libgomp testsuite: Have each '*.exp' file specify the compiler to use [PR91884] (was: libgomp testsuite: (not) using a specific driver for C++, Fortran?)) Thomas Schwinge

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87h6si9fiv.fsf@euler.schwinge.homeip.net \
    --to=thomas@codesourcery.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    --cc=mikestump@comcast.net \
    --cc=ro@CeBiTec.Uni-Bielefeld.DE \
    --cc=tobias@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).