mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-24 04:29:49 +00:00
* elfxx-mips.h: Include "elf/mips.h".
(gprel16_reloc_p): New static inline function. * elfxx-mips.c (_bfd_mips_elf_check_relocs) [R_MIPS16_GOT16, R_MIPS_GOT16, R_MIPS_GOT_HI16, R_MIPS_GOT_LO16]: Use got16_reloc_p. (_bfd_mips_elf_relocate_section)[bfd_reloc_overflow]: Use gprel16_reloc_p. * elf32-mips.c (mips_info_to_howto_rel): Likewise. * elfn32-mips.c (mips_info_to_howto_rel): Likewise.
This commit is contained in:
parent
2b2c11bd2d
commit
9684f07814
@ -1,3 +1,15 @@
|
||||
2010-07-27 Maciej W. Rozycki <macro@codesourcery.com>
|
||||
|
||||
* elfxx-mips.h: Include "elf/mips.h".
|
||||
(gprel16_reloc_p): New static inline function.
|
||||
* elfxx-mips.c (_bfd_mips_elf_check_relocs)
|
||||
[R_MIPS16_GOT16, R_MIPS_GOT16, R_MIPS_GOT_HI16, R_MIPS_GOT_LO16]:
|
||||
Use got16_reloc_p.
|
||||
(_bfd_mips_elf_relocate_section)[bfd_reloc_overflow]: Use
|
||||
gprel16_reloc_p.
|
||||
* elf32-mips.c (mips_info_to_howto_rel): Likewise.
|
||||
* elfn32-mips.c (mips_info_to_howto_rel): Likewise.
|
||||
|
||||
2010-07-27 Maciej W. Rozycki <macro@codesourcery.com>
|
||||
|
||||
* elf64-mips.c (mips_elf64_howto_table_rela)
|
||||
|
@ -1422,8 +1422,7 @@ mips_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst)
|
||||
when we do the relocation, because the symbol manipulations done
|
||||
by the linker may cause us to lose track of the input BFD. */
|
||||
if (((*cache_ptr->sym_ptr_ptr)->flags & BSF_SECTION_SYM) != 0
|
||||
&& (r_type == (unsigned int) R_MIPS_GPREL16
|
||||
|| r_type == (unsigned int) R_MIPS_LITERAL))
|
||||
&& (gprel16_reloc_p (r_type) || r_type == (unsigned int) R_MIPS_LITERAL))
|
||||
cache_ptr->addend = elf_gp (abfd);
|
||||
}
|
||||
|
||||
|
@ -2259,8 +2259,7 @@ mips_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst)
|
||||
when we do the relocation, because the symbol manipulations done
|
||||
by the linker may cause us to lose track of the input BFD. */
|
||||
if (((*cache_ptr->sym_ptr_ptr)->flags & BSF_SECTION_SYM) != 0
|
||||
&& (r_type == (unsigned int) R_MIPS_GPREL16
|
||||
|| r_type == (unsigned int) R_MIPS_LITERAL))
|
||||
&& (gprel16_reloc_p (r_type) || r_type == (unsigned int) R_MIPS_LITERAL))
|
||||
cache_ptr->addend = elf_gp (abfd);
|
||||
}
|
||||
|
||||
|
@ -7727,7 +7727,7 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
howto = MIPS_ELF_RTYPE_TO_HOWTO (abfd, r_type, FALSE);
|
||||
addend = mips_elf_read_rel_addend (abfd, rel,
|
||||
howto, contents);
|
||||
if (r_type == R_MIPS_GOT16)
|
||||
if (got16_reloc_p (r_type))
|
||||
mips_elf_add_lo16_rel_addend (abfd, rel, rel_end,
|
||||
contents, &addend);
|
||||
else
|
||||
@ -9196,7 +9196,7 @@ _bfd_mips_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
||||
BFD_ASSERT (htab != NULL);
|
||||
BFD_ASSERT (name != NULL);
|
||||
if (!htab->small_data_overflow_reported
|
||||
&& (howto->type == R_MIPS_GPREL16
|
||||
&& (gprel16_reloc_p (howto->type)
|
||||
|| howto->type == R_MIPS_LITERAL))
|
||||
{
|
||||
msg = _("small-data section exceeds 64KB;"
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#include "elf/common.h"
|
||||
#include "elf/internal.h"
|
||||
#include "elf/mips.h"
|
||||
|
||||
extern bfd_boolean _bfd_mips_elf_new_section_hook
|
||||
(bfd *, asection *);
|
||||
@ -153,6 +154,12 @@ extern const struct bfd_elf_special_section _bfd_mips_elf_special_sections [];
|
||||
|
||||
extern bfd_boolean _bfd_mips_elf_common_definition (Elf_Internal_Sym *);
|
||||
|
||||
static inline bfd_boolean
|
||||
gprel16_reloc_p (unsigned int r_type)
|
||||
{
|
||||
return r_type == R_MIPS_GPREL16 || r_type == R_MIPS16_GPREL;
|
||||
}
|
||||
|
||||
#define elf_backend_common_definition _bfd_mips_elf_common_definition
|
||||
#define elf_backend_name_local_section_symbols \
|
||||
_bfd_mips_elf_name_local_section_symbols
|
||||
|
Loading…
Reference in New Issue
Block a user