From 601e4987b8dd2639159d387a00b4504744c4abfd Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 14 Nov 2007 08:03:41 +0000 Subject: [PATCH] Revert last patch. --- gold/i386.cc | 5 ----- gold/symtab.cc | 3 +-- gold/target.h | 13 ------------- gold/x86_64.cc | 5 ----- 4 files changed, 1 insertion(+), 25 deletions(-) diff --git a/gold/i386.cc b/gold/i386.cc index 9b90c79..eae6b7f 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 2443023..f5e2132 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(sym->object()); diff --git a/gold/target.h b/gold/target.h index 33c351c..8ecc078 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 ead93d9..0614e89 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>*, -- 2.7.4