summaryrefslogtreecommitdiff
path: root/libgomp/plugin
diff options
context:
space:
mode:
authorChung-Lin Tang <cltang@codesourcery.com>2022-01-04 17:26:23 +0800
committerChung-Lin Tang <cltang@codesourcery.com>2022-01-04 17:26:23 +0800
commitfbb592407c9dd244b4cea086cbb90d7bd0bf60bb (patch)
treea81523145a067c65cf2697e2ec9e7012b1b46e3e /libgomp/plugin
parent1a15451da14410bf2bd6ec8f5baba1014638c67a (diff)
downloadgcc-fbb592407c9dd244b4cea086cbb90d7bd0bf60bb.tar.gz
libgomp: Fix GOMP_DEVICE_NUM_VAR stringification during offload image load
In the patch that implemented omp_get_device_num(), there was an error where the stringification of GOMP_DEVICE_NUM_VAR, which is the macro expanding to the actual symbol used, was erroneously using the STRINGX() macro in the libgomp offload image symbol search, and expansion of the variable name string through the additional layer of preprocessor symbol was not properly achieved. This patch fixes this by changing to properly use XSTRING(), also from include/symcat.h. libgomp/ChangeLog: * plugin/plugin-gcn.c (GOMP_OFFLOAD_load_image): Change uses of STRINGX into XSTRING when looking for GOMP_DEVICE_NUM_VAR in offload image. * plugin/plugin-nvptx.c (GOMP_OFFLOAD_load_image): Likewise.
Diffstat (limited to 'libgomp/plugin')
-rw-r--r--libgomp/plugin/plugin-gcn.c4
-rw-r--r--libgomp/plugin/plugin-nvptx.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/libgomp/plugin/plugin-gcn.c b/libgomp/plugin/plugin-gcn.c
index 8ffd3d1a2cf..d0f05b28bf3 100644
--- a/libgomp/plugin/plugin-gcn.c
+++ b/libgomp/plugin/plugin-gcn.c
@@ -3401,12 +3401,12 @@ GOMP_OFFLOAD_load_image (int ord, unsigned version, const void *target_data,
}
}
- GCN_DEBUG ("Looking for variable %s\n", STRINGX (GOMP_DEVICE_NUM_VAR));
+ GCN_DEBUG ("Looking for variable %s\n", XSTRING (GOMP_DEVICE_NUM_VAR));
hsa_status_t status;
hsa_executable_symbol_t var_symbol;
status = hsa_fns.hsa_executable_get_symbol_fn (agent->executable, NULL,
- STRINGX (GOMP_DEVICE_NUM_VAR),
+ XSTRING (GOMP_DEVICE_NUM_VAR),
agent->id, 0, &var_symbol);
if (status == HSA_STATUS_SUCCESS)
{
diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c
index f32276b0a18..b4f0a84d77a 100644
--- a/libgomp/plugin/plugin-nvptx.c
+++ b/libgomp/plugin/plugin-nvptx.c
@@ -1353,7 +1353,7 @@ GOMP_OFFLOAD_load_image (int ord, unsigned version, const void *target_data,
size_t device_num_varsize;
CUresult r = CUDA_CALL_NOCHECK (cuModuleGetGlobal, &device_num_varptr,
&device_num_varsize, module,
- STRINGX (GOMP_DEVICE_NUM_VAR));
+ XSTRING (GOMP_DEVICE_NUM_VAR));
if (r == CUDA_SUCCESS)
{
targ_tbl->start = (uintptr_t) device_num_varptr;