aboutsummaryrefslogtreecommitdiff
path: root/libgomp
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2015-08-04 00:40:18 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2015-08-04 00:40:18 +0000
commit9ebddeb045135d827eb59bfa822a0b026ea39f04 (patch)
treeef907361297008e9bd56fb6cf66e8c06f712ff3e /libgomp
parent1f1833cce0c1c0eb9cf6e1f4720b4a80c5d2e430 (diff)
downloadgcc-9ebddeb045135d827eb59bfa822a0b026ea39f04.zip
gcc-9ebddeb045135d827eb59bfa822a0b026ea39f04.tar.gz
gcc-9ebddeb045135d827eb59bfa822a0b026ea39f04.tar.bz2
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
Diffstat (limited to 'libgomp')
-rw-r--r--libgomp/ChangeLog11
-rw-r--r--libgomp/plugin/plugin-nvptx.c90
2 files changed, 19 insertions, 82 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 4c9f690..ccdeaa7 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -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.
diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c
index fc29632..d02a3fd 100644
--- a/libgomp/plugin/plugin-nvptx.c
+++ b/libgomp/plugin/plugin-nvptx.c
@@ -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];
+
+ snprintf (errmsg, sizeof (errmsg), "unknown error code: %d", r);
- return &errmsg[0];
+ 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));