Commit 76641cd8 by Richard Biener

Revert "LTO: pick up -fcf-protection flag for the link step"

This reverts commit 8147c741.

2020-07-15  Richard Biener  <rguenther@suse.de>

	PR bootstrap/96203
	* lto-opts.c: Revert changes.
	* lto-wrapper.c: Likewise.
parent 42195da6
...@@ -94,21 +94,6 @@ lto_write_options (void) ...@@ -94,21 +94,6 @@ lto_write_options (void)
: "-fno-pie"); : "-fno-pie");
} }
if (!global_options_set.x_flag_cf_protection)
{
append_to_collect_gcc_options (
&temporary_obstack, &first_p,
global_options.x_flag_cf_protection == CF_NONE
? "-fcf-protection=none"
: global_options.x_flag_cf_protection == CF_FULL
? "-fcf-protection=full"
: global_options.x_flag_cf_protection == CF_BRANCH
? "-fcf-protection=branch"
: global_options.x_flag_cf_protection == CF_RETURN
? "-fcf-protection=return"
: "");
}
/* If debug info is enabled append -g. */ /* If debug info is enabled append -g. */
if (debug_info_level > DINFO_LEVEL_NONE) if (debug_info_level > DINFO_LEVEL_NONE)
append_to_collect_gcc_options (&temporary_obstack, &first_p, "-g"); append_to_collect_gcc_options (&temporary_obstack, &first_p, "-g");
......
...@@ -192,14 +192,11 @@ static void ...@@ -192,14 +192,11 @@ static void
merge_and_complain (struct cl_decoded_option **decoded_options, merge_and_complain (struct cl_decoded_option **decoded_options,
unsigned int *decoded_options_count, unsigned int *decoded_options_count,
struct cl_decoded_option *fdecoded_options, struct cl_decoded_option *fdecoded_options,
unsigned int fdecoded_options_count, unsigned int fdecoded_options_count)
struct cl_decoded_option *decoded_cl_options,
unsigned int decoded_cl_options_count)
{ {
unsigned int i, j; unsigned int i, j;
struct cl_decoded_option *pic_option = NULL; struct cl_decoded_option *pic_option = NULL;
struct cl_decoded_option *pie_option = NULL; struct cl_decoded_option *pie_option = NULL;
struct cl_decoded_option *cf_protection_option = NULL;
/* ??? Merge options from files. Most cases can be /* ??? Merge options from files. Most cases can be
handled by either unioning or intersecting handled by either unioning or intersecting
...@@ -214,17 +211,6 @@ merge_and_complain (struct cl_decoded_option **decoded_options, ...@@ -214,17 +211,6 @@ merge_and_complain (struct cl_decoded_option **decoded_options,
In absence of that it's unclear what a good default is. In absence of that it's unclear what a good default is.
It's also difficult to get positional handling correct. */ It's also difficult to get positional handling correct. */
/* Look for a -fcf-protection option in the link-time options
which overrides any -fcf-protection from the lto sections. */
for (i = 0; i < decoded_cl_options_count; ++i)
{
struct cl_decoded_option *foption = &decoded_cl_options[i];
if (foption->opt_index == OPT_fcf_protection_)
{
cf_protection_option = foption;
}
}
/* The following does what the old LTO option code did, /* The following does what the old LTO option code did,
union all target and a selected set of common options. */ union all target and a selected set of common options. */
for (i = 0; i < fdecoded_options_count; ++i) for (i = 0; i < fdecoded_options_count; ++i)
...@@ -301,23 +287,6 @@ merge_and_complain (struct cl_decoded_option **decoded_options, ...@@ -301,23 +287,6 @@ merge_and_complain (struct cl_decoded_option **decoded_options,
foption->orig_option_with_args_text); foption->orig_option_with_args_text);
break; break;
case OPT_fcf_protection_:
/* Default to link-time option, else append or check identical. */
if (!cf_protection_option)
{
for (j = 0; j < *decoded_options_count; ++j)
if ((*decoded_options)[j].opt_index == foption->opt_index)
break;
if (j == *decoded_options_count)
append_option (decoded_options, decoded_options_count, foption);
else if (strcmp ((*decoded_options)[j].arg, foption->arg))
fatal_error (input_location,
"option -fcf-protection with mismatching values"
" (%s, %s)",
(*decoded_options)[j].arg, foption->arg);
}
break;
case OPT_O: case OPT_O:
case OPT_Ofast: case OPT_Ofast:
case OPT_Og: case OPT_Og:
...@@ -662,7 +631,6 @@ append_compiler_options (obstack *argv_obstack, struct cl_decoded_option *opts, ...@@ -662,7 +631,6 @@ append_compiler_options (obstack *argv_obstack, struct cl_decoded_option *opts,
case OPT_fopenacc: case OPT_fopenacc:
case OPT_fopenacc_dim_: case OPT_fopenacc_dim_:
case OPT_foffload_abi_: case OPT_foffload_abi_:
case OPT_fcf_protection_:
case OPT_g: case OPT_g:
case OPT_O: case OPT_O:
case OPT_Ofast: case OPT_Ofast:
...@@ -1020,14 +988,12 @@ find_crtoffloadtable (void) ...@@ -1020,14 +988,12 @@ find_crtoffloadtable (void)
/* A subroutine of run_gcc. Examine the open file FD for lto sections with /* A subroutine of run_gcc. Examine the open file FD for lto sections with
name prefix PREFIX, at FILE_OFFSET, and store any options we find in OPTS name prefix PREFIX, at FILE_OFFSET, and store any options we find in OPTS
and OPT_COUNT. Return true if we found a matching section, false and OPT_COUNT. Return true if we found a matchingn section, false
otherwise. COLLECT_GCC holds the value of the environment variable with otherwise. COLLECT_GCC holds the value of the environment variable with
the same name. */ the same name. */
static bool static bool
find_and_merge_options (int fd, off_t file_offset, const char *prefix, find_and_merge_options (int fd, off_t file_offset, const char *prefix,
struct cl_decoded_option *decoded_cl_options,
unsigned int decoded_cl_options_count,
struct cl_decoded_option **opts, struct cl_decoded_option **opts,
unsigned int *opt_count, const char *collect_gcc) unsigned int *opt_count, const char *collect_gcc)
{ {
...@@ -1074,9 +1040,7 @@ find_and_merge_options (int fd, off_t file_offset, const char *prefix, ...@@ -1074,9 +1040,7 @@ find_and_merge_options (int fd, off_t file_offset, const char *prefix,
else else
merge_and_complain (&fdecoded_options, merge_and_complain (&fdecoded_options,
&fdecoded_options_count, &fdecoded_options_count,
f2decoded_options, f2decoded_options_count, f2decoded_options, f2decoded_options_count);
decoded_cl_options,
decoded_cl_options_count);
fopts += strlen (fopts) + 1; fopts += strlen (fopts) + 1;
} }
...@@ -1409,7 +1373,6 @@ run_gcc (unsigned argc, char *argv[]) ...@@ -1409,7 +1373,6 @@ run_gcc (unsigned argc, char *argv[])
} }
if (find_and_merge_options (fd, file_offset, LTO_SECTION_NAME_PREFIX, if (find_and_merge_options (fd, file_offset, LTO_SECTION_NAME_PREFIX,
decoded_options, decoded_options_count,
&fdecoded_options, &fdecoded_options_count, &fdecoded_options, &fdecoded_options_count,
collect_gcc)) collect_gcc))
{ {
...@@ -1613,7 +1576,6 @@ cont1: ...@@ -1613,7 +1576,6 @@ cont1:
fatal_error (input_location, "cannot open %s: %m", filename); fatal_error (input_location, "cannot open %s: %m", filename);
if (!find_and_merge_options (fd, file_offset, if (!find_and_merge_options (fd, file_offset,
OFFLOAD_SECTION_NAME_PREFIX, OFFLOAD_SECTION_NAME_PREFIX,
decoded_options, decoded_options_count,
&offload_fdecoded_options, &offload_fdecoded_options,
&offload_fdecoded_options_count, &offload_fdecoded_options_count,
collect_gcc)) collect_gcc))
......
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