diff options
author | Ian Lance Taylor <iant@google.com> | 2007-11-14 08:03:41 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2007-11-14 08:03:41 +0000 |
commit | 601e4987b8dd2639159d387a00b4504744c4abfd (patch) | |
tree | a72625b3bd98a7beb23dde4aad331598572564f3 /gold | |
parent | Support special always-defined symbols for targets. (diff) | |
download | binutils-gdb-601e4987b8dd2639159d387a00b4504744c4abfd.tar.gz binutils-gdb-601e4987b8dd2639159d387a00b4504744c4abfd.tar.bz2 binutils-gdb-601e4987b8dd2639159d387a00b4504744c4abfd.zip |
Revert last patch.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/i386.cc | 5 | ||||
-rw-r--r-- | gold/symtab.cc | 3 | ||||
-rw-r--r-- | gold/target.h | 13 | ||||
-rw-r--r-- | gold/x86_64.cc | 5 |
4 files changed, 1 insertions, 25 deletions
diff --git a/gold/i386.cc b/gold/i386.cc index 9b90c792b5b..eae6b7fa339 100644 --- a/gold/i386.cc +++ b/gold/i386.cc @@ -84,11 +84,6 @@ class Target_i386 : public Sized_target<32, false> uint64_t do_dynsym_value(const Symbol*) const; - // Return whether SYM is always defined. - bool - do_is_always_defined(Symbol* sym) const - { return strcmp(sym->name(), "___tls_get_addr") == 0; } - // Relocate a section. void relocate_section(const Relocate_info<32, false>*, diff --git a/gold/symtab.cc b/gold/symtab.cc index 24430237d62..f5e21322b78 100644 --- a/gold/symtab.cc +++ b/gold/symtab.cc @@ -1610,8 +1610,7 @@ Symbol_table::sized_write_globals(const Target* target, && sym->object()->is_dynamic() && sym->shndx() == elfcpp::SHN_UNDEF && sym->binding() != elfcpp::STB_WEAK - && !parameters->allow_shlib_undefined() - && !target->is_always_defined(sym)) + && !parameters->allow_shlib_undefined()) { // A very ugly cast. Dynobj* dynobj = static_cast<Dynobj*>(sym->object()); diff --git a/gold/target.h b/gold/target.h index 33c351cb4c5..8ecc078330d 100644 --- a/gold/target.h +++ b/gold/target.h @@ -137,13 +137,6 @@ class Target code_fill(off_t length) { return this->do_code_fill(length); } - // Return whether SYM is a special symbol which is known to be - // defined. This is used to avoid inappropriate warnings about - // undefined symbols. - bool - is_always_defined(Symbol* sym) const - { return this->do_is_always_defined(sym); } - protected: // This struct holds the constant information for a child class. We // use a struct to avoid the overhead of virtual function calls for @@ -195,12 +188,6 @@ class Target do_code_fill(off_t) { gold_unreachable(); } - // Virtual function which may be implemented by the child class if - // needed. - virtual bool - do_is_always_defined(Symbol*) const - { return false; } - private: Target(const Target&); Target& operator=(const Target&); diff --git a/gold/x86_64.cc b/gold/x86_64.cc index ead93d94226..0614e89c606 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -97,11 +97,6 @@ class Target_x86_64 : public Sized_target<64, false> uint64_t do_dynsym_value(const Symbol*) const; - // Return whether SYM is always defined. - bool - do_is_always_defined(Symbol* sym) const - { return strcmp(sym->name(), "__tls_get_addr") == 0; } - // Relocate a section. void relocate_section(const Relocate_info<64, false>*, |