2013-05-30 Paul Brook <paul@codesourcery.com>
bfd/ * bfd-in2.h: Regenerate. * elf32-mips.c (elf_mips_eh_howto): New. (bfd_elf32_bfd_reloc_type_lookup ): Support BFD_RELOC_MIPS_EH. (bfd_elf32_bfd_reloc_name_lookup): Likewise. (mips_elf32_rtype_to_howto): Support R_MIPS_EH. * elf64-mips.c (elf_mips_eh_howto): New. (bfd_elf64_bfd_reloc_type_lookup): Support BFD_RELOC_MIPS_EH. (bfd_elf64_bfd_reloc_name_lookup): Likewise. (mips_elf64_rtype_to_howto): Support R_MIPS_EH. * libbfd.h: Regenerate. * reloc.c (BFD_RELOC_MIPS_EH): New. gas/ * config/tc-mips.c (md_apply_fix): Support BFD_RELOC_MIPS_EH. include/elf * mips.h (R_MIPS_EH): New.
This commit is contained in:
parent
4e993a190a
commit
067ec077d7
11 changed files with 96 additions and 0 deletions
|
@ -2671,6 +2671,23 @@ static reloc_howto_type elf_mips_jump_slot_howto =
|
|||
0x0, /* src_mask */
|
||||
0x0, /* dst_mask */
|
||||
FALSE); /* pcrel_offset */
|
||||
|
||||
/* Used in EH tables. */
|
||||
static reloc_howto_type elf_mips_eh_howto =
|
||||
HOWTO (R_MIPS_EH, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
FALSE, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_signed, /* complain_on_overflow */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MIPS_EH", /* name */
|
||||
TRUE, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
FALSE); /* pcrel_offset */
|
||||
|
||||
|
||||
/* Swap in a MIPS 64-bit Rel reloc. */
|
||||
|
||||
|
@ -3276,6 +3293,8 @@ bfd_elf64_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
|
|||
return &elf_mips_gnu_vtentry_howto;
|
||||
case BFD_RELOC_32_PCREL:
|
||||
return &elf_mips_gnu_pcrel32;
|
||||
case BFD_RELOC_MIPS_EH:
|
||||
return &elf_mips_eh_howto;
|
||||
case BFD_RELOC_MIPS_COPY:
|
||||
return &elf_mips_copy_howto;
|
||||
case BFD_RELOC_MIPS_JUMP_SLOT:
|
||||
|
@ -3325,6 +3344,8 @@ bfd_elf64_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
|
|||
return &elf_mips_gnu_rela16_s2;
|
||||
if (strcasecmp (elf_mips_gnu_pcrel32.name, r_name) == 0)
|
||||
return &elf_mips_gnu_pcrel32;
|
||||
if (strcasecmp (elf_mips_eh_howto.name, r_name) == 0)
|
||||
return &elf_mips_eh_howto;
|
||||
if (strcasecmp (elf_mips_copy_howto.name, r_name) == 0)
|
||||
return &elf_mips_copy_howto;
|
||||
if (strcasecmp (elf_mips_jump_slot_howto.name, r_name) == 0)
|
||||
|
@ -3351,6 +3372,8 @@ mips_elf64_rtype_to_howto (unsigned int r_type, bfd_boolean rela_p)
|
|||
return &elf_mips_gnu_rel16_s2;
|
||||
case R_MIPS_PC32:
|
||||
return &elf_mips_gnu_pcrel32;
|
||||
case R_MIPS_EH:
|
||||
return &elf_mips_eh_howto;
|
||||
case R_MIPS_COPY:
|
||||
return &elf_mips_copy_howto;
|
||||
case R_MIPS_JUMP_SLOT:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue