mirror of git://gcc.gnu.org/git/gcc.git
[nvptx libgomp plugin] Build only in supported configurations
As recently again discussed in <https://gcc.gnu.org/PR97436> "[nvptx] -m32
support", nvptx offloading other than for 64-bit host has never been
implemented, tested, supported. So we simply should buildn't the nvptx libgomp
plugin in this case.
This avoids build problems if, for example, in a (standard) bi-arch
x86_64-pc-linux-gnu '-m64'/'-m32' build, libcuda is available only in a 64-bit
variant but not in a 32-bit one, which, for example, is the case if you build
GCC against the CUDA toolkit's 'stubs/libcuda.so' (see
<https://stackoverflow.com/a/52784819>).
This amends PR65099 commit a92defdab7
(r225560)
"[nvptx offloading] Only 64-bit configurations are currently supported" to
match the way we're doing this for the HSA/GCN plugins.
libgomp/
PR libgomp/65099
* plugin/configfrag.ac (PLUGIN_NVPTX): Restrict to supported
configurations.
* configure: Regenerate.
* plugin/plugin-nvptx.c (nvptx_get_num_devices): Remove 64-bit
check.
This commit is contained in:
parent
57a4f5e4ea
commit
6106dfb9f7
|
@ -15272,6 +15272,15 @@ if test x"$enable_offload_targets" != x; then
|
|||
tgt_plugin=intelmic
|
||||
;;
|
||||
nvptx*)
|
||||
case "${target}" in
|
||||
aarch64*-*-* | powerpc64le-*-* | x86_64-*-*)
|
||||
case " ${CC} ${CFLAGS} " in
|
||||
*" -m32 "* | *" -mx32 "*)
|
||||
# PR libgomp/65099: Currently, we only support offloading in
|
||||
# 64-bit configurations.
|
||||
PLUGIN_NVPTX=0
|
||||
;;
|
||||
*)
|
||||
tgt_plugin=nvptx
|
||||
PLUGIN_NVPTX=$tgt
|
||||
if test "x$CUDA_DRIVER_LIB" != xno \
|
||||
|
@ -15323,7 +15332,14 @@ rm -f core conftest.err conftest.$ac_objext \
|
|||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
esac
|
||||
;;
|
||||
*-*-*)
|
||||
# Target architecture not supported.
|
||||
PLUGIN_NVPTX=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
amdgcn*)
|
||||
case "${target}" in
|
||||
x86_64-*-*)
|
||||
|
|
|
@ -158,6 +158,15 @@ if test x"$enable_offload_targets" != x; then
|
|||
tgt_plugin=intelmic
|
||||
;;
|
||||
nvptx*)
|
||||
case "${target}" in
|
||||
aarch64*-*-* | powerpc64le-*-* | x86_64-*-*)
|
||||
case " ${CC} ${CFLAGS} " in
|
||||
*" -m32 "* | *" -mx32 "*)
|
||||
# PR libgomp/65099: Currently, we only support offloading in
|
||||
# 64-bit configurations.
|
||||
PLUGIN_NVPTX=0
|
||||
;;
|
||||
*)
|
||||
tgt_plugin=nvptx
|
||||
PLUGIN_NVPTX=$tgt
|
||||
if test "x$CUDA_DRIVER_LIB" != xno \
|
||||
|
@ -198,7 +207,14 @@ if test x"$enable_offload_targets" != x; then
|
|||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
esac
|
||||
;;
|
||||
*-*-*)
|
||||
# Target architecture not supported.
|
||||
PLUGIN_NVPTX=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
amdgcn*)
|
||||
case "${target}" in
|
||||
x86_64-*-*)
|
||||
|
|
|
@ -572,15 +572,6 @@ nvptx_get_num_devices (void)
|
|||
{
|
||||
int n;
|
||||
|
||||
/* PR libgomp/65099: Currently, we only support offloading in 64-bit
|
||||
configurations. */
|
||||
if (sizeof (void *) != 8)
|
||||
{
|
||||
GOMP_PLUGIN_debug (0, "Disabling nvptx offloading;"
|
||||
" only 64-bit configurations are supported\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* This function will be called before the plugin has been initialized in
|
||||
order to enumerate available devices, but CUDA API routines can't be used
|
||||
until cuInit has been called. Just call it now (but don't yet do any
|
||||
|
|
Loading…
Reference in New Issue