aboutsummaryrefslogtreecommitdiff
path: root/libgomp/configure
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-01-17 10:44:17 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2017-01-17 10:44:17 +0100
commit2393d337e7c5ff258b1ad167025b9e4d5f518533 (patch)
treeeaf913e6c721a84f592e444c942b624bbb14fe06 /libgomp/configure
parent3c36aa6ba2be894d4092a6ce8129d39ef846c964 (diff)
configfrag.ac: For --without-cuda-driver don't initialize CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB.
* plugin/configfrag.ac: For --without-cuda-driver don't initialize CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB. If both CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB are empty and linking small cuda program fails, define PLUGIN_NVPTX_DYNAMIC to 1 and use plugin/include/cuda as include dir and -ldl instead of -lcuda as library to link ptx plugin against. * plugin/plugin-nvptx.c: Include dlfcn.h if PLUGIN_NVPTX_DYNAMIC. (CUDA_CALLS): Define. (cuda_lib, cuda_lib_inited): New variables. (init_cuda_lib): New function. (CUDA_CALL_PREFIX): Define. (CUDA_CALL_ERET, CUDA_CALL_ASSERT): Use CUDA_CALL_PREFIX. (CUDA_CALL): Use FN instead of (FN). (CUDA_CALL_NOCHECK): Define. (cuda_error, fini_streams_for_device, select_stream_for_async, nvptx_attach_host_thread_to_device, nvptx_open_device, link_ptx, event_gc, nvptx_exec, nvptx_async_test, nvptx_async_test_all, nvptx_wait_all, nvptx_set_clocktick, GOMP_OFFLOAD_unload_image, nvptx_stacks_alloc, nvptx_stacks_free, GOMP_OFFLOAD_run): Use CUDA_CALL_NOCHECK. (nvptx_init): Call init_cuda_lib, if it fails, return false. Use CUDA_CALL_NOCHECK. (nvptx_get_num_devices): Call init_cuda_lib, if it fails, return 0. Use CUDA_CALL_NOCHECK. * plugin/cuda/cuda.h: New file. * config.h.in: Regenerated. * configure: Regenerated. From-SVN: r244522
Diffstat (limited to 'libgomp/configure')
-rwxr-xr-xlibgomp/configure30
1 files changed, 23 insertions, 7 deletions
diff --git a/libgomp/configure b/libgomp/configure
index 6a4b3b2a6e0..b7e9f40b852 100755
--- a/libgomp/configure
+++ b/libgomp/configure
@@ -15299,10 +15299,12 @@ if test "${with_cuda_driver_lib+set}" = set; then :
withval=$with_cuda_driver_lib;
fi
-if test "x$with_cuda_driver" != x; then
- CUDA_DRIVER_INCLUDE=$with_cuda_driver/include
- CUDA_DRIVER_LIB=$with_cuda_driver/lib
-fi
+case "x$with_cuda_driver" in
+ x | xno) ;;
+ *) CUDA_DRIVER_INCLUDE=$with_cuda_driver/include
+ CUDA_DRIVER_LIB=$with_cuda_driver/lib
+ ;;
+esac
if test "x$with_cuda_driver_include" != x; then
CUDA_DRIVER_INCLUDE=$with_cuda_driver_include
fi
@@ -15320,6 +15322,7 @@ PLUGIN_NVPTX=0
PLUGIN_NVPTX_CPPFLAGS=
PLUGIN_NVPTX_LDFLAGS=
PLUGIN_NVPTX_LIBS=
+PLUGIN_NVPTX_DYNAMIC=0
@@ -15426,9 +15429,17 @@ rm -f core conftest.err conftest.$ac_objext \
LIBS=$PLUGIN_NVPTX_save_LIBS
case $PLUGIN_NVPTX in
nvptx*)
- PLUGIN_NVPTX=0
- as_fn_error "CUDA driver package required for nvptx support" "$LINENO" 5
- ;;
+ if test "x$CUDA_DRIVER_INCLUDE" = x \
+ && test "x$CUDA_DRIVER_LIB" = x; then
+ PLUGIN_NVPTX=1
+ PLUGIN_NVPTX_CPPFLAGS='-I$(srcdir)/plugin/cuda'
+ PLUGIN_NVPTX_LIBS='-ldl'
+ PLUGIN_NVPTX_DYNAMIC=1
+ else
+ PLUGIN_NVPTX=0
+ as_fn_error "CUDA driver package required for nvptx support" "$LINENO" 5
+ fi
+ ;;
esac
;;
hsa*)
@@ -15513,6 +15524,11 @@ cat >>confdefs.h <<_ACEOF
#define PLUGIN_NVPTX $PLUGIN_NVPTX
_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PLUGIN_NVPTX_DYNAMIC $PLUGIN_NVPTX_DYNAMIC
+_ACEOF
+
if test $PLUGIN_HSA = 1; then
PLUGIN_HSA_TRUE=
PLUGIN_HSA_FALSE='#'