From 96f9814df23564e16909bb5ba00de4a202c63417 Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Thu, 5 Nov 2015 12:59:02 -0800 Subject: [PATCH] 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 * 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". --- gold/ChangeLog | 11 +++++++++++ gold/options.h | 2 +- gold/parameters.cc | 10 ---------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/gold/ChangeLog b/gold/ChangeLog index e389438..7996229 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,16 @@ 2015-11-05 Cary Coutant + PR gold/19119 + PR gold/19172 + PR gold/19197 + Revert commit 6457197210144f50a696097c0d308d81d46d5510: + 2015-10-16 H.J. Lu + * 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 + PR gold/19163 * aarch64.cc (Target_aarch64::Relocate::relocate): Don't apply certain relocations if --no-apply-dynamic-relocs is set. diff --git a/gold/options.h b/gold/options.h index 5756014..ffc44e6 100644 --- a/gold/options.h +++ b/gold/options.h @@ -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)."), diff --git a/gold/parameters.cc b/gold/parameters.cc index 15df42a..5ed1912 100644 --- a/gold/parameters.cc +++ b/gold/parameters.cc @@ -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); } -- 2.7.4