diff options
author | Ian Lance Taylor <ian@airs.com> | 2011-06-28 23:12:31 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2011-06-28 23:12:31 +0000 |
commit | 03ef7571fc6524b38bfbb99ffdfa72418d03d02c (patch) | |
tree | db7978009cae555afe0e9bdb633d543f2e3c3664 /gold/parameters.cc | |
parent | 200b2bb9e8930d9d47fa5f378cf595328ee9c9bc (diff) | |
download | gdb-03ef7571fc6524b38bfbb99ffdfa72418d03d02c.zip gdb-03ef7571fc6524b38bfbb99ffdfa72418d03d02c.tar.gz gdb-03ef7571fc6524b38bfbb99ffdfa72418d03d02c.tar.bz2 |
PR gold/12934
* target-select.cc (Target_selector::Target_selector): Add
emulation parameter. Change all callers.
(select_target_by_bfd_name): Rename from select_target_by_name.
Change all callers.
(select_target_by_emulation): New function.
(supported_emulation_names): New function.
* target-select.h (class Target_selector): Add emulation_ field.
Update declarations.
(Target_selector::recognize_by_bfd_name): Rename from
recognize_by_name. Change all callers.
(Target_selector::supported_bfd_names): Rename from
supported_names. Change all callers.
(Target_selector::recognize_by_emulation): New function.
(Target_selector::supported_emulations): New function.
(Target_selector::emulation): New function.
(Target_selector::do_recognize_by_bfd_name): Rename from
do_recognize_by_name. Change all callers.
(Target_selector::do_supported_bfd_names): Rename from
do_supported_names. Change all callers.
(Target_selector::do_recognize_by_emulation): New function.
(Target_selector::do_supported_emulations): New function.
(select_target_by_bfd_name): Change name in declaration.
(select_target_by_emulation): Declare.
(supported_emulation_names): Declare.
* parameters.cc (parameters_force_valid_target): Try to find
target based on emulation from -m option.
* options.h (class General_options): Change doc string for -m.
* options.cc (help): Print emulations.
(General_options::parse_V): Likewise.
* freebsd.h (Target_selector_freebsd::Target_selector_freebsd):
Add emulation parameter. Change all callers.
Diffstat (limited to 'gold/parameters.cc')
-rw-r--r-- | gold/parameters.cc | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/gold/parameters.cc b/gold/parameters.cc index 194c81b..1b371d8 100644 --- a/gold/parameters.cc +++ b/gold/parameters.cc @@ -1,6 +1,6 @@ // parameters.cc -- general parameters for a link using gold -// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. // Written by Ian Lance Taylor <iant@google.com>. // This file is part of gold. @@ -299,15 +299,28 @@ parameters_force_valid_target() gold_assert(parameters->options_valid()); if (parameters->options().user_set_oformat()) { - Target* target = select_target_by_name(parameters->options().oformat()); + const char* bfd_name = parameters->options().oformat(); + Target* target = select_target_by_bfd_name(bfd_name); if (target != NULL) { set_parameters_target(target); return; } - gold_error(_("unrecognized output format %s"), - parameters->options().oformat()); + gold_error(_("unrecognized output format %s"), bfd_name); + } + + if (parameters->options().user_set_m()) + { + const char* emulation = parameters->options().m(); + Target* target = select_target_by_emulation(emulation); + if (target != NULL) + { + set_parameters_target(target); + return; + } + + gold_error(_("unrecognized emulation %s"), emulation); } // The GOLD_DEFAULT_xx macros are defined by the configure script. |