mirror of
https://github.com/bminor/binutils-gdb.git
synced 2026-04-09 11:39:51 +00:00
MIPS: Correct HI/LO rela reloc howto special_function entries
The patch corrects the mips16 and micromips rela tables to *not*
use _bfd_mips_elf_{hi,lo}16_reloc. These special functions are
inappropriate for RELA relocs where addends are in the reloc rather
than in the section contents. See corresponding rela R_MIPS howtos.
bfd/
* elf64-mips.c (mips16_elf64_howto_table_rela)
<R_MIPS16_HI16, R_MIPS16_LO16>: Use _bfd_mips_elf_generic_reloc
special_function.
(micromips_elf64_howto_table_rela)
<R_MICROMIPS_HI16, R_MICROMIPS_LO16>: Similarly.
* elfn32-mips.c: As for elf64-mips.c.
This commit is contained in:
committed by
Maciej W. Rozycki
parent
ce08b3bb19
commit
90dfcb5aa2
@@ -1961,7 +1961,7 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
_bfd_mips_elf_hi16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MIPS16_HI16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
@@ -1976,7 +1976,7 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
_bfd_mips_elf_lo16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MIPS16_LO16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
@@ -2615,7 +2615,7 @@ static reloc_howto_type micromips_elf64_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
_bfd_mips_elf_hi16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MICROMIPS_HI16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
@@ -2630,7 +2630,7 @@ static reloc_howto_type micromips_elf64_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
_bfd_mips_elf_lo16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MICROMIPS_LO16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
|
||||
@@ -1941,7 +1941,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
_bfd_mips_elf_hi16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MIPS16_HI16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
@@ -1956,7 +1956,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
_bfd_mips_elf_lo16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MIPS16_LO16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
@@ -2595,7 +2595,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
_bfd_mips_elf_hi16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MICROMIPS_HI16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
@@ -2610,7 +2610,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
_bfd_mips_elf_lo16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MICROMIPS_LO16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
|
||||
Reference in New Issue
Block a user