[libgomp, nvptx] Print error log for link error
authorTom de Vries <tdevries@suse.de>
Tue, 22 Sep 2020 05:51:58 +0000 (07:51 +0200)
committerTom de Vries <tdevries@suse.de>
Tue, 22 Sep 2020 11:38:00 +0000 (13:38 +0200)
commitc0e9cee285e47f806227b22812b15ffea677d578
tree248c9f4b8179683ea0e287e12cc560ff74e8340b
parent30957092db46d8798e632feefb5df634488dbb33
[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.
libgomp/plugin/plugin-nvptx.c