Revert patch for PR 19119, which led to PR 19172 and 19197.
authorCary Coutant <ccoutant@gmail.com>
Thu, 5 Nov 2015 20:59:02 +0000 (12:59 -0800)
committerCary Coutant <ccoutant@gmail.com>
Thu, 5 Nov 2015 20:59:19 +0000 (12:59 -0800)
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".

gold/ChangeLog
gold/options.h
gold/parameters.cc

index e389438..7996229 100644 (file)
@@ -1,5 +1,16 @@
 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
        * aarch64.cc (Target_aarch64::Relocate::relocate): Don't apply
        certain relocations if --no-apply-dynamic-relocs is set.
index 5756014..ffc44e6 100644 (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)."),
index 15df42a..5ed1912 100644 (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);
 }