intelmic-mkoffload: Deal with linker defaulting to 32-bit x86 mode.
authorThomas Schwinge <thomas@codesourcery.com>
Thu, 8 Jan 2015 14:58:45 +0000 (15:58 +0100)
committerThomas Schwinge <tschwinge@gcc.gnu.org>
Thu, 8 Jan 2015 14:58:45 +0000 (15:58 +0100)
... which explicitly has to be switched into 64-bit x86_64 mode.

gcc/
* config/i386/intelmic-mkoffload.c (compile_for_target): Always
add "-m32" or "-m64" to argv_obstack.
(generate_host_descr_file): Likewise, when invoking host_compiler.
(main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
ld.

From-SVN: r219345

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

index bee5f1e908eb084b2d8d300598df9eccd966bd97..01b6cc6baaf3762078eaefc134f64d8a9ccf7a11 100644 (file)
@@ -1,3 +1,11 @@
+2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
+
+       * config/i386/intelmic-mkoffload.c (compile_for_target): Always
+       add "-m32" or "-m64" to argv_obstack.
+       (generate_host_descr_file): Likewise, when invoking host_compiler.
+       (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
+       ld.
+
 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
 
        * config/sh/sh-mem.cc: Use constant as second operand when emitting
index c3d2b230287f3607b6289cf3ce4a5b7eb3bbac01..23bc955f4a02bc9e4f45fabcd176ed444b74cbff 100644 (file)
@@ -191,6 +191,8 @@ compile_for_target (struct obstack *argv_obstack)
 {
   if (target_ilp32)
     obstack_ptr_grow (argv_obstack, "-m32");
+  else
+    obstack_ptr_grow (argv_obstack, "-m64");
   obstack_ptr_grow (argv_obstack, NULL);
   char **argv = XOBFINISH (argv_obstack, char **);
 
@@ -355,6 +357,8 @@ generate_host_descr_file (const char *host_compiler)
   new_argv[new_argc++] = "-shared";
   if (target_ilp32)
     new_argv[new_argc++] = "-m32";
+  else
+    new_argv[new_argc++] = "-m64";
   new_argv[new_argc++] = src_filename;
   new_argv[new_argc++] = "-o";
   new_argv[new_argc++] = obj_filename;
@@ -511,11 +515,11 @@ main (int argc, char **argv)
   unsigned new_argc = 0;
   const char *new_argv[9];
   new_argv[new_argc++] = "ld";
+  new_argv[new_argc++] = "-m";
   if (target_ilp32)
-    {
-      new_argv[new_argc++] = "-m";
-      new_argv[new_argc++] = "elf_i386";
-    }
+    new_argv[new_argc++] = "elf_i386";
+  else
+    new_argv[new_argc++] = "elf_x86_64";
   new_argv[new_argc++] = "--relocatable";
   new_argv[new_argc++] = host_descr_filename;
   new_argv[new_argc++] = target_so_filename;