diff mbox series

libgomp testsuite: Don't amend 'LD_LIBRARY_PATH' for system-provided HSA Runtime library (was: [PATCH 1/4] Remove build dependence on HSA run-time)

Message ID 875ynma7ps.fsf@euler.schwinge.homeip.net
State New
Headers show
Series libgomp testsuite: Don't amend 'LD_LIBRARY_PATH' for system-provided HSA Runtime library (was: [PATCH 1/4] Remove build dependence on HSA run-time) | expand

Commit Message

Thomas Schwinge April 6, 2022, 9:20 a.m. UTC
Hi!

On 2021-01-14T15:50:23+0100, I wrote:
> I'm raising here an issue with HSA libgomp plugin code changes from a
> while ago.  While HSA is now no longer relevant for GCC master branch,
> the same code has also been copied into the GCN libgomp plugin.

Here is another small clean-up patch (to enable further clean-up):

> This is commit b8d89b03db5f212919e4571671ebb4f5f8b1e19d (r242749) "Remove
> build dependence on HSA run-time":
>
> On 2016-11-22T14:27:44+0100, Martin Jambor <mjambor@suse.cz> wrote:
>> --- a/libgomp/plugin/configfrag.ac
>> +++ b/libgomp/plugin/configfrag.ac
>
>> @@ -195,8 +183,8 @@ if test x"$enable_offload_targets" != x; then
>>              tgt_name=hsa
>>              PLUGIN_HSA=$tgt
>>              PLUGIN_HSA_CPPFLAGS=$HSA_RUNTIME_CPPFLAGS
>> -            PLUGIN_HSA_LDFLAGS="$HSA_RUNTIME_LDFLAGS $HSA_KMT_LDFLAGS"
>> -            PLUGIN_HSA_LIBS="-lhsa-runtime64 -lhsakmt"
>> +            PLUGIN_HSA_LDFLAGS="$HSA_RUNTIME_LDFLAGS"
>> +            PLUGIN_HSA_LIBS="-ldl"
>
> So this switched from directly linking against 'libhsa-runtime64.so' to a
> 'libdl'-based runtime linking variant.

(Not intending to change anything regarding that.)

> For avoidance of doubt, [an earlier] change doesn't affect (build-tree) testsuite
> usage, where we have:
>
>     libgomp/testsuite/libgomp-test-support.exp.in:set hsa_runtime_lib "@HSA_RUNTIME_LIB@"
>
>     libgomp/testsuite/lib/libgomp.exp:          append always_ld_library_path ":$hsa_runtime_lib"

But, as I argue in the attached "libgomp testsuite: Don't amend
'LD_LIBRARY_PATH' for system-provided HSA Runtime library", we should
actually clean this up as well.  OK to push that?


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

Comments

Jakub Jelinek April 6, 2022, 9:24 a.m. UTC | #1
On Wed, Apr 06, 2022 at 11:20:47AM +0200, Thomas Schwinge wrote:
> However, the libgomp GCN plugin is unconditionally built against the
> GCC-shipped 'include/hsa*.h' header files, and at run time does
> 'dlopen("libhsa-runtime64.so.1")', so there is no system-provided HSA Runtime
> library "used for builing".  It thus doesn't make sense to amend
> 'LD_LIBRARY_PATH' for system-provided HSA Runtime library.

But perhaps having some other hsa_runtime_lib path in LD_LIBRARY_PATH
allows that dlopen to succeed if libhsa-runtime64.so.1 isn't installed
in the standard searched directories?

	Jakub
Thomas Schwinge April 6, 2022, 9:54 a.m. UTC | #2
Hi Jakub!

