mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-12-15 22:00:47 +08:00
MIPS: Fix addend handling with rela R_MIPS16_GOT16 and R_MICROMIPS_GOT16
In rela howtos these relocations should not be using _bfd_mips_elf_got16_reloc. That special function is for extracting addends from section contents, and only for that (ie. it doesn't subtract gp). Make these rela howtos like the corresponding R_MIPS_GOT16 rela howto. * elf64-mips.c (mips16_elf64_howto_table_rela <R_MIPS16_GOT16>): Use _bfd_mips_elf_generic_reloc. (micromips_elf64_howto_table_rela <R_MICROMIPS_GOT16>): Likewise. * elfn32-mips.c (elf_mips16_howto_table_rela <R_MIPS16_GOT16>): Likewise. (elf_micromips_howto_table_rela <R_MICROMIPS_GOT16>): Likewise.
This commit is contained in:
committed by
Maciej W. Rozycki
parent
e65d831ce1
commit
a17dd69b33
@@ -1931,7 +1931,7 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
_bfd_mips_elf_got16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MIPS16_GOT16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
@@ -2675,7 +2675,7 @@ static reloc_howto_type micromips_elf64_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_signed, /* complain_on_overflow */
|
||||
_bfd_mips_elf_got16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MICROMIPS_GOT16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
|
||||
@@ -1911,7 +1911,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
_bfd_mips_elf_got16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MIPS16_GOT16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
@@ -2655,7 +2655,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_signed, /* complain_on_overflow */
|
||||
_bfd_mips_elf_got16_reloc, /* special_function */
|
||||
_bfd_mips_elf_generic_reloc, /* special_function */
|
||||
"R_MICROMIPS_GOT16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
|
||||
Reference in New Issue
Block a user