From 165b93e775da68589421df1c8dce01415af28635 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Sat, 28 Oct 2006 10:13:49 +0000 Subject: [PATCH] include/elf/ * mips.h (R_MIPS_GLOB_DAT): Define (R_MIPS_max): Bump by 1. bfd/ * elf32-mips.c (elf_mips_howto_table_rel): Add R_MIPS_GLOB_DAT. * elfn32-mips.c (elf_mips_howto_table_rel): Likewise. (elf_mips_howto_table_rela): Likewise. * elf64-mips.c (mips_elf64_howto_table_rel): Likewise. (mips_elf64_howto_table_rela): Likewise. --- bfd/ChangeLog | 8 ++++++++ bfd/elf32-mips.c | 15 +++++++++++++++ bfd/elf64-mips.c | 30 ++++++++++++++++++++++++++++++ bfd/elfn32-mips.c | 30 ++++++++++++++++++++++++++++++ include/elf/ChangeLog | 5 +++++ include/elf/mips.h | 3 ++- 6 files changed, 90 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1727234d509..38dbdbd96df 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2006-10-28 Richard Sandiford + + * elf32-mips.c (elf_mips_howto_table_rel): Add R_MIPS_GLOB_DAT. + * elfn32-mips.c (elf_mips_howto_table_rel): Likewise. + (elf_mips_howto_table_rela): Likewise. + * elf64-mips.c (mips_elf64_howto_table_rel): Likewise. + (mips_elf64_howto_table_rela): Likewise. + 2006-10-26 H.J. Lu * elf.c (_bfd_elf_init_private_section_data): Assert output diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c index c5e7dd45d5e..ddad2da36ea 100644 --- a/bfd/elf32-mips.c +++ b/bfd/elf32-mips.c @@ -700,6 +700,21 @@ static reloc_howto_type elf_mips_howto_table_rel[] = 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ + + /* 32 bit relocation with no addend. */ + HOWTO (R_MIPS_GLOB_DAT, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS_GLOB_DAT", /* name */ + FALSE, /* partial_inplace */ + 0x0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; /* The reloc used for BFD_RELOC_CTOR when doing a 64 bit link. This diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c index 408c352b05d..34b02e47473 100644 --- a/bfd/elf64-mips.c +++ b/bfd/elf64-mips.c @@ -789,6 +789,21 @@ static reloc_howto_type mips_elf64_howto_table_rel[] = 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ + + /* 32 bit relocation with no addend. */ + HOWTO (R_MIPS_GLOB_DAT, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS_GLOB_DAT", /* name */ + FALSE, /* partial_inplace */ + 0x0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; /* The relocation table used for SHT_RELA sections. */ @@ -1421,6 +1436,21 @@ static reloc_howto_type mips_elf64_howto_table_rela[] = 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ + + /* 32 bit relocation with no addend. */ + HOWTO (R_MIPS_GLOB_DAT, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS_GLOB_DAT", /* name */ + FALSE, /* partial_inplace */ + 0x0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; static reloc_howto_type mips16_elf64_howto_table_rel[] = diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c index 21cf4afc4ad..a14760e1bff 100644 --- a/bfd/elfn32-mips.c +++ b/bfd/elfn32-mips.c @@ -754,6 +754,21 @@ static reloc_howto_type elf_mips_howto_table_rel[] = 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ + + /* 32 bit relocation with no addend. */ + HOWTO (R_MIPS_GLOB_DAT, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS_GLOB_DAT", /* name */ + FALSE, /* partial_inplace */ + 0x0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; /* The relocation table used for SHT_RELA sections. */ @@ -1427,6 +1442,21 @@ static reloc_howto_type elf_mips_howto_table_rela[] = 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ + + /* 32 bit relocation with no addend. */ + HOWTO (R_MIPS_GLOB_DAT, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS_GLOB_DAT", /* name */ + FALSE, /* partial_inplace */ + 0x0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; static reloc_howto_type elf_mips16_howto_table_rel[] = diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index 9799f458222..3a661cbeb3e 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,8 @@ +2006-10-28 Richard Sandiford + + * mips.h (R_MIPS_GLOB_DAT): Define + (R_MIPS_max): Bump by 1. + 2006-10-25 Trevor Smigiel Yukishige Shibata Nobuhisa Fujinami diff --git a/include/elf/mips.h b/include/elf/mips.h index f22bd4d4213..c0d3eb114c8 100644 --- a/include/elf/mips.h +++ b/include/elf/mips.h @@ -87,7 +87,8 @@ START_RELOC_NUMBERS (elf_mips_reloc_type) RELOC_NUMBER (R_MIPS_TLS_TPREL64, 48) RELOC_NUMBER (R_MIPS_TLS_TPREL_HI16, 49) RELOC_NUMBER (R_MIPS_TLS_TPREL_LO16, 50) - FAKE_RELOC (R_MIPS_max, 51) + RELOC_NUMBER (R_MIPS_GLOB_DAT, 51) + FAKE_RELOC (R_MIPS_max, 52) /* These relocs are used for the mips16. */ FAKE_RELOC (R_MIPS16_min, 100) RELOC_NUMBER (R_MIPS16_26, 100) -- 2.30.2