* 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:
Alexandre Oliva
2003-01-08 22:00:53 +00:00
parent 7f8ab3a0b7
commit ab7d0aa081
2 changed files with 21 additions and 12 deletions

View File

@ -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,

View File

@ -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