Get rid of the -1 dummy valued enum in START_RELOC_NUMBERS.
Remove duplicate reloc enums in elf32-d[13]0v.c Remove EMPTY_HOWTOs in elf32-i386.c
This commit is contained in:
parent
3e0bf9f1f0
commit
1b452ec66b
@ -1,3 +1,20 @@
|
||||
2000-06-07 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* elf32-d10v.c: Include elf/d10v.h
|
||||
(enum reloc_type): Delete.
|
||||
* elf32-d30v.c: Include elf/d30v.h
|
||||
(enum reloc_type): Delete.
|
||||
|
||||
* Makefile.am: Run "make dep-am" to regenerate dependencies.
|
||||
* Makefile.in: Regenerate.
|
||||
|
||||
* elf32-i386.c (elf_howto_table): Remove EMPTY_HOWTOs.
|
||||
(R_386_standard, R_386_ext_offset): Define.
|
||||
(elf_i386_reloc_type_lookup): Modify calculation of index into
|
||||
elf_howto_table since we've removed the gap.
|
||||
(elf_i386_info_to_howto_rel): Likewise.
|
||||
(elf_i386_relocate_section): Likewise.
|
||||
|
||||
2000-06-06 Michael Snyder <msnyder@seadog.cygnus.com>
|
||||
|
||||
* elf.c (elf_grok_pr_status): Eliminate reference to prgregset_t.
|
||||
|
@ -900,10 +900,12 @@ elf32-avr.lo: elf32-avr.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
elf32-target.h
|
||||
elf32-d10v.lo: elf32-d10v.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h elf32-target.h
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/d10v.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-d30v.lo: elf32-d30v.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h elf32-target.h
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-fr30.lo: elf32-fr30.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/fr30.h $(INCDIR)/elf/reloc-macros.h \
|
||||
|
@ -1428,10 +1428,12 @@ elf32-avr.lo: elf32-avr.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
elf32-target.h
|
||||
elf32-d10v.lo: elf32-d10v.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h elf32-target.h
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/d10v.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-d30v.lo: elf32-d30v.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h elf32-target.h
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-fr30.lo: elf32-fr30.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/fr30.h $(INCDIR)/elf/reloc-macros.h \
|
||||
|
@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
#include "elf-bfd.h"
|
||||
/* #include "elf/d10v.h" */
|
||||
#include "elf/d10v.h"
|
||||
|
||||
static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
|
||||
PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
|
||||
@ -33,20 +33,6 @@ static void d10v_info_to_howto_rel
|
||||
/* Use REL instead of RELA to save space */
|
||||
#define USE_REL
|
||||
|
||||
enum reloc_type
|
||||
{
|
||||
R_D10V_NONE = 0,
|
||||
R_D10V_10_PCREL_R,
|
||||
R_D10V_10_PCREL_L,
|
||||
R_D10V_16,
|
||||
R_D10V_18,
|
||||
R_D10V_18_PCREL,
|
||||
R_D10V_32,
|
||||
R_D10V_GNU_VTINHERIT,
|
||||
R_D10V_GNU_VTENTRY,
|
||||
R_D10V_max
|
||||
};
|
||||
|
||||
static reloc_howto_type elf_d10v_howto_table[] =
|
||||
{
|
||||
/* This reloc does nothing. */
|
||||
|
@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
#include "elf-bfd.h"
|
||||
#include "elf/d30v.h"
|
||||
|
||||
static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
|
||||
PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
|
||||
@ -46,24 +47,6 @@ static bfd_reloc_status_type bfd_elf_d30v_reloc_21 PARAMS ((
|
||||
bfd *output_bfd,
|
||||
char **error_message));
|
||||
|
||||
enum reloc_type
|
||||
{
|
||||
R_D30V_NONE = 0,
|
||||
R_D30V_6,
|
||||
R_D30V_9_PCREL,
|
||||
R_D30V_9_PCREL_R,
|
||||
R_D30V_15,
|
||||
R_D30V_15_PCREL,
|
||||
R_D30V_15_PCREL_R,
|
||||
R_D30V_21,
|
||||
R_D30V_21_PCREL,
|
||||
R_D30V_21_PCREL_R,
|
||||
R_D30V_32,
|
||||
R_D30V_32_PCREL,
|
||||
R_D30V_32_NORMAL,
|
||||
R_D30V_max
|
||||
};
|
||||
|
||||
static reloc_howto_type elf_d30v_howto_table[] =
|
||||
{
|
||||
/* This reloc does nothing. */
|
||||
|
132
bfd/elf32-i386.c
132
bfd/elf32-i386.c
@ -56,31 +56,56 @@ static boolean elf_i386_finish_dynamic_sections
|
||||
|
||||
static reloc_howto_type elf_howto_table[]=
|
||||
{
|
||||
HOWTO(R_386_NONE, 0,0, 0,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_NONE", true,0x00000000,0x00000000,false),
|
||||
HOWTO(R_386_32, 0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_32", true,0xffffffff,0xffffffff,false),
|
||||
HOWTO(R_386_PC32, 0,2,32,true, 0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_PC32", true,0xffffffff,0xffffffff,true),
|
||||
HOWTO(R_386_GOT32, 0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_GOT32", true,0xffffffff,0xffffffff,false),
|
||||
HOWTO(R_386_PLT32, 0,2,32,true,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_PLT32", true,0xffffffff,0xffffffff,true),
|
||||
HOWTO(R_386_COPY, 0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_COPY", true,0xffffffff,0xffffffff,false),
|
||||
HOWTO(R_386_GLOB_DAT, 0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_GLOB_DAT", true,0xffffffff,0xffffffff,false),
|
||||
HOWTO(R_386_JUMP_SLOT, 0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_JUMP_SLOT",true,0xffffffff,0xffffffff,false),
|
||||
HOWTO(R_386_RELATIVE, 0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_RELATIVE", true,0xffffffff,0xffffffff,false),
|
||||
HOWTO(R_386_GOTOFF, 0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_GOTOFF", true,0xffffffff,0xffffffff,false),
|
||||
HOWTO(R_386_GOTPC, 0,2,32,true,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_GOTPC", true,0xffffffff,0xffffffff,true),
|
||||
EMPTY_HOWTO (11),
|
||||
EMPTY_HOWTO (12),
|
||||
EMPTY_HOWTO (13),
|
||||
EMPTY_HOWTO (14),
|
||||
EMPTY_HOWTO (15),
|
||||
EMPTY_HOWTO (16),
|
||||
EMPTY_HOWTO (17),
|
||||
EMPTY_HOWTO (18),
|
||||
EMPTY_HOWTO (19),
|
||||
HOWTO(R_386_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_NONE",
|
||||
true, 0x00000000, 0x00000000, false),
|
||||
HOWTO(R_386_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_32",
|
||||
true, 0xffffffff, 0xffffffff, false),
|
||||
HOWTO(R_386_PC32, 0, 2, 32, true, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_PC32",
|
||||
true, 0xffffffff, 0xffffffff, true),
|
||||
HOWTO(R_386_GOT32, 0, 2, 32, false, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_GOT32",
|
||||
true, 0xffffffff, 0xffffffff, false),
|
||||
HOWTO(R_386_PLT32, 0, 2, 32, true, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_PLT32",
|
||||
true, 0xffffffff, 0xffffffff, true),
|
||||
HOWTO(R_386_COPY, 0, 2, 32, false, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_COPY",
|
||||
true, 0xffffffff, 0xffffffff, false),
|
||||
HOWTO(R_386_GLOB_DAT, 0, 2, 32, false, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_GLOB_DAT",
|
||||
true, 0xffffffff, 0xffffffff, false),
|
||||
HOWTO(R_386_JUMP_SLOT, 0, 2, 32, false, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_JUMP_SLOT",
|
||||
true, 0xffffffff, 0xffffffff, false),
|
||||
HOWTO(R_386_RELATIVE, 0, 2, 32, false, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_RELATIVE",
|
||||
true, 0xffffffff, 0xffffffff, false),
|
||||
HOWTO(R_386_GOTOFF, 0, 2, 32, false, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_GOTOFF",
|
||||
true, 0xffffffff, 0xffffffff, false),
|
||||
HOWTO(R_386_GOTPC, 0, 2, 32, true, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_GOTPC",
|
||||
true, 0xffffffff, 0xffffffff, true),
|
||||
|
||||
#define R_386_standard ((unsigned int) R_386_GOTPC + 1)
|
||||
#define R_386_ext_offset ((unsigned int) R_386_16 - R_386_standard)
|
||||
|
||||
/* The remaining relocs are a GNU extension. */
|
||||
HOWTO(R_386_16, 0,1,16,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_16", true,0xffff,0xffff,false),
|
||||
HOWTO(R_386_PC16, 0,1,16,true, 0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_PC16", true,0xffff,0xffff,true),
|
||||
HOWTO(R_386_8, 0,0,8,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_8", true,0xff,0xff,false),
|
||||
HOWTO(R_386_PC8, 0,0,8,true, 0,complain_overflow_signed, bfd_elf_generic_reloc,"R_386_PC8", true,0xff,0xff,true),
|
||||
HOWTO(R_386_16, 0, 1, 16, false, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_16",
|
||||
true, 0xffff, 0xffff, false),
|
||||
HOWTO(R_386_PC16, 0, 1, 16, true, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_PC16",
|
||||
true, 0xffff, 0xffff, true),
|
||||
HOWTO(R_386_8, 0, 0, 8, false, 0, complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc, "R_386_8",
|
||||
true, 0xff, 0xff, false),
|
||||
HOWTO(R_386_PC8, 0, 0, 8, true, 0, complain_overflow_signed,
|
||||
bfd_elf_generic_reloc, "R_386_PC8",
|
||||
true, 0xff, 0xff, true)
|
||||
};
|
||||
|
||||
/* GNU extension to record C++ vtable hierarchy. */
|
||||
@ -130,68 +155,68 @@ elf_i386_reloc_type_lookup (abfd, code)
|
||||
{
|
||||
case BFD_RELOC_NONE:
|
||||
TRACE ("BFD_RELOC_NONE");
|
||||
return &elf_howto_table[ (int)R_386_NONE ];
|
||||
return &elf_howto_table[(unsigned int) R_386_NONE ];
|
||||
|
||||
case BFD_RELOC_32:
|
||||
TRACE ("BFD_RELOC_32");
|
||||
return &elf_howto_table[ (int)R_386_32 ];
|
||||
return &elf_howto_table[(unsigned int) R_386_32 ];
|
||||
|
||||
case BFD_RELOC_CTOR:
|
||||
TRACE ("BFD_RELOC_CTOR");
|
||||
return &elf_howto_table[ (int)R_386_32 ];
|
||||
return &elf_howto_table[(unsigned int) R_386_32 ];
|
||||
|
||||
case BFD_RELOC_32_PCREL:
|
||||
TRACE ("BFD_RELOC_PC32");
|
||||
return &elf_howto_table[ (int)R_386_PC32 ];
|
||||
return &elf_howto_table[(unsigned int) R_386_PC32 ];
|
||||
|
||||
case BFD_RELOC_386_GOT32:
|
||||
TRACE ("BFD_RELOC_386_GOT32");
|
||||
return &elf_howto_table[ (int)R_386_GOT32 ];
|
||||
return &elf_howto_table[(unsigned int) R_386_GOT32 ];
|
||||
|
||||
case BFD_RELOC_386_PLT32:
|
||||
TRACE ("BFD_RELOC_386_PLT32");
|
||||
return &elf_howto_table[ (int)R_386_PLT32 ];
|
||||
return &elf_howto_table[(unsigned int) R_386_PLT32 ];
|
||||
|
||||
case BFD_RELOC_386_COPY:
|
||||
TRACE ("BFD_RELOC_386_COPY");
|
||||
return &elf_howto_table[ (int)R_386_COPY ];
|
||||
return &elf_howto_table[(unsigned int) R_386_COPY ];
|
||||
|
||||
case BFD_RELOC_386_GLOB_DAT:
|
||||
TRACE ("BFD_RELOC_386_GLOB_DAT");
|
||||
return &elf_howto_table[ (int)R_386_GLOB_DAT ];
|
||||
return &elf_howto_table[(unsigned int) R_386_GLOB_DAT ];
|
||||
|
||||
case BFD_RELOC_386_JUMP_SLOT:
|
||||
TRACE ("BFD_RELOC_386_JUMP_SLOT");
|
||||
return &elf_howto_table[ (int)R_386_JUMP_SLOT ];
|
||||
return &elf_howto_table[(unsigned int) R_386_JUMP_SLOT ];
|
||||
|
||||
case BFD_RELOC_386_RELATIVE:
|
||||
TRACE ("BFD_RELOC_386_RELATIVE");
|
||||
return &elf_howto_table[ (int)R_386_RELATIVE ];
|
||||
return &elf_howto_table[(unsigned int) R_386_RELATIVE ];
|
||||
|
||||
case BFD_RELOC_386_GOTOFF:
|
||||
TRACE ("BFD_RELOC_386_GOTOFF");
|
||||
return &elf_howto_table[ (int)R_386_GOTOFF ];
|
||||
return &elf_howto_table[(unsigned int) R_386_GOTOFF ];
|
||||
|
||||
case BFD_RELOC_386_GOTPC:
|
||||
TRACE ("BFD_RELOC_386_GOTPC");
|
||||
return &elf_howto_table[ (int)R_386_GOTPC ];
|
||||
return &elf_howto_table[(unsigned int) R_386_GOTPC ];
|
||||
|
||||
/* The remaining relocs are a GNU extension. */
|
||||
case BFD_RELOC_16:
|
||||
TRACE ("BFD_RELOC_16");
|
||||
return &elf_howto_table[(int) R_386_16];
|
||||
return &elf_howto_table[(unsigned int) R_386_16 - R_386_ext_offset];
|
||||
|
||||
case BFD_RELOC_16_PCREL:
|
||||
TRACE ("BFD_RELOC_16_PCREL");
|
||||
return &elf_howto_table[(int) R_386_PC16];
|
||||
return &elf_howto_table[(unsigned int) R_386_PC16 - R_386_ext_offset];
|
||||
|
||||
case BFD_RELOC_8:
|
||||
TRACE ("BFD_RELOC_8");
|
||||
return &elf_howto_table[(int) R_386_8];
|
||||
return &elf_howto_table[(unsigned int) R_386_8 - R_386_ext_offset];
|
||||
|
||||
case BFD_RELOC_8_PCREL:
|
||||
TRACE ("BFD_RELOC_8_PCREL");
|
||||
return &elf_howto_table[(int) R_386_PC8];
|
||||
return &elf_howto_table[(unsigned int) R_386_PC8 - R_386_ext_offset];
|
||||
|
||||
case BFD_RELOC_VTABLE_INHERIT:
|
||||
TRACE ("BFD_RELOC_VTABLE_INHERIT");
|
||||
@ -231,14 +256,19 @@ elf_i386_info_to_howto_rel (abfd, cache_ptr, dst)
|
||||
cache_ptr->howto = &elf32_i386_vtinherit_howto;
|
||||
else if (type == R_386_GNU_VTENTRY)
|
||||
cache_ptr->howto = &elf32_i386_vtentry_howto;
|
||||
else if (type < R_386_max
|
||||
&& (type < FIRST_INVALID_RELOC || type > LAST_INVALID_RELOC))
|
||||
cache_ptr->howto = &elf_howto_table[(int) type];
|
||||
else
|
||||
{
|
||||
(*_bfd_error_handler) (_("%s: invalid relocation type %d"),
|
||||
bfd_get_filename (abfd), (int) type);
|
||||
cache_ptr->howto = &elf_howto_table[(int) R_386_NONE];
|
||||
unsigned int indx;
|
||||
|
||||
if ((indx = (unsigned int) type) >= R_386_standard
|
||||
&& ((indx = (unsigned int) type - R_386_ext_offset)
|
||||
>= sizeof (elf_howto_table) / sizeof (elf_howto_table[0])))
|
||||
{
|
||||
(*_bfd_error_handler) (_("%s: invalid relocation type %d"),
|
||||
bfd_get_filename (abfd), (int) type);
|
||||
indx = (unsigned int) R_386_NONE;
|
||||
}
|
||||
cache_ptr->howto = &elf_howto_table[indx];
|
||||
}
|
||||
}
|
||||
|
||||
@ -1283,20 +1313,20 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
asection *sec;
|
||||
bfd_vma relocation;
|
||||
bfd_reloc_status_type r;
|
||||
unsigned int indx;
|
||||
|
||||
r_type = ELF32_R_TYPE (rel->r_info);
|
||||
if (r_type == R_386_GNU_VTINHERIT
|
||||
|| r_type == R_386_GNU_VTENTRY)
|
||||
continue;
|
||||
if (r_type < 0
|
||||
|| r_type >= (int) R_386_max
|
||||
|| (r_type >= (int) FIRST_INVALID_RELOC
|
||||
&& r_type <= (int) LAST_INVALID_RELOC))
|
||||
if ((indx = (unsigned) r_type) >= R_386_standard
|
||||
&& ((indx = (unsigned) r_type - R_386_ext_offset)
|
||||
>= sizeof (elf_howto_table) / sizeof (elf_howto_table[0])))
|
||||
{
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
return false;
|
||||
}
|
||||
howto = elf_howto_table + r_type;
|
||||
howto = elf_howto_table + indx;
|
||||
|
||||
r_symndx = ELF32_R_SYM (rel->r_info);
|
||||
|
||||
|
@ -1,3 +1,38 @@
|
||||
2000-06-06 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* reloc-macros.h (START_RELOC_NUMBERS): Don't define initial dummy
|
||||
-1 valued enum.
|
||||
(RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC): Append rather than
|
||||
prepend comma.
|
||||
(END_RELOC_NUMBERS): Give macro an arg to define as last enum.
|
||||
|
||||
* alpha.h (R_ALPHA_max): Define via END_RELOC_NUMBERS rather than
|
||||
with EMPTY_RELOC.
|
||||
* arc.h (R_ARC_max): Likewise.
|
||||
* avr.h (R_AVR_max): Likewise.
|
||||
* fr30.h (R_FR30_max): Likewise.
|
||||
* hppa.h (R_PARISC_UNIMPLEMENTED): Likewise.
|
||||
* i960.h (R_960_max): Likewise.
|
||||
* m32r.h (R_M32R_max): Likewise.
|
||||
* m68k.h (R_68K_max): Likewise.
|
||||
* mcore.h (R_MCORE_max): Likewise.
|
||||
* mn10300.h (R_MN10300_MAX): Likewise.
|
||||
* pj.h (R_PJ_max): Likewise.
|
||||
* ppc.h (R_PPC_max): Likewise.
|
||||
* sh.h (R_SH_max): Likewise.
|
||||
* sparc.h (R_SPARC_max): Likewise.
|
||||
* v850.h (R_V850_max): Likewise.
|
||||
|
||||
* arm.h (R_ARM_max): Define via END_RELOC_NUMBERS.
|
||||
* d10v.h (R_D10V_max): Likewise.
|
||||
* d30v.h (R_D30V_max): Likewise.
|
||||
* ia64.h (R_IA64_max): Likewise.
|
||||
* mips.h (R_MIPS_maxext): Likewise.
|
||||
* mn10200.h (R_MN10200_max): Likewise.
|
||||
|
||||
* i386.h (R_386_max): Remove old RELOC_NUMBER definition, and
|
||||
define via END_RELOC_NUMBERS.
|
||||
|
||||
2000-06-03 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* reloc-macros.h (START_RELOC_NUMBERS): Fix name clash for
|
||||
|
@ -102,7 +102,6 @@ START_RELOC_NUMBERS (elf_alpha_reloc_type)
|
||||
RELOC_NUMBER (R_ALPHA_JMP_SLOT, 26) /* Create PLT entry */
|
||||
RELOC_NUMBER (R_ALPHA_RELATIVE, 27) /* Adjust by program base */
|
||||
|
||||
EMPTY_RELOC (R_ALPHA_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_ALPHA_max)
|
||||
|
||||
#endif /* _ELF_ALPHA_H */
|
||||
|
@ -31,8 +31,7 @@ START_RELOC_NUMBERS (elf_arc_reloc_type)
|
||||
RELOC_NUMBER (R_ARC_32, 1)
|
||||
RELOC_NUMBER (R_ARC_B26, 2)
|
||||
RELOC_NUMBER (R_ARC_B22_PCREL, 3)
|
||||
EMPTY_RELOC (R_ARC_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_ARC_max)
|
||||
|
||||
/* Processor specific flags for the ELF header e_flags field. */
|
||||
|
||||
|
@ -124,6 +124,6 @@ START_RELOC_NUMBERS (elf_arm_reloc_type)
|
||||
RELOC_NUMBER (R_ARM_RABS32, 253)
|
||||
RELOC_NUMBER (R_ARM_RPC24, 254)
|
||||
RELOC_NUMBER (R_ARM_RBASE, 255)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_ARM_max)
|
||||
|
||||
#endif /* _ELF_ARM_H */
|
||||
|
@ -52,7 +52,6 @@ START_RELOC_NUMBERS (elf_avr_reloc_type)
|
||||
RELOC_NUMBER (R_AVR_HI8_LDI_PM_NEG, 16)
|
||||
RELOC_NUMBER (R_AVR_HH8_LDI_PM_NEG, 17)
|
||||
RELOC_NUMBER (R_AVR_CALL, 18)
|
||||
EMPTY_RELOC (R_AVR_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_AVR_max)
|
||||
|
||||
#endif /* _ELF_AVR_H */
|
||||
|
@ -33,6 +33,6 @@ START_RELOC_NUMBERS (elf_d10v_reloc_type)
|
||||
RELOC_NUMBER (R_D10V_32, 6)
|
||||
RELOC_NUMBER (R_D10V_GNU_VTINHERIT, 7)
|
||||
RELOC_NUMBER (R_D10V_GNU_VTENTRY, 8)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_D10V_max)
|
||||
|
||||
#endif
|
||||
|
@ -37,6 +37,6 @@ START_RELOC_NUMBERS (elf_d30v_reloc_type)
|
||||
RELOC_NUMBER (R_D30V_32, 10)
|
||||
RELOC_NUMBER (R_D30V_32_PCREL, 11)
|
||||
RELOC_NUMBER (R_D30V_32_NORMAL, 12)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_D30V_max)
|
||||
|
||||
#endif
|
||||
|
@ -37,7 +37,6 @@ START_RELOC_NUMBERS (elf_fr30_reloc_type)
|
||||
RELOC_NUMBER (R_FR30_12_PCREL, 10)
|
||||
RELOC_NUMBER (R_FR30_GNU_VTINHERIT, 11)
|
||||
RELOC_NUMBER (R_FR30_GNU_VTENTRY, 12)
|
||||
EMPTY_RELOC (R_FR30_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_FR30_max)
|
||||
|
||||
#endif /* _ELF_FR30_H */
|
||||
|
@ -267,8 +267,7 @@ START_RELOC_NUMBERS (elf_hppa_reloc_type)
|
||||
RELOC_NUMBER (R_PARISC_LTOFF_TP16F, 229)
|
||||
RELOC_NUMBER (R_PARISC_LTOFF_TP16WF, 230)
|
||||
RELOC_NUMBER (R_PARISC_LTOFF_TP16DF, 231)
|
||||
EMPTY_RELOC (R_PARISC_UNIMPLEMENTED)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_PARISC_UNIMPLEMENTED)
|
||||
|
||||
#ifndef RELOC_MACROS_GEN_FUNC
|
||||
typedef enum elf_hppa_reloc_type elf_hppa_reloc_type;
|
||||
|
@ -40,10 +40,9 @@ START_RELOC_NUMBERS (elf_i386_reloc_type)
|
||||
RELOC_NUMBER (R_386_PC16, 21)
|
||||
RELOC_NUMBER (R_386_8, 22)
|
||||
RELOC_NUMBER (R_386_PC8, 23)
|
||||
RELOC_NUMBER (R_386_max, 24)
|
||||
/* These are GNU extensions to enable C++ vtable garbage collection. */
|
||||
RELOC_NUMBER (R_386_GNU_VTINHERIT, 250)
|
||||
RELOC_NUMBER (R_386_GNU_VTENTRY, 251)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_386_max)
|
||||
|
||||
#endif
|
||||
|
@ -32,7 +32,6 @@ START_RELOC_NUMBERS (elf_i960_reloc_type)
|
||||
RELOC_NUMBER (R_960_OPTCALL, 5)
|
||||
RELOC_NUMBER (R_960_OPTCALLX, 6)
|
||||
RELOC_NUMBER (R_960_OPTCALLXA, 7)
|
||||
EMPTY_RELOC (R_960_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_960_max)
|
||||
|
||||
#endif /* _ELF_I960_H */
|
||||
|
@ -167,6 +167,6 @@ START_RELOC_NUMBERS (elf_ia64_reloc_type)
|
||||
RELOC_NUMBER (R_IA64_LTOFF_TP22, 0x9a) /* @ltoff(sym-TP+add), add imm22 ## */
|
||||
|
||||
FAKE_RELOC (R_IA64_MAX_RELOC_CODE, 0x9a)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_IA64_max)
|
||||
|
||||
#endif /* _ELF_IA64_H */
|
||||
|
@ -37,8 +37,7 @@ START_RELOC_NUMBERS (elf_m32r_reloc_type)
|
||||
RELOC_NUMBER (R_M32R_SDA16, 10)
|
||||
RELOC_NUMBER (R_M32R_GNU_VTINHERIT, 11)
|
||||
RELOC_NUMBER (R_M32R_GNU_VTENTRY, 12)
|
||||
EMPTY_RELOC (R_M32R_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_M32R_max)
|
||||
|
||||
/* Processor specific section indices. These sections do not actually
|
||||
exist. Symbols with a st_shndx field corresponding to one of these
|
||||
|
@ -50,8 +50,7 @@ START_RELOC_NUMBERS (elf_m68k_reloc_type)
|
||||
/* These are GNU extensions to enable C++ vtable garbage collection. */
|
||||
RELOC_NUMBER (R_68K_GNU_VTINHERIT, 23)
|
||||
RELOC_NUMBER (R_68K_GNU_VTENTRY, 24)
|
||||
EMPTY_RELOC (R_68K_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_68K_max)
|
||||
|
||||
#define EF_CPU32 0x00810000
|
||||
|
||||
|
@ -38,8 +38,7 @@ START_RELOC_NUMBERS (elf_mcore_reloc_type)
|
||||
RELOC_NUMBER (R_MCORE_COPY, 10)
|
||||
RELOC_NUMBER (R_MCORE_GLOB_DAT, 11)
|
||||
RELOC_NUMBER (R_MCORE_JUMP_SLOT, 12)
|
||||
EMPTY_RELOC (R_MCORE_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_MCORE_max)
|
||||
|
||||
/* Section Attributes. */
|
||||
#define SHF_MCORE_NOREAD 0x80000000
|
||||
|
@ -84,7 +84,7 @@ START_RELOC_NUMBERS (elf_mips_reloc_type)
|
||||
/* These are GNU extensions to enable C++ vtable garbage collection. */
|
||||
RELOC_NUMBER (R_MIPS_GNU_VTINHERIT, 253)
|
||||
RELOC_NUMBER (R_MIPS_GNU_VTENTRY, 254)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_MIPS_maxext)
|
||||
|
||||
/* Processor specific flags for the ELF header e_flags field. */
|
||||
|
||||
|
@ -34,6 +34,6 @@ START_RELOC_NUMBERS (elf_mn10200_reloc_type)
|
||||
RELOC_NUMBER (R_MN10200_PCREL8, 5)
|
||||
RELOC_NUMBER (R_MN10200_PCREL16, 6)
|
||||
RELOC_NUMBER (R_MN10200_PCREL24, 7)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_MN10200_max)
|
||||
|
||||
#endif /* _ELF_MN10200_H */
|
||||
|
@ -36,8 +36,7 @@ START_RELOC_NUMBERS (elf_mn10300_reloc_type)
|
||||
RELOC_NUMBER (R_MN10300_GNU_VTINHERIT, 7)
|
||||
RELOC_NUMBER (R_MN10300_GNU_VTENTRY, 8)
|
||||
RELOC_NUMBER (R_MN10300_24, 9)
|
||||
EMPTY_RELOC (R_MN10300_MAX)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_MN10300_MAX)
|
||||
|
||||
/* Machine variant if we know it. This field was invented at Cygnus,
|
||||
but it is hoped that other vendors will adopt it. If some standard
|
||||
|
@ -35,8 +35,7 @@ START_RELOC_NUMBERS (elf_pj_reloc_type)
|
||||
RELOC_NUMBER (R_PJ_CODE_HI16, 14)
|
||||
RELOC_NUMBER (R_PJ_GNU_VTINHERIT, 15)
|
||||
RELOC_NUMBER (R_PJ_GNU_VTENTRY, 16)
|
||||
EMPTY_RELOC (R_PJ_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_PJ_max)
|
||||
|
||||
#define EF_PICOJAVA_ARCH 0x0000000f
|
||||
#define EF_PICOJAVA_NEWCALLS 0x00000010
|
||||
|
@ -96,8 +96,7 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
|
||||
that may still be in object files. */
|
||||
RELOC_NUMBER (R_PPC_TOC16, 255)
|
||||
|
||||
EMPTY_RELOC (R_PPC_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_PPC_max)
|
||||
|
||||
|
||||
/* Processor specific flags for the ELF header e_flags field. */
|
||||
|
@ -27,20 +27,20 @@
|
||||
START_RELOC_NUMBERS (foo)
|
||||
RELOC_NUMBER (R_foo_NONE, 0)
|
||||
RELOC_NUMBER (R_foo_32, 1)
|
||||
FAKE_RELOC (R_foo_illegal, 2)
|
||||
EMPTY_RELOC (R_foo_max)
|
||||
END_RELOC_NUMBERS
|
||||
EMPTY_RELOC (R_foo_good)
|
||||
FAKE_RELOC (R_foo_illegal, 9)
|
||||
END_RELOC_NUMBERS (R_foo_count)
|
||||
|
||||
Then the following will be produced by default (ie if
|
||||
RELOC_MACROS_GEN_FUNC is *not* defined).
|
||||
|
||||
enum foo
|
||||
{
|
||||
foo = -1,
|
||||
R_foo_NONE = 0,
|
||||
R_foo_32 = 1,
|
||||
R_foo_illegal = 2,
|
||||
R_foo_max
|
||||
R_foo_good,
|
||||
R_foo_illegal = 9,
|
||||
R_foo_count
|
||||
};
|
||||
|
||||
If RELOC_MACROS_GEN_FUNC *is* defined, then instead the
|
||||
@ -87,7 +87,7 @@ name (rtype) \
|
||||
#define FAKE_RELOC(name, number)
|
||||
#define EMPTY_RELOC(name)
|
||||
|
||||
#define END_RELOC_NUMBERS \
|
||||
#define END_RELOC_NUMBERS(name) \
|
||||
default: return NULL; \
|
||||
} \
|
||||
}
|
||||
@ -95,21 +95,11 @@ name (rtype) \
|
||||
|
||||
#else /* Default to generating enum. */
|
||||
|
||||
/* Some compilers cannot cope with an enum that ends with a trailing
|
||||
comma, so START_RELOC_NUMBERS creates a fake reloc entry, (initialised
|
||||
to -1 so that the first real entry will still default to 0). Further
|
||||
entries then prepend a comma to their definitions, creating a list
|
||||
of enumerator entries that will satisfy these compilers. */
|
||||
#if defined (__STDC__) || defined (ALMOST_STDC)
|
||||
#define START_RELOC_NUMBERS(name) enum name { _##name = -1
|
||||
#else
|
||||
#define START_RELOC_NUMBERS(name) enum name { _/**/name = -1
|
||||
#endif
|
||||
|
||||
#define RELOC_NUMBER(name, number) , name = number
|
||||
#define FAKE_RELOC(name, number) , name = number
|
||||
#define EMPTY_RELOC(name) , name
|
||||
#define END_RELOC_NUMBERS };
|
||||
#define START_RELOC_NUMBERS(name) enum name {
|
||||
#define RELOC_NUMBER(name, number) name = number,
|
||||
#define FAKE_RELOC(name, number) name = number,
|
||||
#define EMPTY_RELOC(name) name,
|
||||
#define END_RELOC_NUMBERS(name) name };
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -78,7 +78,6 @@ START_RELOC_NUMBERS (elf_sh_reloc_type)
|
||||
RELOC_NUMBER (R_SH_GNU_VTENTRY, 35)
|
||||
RELOC_NUMBER (R_SH_LOOP_START, 36)
|
||||
RELOC_NUMBER (R_SH_LOOP_END, 37)
|
||||
EMPTY_RELOC (R_SH_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_SH_max)
|
||||
|
||||
#endif
|
||||
|
@ -134,8 +134,7 @@ START_RELOC_NUMBERS (elf_sparc_reloc_type)
|
||||
RELOC_NUMBER (R_SPARC_GNU_VTINHERIT, 250)
|
||||
RELOC_NUMBER (R_SPARC_GNU_VTENTRY, 251)
|
||||
|
||||
EMPTY_RELOC (R_SPARC_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_SPARC_max)
|
||||
|
||||
/* Relocation macros. */
|
||||
|
||||
|
@ -77,9 +77,7 @@ START_RELOC_NUMBERS (v850_reloc_type)
|
||||
/* END CYGNUS LOCAL */
|
||||
RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23)
|
||||
RELOC_NUMBER (R_V850_GNU_VTENTRY, 24)
|
||||
|
||||
EMPTY_RELOC (R_V850_max)
|
||||
END_RELOC_NUMBERS
|
||||
END_RELOC_NUMBERS (R_V850_max)
|
||||
|
||||
|
||||
/* Processor specific section indices. These sections do not actually
|
||||
|
Loading…
Reference in New Issue
Block a user