* config/tc-mips.c (md_apply_fix3): Don't subtract the symbol's
value twice for RELA relocations.
This commit is contained in:
parent
c4bb8067a5
commit
d6e9d61afd
@ -1,3 +1,8 @@
|
||||
2002-06-13 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
|
||||
|
||||
* config/tc-mips.c (md_apply_fix3): Don't subtract the symbol's
|
||||
value twice for RELA relocations.
|
||||
|
||||
2002-06-12 Ben Elliston <bje@redhat.com>
|
||||
|
||||
* symbols.c (resolve_symbol_value): Initialise final_val.
|
||||
|
@ -10892,10 +10892,13 @@ md_apply_fix3 (fixP, valP, seg)
|
||||
{
|
||||
if (mips_need_elf_addend_fixup (fixP))
|
||||
{
|
||||
reloc_howto_type *howto;
|
||||
valueT symval = S_GET_VALUE (fixP->fx_addsy);
|
||||
|
||||
value -= symval;
|
||||
if (value != 0 && ! fixP->fx_pcrel)
|
||||
|
||||
howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type);
|
||||
if (value != 0 && howto->partial_inplace && ! fixP->fx_pcrel)
|
||||
{
|
||||
/* In this case, the bfd_install_relocation routine will
|
||||
incorrectly add the symbol value back in. We just want
|
||||
@ -10913,12 +10916,8 @@ md_apply_fix3 (fixP, valP, seg)
|
||||
leave the matching HI16 in-place addends as zero. */
|
||||
if (fixP->fx_r_type != BFD_RELOC_HI16_S)
|
||||
{
|
||||
reloc_howto_type *howto;
|
||||
bfd_vma contents, mask, field;
|
||||
|
||||
howto = bfd_reloc_type_lookup (stdoutput,
|
||||
fixP->fx_r_type);
|
||||
|
||||
contents = bfd_get_bits (fixP->fx_frag->fr_literal
|
||||
+ fixP->fx_where,
|
||||
fixP->fx_size * 8,
|
||||
|
Loading…
Reference in New Issue
Block a user