aboutsummaryrefslogtreecommitdiff
path: root/gold/output.cc
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2021-08-28 14:45:53 +0930
committerAlan Modra <amodra@gmail.com>2021-09-18 08:20:11 +0930
commit54721a930e80a635d3cb47c0ad3899ed9680bd78 (patch)
tree88b5cd53e547a5a37273303eabeac5bbcc868499 /gold/output.cc
parent973b2b402ebf660e2bbbac60e85469164d76ecfc (diff)
downloadgdb-54721a930e80a635d3cb47c0ad3899ed9680bd78.zip
gdb-54721a930e80a635d3cb47c0ad3899ed9680bd78.tar.gz
gdb-54721a930e80a635d3cb47c0ad3899ed9680bd78.tar.bz2
[GOLD] Output_data_got tidy
Some Output_data_got methods already have support for addends, but were implemented as separate methods. This removes unnecessary code duplication. Relobj::local_has_got_offset and others there get a similar treatment. Comments are removed since it should be obvious without a comment, and the existing comments are not precisely what the code does. For example, a local_has_got_offset call without an addend does not return whether the local symbol has *a* GOT offset of type GOT_TYPE, it returns whether there is a GOT entry of type GOT_TYPE for the symbol with addend of zero. PR 28192 * output.h (Output_data_got::add_local): Make addend optional. (Output_data_got::add_local_with_rel): Likewise. (Output_data_got::add_local_pair_with_rel): Likewise. * output.cc (Output_data_got::add_local): Delete overload without addend. (Output_data_got::add_local_with_rel): Likewise. (Output_data_got::add_local_pair_with_rel): Likewise. * object.h (Relobj::local_has_got_offset): Make addend optional. Delete overload without addend later. Update comment. (Relobj::local_got_offset): Likewise. (Relobj::set_local_got_offset): Likewise.
Diffstat (limited to 'gold/output.cc')
-rw-r--r--gold/output.cc66
1 files changed, 0 insertions, 66 deletions
diff --git a/gold/output.cc b/gold/output.cc
index afdba06..75f54f0 100644
--- a/gold/output.cc
+++ b/gold/output.cc
@@ -1531,26 +1531,6 @@ Output_data_got<got_size, big_endian>::add_global_pair_with_rel(
got_offset + got_size / 8, 0);
}
-// Add an entry for a local symbol to the GOT. This returns true if
-// this is a new GOT entry, false if the symbol already has a GOT
-// entry.
-
-template<int got_size, bool big_endian>
-bool
-Output_data_got<got_size, big_endian>::add_local(
- Relobj* object,
- unsigned int symndx,
- unsigned int got_type)
-{
- if (object->local_has_got_offset(symndx, got_type))
- return false;
-
- unsigned int got_offset = this->add_got_entry(Got_entry(object, symndx,
- false));
- object->set_local_got_offset(symndx, got_type, got_offset);
- return true;
-}
-
// Add an entry for a local symbol plus ADDEND to the GOT. This returns
// true if this is a new GOT entry, false if the symbol already has a GOT
// entry.
@@ -1590,26 +1570,6 @@ Output_data_got<got_size, big_endian>::add_local_plt(
return true;
}
-// Add an entry for a local symbol to the GOT, and add a dynamic
-// relocation of type R_TYPE for the GOT entry.
-
-template<int got_size, bool big_endian>
-void
-Output_data_got<got_size, big_endian>::add_local_with_rel(
- Relobj* object,
- unsigned int symndx,
- unsigned int got_type,
- Output_data_reloc_generic* rel_dyn,
- unsigned int r_type)
-{
- if (object->local_has_got_offset(symndx, got_type))
- return;
-
- unsigned int got_offset = this->add_got_entry(Got_entry());
- object->set_local_got_offset(symndx, got_type, got_offset);
- rel_dyn->add_local_generic(object, symndx, r_type, this, got_offset, 0);
-}
-
// Add an entry for a local symbol plus ADDEND to the GOT, and add a dynamic
// relocation of type R_TYPE for the GOT entry.
@@ -1631,32 +1591,6 @@ Output_data_got<got_size, big_endian>::add_local_with_rel(
addend);
}
-// Add a pair of entries for a local symbol to the GOT, and add
-// a dynamic relocation of type R_TYPE using the section symbol of
-// the output section to which input section SHNDX maps, on the first.
-// The first got entry will have a value of zero, the second the
-// value of the local symbol.
-template<int got_size, bool big_endian>
-void
-Output_data_got<got_size, big_endian>::add_local_pair_with_rel(
- Relobj* object,
- unsigned int symndx,
- unsigned int shndx,
- unsigned int got_type,
- Output_data_reloc_generic* rel_dyn,
- unsigned int r_type)
-{
- if (object->local_has_got_offset(symndx, got_type))
- return;
-
- unsigned int got_offset =
- this->add_got_entry_pair(Got_entry(),
- Got_entry(object, symndx, false));
- object->set_local_got_offset(symndx, got_type, got_offset);
- Output_section* os = object->output_section(shndx);
- rel_dyn->add_output_section_generic(os, r_type, this, got_offset, 0);
-}
-
// Add a pair of entries for a local symbol plus ADDEND to the GOT, and add
// a dynamic relocation of type R_TYPE using the section symbol of
// the output section to which input section SHNDX maps, on the first.