Revert patch for PR 19119, which led to PR 19172 and 19197.

Gold does not support all the emulations that Gnu ld does, and supports
only one spelling per target. The -m option is used only in the rare case
where there are no ELF input files, and we produce an empty output file.
In those cases, users are expected to supply a -m option naming one of
the supported emulations. In the many cases where a build script provides
an unnecessary -m option naming an emulation that gold does not support,
we will simply ignore the option, as we did before the reverted patch.

gold/
	PR gold/19119
	PR gold/19172
	PR gold/19197
	Revert commit 6457197210144f50a696097c0d308d81d46d5510:

	2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>

		* options.h (General_options): Remove "obsolete" from -m.
		* parameters.cc (set_parameters_target): Check if input target
		is compatible with output emulation set by "-m emulation".
This commit is contained in:
Cary Coutant 2015-11-05 12:59:02 -08:00
parent 0eccf19f96
commit 96f9814df2
3 changed files with 12 additions and 11 deletions

View File

@ -1,3 +1,14 @@
2015-11-05 Cary Coutant <ccoutant@gmail.com>
PR gold/19119
PR gold/19172
PR gold/19197
Revert commit 6457197210144f50a696097c0d308d81d46d5510:
2015-10-16 H.J. Lu <hongjiu.lu@intel.com>
* options.h (General_options): Remove "obsolete" from -m.
* parameters.cc (set_parameters_target): Check if input target
is compatible with output emulation set by "-m emulation".
2015-11-05 Cary Coutant <ccoutant@gmail.com>
PR gold/19163

View File

@ -939,7 +939,7 @@ class General_options
N_("OFFSET"));
DEFINE_string(m, options::EXACTLY_ONE_DASH, 'm', "",
N_("Set GNU linker emulation"), N_("EMULATION"));
N_("Set GNU linker emulation; obsolete"), N_("EMULATION"));
DEFINE_bool(mmap_output_file, options::TWO_DASHES, '\0', true,
N_("Map the output file for writing (default)."),

View File

@ -297,16 +297,6 @@ set_parameters_options(const General_options* options)
void
set_parameters_target(Target* target)
{
if (parameters->options_valid() && parameters->options().user_set_m())
{
const char* emulation = parameters->options().m();
Target* output = select_target_by_emulation(emulation);
if (!output)
gold_error(_("unrecognised output emulation: %s"), emulation);
else if (output != target)
gold_error(_("input file is incompatible with %s output emulation"),
emulation);
}
static_parameters.set_target(target);
}