plugin-nvptx.c: Don't include dlfcn.h.

* plugin/plugin-nvptx.c: Don't include dlfcn.h.
	(cuda_errlist): Constify.
	(errmsg):  Move into ...
	(cuda_error): ... here.  Make smaller.
	(_XSTR, _STR): Delete.
	(cuda_synames): Delete.
	(verify_device_library): Delete.
	(nvptx_init): Don't call it.

From-SVN: r226539
This commit is contained in:
Nathan Sidwell 2015-08-04 00:40:18 +00:00 committed by Nathan Sidwell
parent 1f1833cce0
commit 9ebddeb045
2 changed files with 19 additions and 82 deletions

View file

@ -1,3 +1,14 @@
2015-08-03 Nathan Sidwell <nathan@codesourcery.com>
* plugin/plugin-nvptx.c: Don't include dlfcn.h.
(cuda_errlist): Constify.
(errmsg): Move into ...
(cuda_error): ... here. Make smaller.
(_XSTR, _STR): Delete.
(cuda_synames): Delete.
(verify_device_library): Delete.
(nvptx_init): Don't call it.
2015-07-28 Tom de Vries <tom@codesourcery.com>
* testsuite/libgomp.c/uns-outer-4.c: New test.

View file

@ -43,16 +43,15 @@
#include <stdint.h>
#include <string.h>
#include <stdio.h>
#include <dlfcn.h>
#include <unistd.h>
#include <assert.h>
#define ARRAYSIZE(X) (sizeof (X) / sizeof ((X)[0]))
static struct
static const struct
{
CUresult r;
char *m;
const char *m;
} cuda_errlist[]=
{
{ CUDA_ERROR_INVALID_VALUE, "invalid value" },
@ -109,9 +108,7 @@ static struct
{ CUDA_ERROR_UNKNOWN, "unknown" }
};
static char errmsg[128];
static char *
static const char *
cuda_error (CUresult r)
{
int i;
@ -119,12 +116,14 @@ cuda_error (CUresult r)
for (i = 0; i < ARRAYSIZE (cuda_errlist); i++)
{
if (cuda_errlist[i].r == r)
return &cuda_errlist[i].m[0];
return cuda_errlist[i].m;
}
sprintf (&errmsg[0], "unknown result code: %5d", r);
static char errmsg[30];
return &errmsg[0];
snprintf (errmsg, sizeof (errmsg), "unknown error code: %d", r);
return errmsg;
}
static unsigned int instantiated_devices = 0;
@ -353,74 +352,6 @@ static struct ptx_event *ptx_events;
static struct ptx_device **ptx_devices;
#define _XSTR(s) _STR(s)
#define _STR(s) #s
static struct _synames
{
char *n;
} cuda_symnames[] =
{
{ _XSTR (cuCtxCreate) },
{ _XSTR (cuCtxDestroy) },
{ _XSTR (cuCtxGetCurrent) },
{ _XSTR (cuCtxPushCurrent) },
{ _XSTR (cuCtxSynchronize) },
{ _XSTR (cuDeviceGet) },
{ _XSTR (cuDeviceGetAttribute) },
{ _XSTR (cuDeviceGetCount) },
{ _XSTR (cuEventCreate) },
{ _XSTR (cuEventDestroy) },
{ _XSTR (cuEventQuery) },
{ _XSTR (cuEventRecord) },
{ _XSTR (cuInit) },
{ _XSTR (cuLaunchKernel) },
{ _XSTR (cuLinkAddData) },
{ _XSTR (cuLinkComplete) },
{ _XSTR (cuLinkCreate) },
{ _XSTR (cuMemAlloc) },
{ _XSTR (cuMemAllocHost) },
{ _XSTR (cuMemcpy) },
{ _XSTR (cuMemcpyDtoH) },
{ _XSTR (cuMemcpyDtoHAsync) },
{ _XSTR (cuMemcpyHtoD) },
{ _XSTR (cuMemcpyHtoDAsync) },
{ _XSTR (cuMemFree) },
{ _XSTR (cuMemFreeHost) },
{ _XSTR (cuMemGetAddressRange) },
{ _XSTR (cuMemHostGetDevicePointer) },
{ _XSTR (cuMemHostRegister) },
{ _XSTR (cuMemHostUnregister) },
{ _XSTR (cuModuleGetFunction) },
{ _XSTR (cuModuleLoadData) },
{ _XSTR (cuStreamDestroy) },
{ _XSTR (cuStreamQuery) },
{ _XSTR (cuStreamSynchronize) },
{ _XSTR (cuStreamWaitEvent) }
};
static int
verify_device_library (void)
{
int i;
void *dh, *ds;
dh = dlopen ("libcuda.so", RTLD_LAZY);
if (!dh)
return -1;
for (i = 0; i < ARRAYSIZE (cuda_symnames); i++)
{
ds = dlsym (dh, cuda_symnames[i].n);
if (!ds)
return -1;
}
dlclose (dh);
return 0;
}
static inline struct nvptx_thread *
nvptx_thread (void)
{
@ -601,16 +532,11 @@ static bool
nvptx_init (void)
{
CUresult r;
int rc;
int ndevs;
if (instantiated_devices != 0)
return true;
rc = verify_device_library ();
if (rc < 0)
return false;
r = cuInit (0);
if (r != CUDA_SUCCESS)
GOMP_PLUGIN_fatal ("cuInit error: %s", cuda_error (r));