From 9e28b107796b79f09227de541543466a146162be Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 6 Aug 2018 22:13:46 +0000 Subject: [PATCH] [libgomp, nvptx] Minimize lifetime of CUDA_ONE_CALL defines This patch makes sure that the lifetimes of the CUDA_ONE_CALL macro (which is defined twice in plugin-nvptx.c) are minimized, to make it obvious that the definitions are used only in the lib-cuda.def include. Build on x86_64 with nvptx accelerator and reg-tested libgomp. 2018-08-07 Tom de Vries * plugin/plugin-nvptx.c (struct cuda_lib_s, init_cuda_lib): Put CUDA_ONE_CALL defines right before the cuda-lib.def include, and the corresponding undefs right after. From-SVN: r263345 --- libgomp/ChangeLog | 6 ++++++ libgomp/plugin/plugin-nvptx.c | 14 +++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 0742c78c9cc..d96ab1f35f8 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,9 @@ +2018-08-07 Tom de Vries + + * plugin/plugin-nvptx.c (struct cuda_lib_s, init_cuda_lib): Put + CUDA_ONE_CALL defines right before the cuda-lib.def include, and the + corresponding undefs right after. + 2018-08-04 Tom de Vries * plugin/configfrag.ac: For --without-cuda-driver, set diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c index cc465b4addb..2e72a6379eb 100644 --- a/libgomp/plugin/plugin-nvptx.c +++ b/libgomp/plugin/plugin-nvptx.c @@ -52,10 +52,13 @@ #if PLUGIN_NVPTX_DYNAMIC # include -# define CUDA_ONE_CALL(call) \ - __typeof (call) *call; struct cuda_lib_s { + +# define CUDA_ONE_CALL(call) \ + __typeof (call) *call; #include "cuda-lib.def" +# undef CUDA_ONE_CALL + } cuda_lib; /* -1 if init_cuda_lib has not been called yet, false @@ -74,18 +77,19 @@ init_cuda_lib (void) cuda_lib_inited = false; if (h == NULL) return false; -# undef CUDA_ONE_CALL + # define CUDA_ONE_CALL(call) CUDA_ONE_CALL_1 (call) # define CUDA_ONE_CALL_1(call) \ cuda_lib.call = dlsym (h, #call); \ if (cuda_lib.call == NULL) \ return false; #include "cuda-lib.def" +# undef CUDA_ONE_CALL +# undef CUDA_ONE_CALL_1 + cuda_lib_inited = true; return true; } -# undef CUDA_ONE_CALL -# undef CUDA_ONE_CALL_1 # define CUDA_CALL_PREFIX cuda_lib. #else # define CUDA_CALL_PREFIX -- 2.30.2