aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2012-10-12 09:39:19 +0000
committerAlan Modra <amodra@bigpond.net.au>2012-10-12 09:39:19 +0000
commitbc58e03bafff938e848172097148328d611d7480 (patch)
treee2334f780b6eba9c976b061adce4afc5a68e72e3
parent467ed6a4841025d67592f2257585ab90cb215d5c (diff)
downloadbinutils-bc58e03bafff938e848172097148328d611d7480.tar.gz
* powerpc.cc (Output_data_plt_powerpc::add_entry, add_ifunc_entry,
add_local_ifunc_entry): Revert last change. (Target_powerpc::make_plt_entry, make_local_ifunc_plt_entry): Likewise.
-rw-r--r--gold/ChangeLog6
-rw-r--r--gold/powerpc.cc29
2 files changed, 17 insertions, 18 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index d9a5307c2..cbedb79eb 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,9 @@
+2012-10-12 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Output_data_plt_powerpc::add_entry, add_ifunc_entry,
+ add_local_ifunc_entry): Revert last change.
+ (Target_powerpc::make_plt_entry, make_local_ifunc_plt_entry): Likewise.
+
2012-10-05 Alan Modra <amodra@gmail.com>
* powerpc.cc (Target_powerpc::do_plt_address_for_local,
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index 7f9774f63..fc9264e1d 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -1544,13 +1544,13 @@ class Output_data_plt_powerpc : public Output_section_data_build
{ }
// Add an entry to the PLT.
- bool
+ void
add_entry(Symbol*);
- bool
+ void
add_ifunc_entry(Symbol*);
- bool
+ void
add_local_ifunc_entry(Sized_relobj_file<size, big_endian>*, unsigned int);
// Return the .rela.plt section data.
@@ -1611,7 +1611,7 @@ class Output_data_plt_powerpc : public Output_section_data_build
// Add an entry to the PLT.
template<int size, bool big_endian>
-bool
+void
Output_data_plt_powerpc<size, big_endian>::add_entry(Symbol* gsym)
{
if (!gsym->has_plt_offset())
@@ -1625,15 +1625,13 @@ Output_data_plt_powerpc<size, big_endian>::add_entry(Symbol* gsym)
this->rel_->add_global(gsym, dynrel, this, off, 0);
off += plt_entry_size;
this->set_current_data_size(off);
- return true;
}
- return false;
}
// Add an entry for a global ifunc symbol that resolves locally, to the IPLT.
template<int size, bool big_endian>
-bool
+void
Output_data_plt_powerpc<size, big_endian>::add_ifunc_entry(Symbol* gsym)
{
if (!gsym->has_plt_offset())
@@ -1646,15 +1644,13 @@ Output_data_plt_powerpc<size, big_endian>::add_ifunc_entry(Symbol* gsym)
this->rel_->add_symbolless_global_addend(gsym, dynrel, this, off, 0);
off += plt_entry_size;
this->set_current_data_size(off);
- return true;
}
- return false;
}
// Add an entry for a local ifunc symbol to the IPLT.
template<int size, bool big_endian>
-bool
+void
Output_data_plt_powerpc<size, big_endian>::add_local_ifunc_entry(
Sized_relobj_file<size, big_endian>* relobj,
unsigned int local_sym_index)
@@ -1670,9 +1666,7 @@ Output_data_plt_powerpc<size, big_endian>::add_local_ifunc_entry(
this, off, 0);
off += plt_entry_size;
this->set_current_data_size(off);
- return true;
}
- return false;
}
static const uint32_t add_0_11_11 = 0x7c0b5a14;
@@ -2430,16 +2424,15 @@ Target_powerpc<size, big_endian>::make_plt_entry(
{
if (this->iplt_ == NULL)
this->make_iplt_section(layout);
- if (this->iplt_->add_ifunc_entry(gsym))
- this->glink_->add_entry(object, gsym, reloc);
+ this->iplt_->add_ifunc_entry(gsym);
}
else
{
if (this->plt_ == NULL)
this->make_plt_section(layout);
- if (this->plt_->add_entry(gsym))
- this->glink_->add_entry(object, gsym, reloc);
+ this->plt_->add_entry(gsym);
}
+ this->glink_->add_entry(object, gsym, reloc);
}
// Make a PLT entry for a local STT_GNU_IFUNC symbol.
@@ -2454,8 +2447,8 @@ Target_powerpc<size, big_endian>::make_local_ifunc_plt_entry(
if (this->iplt_ == NULL)
this->make_iplt_section(layout);
unsigned int r_sym = elfcpp::elf_r_sym<size>(reloc.get_r_info());
- if (this->iplt_->add_local_ifunc_entry(relobj, r_sym))
- this->glink_->add_entry(relobj, r_sym, reloc);
+ this->iplt_->add_local_ifunc_entry(relobj, r_sym);
+ this->glink_->add_entry(relobj, r_sym, reloc);
}
// Return the number of entries in the PLT.