[PR87833] x86: Put -fPIC and -shared the last to create offload image
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 11 Nov 2019 08:38:28 +0000 (00:38 -0800)
committerThomas Schwinge <tschwinge@gcc.gnu.org>
Mon, 11 Nov 2019 08:38:28 +0000 (09:38 +0100)
On x86, since -fPIC and -shared should be used to create offload image,
we put them the last to properly create offload image.

2019-11-11  H.J. Lu  <hjl.tools@gmail.com>

PR target/87833
* config/i386/intelmic-mkoffload.c (prepare_target_image): Put
-fPIC and -shared the last to create offload image.

From-SVN: r278041

gcc/ChangeLog
gcc/config/i386/intelmic-mkoffload.c

index ca0cebc20180c0200ed96df179cdfe0f03ff2324..1b0145fbc787aba16b6c61570b7ad2fd15de4412 100644 (file)
@@ -1,3 +1,9 @@
+2019-11-11  H.J. Lu  <hjl.tools@gmail.com>
+
+       PR target/87833
+       * config/i386/intelmic-mkoffload.c (prepare_target_image): Put
+       -fPIC and -shared the last to create offload image.
+
 2019-11-11  Thomas Schwinge  <thomas@codesourcery.com>
 
        * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
index 2a3e912ee74fd4e9525e3782c2a7ddae3d450fce..0b12edc72c14324f93b2176747b9c6a59a235277 100644 (file)
@@ -453,8 +453,6 @@ prepare_target_image (const char *target_compiler, int argc, char **argv)
   if (verbose)
     obstack_ptr_grow (&argv_obstack, "-v");
   obstack_ptr_grow (&argv_obstack, "-xlto");
-  obstack_ptr_grow (&argv_obstack, "-shared");
-  obstack_ptr_grow (&argv_obstack, "-fPIC");
   obstack_ptr_grow (&argv_obstack, opt1);
   for (int i = 1; i < argc; i++)
     {
@@ -466,6 +464,9 @@ prepare_target_image (const char *target_compiler, int argc, char **argv)
   if (!out_obj_filename)
     fatal_error (input_location, "output file not specified");
   obstack_ptr_grow (&argv_obstack, opt2);
+  /* NB: Put -fPIC and -shared the last to create shared library.  */
+  obstack_ptr_grow (&argv_obstack, "-fPIC");
+  obstack_ptr_grow (&argv_obstack, "-shared");
   obstack_ptr_grow (&argv_obstack, "-o");
   obstack_ptr_grow (&argv_obstack, target_so_filename);
   compile_for_target (&argv_obstack);