aboutsummaryrefslogtreecommitdiff
path: root/gold/sparc.cc
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-09-05 00:34:20 +0000
committerAlan Modra <amodra@gmail.com>2012-09-05 00:34:20 +0000
commit7404fe1b8d20b30162a7e56307d5a2d400cb5645 (patch)
tree71cfb8fde4ad34ab2eb812996ad807feec50828b /gold/sparc.cc
parentf54ae065b8f805b626729a8f60bacf8312a182db (diff)
downloadgdb-7404fe1b8d20b30162a7e56307d5a2d400cb5645.zip
gdb-7404fe1b8d20b30162a7e56307d5a2d400cb5645.tar.gz
gdb-7404fe1b8d20b30162a7e56307d5a2d400cb5645.tar.bz2
* object.h (Sized_relobj_file::emit_relocs): Delete.
(Sized_relobj_file::emit_relocs_reltype): Delete. * reloc.cc (Sized_relobj_file::do_relocate_sections): Call target relocate_relocs for --emit-relocs. (Sized_relobj_file::emit_relocs, emit_relocs_reltype): Delete. * output.h: Update comment. (Output_segment::first_section): New function. (Output_segment::first_section_load_address): Use first_section. * output.cc (Output_segment::first_section): New function extracted.. (Output_segment::first_section_load_address): ..from here. Delete. * target-reloc.h (relocate_for_relocatable): Rename to relocate_relocs. * target.h (Sized_target::relocate_for_relocatable): Likewise. * arm.cc (Target_arm::relocate_for_relocatable): Likewise, and adjust call to target.h function. * i386.cc (Target_i386): Likewise. * sparc.cc (Target_sparc): Likewise. * x86_64.cc (Target_x86_64): Likewise. * powerpc.cc (Target_powerpc): Likewise. (Target_powerpc::Scan::local, global): Handle R_POWERPC_TLS. Ensure first tls section has section symbol for optimised local dynamic output relocs. (Target_powerpc::Relocate::relocate): Correct local dynamic value. (Target_powerpc::relocate_relocs): Adjust relocs emitted for optimised tls code. * testsuite/testfile.cc (Target_test::relocate_for_relocatable): Rename to relocate_relocs. Update error message.
Diffstat (limited to 'gold/sparc.cc')
-rw-r--r--gold/sparc.cc33
1 files changed, 17 insertions, 16 deletions
diff --git a/gold/sparc.cc b/gold/sparc.cc
index 7b78311..f8c59ec 100644
--- a/gold/sparc.cc
+++ b/gold/sparc.cc
@@ -131,20 +131,21 @@ class Target_sparc : public Sized_target<size, big_endian>
const unsigned char* plocal_symbols,
Relocatable_relocs*);
- // Relocate a section during a relocatable link.
+ // Emit relocations for a section.
void
- relocate_for_relocatable(const Relocate_info<size, big_endian>*,
- unsigned int sh_type,
- const unsigned char* prelocs,
- size_t reloc_count,
- Output_section* output_section,
- off_t offset_in_output_section,
- const Relocatable_relocs*,
- unsigned char* view,
- typename elfcpp::Elf_types<size>::Elf_Addr view_address,
- section_size_type view_size,
- unsigned char* reloc_view,
- section_size_type reloc_view_size);
+ relocate_relocs(const Relocate_info<size, big_endian>*,
+ unsigned int sh_type,
+ const unsigned char* prelocs,
+ size_t reloc_count,
+ Output_section* output_section,
+ off_t offset_in_output_section,
+ const Relocatable_relocs*,
+ unsigned char* view,
+ typename elfcpp::Elf_types<size>::Elf_Addr view_address,
+ section_size_type view_size,
+ unsigned char* reloc_view,
+ section_size_type reloc_view_size);
+
// Return whether SYM is defined by the ABI.
bool
do_is_defined_by_abi(const Symbol* sym) const
@@ -4197,11 +4198,11 @@ Target_sparc<size, big_endian>::scan_relocatable_relocs(
rr);
}
-// Relocate a section during a relocatable link.
+// Emit relocations for a section.
template<int size, bool big_endian>
void
-Target_sparc<size, big_endian>::relocate_for_relocatable(
+Target_sparc<size, big_endian>::relocate_relocs(
const Relocate_info<size, big_endian>* relinfo,
unsigned int sh_type,
const unsigned char* prelocs,
@@ -4217,7 +4218,7 @@ Target_sparc<size, big_endian>::relocate_for_relocatable(
{
gold_assert(sh_type == elfcpp::SHT_RELA);
- gold::relocate_for_relocatable<size, big_endian, elfcpp::SHT_RELA>(
+ gold::relocate_relocs<size, big_endian, elfcpp::SHT_RELA>(
relinfo,
prelocs,
reloc_count,