From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1709) id BD6B33858430; Tue, 4 Jan 2022 09:31:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BD6B33858430 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Chung-Lin Tang To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/omp/gcc-11] libgomp: Fix GOMP_DEVICE_NUM_VAR stringification during offload image load X-Act-Checkin: gcc X-Git-Author: Chung-Lin Tang X-Git-Refname: refs/heads/devel/omp/gcc-11 X-Git-Oldrev: a0de41113042d78db435ad36080f4298ce3f82b4 X-Git-Newrev: b5435aab8658396c9209027007eed268fa9232f1 Message-Id: <20220104093156.BD6B33858430@sourceware.org> Date: Tue, 4 Jan 2022 09:31:56 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Jan 2022 09:31:56 -0000 https://gcc.gnu.org/g:b5435aab8658396c9209027007eed268fa9232f1 commit b5435aab8658396c9209027007eed268fa9232f1 Author: Chung-Lin Tang Date: Tue Jan 4 17:26:23 2022 +0800 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. (cherry picked from commit fbb592407c9dd244b4cea086cbb90d7bd0bf60bb) Diff: --- libgomp/plugin/plugin-gcn.c | 4 ++-- libgomp/plugin/plugin-nvptx.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libgomp/plugin/plugin-gcn.c b/libgomp/plugin/plugin-gcn.c index c760c172229..582c07929f9 100644 --- a/libgomp/plugin/plugin-gcn.c +++ b/libgomp/plugin/plugin-gcn.c @@ -3458,12 +3458,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 b7669cc1db2..61cf3ee639d 100644 --- a/libgomp/plugin/plugin-nvptx.c +++ b/libgomp/plugin/plugin-nvptx.c @@ -1382,7 +1382,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;