aboutsummaryrefslogtreecommitdiff
path: root/libgomp
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@baylibre.com>2024-03-07 12:31:52 +0100
committerThomas Schwinge <tschwinge@baylibre.com>2024-03-08 16:35:28 +0100
commitab70addf560e18210d238edfd605fc91fcce9df1 (patch)
tree04ca8837a6024d228ce907bda58faa9dd8cfbd87 /libgomp
parent5119c7927c70b02ab9768b30f40564480f556432 (diff)
downloadgcc-ab70addf560e18210d238edfd605fc91fcce9df1.zip
gcc-ab70addf560e18210d238edfd605fc91fcce9df1.tar.gz
gcc-ab70addf560e18210d238edfd605fc91fcce9df1.tar.bz2
GCN, nvptx: Fatal error for missing symbols in 'libhsa-runtime64.so.1', 'libcuda.so.1'
If 'libhsa-runtime64.so.1', 'libcuda.so.1' are not available, the corresponding libgomp plugin/device gets disabled, as before. But if they are available, report any inconsistencies such as missing symbols, similar to how we fail in presence of other issues during device initialization. libgomp/ * plugin/plugin-gcn.c (init_hsa_runtime_functions): Fatal error for missing symbols. * plugin/plugin-nvptx.c (init_cuda_lib): Likewise.
Diffstat (limited to 'libgomp')
-rw-r--r--libgomp/plugin/plugin-gcn.c3
-rw-r--r--libgomp/plugin/plugin-nvptx.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/libgomp/plugin/plugin-gcn.c b/libgomp/plugin/plugin-gcn.c
index 2771123..4b7ab5e 100644
--- a/libgomp/plugin/plugin-gcn.c
+++ b/libgomp/plugin/plugin-gcn.c
@@ -1382,9 +1382,10 @@ init_hsa_runtime_functions (void)
#define DLSYM_FN(function) \
hsa_fns.function##_fn = dlsym (handle, #function); \
if (hsa_fns.function##_fn == NULL) \
- return false;
+ GOMP_PLUGIN_fatal ("'%s' is missing '%s'", hsa_runtime_lib, #function);
#define DLSYM_OPT_FN(function) \
hsa_fns.function##_fn = dlsym (handle, #function);
+
void *handle = dlopen (hsa_runtime_lib, RTLD_LAZY);
if (handle == NULL)
return false;
diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c
index c04c3ac..2bc7b85 100644
--- a/libgomp/plugin/plugin-nvptx.c
+++ b/libgomp/plugin/plugin-nvptx.c
@@ -126,7 +126,7 @@ init_cuda_lib (void)
# define CUDA_ONE_CALL_1(call, allow_null) \
cuda_lib.call = dlsym (h, #call); \
if (!allow_null && cuda_lib.call == NULL) \
- return false;
+ GOMP_PLUGIN_fatal ("'%s' is missing '%s'", cuda_runtime_lib, #call);
#include "cuda-lib.def"
# undef CUDA_ONE_CALL
# undef CUDA_ONE_CALL_1