Commit 9e28b107 by Tom de Vries Committed by Tom de Vries

[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  <tdevries@suse.de>

	* 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
parent 611c75f0
2018-08-07 Tom de Vries <tdevries@suse.de>
* 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 <tdevries@suse.de>
* plugin/configfrag.ac: For --without-cuda-driver, set
......
......@@ -52,10 +52,13 @@
#if PLUGIN_NVPTX_DYNAMIC
# include <dlfcn.h>
# 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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment