aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKwok Cheung Yeung <kcy@codesourcery.com>2020-07-06 15:21:08 -0700
committerKwok Cheung Yeung <kcy@codesourcery.com>2020-07-08 12:11:10 -0700
commita8b522311beef5e02de15427e924752ea02def2a (patch)
tree4a930f020e6b9be982fd44eaacf9547c37622699 /gcc
parent1fa08dcac686ca5b6d84e64c9f5813daef59f540 (diff)
downloadgcc-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.c15
-rw-r--r--gcc/config/nvptx/mkoffload.c15
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;
}