diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2015-07-08 16:59:59 +0200 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gcc.gnu.org> | 2015-07-08 16:59:59 +0200 |
commit | a92defdab79a1268f4b9dcf42b937e4002a4cf15 (patch) | |
tree | 49238907f42004f77228eb1e7c9ae4aa57f88eed /gcc | |
parent | 18b80efb60bc598f1027d36c5d65539815e3bbad (diff) | |
download | gcc-a92defdab79a1268f4b9dcf42b937e4002a4cf15.zip gcc-a92defdab79a1268f4b9dcf42b937e4002a4cf15.tar.gz gcc-a92defdab79a1268f4b9dcf42b937e4002a4cf15.tar.bz2 |
[nvptx offloading] Only 64-bit configurations are currently supported
PR libgomp/65099
gcc/
* config/nvptx/mkoffload.c (main): Create an offload image only in
64-bit configurations.
libgomp/
* plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not
in a 64-bit configuration.
* testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia
offloading testing if no such device is available.
* testsuite/libgomp.oacc-c/c.exp: Likewise.
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
From-SVN: r225560
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/nvptx/mkoffload.c | 56 |
2 files changed, 37 insertions, 25 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 33a2fa0..4c83723 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-07-08 Thomas Schwinge <thomas@codesourcery.com> + + PR libgomp/65099 + * config/nvptx/mkoffload.c (main): Create an offload image only in + 64-bit configurations. + 2015-07-08 Martin Liska <mliska@suse.cz> PR bootstrap/66744 diff --git a/gcc/config/nvptx/mkoffload.c b/gcc/config/nvptx/mkoffload.c index 8687154..8bc08bf 100644 --- a/gcc/config/nvptx/mkoffload.c +++ b/gcc/config/nvptx/mkoffload.c @@ -993,37 +993,43 @@ main (int argc, char **argv) obstack_ptr_grow (&argv_obstack, argv[ix]); } - ptx_name = make_temp_file (".mkoffload"); - obstack_ptr_grow (&argv_obstack, "-o"); - obstack_ptr_grow (&argv_obstack, ptx_name); - obstack_ptr_grow (&argv_obstack, NULL); - const char **new_argv = XOBFINISH (&argv_obstack, const char **); - - char *execpath = getenv ("GCC_EXEC_PREFIX"); - char *cpath = getenv ("COMPILER_PATH"); - char *lpath = getenv ("LIBRARY_PATH"); - unsetenv ("GCC_EXEC_PREFIX"); - unsetenv ("COMPILER_PATH"); - unsetenv ("LIBRARY_PATH"); - - fork_execute (new_argv[0], CONST_CAST (char **, new_argv), true); - obstack_free (&argv_obstack, NULL); - - xputenv (concat ("GCC_EXEC_PREFIX=", execpath, NULL)); - xputenv (concat ("COMPILER_PATH=", cpath, NULL)); - xputenv (concat ("LIBRARY_PATH=", lpath, NULL)); - - in = fopen (ptx_name, "r"); - if (!in) - fatal_error (input_location, "cannot open intermediate ptx file"); - ptx_cfile_name = make_temp_file (".c"); out = fopen (ptx_cfile_name, "w"); if (!out) fatal_error (input_location, "cannot open '%s'", ptx_cfile_name); - process (in, out); + /* PR libgomp/65099: Currently, we only support offloading in 64-bit + configurations. */ + if (!target_ilp32) + { + ptx_name = make_temp_file (".mkoffload"); + obstack_ptr_grow (&argv_obstack, "-o"); + obstack_ptr_grow (&argv_obstack, ptx_name); + obstack_ptr_grow (&argv_obstack, NULL); + const char **new_argv = XOBFINISH (&argv_obstack, const char **); + + char *execpath = getenv ("GCC_EXEC_PREFIX"); + char *cpath = getenv ("COMPILER_PATH"); + char *lpath = getenv ("LIBRARY_PATH"); + unsetenv ("GCC_EXEC_PREFIX"); + unsetenv ("COMPILER_PATH"); + unsetenv ("LIBRARY_PATH"); + + fork_execute (new_argv[0], CONST_CAST (char **, new_argv), true); + obstack_free (&argv_obstack, NULL); + + xputenv (concat ("GCC_EXEC_PREFIX=", execpath, NULL)); + xputenv (concat ("COMPILER_PATH=", cpath, NULL)); + xputenv (concat ("LIBRARY_PATH=", lpath, NULL)); + + in = fopen (ptx_name, "r"); + if (!in) + fatal_error (input_location, "cannot open intermediate ptx file"); + + process (in, out); + } + fclose (out); compile_native (ptx_cfile_name, outname, collect_gcc); |