Commit 0df8dc6e by Jan Hubicka Committed by Jan Hubicka

lto-wrapper.c (debug_objcopy): Add rename parameter; pass it down to…

lto-wrapper.c (debug_objcopy): Add rename parameter; pass it down to simple_object_copy_lto_debug_sections.


	* lto-wrapper.c (debug_objcopy): Add rename parameter; pass
	it down to simple_object_copy_lto_debug_sections.
	(run_gcc): Determine incremental LTO link time and configure
	lto1 into non-wpa mode, disable renaming of debug sections.

From-SVN: r260961
parent de54061d
2018-05-30 Jan Hubicka <hubicka@ucw.cz>
* lto-wrapper.c (debug_objcopy): Add rename parameter; pass
it down to simple_object_copy_lto_debug_sections.
(run_gcc): Determine incremental LTO link time and configure
lto1 into non-wpa mode, disable renaming of debug sections.
2018-05-30 Kelvin Nilsen <kelvin@gcc.gnu.org> 2018-05-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove * doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove
......
...@@ -966,7 +966,7 @@ find_and_merge_options (int fd, off_t file_offset, const char *prefix, ...@@ -966,7 +966,7 @@ find_and_merge_options (int fd, off_t file_offset, const char *prefix,
is returned. Return NULL on error. */ is returned. Return NULL on error. */
const char * const char *
debug_objcopy (const char *infile) debug_objcopy (const char *infile, bool rename)
{ {
const char *outfile; const char *outfile;
const char *errmsg; const char *errmsg;
...@@ -1008,7 +1008,7 @@ debug_objcopy (const char *infile) ...@@ -1008,7 +1008,7 @@ debug_objcopy (const char *infile)
} }
outfile = make_temp_file ("debugobjtem"); outfile = make_temp_file ("debugobjtem");
errmsg = simple_object_copy_lto_debug_sections (inobj, outfile, &err); errmsg = simple_object_copy_lto_debug_sections (inobj, outfile, &err, rename);
if (errmsg) if (errmsg)
{ {
unlink_if_ordinary (outfile); unlink_if_ordinary (outfile);
...@@ -1056,6 +1056,7 @@ run_gcc (unsigned argc, char *argv[]) ...@@ -1056,6 +1056,7 @@ run_gcc (unsigned argc, char *argv[])
bool have_offload = false; bool have_offload = false;
unsigned lto_argc = 0, ltoobj_argc = 0; unsigned lto_argc = 0, ltoobj_argc = 0;
char **lto_argv, **ltoobj_argv; char **lto_argv, **ltoobj_argv;
bool linker_output_rel = false;
bool skip_debug = false; bool skip_debug = false;
unsigned n_debugobj; unsigned n_debugobj;
...@@ -1108,9 +1109,15 @@ run_gcc (unsigned argc, char *argv[]) ...@@ -1108,9 +1109,15 @@ run_gcc (unsigned argc, char *argv[])
file_offset = (off_t) loffset; file_offset = (off_t) loffset;
} }
fd = open (filename, O_RDONLY | O_BINARY); fd = open (filename, O_RDONLY | O_BINARY);
/* Linker plugin passes -fresolution and -flinker-output options.
-flinker-output is passed only when user did not specify one and thus
we do not need to worry about duplicities with the option handling
below. */
if (fd == -1) if (fd == -1)
{ {
lto_argv[lto_argc++] = argv[i]; lto_argv[lto_argc++] = argv[i];
if (strcmp (argv[i], "-flinker-output=rel") == 0)
linker_output_rel = true;
continue; continue;
} }
...@@ -1175,6 +1182,11 @@ run_gcc (unsigned argc, char *argv[]) ...@@ -1175,6 +1182,11 @@ run_gcc (unsigned argc, char *argv[])
lto_mode = LTO_MODE_WHOPR; lto_mode = LTO_MODE_WHOPR;
break; break;
case OPT_flinker_output_:
linker_output_rel = !strcmp (option->arg, "rel");
break;
default: default:
break; break;
} }
...@@ -1191,6 +1203,9 @@ run_gcc (unsigned argc, char *argv[]) ...@@ -1191,6 +1203,9 @@ run_gcc (unsigned argc, char *argv[])
fputc ('\n', stderr); fputc ('\n', stderr);
} }
if (linker_output_rel)
no_partition = true;
if (no_partition) if (no_partition)
{ {
lto_mode = LTO_MODE_LTO; lto_mode = LTO_MODE_LTO;
...@@ -1435,7 +1450,7 @@ cont1: ...@@ -1435,7 +1450,7 @@ cont1:
for (i = 0; i < ltoobj_argc; ++i) for (i = 0; i < ltoobj_argc; ++i)
{ {
const char *tem; const char *tem;
if ((tem = debug_objcopy (ltoobj_argv[i]))) if ((tem = debug_objcopy (ltoobj_argv[i], !linker_output_rel)))
{ {
obstack_ptr_grow (&argv_obstack, tem); obstack_ptr_grow (&argv_obstack, tem);
n_debugobj++; n_debugobj++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment