mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 19:50:13 +08:00
Revert last patch.
This commit is contained in:
@ -84,11 +84,6 @@ class Target_i386 : public Sized_target<32, false>
|
|||||||
uint64_t
|
uint64_t
|
||||||
do_dynsym_value(const Symbol*) const;
|
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.
|
// Relocate a section.
|
||||||
void
|
void
|
||||||
relocate_section(const Relocate_info<32, false>*,
|
relocate_section(const Relocate_info<32, false>*,
|
||||||
|
@ -1610,8 +1610,7 @@ Symbol_table::sized_write_globals(const Target* target,
|
|||||||
&& sym->object()->is_dynamic()
|
&& sym->object()->is_dynamic()
|
||||||
&& sym->shndx() == elfcpp::SHN_UNDEF
|
&& sym->shndx() == elfcpp::SHN_UNDEF
|
||||||
&& sym->binding() != elfcpp::STB_WEAK
|
&& sym->binding() != elfcpp::STB_WEAK
|
||||||
&& !parameters->allow_shlib_undefined()
|
&& !parameters->allow_shlib_undefined())
|
||||||
&& !target->is_always_defined(sym))
|
|
||||||
{
|
{
|
||||||
// A very ugly cast.
|
// A very ugly cast.
|
||||||
Dynobj* dynobj = static_cast<Dynobj*>(sym->object());
|
Dynobj* dynobj = static_cast<Dynobj*>(sym->object());
|
||||||
|
@ -137,13 +137,6 @@ class Target
|
|||||||
code_fill(off_t length)
|
code_fill(off_t length)
|
||||||
{ return this->do_code_fill(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:
|
protected:
|
||||||
// This struct holds the constant information for a child class. We
|
// This struct holds the constant information for a child class. We
|
||||||
// use a struct to avoid the overhead of virtual function calls for
|
// use a struct to avoid the overhead of virtual function calls for
|
||||||
@ -195,12 +188,6 @@ class Target
|
|||||||
do_code_fill(off_t)
|
do_code_fill(off_t)
|
||||||
{ gold_unreachable(); }
|
{ 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:
|
private:
|
||||||
Target(const Target&);
|
Target(const Target&);
|
||||||
Target& operator=(const Target&);
|
Target& operator=(const Target&);
|
||||||
|
@ -97,11 +97,6 @@ class Target_x86_64 : public Sized_target<64, false>
|
|||||||
uint64_t
|
uint64_t
|
||||||
do_dynsym_value(const Symbol*) const;
|
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.
|
// Relocate a section.
|
||||||
void
|
void
|
||||||
relocate_section(const Relocate_info<64, false>*,
|
relocate_section(const Relocate_info<64, false>*,
|
||||||
|
Reference in New Issue
Block a user