diff options
author | Kwok Cheung Yeung <kcy@codesourcery.com> | 2020-07-06 15:21:08 -0700 |
---|---|---|
committer | Kwok Cheung Yeung <kcy@codesourcery.com> | 2020-07-08 12:11:10 -0700 |
commit | a8b522311beef5e02de15427e924752ea02def2a (patch) | |
tree | 4a930f020e6b9be982fd44eaacf9547c37622699 /gcc | |
parent | 1fa08dcac686ca5b6d84e64c9f5813daef59f540 (diff) | |
download | gcc-a8b522311beef5e02de15427e924752ea02def2a.zip gcc-a8b522311beef5e02de15427e924752ea02def2a.tar.gz gcc-a8b522311beef5e02de15427e924752ea02def2a.tar.bz2 |
amdgcn, nvptx: Handle -fpic/-fPIC in mkoffload
2020-07-08 Tobias Burnus <tobias@codesourcery.com>
gcc/ChangeLog:
* config/gcn/mkoffload.c (compile_native, main): Pass -fPIC/-fpic
on to the native compiler, if used.
* config/nvptx/mkoffload.c (compile_native, main): Likewise.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/gcn/mkoffload.c | 15 | ||||
-rw-r--r-- | gcc/config/nvptx/mkoffload.c | 15 |
2 files changed, 26 insertions, 4 deletions
diff --git a/gcc/config/gcn/mkoffload.c b/gcc/config/gcn/mkoffload.c index 14f422e..0415d94 100644 --- a/gcc/config/gcn/mkoffload.c +++ b/gcc/config/gcn/mkoffload.c @@ -483,7 +483,8 @@ process_obj (FILE *in, FILE *cfile) /* Compile a C file using the host compiler. */ static void -compile_native (const char *infile, const char *outfile, const char *compiler) +compile_native (const char *infile, const char *outfile, const char *compiler, + bool fPIC, bool fpic) { const char *collect_gcc_options = getenv ("COLLECT_GCC_OPTIONS"); if (!collect_gcc_options) @@ -493,6 +494,10 @@ compile_native (const char *infile, const char *outfile, const char *compiler) struct obstack argv_obstack; obstack_init (&argv_obstack); obstack_ptr_grow (&argv_obstack, compiler); + if (fPIC) + obstack_ptr_grow (&argv_obstack, "-fPIC"); + if (fpic) + obstack_ptr_grow (&argv_obstack, "-fpic"); if (save_temps) obstack_ptr_grow (&argv_obstack, "-save-temps"); if (verbose) @@ -596,6 +601,8 @@ main (int argc, char **argv) /* Scan the argument vector. */ bool fopenmp = false; bool fopenacc = false; + bool fPIC = false; + bool fpic = false; for (int i = 1; i < argc; i++) { #define STR "-foffload-abi=" @@ -614,6 +621,10 @@ main (int argc, char **argv) fopenmp = true; else if (strcmp (argv[i], "-fopenacc") == 0) fopenacc = true; + else if (strcmp (argv[i], "-fPIC") == 0) + fPIC = true; + else if (strcmp (argv[i], "-fpic") == 0) + fpic = true; else if (strcmp (argv[i], "-save-temps") == 0) save_temps = true; else if (strcmp (argv[i], "-v") == 0) @@ -766,7 +777,7 @@ main (int argc, char **argv) xputenv (concat ("COMPILER_PATH=", cpath, NULL)); xputenv (concat ("LIBRARY_PATH=", lpath, NULL)); - compile_native (gcn_cfile_name, outname, collect_gcc); + compile_native (gcn_cfile_name, outname, collect_gcc, fPIC, fpic); return 0; } diff --git a/gcc/config/nvptx/mkoffload.c b/gcc/config/nvptx/mkoffload.c index efdf9b9..4fecb2b 100644 --- a/gcc/config/nvptx/mkoffload.c +++ b/gcc/config/nvptx/mkoffload.c @@ -356,7 +356,8 @@ process (FILE *in, FILE *out) } static void -compile_native (const char *infile, const char *outfile, const char *compiler) +compile_native (const char *infile, const char *outfile, const char *compiler, + bool fPIC, bool fpic) { const char *collect_gcc_options = getenv ("COLLECT_GCC_OPTIONS"); if (!collect_gcc_options) @@ -366,6 +367,10 @@ compile_native (const char *infile, const char *outfile, const char *compiler) struct obstack argv_obstack; obstack_init (&argv_obstack); obstack_ptr_grow (&argv_obstack, compiler); + if (fPIC) + obstack_ptr_grow (&argv_obstack, "-fPIC"); + if (fpic) + obstack_ptr_grow (&argv_obstack, "-fpic"); if (save_temps) obstack_ptr_grow (&argv_obstack, "-save-temps"); if (verbose) @@ -471,6 +476,8 @@ main (int argc, char **argv) /* Scan the argument vector. */ bool fopenmp = false; bool fopenacc = false; + bool fPIC = false; + bool fpic = false; for (int i = 1; i < argc; i++) { #define STR "-foffload-abi=" @@ -489,6 +496,10 @@ main (int argc, char **argv) fopenmp = true; else if (strcmp (argv[i], "-fopenacc") == 0) fopenacc = true; + else if (strcmp (argv[i], "-fPIC") == 0) + fPIC = true; + else if (strcmp (argv[i], "-fpic") == 0) + fpic = true; else if (strcmp (argv[i], "-save-temps") == 0) save_temps = true; else if (strcmp (argv[i], "-v") == 0) @@ -587,7 +598,7 @@ main (int argc, char **argv) fclose (out); - compile_native (ptx_cfile_name, outname, collect_gcc); + compile_native (ptx_cfile_name, outname, collect_gcc, fPIC, fpic); return 0; } |