mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-26 05:47:26 +08:00
* elfn32-mips.c (prev_reloc_section): New.
(GET_RELOC_ADDEND): Use it. Parenthesize macro arguments. (SET_RELOC_ADDEND): Parenthesize macro argument.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2003-01-08 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
* elfn32-mips.c (prev_reloc_section): New.
|
||||||
|
(GET_RELOC_ADDEND): Use it. Parenthesize macro arguments.
|
||||||
|
(SET_RELOC_ADDEND): Parenthesize macro argument.
|
||||||
|
|
||||||
2003-01-07 John David Anglin <dave.anglin@nrc.gc.ca>
|
2003-01-07 John David Anglin <dave.anglin@nrc.gc.ca>
|
||||||
|
|
||||||
* elf32-hppa.c (final_link_relocate): For all DP relative relocations,
|
* elf32-hppa.c (final_link_relocate): For all DP relative relocations,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* MIPS-specific support for 32-bit ELF
|
/* MIPS-specific support for 32-bit ELF
|
||||||
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
|
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
Free Software Foundation, Inc.
|
2003 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Most of the information added by Ian Lance Taylor, Cygnus Support,
|
Most of the information added by Ian Lance Taylor, Cygnus Support,
|
||||||
<ian@cygnus.com>.
|
<ian@cygnus.com>.
|
||||||
@ -96,6 +96,7 @@ static irix_compat_t elf_n32_mips_irix_compat
|
|||||||
extern const bfd_target bfd_elf32_nbigmips_vec;
|
extern const bfd_target bfd_elf32_nbigmips_vec;
|
||||||
extern const bfd_target bfd_elf32_nlittlemips_vec;
|
extern const bfd_target bfd_elf32_nlittlemips_vec;
|
||||||
|
|
||||||
|
static asection *prev_reloc_section = NULL;
|
||||||
static bfd_vma prev_reloc_address = -1;
|
static bfd_vma prev_reloc_address = -1;
|
||||||
static bfd_vma prev_reloc_addend = 0;
|
static bfd_vma prev_reloc_addend = 0;
|
||||||
|
|
||||||
@ -1207,29 +1208,31 @@ static reloc_howto_type elf_mips_gnu_vtentry_howto =
|
|||||||
{ \
|
{ \
|
||||||
/* If we're relocating, and this is an external symbol, we don't \
|
/* If we're relocating, and this is an external symbol, we don't \
|
||||||
want to change anything. */ \
|
want to change anything. */ \
|
||||||
if (obfd != (bfd *) NULL \
|
if ((obfd) != (bfd *) NULL \
|
||||||
&& (sym->flags & BSF_SECTION_SYM) == 0 \
|
&& ((sym)->flags & BSF_SECTION_SYM) == 0 \
|
||||||
&& (! entry->howto->partial_inplace \
|
&& (! (entry)->howto->partial_inplace \
|
||||||
|| entry->addend == 0)) \
|
|| (entry)->addend == 0)) \
|
||||||
{ \
|
{ \
|
||||||
entry->address += sec->output_offset; \
|
(entry)->address += (sec)->output_offset; \
|
||||||
return bfd_reloc_ok; \
|
return bfd_reloc_ok; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
/* The addend of combined relocs is remembered and left for \
|
/* The addend of combined relocs is remembered and left for \
|
||||||
subsequent relocs. */ \
|
subsequent relocs. */ \
|
||||||
if (prev_reloc_address != reloc_entry->address) \
|
if (prev_reloc_address != (entry)->address \
|
||||||
|
|| prev_reloc_section != (sec)) \
|
||||||
{ \
|
{ \
|
||||||
prev_reloc_address = reloc_entry->address; \
|
prev_reloc_section = (sec); \
|
||||||
prev_reloc_addend = reloc_entry->addend; \
|
prev_reloc_address = (entry)->address; \
|
||||||
|
prev_reloc_addend = (entry)->addend; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
reloc_entry->addend = prev_reloc_addend; \
|
(entry)->addend = prev_reloc_addend; \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SET_RELOC_ADDEND(entry) \
|
#define SET_RELOC_ADDEND(entry) \
|
||||||
{ \
|
{ \
|
||||||
prev_reloc_addend = entry->addend; \
|
prev_reloc_addend = (entry)->addend; \
|
||||||
}
|
}
|
||||||
|
|
||||||
static bfd_reloc_status_type
|
static bfd_reloc_status_type
|
||||||
|
Reference in New Issue
Block a user