diff options
author | Roland McGrath <roland@gnu.org> | 2012-11-01 23:27:00 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2012-11-01 23:27:00 +0000 |
commit | 62fe925ad4724f379e9bec4f19408dc71d416042 (patch) | |
tree | a38eb108a77b95f8198287b49496b30877edde02 /gold | |
parent | c06dec1422120f824d5d10a898527c75a48eaf5f (diff) | |
download | gdb-62fe925ad4724f379e9bec4f19408dc71d416042.zip gdb-62fe925ad4724f379e9bec4f19408dc71d416042.tar.gz gdb-62fe925ad4724f379e9bec4f19408dc71d416042.tar.bz2 |
gold/
* target.h (Sized_target::relocate_relocs): Use Elf_Off
for offset_in_output_section parameter.
(Sized_target::relocate_special_relocatable): Likewise.
* arm.cc (Target_arm::relocate_relocs): Likewise.
(Target_arm::relocate_special_relocatable): Likewise.
* i386.cc (Target_i386::relocate_relocs): Likewise.
* powerpc.cc (Target_powerpc::relocate_relocs): Likewise.
* sparc.cc (Target_sparc::relocate_relocs): Likewise.
* target-reloc.h (relocate_relocs): Likewise.
* testsuite/testfile.cc (Target_test): Likewise.
* tilegx.cc (Target_tilegx::relocate_relocs): Likewise.
* x86_64.cc (Target_x86_64::relocate_relocs): Likewise.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 29 | ||||
-rw-r--r-- | gold/arm.cc | 10 | ||||
-rw-r--r-- | gold/i386.cc | 5 | ||||
-rw-r--r-- | gold/powerpc.cc | 37 | ||||
-rw-r--r-- | gold/sparc.cc | 5 | ||||
-rw-r--r-- | gold/target-reloc.h | 9 | ||||
-rw-r--r-- | gold/target.h | 6 | ||||
-rw-r--r-- | gold/testsuite/testfile.cc | 4 | ||||
-rw-r--r-- | gold/tilegx.cc | 72 | ||||
-rw-r--r-- | gold/x86_64.cc | 6 |
10 files changed, 100 insertions, 83 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index edb103d..2bff665 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,23 +1,32 @@ 2012-11-01 Roland McGrath <mcgrathr@google.com> + * target.h (Sized_target::relocate_relocs): Use Elf_Off + for offset_in_output_section parameter. + (Sized_target::relocate_special_relocatable): Likewise. + * arm.cc (Target_arm::relocate_relocs): Likewise. + (Target_arm::relocate_special_relocatable): Likewise. + * i386.cc (Target_i386::relocate_relocs): Likewise. + * powerpc.cc (Target_powerpc::relocate_relocs): Likewise. + * sparc.cc (Target_sparc::relocate_relocs): Likewise. + * target-reloc.h (relocate_relocs): Likewise. + * testsuite/testfile.cc (Target_test): Likewise. + * tilegx.cc (Target_tilegx::relocate_relocs): Likewise. + * x86_64.cc (Target_x86_64::relocate_relocs): Likewise. + + * system.h: Move inclusion of <clocale> to after <libintl.h> in + [ENABLE_NLS] section, and separately at top of [!ENABLE_NLS] section. + + * descriptors.cc (set_close_on_exec): Add ATTRIBUTE_UNUSED to the + parameter, which is unused in the [!F_SETFD] case. + * dwarf_reader.cc (Sized_elf_reloc_mapper::symbol_section): Cast SYMNDX to off_t before comparing it to this->data_size(). * output.cc (Output_symtab_xindex::endian_do_write): Likewise. * incremental.cc (Output_section_incremental_inputs::do_write): Cast GLOBAL_SYM_COUNT to off_t before comparing it to SYMTAB_SIZE. -2012-11-01 Roland McGrath <mcgrathr@google.com> - - * system.h: Move inclusion of <clocale> to after <libintl.h> in - [ENABLE_NLS] section, and separately at top of [!ENABLE_NLS] section. - * nacl.cc: Include "libiberty.h" for vasprintf declaration. -2012-11-01 Roland McGrath <mcgrathr@google.com> - - * descriptors.cc (set_close_on_exec): Add ATTRIBUTE_UNUSED to the - parameter, which is unused in the [!F_SETFD] case. - 2012-10-30 Steve McIntyre <steve.mcintyre@linaro.org> * gold.cc (Target_arm::do_adjust_elf_header): Add the diff --git a/gold/arm.cc b/gold/arm.cc index 5770c8a..1994329 100644 --- a/gold/arm.cc +++ b/gold/arm.cc @@ -2293,7 +2293,8 @@ class Target_arm : public Sized_target<32, big_endian> const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<32>::Elf_Off + offset_in_output_section, const Relocatable_relocs*, unsigned char* view, Arm_address view_address, @@ -2309,7 +2310,8 @@ class Target_arm : public Sized_target<32, big_endian> const unsigned char* preloc_in, size_t relnum, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<32>::Elf_Off + offset_in_output_section, unsigned char* view, typename elfcpp::Elf_types<32>::Elf_Addr view_address, @@ -9603,7 +9605,7 @@ Target_arm<big_endian>::relocate_relocs( const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<32>::Elf_Off offset_in_output_section, const Relocatable_relocs* rr, unsigned char* view, Arm_address view_address, @@ -9638,7 +9640,7 @@ Target_arm<big_endian>::relocate_special_relocatable( const unsigned char* preloc_in, size_t relnum, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<32>::Elf_Off offset_in_output_section, unsigned char* view, elfcpp::Elf_types<32>::Elf_Addr view_address, section_size_type, diff --git a/gold/i386.cc b/gold/i386.cc index 78f9770..fbf5670 100644 --- a/gold/i386.cc +++ b/gold/i386.cc @@ -414,7 +414,8 @@ class Target_i386 : public Sized_target<32, false> const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<32>::Elf_Off + offset_in_output_section, const Relocatable_relocs*, unsigned char* view, elfcpp::Elf_types<32>::Elf_Addr view_address, @@ -3617,7 +3618,7 @@ Target_i386::relocate_relocs( const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<32>::Elf_Off offset_in_output_section, const Relocatable_relocs* rr, unsigned char* view, elfcpp::Elf_types<32>::Elf_Addr view_address, diff --git a/gold/powerpc.cc b/gold/powerpc.cc index 5e4006c..3b36b41 100644 --- a/gold/powerpc.cc +++ b/gold/powerpc.cc @@ -393,7 +393,8 @@ class Target_powerpc : public Sized_target<size, big_endian> const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<size>::Elf_Off + offset_in_output_section, const Relocatable_relocs*, unsigned char*, Address view_address, @@ -2511,7 +2512,7 @@ savegpr0_tail(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* restgpr0(unsigned char* p, int r) { uint32_t insn = ld_0_1 + (r << 21) + (1 << 16) - (32 - r) * 8; @@ -2520,7 +2521,7 @@ restgpr0(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* restgpr0_tail(unsigned char* p, int r) { uint32_t insn = ld_0_1 + 16; @@ -2539,7 +2540,7 @@ restgpr0_tail(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* savegpr1(unsigned char* p, int r) { uint32_t insn = std_0_12 + (r << 21) + (1 << 16) - (32 - r) * 8; @@ -2548,7 +2549,7 @@ savegpr1(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* savegpr1_tail(unsigned char* p, int r) { p = savegpr1<big_endian>(p, r); @@ -2557,7 +2558,7 @@ savegpr1_tail(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* restgpr1(unsigned char* p, int r) { uint32_t insn = ld_0_12 + (r << 21) + (1 << 16) - (32 - r) * 8; @@ -2566,7 +2567,7 @@ restgpr1(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* restgpr1_tail(unsigned char* p, int r) { p = restgpr1<big_endian>(p, r); @@ -2575,7 +2576,7 @@ restgpr1_tail(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* savefpr(unsigned char* p, int r) { uint32_t insn = stfd_0_1 + (r << 21) + (1 << 16) - (32 - r) * 8; @@ -2584,7 +2585,7 @@ savefpr(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* savefpr0_tail(unsigned char* p, int r) { p = savefpr<big_endian>(p, r); @@ -2595,7 +2596,7 @@ savefpr0_tail(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* restfpr(unsigned char* p, int r) { uint32_t insn = lfd_0_1 + (r << 21) + (1 << 16) - (32 - r) * 8; @@ -2604,7 +2605,7 @@ restfpr(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* restfpr0_tail(unsigned char* p, int r) { write_insn<big_endian>(p, ld_0_1 + 16); @@ -2622,7 +2623,7 @@ restfpr0_tail(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* savefpr1_tail(unsigned char* p, int r) { p = savefpr<big_endian>(p, r); @@ -2631,7 +2632,7 @@ savefpr1_tail(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* restfpr1_tail(unsigned char* p, int r) { p = restfpr<big_endian>(p, r); @@ -2640,7 +2641,7 @@ restfpr1_tail(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* savevr(unsigned char* p, int r) { uint32_t insn = li_12_0 + (1 << 16) - (32 - r) * 16; @@ -2652,7 +2653,7 @@ savevr(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* savevr_tail(unsigned char* p, int r) { p = savevr<big_endian>(p, r); @@ -2661,7 +2662,7 @@ savevr_tail(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* restvr(unsigned char* p, int r) { uint32_t insn = li_12_0 + (1 << 16) - (32 - r) * 16; @@ -2673,7 +2674,7 @@ restvr(unsigned char* p, int r) } template<bool big_endian> -static unsigned char* +static unsigned char* restvr_tail(unsigned char* p, int r) { p = restvr<big_endian>(p, r); @@ -5177,7 +5178,7 @@ Target_powerpc<size, big_endian>::relocate_relocs( const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<size>::Elf_Off offset_in_output_section, const Relocatable_relocs* rr, unsigned char*, Address view_address, diff --git a/gold/sparc.cc b/gold/sparc.cc index 456ee46..6db3b10 100644 --- a/gold/sparc.cc +++ b/gold/sparc.cc @@ -138,7 +138,8 @@ class Target_sparc : public Sized_target<size, big_endian> const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<size>::Elf_Off + offset_in_output_section, const Relocatable_relocs*, unsigned char* view, typename elfcpp::Elf_types<size>::Elf_Addr view_address, @@ -4213,7 +4214,7 @@ Target_sparc<size, big_endian>::relocate_relocs( const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<size>::Elf_Off offset_in_output_section, const Relocatable_relocs* rr, unsigned char* view, typename elfcpp::Elf_types<size>::Elf_Addr view_address, diff --git a/gold/target-reloc.h b/gold/target-reloc.h index 769a524..039621c 100644 --- a/gold/target-reloc.h +++ b/gold/target-reloc.h @@ -1,6 +1,7 @@ // target-reloc.h -- target specific relocation support -*- C++ -*- -// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +// Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012 +// Free Software Foundation, Inc. // Written by Ian Lance Taylor <iant@google.com>. // This file is part of gold. @@ -87,7 +88,7 @@ scan_relocs( // // FIXME: We should issue a warning if this is an // allocated section; is this the best place to do it? - // + // // FIXME: The old GNU linker would in some cases look // for the linkonce section which caused this section to // be discarded, and, if the other section was the same @@ -311,7 +312,7 @@ relocate_section( // If the local symbol belongs to a section we are discarding, // and that section is a debug section, try to find the // corresponding kept section and map this symbol to its - // counterpart in the kept section. The symbol must not + // counterpart in the kept section. The symbol must not // correspond to a section we are folding. bool is_ordinary; shndx = psymval->input_shndx(&is_ordinary); @@ -606,7 +607,7 @@ relocate_relocs( const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - typename elfcpp::Elf_types<size>::Elf_Addr offset_in_output_section, + typename elfcpp::Elf_types<size>::Elf_Off offset_in_output_section, const Relocatable_relocs* rr, unsigned char* view, typename elfcpp::Elf_types<size>::Elf_Addr view_address, diff --git a/gold/target.h b/gold/target.h index 3464a2b..d4b9d0f 100644 --- a/gold/target.h +++ b/gold/target.h @@ -838,7 +838,8 @@ class Sized_target : public Target const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<size>::Elf_Off + offset_in_output_section, const Relocatable_relocs*, unsigned char* view, typename elfcpp::Elf_types<size>::Elf_Addr view_address, @@ -868,7 +869,8 @@ class Sized_target : public Target const unsigned char* /* preloc_in */, size_t /* relnum */, Output_section* /* output_section */, - off_t /* offset_in_output_section */, + typename elfcpp::Elf_types<size>::Elf_Off + /* offset_in_output_section */, unsigned char* /* view */, typename elfcpp::Elf_types<size>::Elf_Addr /* view_address */, diff --git a/gold/testsuite/testfile.cc b/gold/testsuite/testfile.cc index 3ce0c97..da3dc61 100644 --- a/gold/testsuite/testfile.cc +++ b/gold/testsuite/testfile.cc @@ -74,8 +74,8 @@ class Target_test : public Sized_target<size, big_endian> void relocate_relocs(const Relocate_info<size, big_endian>*, unsigned int, const unsigned char*, size_t, - Output_section*, off_t, const Relocatable_relocs*, - unsigned char*, + Output_section*, typename elfcpp::Elf_types<size>::Elf_Off, + const Relocatable_relocs*, unsigned char*, typename elfcpp::Elf_types<size>::Elf_Addr, section_size_type, unsigned char*, section_size_type) diff --git a/gold/tilegx.cc b/gold/tilegx.cc index f03014f..7babf4e 100644 --- a/gold/tilegx.cc +++ b/gold/tilegx.cc @@ -316,7 +316,7 @@ class Target_tilegx : public Sized_target<size, big_endian> const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<size>::Elf_Off offset_in_output_section, const Relocatable_relocs*, unsigned char* view, typename elfcpp::Elf_types<size>::Elf_Addr view_address, @@ -780,7 +780,7 @@ public: // right shift operand by this number of bits. unsigned char srshift; - // the offset to apply relocation. + // the offset to apply relocation. unsigned char doffset; // set to 1 for pc-relative relocation. @@ -899,7 +899,7 @@ private: Valtype* wv = reinterpret_cast<Valtype*>(view); Valtype val = elfcpp::Swap<valsize, big_endian>::readval(wv); Valtype reloc = 0; - if (size == 32) + if (size == 32) reloc = Bits<32>::sign_extend(psymval->value(object, addend) - address) >> srshift; else @@ -927,7 +927,7 @@ private: Valtype; unsigned char* wv = view; Valtype reloc = 0; - if (size == 32) + if (size == 32) reloc = Bits<32>::sign_extend(psymval->value(object, addend) - address) >> srshift; else @@ -954,7 +954,7 @@ private: Valtype* wv = reinterpret_cast<Valtype*>(view); Valtype val = elfcpp::Swap<valsize, big_endian>::readval(wv); Valtype reloc = 0; - if (size == 32) + if (size == 32) reloc = Bits<32>::sign_extend(psymval->value(object, addend) - address) >> srshift; else @@ -1043,7 +1043,7 @@ public: const Symbol_value<size>* psymval, typename elfcpp::Elf_types<size>::Elf_Addr addend, Tilegx_howto &r_howto) - { + { This::template rela<64>(view, object, psymval, addend, (elfcpp::Elf_Xword)(r_howto.srshift), (elfcpp::Elf_Xword)(r_howto.doffset), @@ -1057,7 +1057,7 @@ public: typename elfcpp::Elf_types<size>::Elf_Addr addend, typename elfcpp::Elf_types<size>::Elf_Addr address, Tilegx_howto &r_howto) - { + { This::template pcrela<64>(view, object, psymval, addend, address, (elfcpp::Elf_Xword)(r_howto.srshift), (elfcpp::Elf_Xword)(r_howto.doffset), @@ -1071,7 +1071,7 @@ public: typename elfcpp::Elf_types<size>::Elf_Addr addend, typename elfcpp::Elf_types<size>::Elf_Addr address, unsigned int r_type) - { + { elfcpp::Elf_Xword doffset1 = 0llu; elfcpp::Elf_Xword doffset2 = 0llu; @@ -1111,8 +1111,8 @@ public: static inline void tls_relax(unsigned char* view, unsigned int r_type, tls::Tls_optimization opt_t) - { - + { + const uint64_t TILEGX_X_MOVE_R0_R0 = 0x283bf8005107f000llu; const uint64_t TILEGX_Y_MOVE_R0_R0 = 0xae05f800540bf000llu; const uint64_t TILEGX_X_LD = 0x286ae80000000000llu; @@ -1176,7 +1176,7 @@ public: // LE: 1. copy dest operand into the first source operand // 2. change the opcode to "move" reloc = (val & 0x3Fllu) << 6; - reloc |= (TILEGX_X_MOVE_R0_R0 & TILEGX_X0_RRR_SRCB_MASK); + reloc |= (TILEGX_X_MOVE_R0_R0 & TILEGX_X0_RRR_SRCB_MASK); val &= ~R_TILEGX_IMM8_X0_TLS_ADD_LE_MASK; } else gold_unreachable(); @@ -1228,7 +1228,7 @@ public: break; case elfcpp::R_TILEGX_IMM8_X0_TLS_GD_ADD: if (opt_t == tls::TLSOPT_NONE) { - // GD see comments for optimize_tls_reloc + // GD see comments for optimize_tls_reloc reloc = TILEGX_X_MOVE_R0_R0 & TILEGX_X0_RRR_SRCB_MASK; val &= ~TILEGX_X0_RRR_SRCB_MASK; } else if (opt_t == tls::TLSOPT_TO_IE @@ -1890,7 +1890,7 @@ Target_tilegx<size, big_endian>::got_section(Symbol_table* symtab, false, false); this->got_->add_global(this->tilegx_dynamic_, GOT_TYPE_STANDARD); - } else + } else // for executable, just set the first entry to zero. this->got_->set_current_data_size(size / 8); @@ -2022,7 +2022,7 @@ Output_data_plt_tilegx<size, big_endian>::add_entry(Symbol_table* symtab, plt_index = *pcount; // TILEGX .plt section layout - // + // // ---- // plt_header // ---- @@ -2030,9 +2030,9 @@ Output_data_plt_tilegx<size, big_endian>::add_entry(Symbol_table* symtab, // ---- // ... // ---- - // + // // TILEGX .got.plt section layout - // + // // ---- // reserv1 // ---- @@ -2041,7 +2041,7 @@ Output_data_plt_tilegx<size, big_endian>::add_entry(Symbol_table* symtab, // entries for normal function // ---- // ... - // ---- + // ---- // entries for ifunc // ---- // ... @@ -2874,8 +2874,8 @@ Target_tilegx<size, big_endian>::got_mod_index_entry(Symbol_table* symtab, // move r0, r0 Y0/Y1/X0/X1 // move r0, r0 Y0/Y1/X0/X1 // add adr, r0, tp Y0/Y1/X0/X1 -// -// +// +// // compiler IE reference // | // V @@ -3123,7 +3123,7 @@ Target_tilegx<size, big_endian>::Scan::unsupported_reloc_local( } // We are about to emit a dynamic relocation of type R_TYPE. If the -// dynamic linker does not support it, issue an error. +// dynamic linker does not support it, issue an error. template<int size, bool big_endian> void Target_tilegx<size, big_endian>::Scan::check_non_pic(Relobj* object, @@ -3296,7 +3296,7 @@ Target_tilegx<size, big_endian>::Scan::local(Symbol_table* symtab, data_shndx, reloc.get_r_offset(), reloc.get_r_addend()); - + } } break; @@ -3450,7 +3450,7 @@ Target_tilegx<size, big_endian>::Scan::local(Symbol_table* symtab, break; // GD: requires two GOT entry for module index and offset - // IE: requires one GOT entry for tp-relative offset + // IE: requires one GOT entry for tp-relative offset // LE: shouldn't happen for global symbol case elfcpp::R_TILEGX_IMM16_X0_HW0_TLS_GD: case elfcpp::R_TILEGX_IMM16_X1_HW0_TLS_GD: @@ -3473,7 +3473,7 @@ Target_tilegx<size, big_endian>::Scan::local(Symbol_table* symtab, r_sym, shndx); else got->add_local_pair_with_rel(object, r_sym, shndx, - GOT_TYPE_TLS_PAIR, + GOT_TYPE_TLS_PAIR, target->rela_dyn_section(layout), size == 32 ? elfcpp::R_TILEGX_TLS_DTPMOD32 @@ -3493,7 +3493,7 @@ Target_tilegx<size, big_endian>::Scan::local(Symbol_table* symtab, ? elfcpp::R_TILEGX_TLS_TPOFF32 : elfcpp::R_TILEGX_TLS_TPOFF64, got, off, 0); - } else if (opt_t != tls::TLSOPT_TO_LE) + } else if (opt_t != tls::TLSOPT_TO_LE) // only TO_LE is allowed for local symbol unsupported_reloc_local(object, r_type); } @@ -4010,7 +4010,7 @@ Target_tilegx<size, big_endian>::Scan::global(Symbol_table* symtab, symtab->lookup("__tls_get_addr")); } break; - + // only make effect when applying relocation case elfcpp::R_TILEGX_TLS_IE_LOAD: case elfcpp::R_TILEGX_IMM8_X0_TLS_ADD: @@ -4022,9 +4022,9 @@ Target_tilegx<size, big_endian>::Scan::global(Symbol_table* symtab, case elfcpp::R_TILEGX_IMM8_Y0_TLS_GD_ADD: case elfcpp::R_TILEGX_IMM8_Y1_TLS_GD_ADD: break; - + // GD: requires two GOT entry for module index and offset - // IE: requires one GOT entry for tp-relative offset + // IE: requires one GOT entry for tp-relative offset // LE: shouldn't happen for global symbol case elfcpp::R_TILEGX_IMM16_X0_HW0_TLS_GD: case elfcpp::R_TILEGX_IMM16_X1_HW0_TLS_GD: @@ -4058,7 +4058,7 @@ Target_tilegx<size, big_endian>::Scan::global(Symbol_table* symtab, unsupported_reloc_global(object, r_type, gsym); } break; - + // IE case elfcpp::R_TILEGX_IMM16_X0_HW0_TLS_IE: case elfcpp::R_TILEGX_IMM16_X1_HW0_TLS_IE: @@ -4081,7 +4081,7 @@ Target_tilegx<size, big_endian>::Scan::global(Symbol_table* symtab, unsupported_reloc_global(object, r_type, gsym); } break; - + // LE case elfcpp::R_TILEGX_IMM16_X0_HW0_TLS_LE: case elfcpp::R_TILEGX_IMM16_X1_HW0_TLS_LE: @@ -4626,16 +4626,16 @@ Target_tilegx<size, big_endian>::Relocate::relocate( } // else if (opt_t == tls::TLSOPT_TO_LE) // both GD/IE are turned into LE, which // is absolute relocation. - // + // // | go through - // | + // | // V // LE - // + // // tp // | // V - // t_var1 | t_var2 | t_var3 | ... + // t_var1 | t_var2 | t_var3 | ... // -------------------------------------------------- // // so offset to tp should be negative, we get offset @@ -4656,7 +4656,7 @@ Target_tilegx<size, big_endian>::Relocate::relocate( || issue_undefined_symbol_error(gsym)); return false; } - + typename elfcpp::Elf_types<size>::Elf_Addr value = psymval->value(relinfo->object, 0); symval.set_output_value(value); @@ -4836,7 +4836,7 @@ Target_tilegx<size, big_endian>::relocate_relocs( const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<size>::Elf_Off offset_in_output_section, const Relocatable_relocs* rr, unsigned char* view, typename elfcpp::Elf_types<size>::Elf_Addr view_address, @@ -4889,7 +4889,7 @@ Target_tilegx<size, big_endian>::do_ehframe_datarel_base() const return ssym->value(); } -// The selector for tilegx object files. +// The selector for tilegx object files. template<int size, bool big_endian> class Target_selector_tilegx : public Target_selector diff --git a/gold/x86_64.cc b/gold/x86_64.cc index 6c379ba..6342196 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -477,7 +477,7 @@ class Target_x86_64 : public Sized_target<size, false> const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<size>::Elf_Off offset_in_output_section, const Relocatable_relocs*, unsigned char* view, typename elfcpp::Elf_types<size>::Elf_Addr view_address, @@ -2307,7 +2307,7 @@ Target_x86_64<size>::Scan::local(Symbol_table* symtab, unsigned int r_sym = elfcpp::elf_r_sym<size>(reloc.get_r_info()); Reloc_section* rela_dyn = target->rela_dyn_section(layout); rela_dyn->add_local_relative(object, r_sym, - (size == 32 + (size == 32 ? elfcpp::R_X86_64_RELATIVE64 : elfcpp::R_X86_64_RELATIVE), output_section, data_shndx, @@ -4221,7 +4221,7 @@ Target_x86_64<size>::relocate_relocs( const unsigned char* prelocs, size_t reloc_count, Output_section* output_section, - off_t offset_in_output_section, + typename elfcpp::Elf_types<size>::Elf_Off offset_in_output_section, const Relocatable_relocs* rr, unsigned char* view, typename elfcpp::Elf_types<size>::Elf_Addr view_address, |