diff options
author | Tom de Vries <tdevries@suse.de> | 2020-09-22 07:51:58 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2020-09-22 13:38:00 +0200 |
commit | c0e9cee285e47f806227b22812b15ffea677d578 (patch) | |
tree | 248c9f4b8179683ea0e287e12cc560ff74e8340b | |
parent | 30957092db46d8798e632feefb5df634488dbb33 (diff) | |
download | gcc-c0e9cee285e47f806227b22812b15ffea677d578.zip gcc-c0e9cee285e47f806227b22812b15ffea677d578.tar.gz gcc-c0e9cee285e47f806227b22812b15ffea677d578.tar.bz2 |
[libgomp, nvptx] Print error log for link error
By running libgomp test-case libgomp.c/target-28.c with GOMP_NVPTX_PTXRW=w
(using a maintenance patch that adds support for this env var), we dump the
ptx in target-28.exe to file. By editing one ptx file to rename
gomp_nvptx_main to gomp_nvptx_main2 in both declaration and call, and
running with GOMP_NVPTX_PTXRW=r, we trigger a link error:
...
$ GOMP_NVPTX_PTXRW=r ./target-28.exe
libgomp: cuLinkComplete error: unknown error
...
The error is somewhat uninformative.
Fix this by dumping the error log returned by the failing cuda call, such
that we have instead:
...
$ GOMP_NVPTX_PTXRW=r ./target-28.exe
libgomp: Link error log error : \
Undefined reference to 'gomp_nvptx_main2' in ''
libgomp: cuLinkComplete error: unknown error
...
Build on x86_64 with nvptx accelerator, tested libgomp.
libgomp/ChangeLog:
* plugin/plugin-nvptx.c (link_ptx): Print elog if cuLinkComplete call
fails.
-rw-r--r-- | libgomp/plugin/plugin-nvptx.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c index 390804a..a63dd1a 100644 --- a/libgomp/plugin/plugin-nvptx.c +++ b/libgomp/plugin/plugin-nvptx.c @@ -701,6 +701,7 @@ link_ptx (CUmodule *module, const struct targ_ptx_obj *ptx_objs, if (r != CUDA_SUCCESS) { + GOMP_PLUGIN_error ("Link error log %s\n", &elog[0]); GOMP_PLUGIN_error ("cuLinkComplete error: %s", cuda_error (r)); return false; } |