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)
Commit Message
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
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
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
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(-)
@@ -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.
@@ -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