On 2022-04-06T11:24:17+0200, Jakub Jelinek <jakub@redhat.com> wrote:
> On Wed, Apr 06, 2022 at 11:20:47AM +0200, Thomas Schwinge wrote:
>> However, the libgomp GCN plugin is unconditionally built against the
>> GCC-shipped 'include/hsa*.h' header files, and at run time does
>> 'dlopen("libhsa-runtime64.so.1")', so there is no system-provided HSA Runtime
>> library "used for builing".  It thus doesn't make sense to amend
>> 'LD_LIBRARY_PATH' for system-provided HSA Runtime library.
>
> But perhaps having some other hsa_runtime_lib path in LD_LIBRARY_PATH
> allows that dlopen to succeed if libhsa-runtime64.so.1 isn't installed
> in the standard searched directories?

Yes, but that's then standard test harness set up (for example, set
'LD_LIBRARY_PATH' environment variable accordingly) for 'make check'.
In particular, that won't be different for build-tree vs. installed
testing, and shouldn't be done conditional to 'if { $blddir != "" }' in
'libgomp/testsuite/lib/libgomp.exp:libgomp_init'.


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
diff mbox series

Patch

From 364d01339883f5276ef09d68a5d9a2e0010ab641 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Wed, 6 Apr 2022 10:39:56 +0200
Subject: [PATCH] libgomp testsuite: Don't amend 'LD_LIBRARY_PATH' for
 system-provided HSA Runtime library

This is only active if GCC is 'configure'd with '--with-hsa-runtime=[...]' or
'--with-hsa-runtime-lib=[...]' -- which nobody really is doing, as far as I can
tell.

'libgomp/testsuite/lib/libgomp.exp:libgomp_init' states:

    # For build-tree testing, also consider the library paths used for builing.
    # For installed testing, we assume all that to be provided in the sysroot.
    if { $blddir != "" } {
        [...]
        global hsa_runtime_lib
        if { $hsa_runtime_lib != "" } {
            append always_ld_library_path ":$hsa_runtime_lib"
        }
    }

However, the libgomp GCN plugin is unconditionally built against the
GCC-shipped 'include/hsa*.h' header files, and at run time does
'dlopen("libhsa-runtime64.so.1")', so there is no system-provided HSA Runtime
library "used for builing".  It thus doesn't make sense to amend
'LD_LIBRARY_PATH' for system-provided HSA Runtime library.

	libgomp/
	* testsuite/lib/libgomp.exp (libgomp_init): Don't
	'append always_ld_library_path ":$hsa_runtime_lib"'.
	* testsuite/libgomp-test-support.exp.in (hsa_runtime_lib): Don't set.
---
 libgomp/testsuite/lib/libgomp.exp             | 4 ----
 libgomp/testsuite/libgomp-test-support.exp.in | 1 -
 2 files changed, 5 deletions(-)

diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp
index 8c5ecfff0ac..0aaa58f19c5 100644
--- a/libgomp/testsuite/lib/libgomp.exp
+++ b/libgomp/testsuite/lib/libgomp.exp
@@ -202,10 +202,6 @@  proc libgomp_init { args } {
 	    lappend ALWAYS_CFLAGS "additional_flags=-L$cuda_driver_lib"
 	    append always_ld_library_path ":$cuda_driver_lib"
 	}
-	global hsa_runtime_lib
-	if { $hsa_runtime_lib != "" } {
-	    append always_ld_library_path ":$hsa_runtime_lib"
-	}
     }
 
     # We use atomic operations in the testcases to validate results.
diff --git a/libgomp/testsuite/libgomp-test-support.exp.in b/libgomp/testsuite/libgomp-test-support.exp.in
index 98fb442b537..3c88d1d5a62 100644
--- a/libgomp/testsuite/libgomp-test-support.exp.in
+++ b/libgomp/testsuite/libgomp-test-support.exp.in
@@ -1,6 +1,5 @@ 
 set cuda_driver_include "@CUDA_DRIVER_INCLUDE@"
 set cuda_driver_lib "@CUDA_DRIVER_LIB@"
-set hsa_runtime_lib "@HSA_RUNTIME_LIB@"
 
 set offload_plugins "@offload_plugins@"
 set offload_targets "@offload_targets@"
-- 
2.35.1