aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2008-03-25 21:39:01 +0000
committerIan Lance Taylor <ian@airs.com>2008-03-25 21:39:01 +0000
commite96caa791095788fe6b3cbbdc54547278ca70db7 (patch)
treeeb8a097a06011ca8cd7e47ef21a458afb4ec07e5 /gold/i386.cc
parent * README: Rewrite, with some notes on unsupported features. (diff)
downloadbinutils-gdb-e96caa791095788fe6b3cbbdc54547278ca70db7.tar.gz
binutils-gdb-e96caa791095788fe6b3cbbdc54547278ca70db7.tar.bz2
binutils-gdb-e96caa791095788fe6b3cbbdc54547278ca70db7.zip
* options.cc (options::help): Print list of supported targets.
* target-select.h: Include <vector>. (class Target_selector): Make machine_, size_, and is_big_endian_ fields const. Add bfd_name_ and instantiated_target_ fields. (Target_selector::Target_selector): Add bfd_name parameter. (Target_selector::recognize): Make non-virtual, call do_recognize. (Target_selector::recognize_by_name): Make non-virtual, call do_recognize_by_name. (Target_selector::supported_names): New function. (Target_selector::bfd_name): New function. (Target_selector::do_instantiate_target): New pure virtual function. (Target_selector::do_recognize): New virtual function. (Target_selector::do_recognize_by_name): New virtual function. (Target_selector::instantiate_target): New private function. (supported_target_names): Declare. * target-select.cc (Target_selector::Target_selector): Update for new parameter and fields. (select_target_by_name): Check that the name matches before calling recognize_by_name. (supported_target_names): New function. * i386.cc (class Target_selector_i386): Update Target_selector constructor call. Remove recognize and recognize_by_name. Add do_instantiate_target. * x86_64.cc (class Target_selector_x86_64): Likewise. * testsuite/testfile.cc (class Target_selector_test): Update for changes to Target_selector.
Diffstat (limited to 'gold/i386.cc')
-rw-r--r--gold/i386.cc32
1 files changed, 3 insertions, 29 deletions
diff --git a/gold/i386.cc b/gold/i386.cc
index f12b6cdebf0..b7bf36203a4 100644
--- a/gold/i386.cc
+++ b/gold/i386.cc
@@ -2444,40 +2444,14 @@ class Target_selector_i386 : public Target_selector
{
public:
Target_selector_i386()
- : Target_selector(elfcpp::EM_386, 32, false)
+ : Target_selector(elfcpp::EM_386, 32, false, "elf32-i386")
{ }
Target*
- recognize(int machine, int osabi, int abiversion);
-
- Target*
- recognize_by_name(const char* name);
-
- private:
- Target_i386* target_;
+ do_instantiate_target()
+ { return new Target_i386(); }
};
-// Recognize an i386 object file when we already know that the machine
-// number is EM_386.
-
-Target*
-Target_selector_i386::recognize(int, int, int)
-{
- if (this->target_ == NULL)
- this->target_ = new Target_i386();
- return this->target_;
-}
-
-Target*
-Target_selector_i386::recognize_by_name(const char* name)
-{
- if (strcmp(name, "elf32-i386") != 0)
- return NULL;
- if (this->target_ == NULL)
- this->target_ = new Target_i386();
- return this->target_;
-}
-
Target_selector_i386 target_selector_i386;
} // End anonymous namespace.