This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: PATCH: PR gold/13505: apply_relocation always use 64bit little endian relocation
- From: Ian Lance Taylor <iant at google dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: binutils at sourceware dot org, ccoutant at google dot com
- Date: Thu, 15 Dec 2011 13:17:39 -0800
- Subject: Re: PATCH: PR gold/13505: apply_relocation always use 64bit little endian relocation
- References: <20111215195644.GA12304@intel.com>
"H.J. Lu" <hongjiu.lu@intel.com> writes:
> This patch replaces <64, false> with <size, big_endian> in
> apply_relocation. Tested on Linux/x86-64 and Linux/ia32. OK to install?
Cary, this is approved if it looks OK to you.
Ian
> 2011-12-15 H.J. Lu <hongjiu.lu@intel.com>
>
> PR gold/13505
> * target-reloc.h (apply_relocation): Replace <64, false> with
> <size, big_endian>.
>
> diff --git a/gold/target-reloc.h b/gold/target-reloc.h
> index 464a3fa..6efcdf4 100644
> --- a/gold/target-reloc.h
> +++ b/gold/target-reloc.h
> @@ -423,17 +423,17 @@ apply_relocation(const Relocate_info<size, big_endian>* relinfo,
> section_size_type view_size)
> {
> // Construct the ELF relocation in a temporary buffer.
> - const int reloc_size = elfcpp::Elf_sizes<64>::rela_size;
> + const int reloc_size = elfcpp::Elf_sizes<size>::rela_size;
> unsigned char relbuf[reloc_size];
> - elfcpp::Rela<64, false> rel(relbuf);
> - elfcpp::Rela_write<64, false> orel(relbuf);
> + elfcpp::Rela<size, big_endian> rel(relbuf);
> + elfcpp::Rela_write<size, big_endian> orel(relbuf);
> orel.put_r_offset(r_offset);
> - orel.put_r_info(elfcpp::elf_r_info<64>(0, r_type));
> + orel.put_r_info(elfcpp::elf_r_info<size>(0, r_type));
> orel.put_r_addend(r_addend);
>
> // Setup a Symbol_value for the global symbol.
> - const Sized_symbol<64>* sym = static_cast<const Sized_symbol<64>*>(gsym);
> - Symbol_value<64> symval;
> + const Sized_symbol<size>* sym = static_cast<const Sized_symbol<size>*>(gsym);
> + Symbol_value<size> symval;
> gold_assert(sym->has_symtab_index() && sym->symtab_index() != -1U);
> symval.set_output_symtab_index(sym->symtab_index());
> symval.set_output_value(sym->value());