[ bfd/ChangeLog ]
2004-06-14 Chris Demetriou <cgd@broadcom.com> * elf32-mips.c (elf_mips_gnu_pcrel32): Add (undoing 2004-04-24 removal) with updated comment. (bfd_elf32_bfd_reloc_type_lookup): Add back case for BFD_RELOC_32_PCREL. (mips_elf32_rtype_to_howto): Add back case for R_MIPS_PC32. * elfxx-mips.c (mips_elf_calculate_relocation): Likewise. [ include/elf/ChangeLog ] 2004-06-14 Chris Demetriou <cgd@broadcom.com> * mips.h (R_MIPS_PC32): Add back (undoing removal on 2004-04-24), with an updated comment.
This commit is contained in:
parent
700c15aa2a
commit
092dcd755d
5 changed files with 47 additions and 0 deletions
|
@ -1,3 +1,12 @@
|
|||
2004-06-14 Chris Demetriou <cgd@broadcom.com>
|
||||
|
||||
* elf32-mips.c (elf_mips_gnu_pcrel32): Add (undoing 2004-04-24
|
||||
removal) with updated comment.
|
||||
(bfd_elf32_bfd_reloc_type_lookup): Add back case for
|
||||
BFD_RELOC_32_PCREL.
|
||||
(mips_elf32_rtype_to_howto): Add back case for R_MIPS_PC32.
|
||||
* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
|
||||
|
||||
2004-06-12 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf64-x86-64.c (elf64_x86_64_relocate_section): Ignore reloc
|
||||
|
|
|
@ -615,6 +615,25 @@ static reloc_howto_type elf_mips_gnu_rel16_s2 =
|
|||
0xffff, /* dst_mask */
|
||||
TRUE); /* pcrel_offset */
|
||||
|
||||
/* 32 bit pc-relative. This was a GNU extension used by embedded-PIC.
|
||||
It was co-opted by mips-linux for exception-handling data. It is no
|
||||
longer used, but should continue to be supported by the linker for
|
||||
backward compatibility. (GCC stopped using it in May, 2004.) */
|
||||
static reloc_howto_type elf_mips_gnu_pcrel32 =
|
||||
HOWTO (R_MIPS_PC32, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
TRUE, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_signed, /* complain_on_overflow */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MIPS_PC32", /* name */
|
||||
TRUE, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
TRUE); /* pcrel_offset */
|
||||
|
||||
/* GNU extension to record C++ vtable hierarchy */
|
||||
static reloc_howto_type elf_mips_gnu_vtinherit_howto =
|
||||
HOWTO (R_MIPS_GNU_VTINHERIT, /* type */
|
||||
|
@ -1071,6 +1090,8 @@ bfd_elf32_bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
|
|||
return &elf_mips_gnu_vtentry_howto;
|
||||
case BFD_RELOC_16_PCREL_S2:
|
||||
return &elf_mips_gnu_rel16_s2;
|
||||
case BFD_RELOC_32_PCREL:
|
||||
return &elf_mips_gnu_pcrel32;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1092,6 +1113,8 @@ mips_elf32_rtype_to_howto (unsigned int r_type,
|
|||
return &elf_mips_gnu_vtentry_howto;
|
||||
case R_MIPS_GNU_REL16_S2:
|
||||
return &elf_mips_gnu_rel16_s2;
|
||||
case R_MIPS_PC32:
|
||||
return &elf_mips_gnu_pcrel32;
|
||||
default:
|
||||
BFD_ASSERT (r_type < (unsigned int) R_MIPS_max);
|
||||
return &elf_mips_howto_table_rel[r_type];
|
||||
|
|
|
@ -3336,6 +3336,11 @@ mips_elf_calculate_relocation (bfd *abfd, bfd *input_bfd,
|
|||
value &= howto->dst_mask;
|
||||
break;
|
||||
|
||||
case R_MIPS_PC32:
|
||||
value = symbol + addend - p;
|
||||
value &= howto->dst_mask;
|
||||
break;
|
||||
|
||||
case R_MIPS_GNU_REL16_S2:
|
||||
value = symbol + _bfd_mips_elf_sign_extend (addend, 18) - p;
|
||||
overflowed_p = mips_elf_overflow_p (value, 18);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2004-06-14 Chris Demetriou <cgd@broadcom.com>
|
||||
|
||||
* mips.h (R_MIPS_PC32): Add back (undoing removal on 2004-04-24),
|
||||
with an updated comment.
|
||||
|
||||
2004-05-28 Andrew Stubbs <andrew.stubbs@superh.com>
|
||||
|
||||
* sh.h (EF_SH_HAS_DSP): Remove.
|
||||
|
|
|
@ -76,6 +76,11 @@ START_RELOC_NUMBERS (elf_mips_reloc_type)
|
|||
/* These relocs are used for the mips16. */
|
||||
RELOC_NUMBER (R_MIPS16_26, 100)
|
||||
RELOC_NUMBER (R_MIPS16_GPREL, 101)
|
||||
/* This was a GNU extension used by embedded-PIC. It was co-opted by
|
||||
mips-linux for exception-handling data. It is no longer used, but
|
||||
should continue to be supported by the linker for backward
|
||||
compatibility. (GCC stopped using it in May, 2004.) */
|
||||
RELOC_NUMBER (R_MIPS_PC32, 248)
|
||||
/* FIXME: this relocation is used internally by gas. */
|
||||
RELOC_NUMBER (R_MIPS_GNU_REL16_S2, 250)
|
||||
/* These are GNU extensions to enable C++ vtable garbage collection. */
|
||||
|
|
Loading…
Reference in a new issue