In bfd/:
* elf32-mips.c (mips_elf_next_relocation): Rename from mips_elf_next_lo16_relocation, and generalize to look for any relocation type. (elf_mips_howto_table): Make R_MIPS_PC16 pcrel_offset. (elf_mips_gnu_rel_hi16): Howto for R_MIPS_GNU_REL_HI16. (elf_mips_gnu_rel_lo16): Howto for R_MIPS_GNU_REL_LO16. (elf_mips_gnu_rel16_s2): Howto for R_MIPS_GNU_REL16_S2. (elf_mips_gnu_pcrel64): Howto for R_MIPS_PC64. (elf_mips_gnu_pcrel32): Howto for R_MIPS_PC32. (bfd_elf32_bfd_reloc_type_lookup): Add new relocs. (mips_rtype_to_howto): Likewise. (mips_elf_calculate_relocation): Handle new relocs. (_bfd_mips_elf_relocate_section): REL_HI16/REL_LO16 relocs are paired. The addend for R_MIPS_GNU_REL16_S2 is shifted right two bits. In gas/: * config/tc-mips.c (mips_ip): Don't put stuff in .rodata when embedded-pic. * config/tc-mips.c (SWITCH_TABLE): The ELF embedded-pic implementation doesn't have special handling for switch statements. (macro_build): Allow for code in sections other than .text. (macro): Likewise. (mips_ip): Likewise. (md_apply_fix): Do pc-relative relocation madness for MIPS ELF. Don't perform relocs if we will be outputting them. (tc_gen_reloc): For ELF, just use fx_addnumber for pc-relative relocations. Allow BFD_RELOC_16_PCREL_S2 relocs when embedded-pic. In gas/testsuite/: * gas/mips/empic.d: New file. * gas/mips/empic.s: New file. * gas/mips/mips16-e.d: New file. * gas/mips/mips16-e.s: New file. * gas/mips/mips16-f.d: New file. * gas/mips/mips16-f.s: New file. * gas/mips/mips.exp: Add empic, mips16-e. Add mips16-f as an expected failure. In include/elf: * mips.h: Add R_MIPS_GNU_REL_HI16, R_MIPS_GNU_REL_LO16, R_MIPS_GNU_REL16_S2, R_MIPS_PC64 and R_MIPS_PC32 relocation numbers.
This commit is contained in:
parent
e31b2ac226
commit
fca5fcb1e0
|
@ -1,3 +1,9 @@
|
|||
2000-03-10 Geoffrey Keating <geoffk@cygnus.com>
|
||||
|
||||
* mips.h: Add R_MIPS_GNU_REL_HI16, R_MIPS_GNU_REL_LO16,
|
||||
R_MIPS_GNU_REL16_S2, R_MIPS_PC64 and R_MIPS_PC32 relocation
|
||||
numbers.
|
||||
|
||||
2000-02-23 Linas Vepstas <linas@linas.org>
|
||||
|
||||
* i370.h: New file.
|
||||
|
|
|
@ -75,6 +75,12 @@ 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)
|
||||
/* These are GNU extensions to handle embedded-pic. */
|
||||
RELOC_NUMBER (R_MIPS_PC32, 248)
|
||||
RELOC_NUMBER (R_MIPS_PC64, 249)
|
||||
RELOC_NUMBER (R_MIPS_GNU_REL16_S2, 250)
|
||||
RELOC_NUMBER (R_MIPS_GNU_REL_LO16, 251)
|
||||
RELOC_NUMBER (R_MIPS_GNU_REL_HI16, 252)
|
||||
/* These are GNU extensions to enable C++ vtable garbage collection. */
|
||||
RELOC_NUMBER (R_MIPS_GNU_VTINHERIT, 253)
|
||||
RELOC_NUMBER (R_MIPS_GNU_VTENTRY, 254)
|
||||
|
|
Loading…
Reference in New Issue