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:
Alan Modra 2000-06-07 03:43:33 +00:00
parent b6e259b12f
commit 47d87b8a65
24 changed files with 69 additions and 61 deletions

View File

@ -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> 2000-06-03 Alan Modra <alan@linuxcare.com.au>
* reloc-macros.h (START_RELOC_NUMBERS): Fix name clash for * reloc-macros.h (START_RELOC_NUMBERS): Fix name clash for

View File

@ -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_JMP_SLOT, 26) /* Create PLT entry */
RELOC_NUMBER (R_ALPHA_RELATIVE, 27) /* Adjust by program base */ RELOC_NUMBER (R_ALPHA_RELATIVE, 27) /* Adjust by program base */
EMPTY_RELOC (R_ALPHA_max) END_RELOC_NUMBERS (R_ALPHA_max)
END_RELOC_NUMBERS
#endif /* _ELF_ALPHA_H */ #endif /* _ELF_ALPHA_H */

View File

@ -31,8 +31,7 @@ START_RELOC_NUMBERS (elf_arc_reloc_type)
RELOC_NUMBER (R_ARC_32, 1) RELOC_NUMBER (R_ARC_32, 1)
RELOC_NUMBER (R_ARC_B26, 2) RELOC_NUMBER (R_ARC_B26, 2)
RELOC_NUMBER (R_ARC_B22_PCREL, 3) RELOC_NUMBER (R_ARC_B22_PCREL, 3)
EMPTY_RELOC (R_ARC_max) END_RELOC_NUMBERS (R_ARC_max)
END_RELOC_NUMBERS
/* Processor specific flags for the ELF header e_flags field. */ /* Processor specific flags for the ELF header e_flags field. */

View File

@ -124,6 +124,6 @@ START_RELOC_NUMBERS (elf_arm_reloc_type)
RELOC_NUMBER (R_ARM_RABS32, 253) RELOC_NUMBER (R_ARM_RABS32, 253)
RELOC_NUMBER (R_ARM_RPC24, 254) RELOC_NUMBER (R_ARM_RPC24, 254)
RELOC_NUMBER (R_ARM_RBASE, 255) RELOC_NUMBER (R_ARM_RBASE, 255)
END_RELOC_NUMBERS END_RELOC_NUMBERS (R_ARM_max)
#endif /* _ELF_ARM_H */ #endif /* _ELF_ARM_H */

View File

@ -52,7 +52,6 @@ START_RELOC_NUMBERS (elf_avr_reloc_type)
RELOC_NUMBER (R_AVR_HI8_LDI_PM_NEG, 16) RELOC_NUMBER (R_AVR_HI8_LDI_PM_NEG, 16)
RELOC_NUMBER (R_AVR_HH8_LDI_PM_NEG, 17) RELOC_NUMBER (R_AVR_HH8_LDI_PM_NEG, 17)
RELOC_NUMBER (R_AVR_CALL, 18) RELOC_NUMBER (R_AVR_CALL, 18)
EMPTY_RELOC (R_AVR_max) END_RELOC_NUMBERS (R_AVR_max)
END_RELOC_NUMBERS
#endif /* _ELF_AVR_H */ #endif /* _ELF_AVR_H */

View File

@ -33,6 +33,6 @@ START_RELOC_NUMBERS (elf_d10v_reloc_type)
RELOC_NUMBER (R_D10V_32, 6) RELOC_NUMBER (R_D10V_32, 6)
RELOC_NUMBER (R_D10V_GNU_VTINHERIT, 7) RELOC_NUMBER (R_D10V_GNU_VTINHERIT, 7)
RELOC_NUMBER (R_D10V_GNU_VTENTRY, 8) RELOC_NUMBER (R_D10V_GNU_VTENTRY, 8)
END_RELOC_NUMBERS END_RELOC_NUMBERS (R_D10V_max)
#endif #endif

View File

@ -37,6 +37,6 @@ START_RELOC_NUMBERS (elf_d30v_reloc_type)
RELOC_NUMBER (R_D30V_32, 10) RELOC_NUMBER (R_D30V_32, 10)
RELOC_NUMBER (R_D30V_32_PCREL, 11) RELOC_NUMBER (R_D30V_32_PCREL, 11)
RELOC_NUMBER (R_D30V_32_NORMAL, 12) RELOC_NUMBER (R_D30V_32_NORMAL, 12)
END_RELOC_NUMBERS END_RELOC_NUMBERS (R_D30V_max)
#endif #endif

View File

@ -37,7 +37,6 @@ START_RELOC_NUMBERS (elf_fr30_reloc_type)
RELOC_NUMBER (R_FR30_12_PCREL, 10) RELOC_NUMBER (R_FR30_12_PCREL, 10)
RELOC_NUMBER (R_FR30_GNU_VTINHERIT, 11) RELOC_NUMBER (R_FR30_GNU_VTINHERIT, 11)
RELOC_NUMBER (R_FR30_GNU_VTENTRY, 12) RELOC_NUMBER (R_FR30_GNU_VTENTRY, 12)
EMPTY_RELOC (R_FR30_max) END_RELOC_NUMBERS (R_FR30_max)
END_RELOC_NUMBERS
#endif /* _ELF_FR30_H */ #endif /* _ELF_FR30_H */

View File

@ -267,8 +267,7 @@ START_RELOC_NUMBERS (elf_hppa_reloc_type)
RELOC_NUMBER (R_PARISC_LTOFF_TP16F, 229) RELOC_NUMBER (R_PARISC_LTOFF_TP16F, 229)
RELOC_NUMBER (R_PARISC_LTOFF_TP16WF, 230) RELOC_NUMBER (R_PARISC_LTOFF_TP16WF, 230)
RELOC_NUMBER (R_PARISC_LTOFF_TP16DF, 231) RELOC_NUMBER (R_PARISC_LTOFF_TP16DF, 231)
EMPTY_RELOC (R_PARISC_UNIMPLEMENTED) END_RELOC_NUMBERS (R_PARISC_UNIMPLEMENTED)
END_RELOC_NUMBERS
#ifndef RELOC_MACROS_GEN_FUNC #ifndef RELOC_MACROS_GEN_FUNC
typedef enum elf_hppa_reloc_type elf_hppa_reloc_type; typedef enum elf_hppa_reloc_type elf_hppa_reloc_type;

View File

@ -40,10 +40,9 @@ START_RELOC_NUMBERS (elf_i386_reloc_type)
RELOC_NUMBER (R_386_PC16, 21) RELOC_NUMBER (R_386_PC16, 21)
RELOC_NUMBER (R_386_8, 22) RELOC_NUMBER (R_386_8, 22)
RELOC_NUMBER (R_386_PC8, 23) RELOC_NUMBER (R_386_PC8, 23)
RELOC_NUMBER (R_386_max, 24)
/* These are GNU extensions to enable C++ vtable garbage collection. */ /* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_386_GNU_VTINHERIT, 250) RELOC_NUMBER (R_386_GNU_VTINHERIT, 250)
RELOC_NUMBER (R_386_GNU_VTENTRY, 251) RELOC_NUMBER (R_386_GNU_VTENTRY, 251)
END_RELOC_NUMBERS END_RELOC_NUMBERS (R_386_max)
#endif #endif

View File

@ -32,7 +32,6 @@ START_RELOC_NUMBERS (elf_i960_reloc_type)
RELOC_NUMBER (R_960_OPTCALL, 5) RELOC_NUMBER (R_960_OPTCALL, 5)
RELOC_NUMBER (R_960_OPTCALLX, 6) RELOC_NUMBER (R_960_OPTCALLX, 6)
RELOC_NUMBER (R_960_OPTCALLXA, 7) RELOC_NUMBER (R_960_OPTCALLXA, 7)
EMPTY_RELOC (R_960_max) END_RELOC_NUMBERS (R_960_max)
END_RELOC_NUMBERS
#endif /* _ELF_I960_H */ #endif /* _ELF_I960_H */

View File

@ -167,6 +167,6 @@ START_RELOC_NUMBERS (elf_ia64_reloc_type)
RELOC_NUMBER (R_IA64_LTOFF_TP22, 0x9a) /* @ltoff(sym-TP+add), add imm22 ## */ RELOC_NUMBER (R_IA64_LTOFF_TP22, 0x9a) /* @ltoff(sym-TP+add), add imm22 ## */
FAKE_RELOC (R_IA64_MAX_RELOC_CODE, 0x9a) FAKE_RELOC (R_IA64_MAX_RELOC_CODE, 0x9a)
END_RELOC_NUMBERS END_RELOC_NUMBERS (R_IA64_max)
#endif /* _ELF_IA64_H */ #endif /* _ELF_IA64_H */

View File

@ -37,8 +37,7 @@ START_RELOC_NUMBERS (elf_m32r_reloc_type)
RELOC_NUMBER (R_M32R_SDA16, 10) RELOC_NUMBER (R_M32R_SDA16, 10)
RELOC_NUMBER (R_M32R_GNU_VTINHERIT, 11) RELOC_NUMBER (R_M32R_GNU_VTINHERIT, 11)
RELOC_NUMBER (R_M32R_GNU_VTENTRY, 12) RELOC_NUMBER (R_M32R_GNU_VTENTRY, 12)
EMPTY_RELOC (R_M32R_max) END_RELOC_NUMBERS (R_M32R_max)
END_RELOC_NUMBERS
/* Processor specific section indices. These sections do not actually /* Processor specific section indices. These sections do not actually
exist. Symbols with a st_shndx field corresponding to one of these exist. Symbols with a st_shndx field corresponding to one of these

View File

@ -50,8 +50,7 @@ START_RELOC_NUMBERS (elf_m68k_reloc_type)
/* These are GNU extensions to enable C++ vtable garbage collection. */ /* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_68K_GNU_VTINHERIT, 23) RELOC_NUMBER (R_68K_GNU_VTINHERIT, 23)
RELOC_NUMBER (R_68K_GNU_VTENTRY, 24) RELOC_NUMBER (R_68K_GNU_VTENTRY, 24)
EMPTY_RELOC (R_68K_max) END_RELOC_NUMBERS (R_68K_max)
END_RELOC_NUMBERS
#define EF_CPU32 0x00810000 #define EF_CPU32 0x00810000

View File

@ -38,8 +38,7 @@ START_RELOC_NUMBERS (elf_mcore_reloc_type)
RELOC_NUMBER (R_MCORE_COPY, 10) RELOC_NUMBER (R_MCORE_COPY, 10)
RELOC_NUMBER (R_MCORE_GLOB_DAT, 11) RELOC_NUMBER (R_MCORE_GLOB_DAT, 11)
RELOC_NUMBER (R_MCORE_JUMP_SLOT, 12) RELOC_NUMBER (R_MCORE_JUMP_SLOT, 12)
EMPTY_RELOC (R_MCORE_max) END_RELOC_NUMBERS (R_MCORE_max)
END_RELOC_NUMBERS
/* Section Attributes. */ /* Section Attributes. */
#define SHF_MCORE_NOREAD 0x80000000 #define SHF_MCORE_NOREAD 0x80000000

View File

@ -84,7 +84,7 @@ START_RELOC_NUMBERS (elf_mips_reloc_type)
/* These are GNU extensions to enable C++ vtable garbage collection. */ /* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_MIPS_GNU_VTINHERIT, 253) RELOC_NUMBER (R_MIPS_GNU_VTINHERIT, 253)
RELOC_NUMBER (R_MIPS_GNU_VTENTRY, 254) 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. */ /* Processor specific flags for the ELF header e_flags field. */

View File

@ -34,6 +34,6 @@ START_RELOC_NUMBERS (elf_mn10200_reloc_type)
RELOC_NUMBER (R_MN10200_PCREL8, 5) RELOC_NUMBER (R_MN10200_PCREL8, 5)
RELOC_NUMBER (R_MN10200_PCREL16, 6) RELOC_NUMBER (R_MN10200_PCREL16, 6)
RELOC_NUMBER (R_MN10200_PCREL24, 7) RELOC_NUMBER (R_MN10200_PCREL24, 7)
END_RELOC_NUMBERS END_RELOC_NUMBERS (R_MN10200_max)
#endif /* _ELF_MN10200_H */ #endif /* _ELF_MN10200_H */

View File

@ -36,8 +36,7 @@ START_RELOC_NUMBERS (elf_mn10300_reloc_type)
RELOC_NUMBER (R_MN10300_GNU_VTINHERIT, 7) RELOC_NUMBER (R_MN10300_GNU_VTINHERIT, 7)
RELOC_NUMBER (R_MN10300_GNU_VTENTRY, 8) RELOC_NUMBER (R_MN10300_GNU_VTENTRY, 8)
RELOC_NUMBER (R_MN10300_24, 9) RELOC_NUMBER (R_MN10300_24, 9)
EMPTY_RELOC (R_MN10300_MAX) END_RELOC_NUMBERS (R_MN10300_MAX)
END_RELOC_NUMBERS
/* Machine variant if we know it. This field was invented at Cygnus, /* 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 but it is hoped that other vendors will adopt it. If some standard

View File

@ -35,8 +35,7 @@ START_RELOC_NUMBERS (elf_pj_reloc_type)
RELOC_NUMBER (R_PJ_CODE_HI16, 14) RELOC_NUMBER (R_PJ_CODE_HI16, 14)
RELOC_NUMBER (R_PJ_GNU_VTINHERIT, 15) RELOC_NUMBER (R_PJ_GNU_VTINHERIT, 15)
RELOC_NUMBER (R_PJ_GNU_VTENTRY, 16) RELOC_NUMBER (R_PJ_GNU_VTENTRY, 16)
EMPTY_RELOC (R_PJ_max) END_RELOC_NUMBERS (R_PJ_max)
END_RELOC_NUMBERS
#define EF_PICOJAVA_ARCH 0x0000000f #define EF_PICOJAVA_ARCH 0x0000000f
#define EF_PICOJAVA_NEWCALLS 0x00000010 #define EF_PICOJAVA_NEWCALLS 0x00000010

View File

@ -96,8 +96,7 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
that may still be in object files. */ that may still be in object files. */
RELOC_NUMBER (R_PPC_TOC16, 255) RELOC_NUMBER (R_PPC_TOC16, 255)
EMPTY_RELOC (R_PPC_max) END_RELOC_NUMBERS (R_PPC_max)
END_RELOC_NUMBERS
/* Processor specific flags for the ELF header e_flags field. */ /* Processor specific flags for the ELF header e_flags field. */

View File

@ -27,20 +27,20 @@
START_RELOC_NUMBERS (foo) START_RELOC_NUMBERS (foo)
RELOC_NUMBER (R_foo_NONE, 0) RELOC_NUMBER (R_foo_NONE, 0)
RELOC_NUMBER (R_foo_32, 1) RELOC_NUMBER (R_foo_32, 1)
FAKE_RELOC (R_foo_illegal, 2) EMPTY_RELOC (R_foo_good)
EMPTY_RELOC (R_foo_max) FAKE_RELOC (R_foo_illegal, 9)
END_RELOC_NUMBERS END_RELOC_NUMBERS (R_foo_count)
Then the following will be produced by default (ie if Then the following will be produced by default (ie if
RELOC_MACROS_GEN_FUNC is *not* defined). RELOC_MACROS_GEN_FUNC is *not* defined).
enum foo enum foo
{ {
foo = -1,
R_foo_NONE = 0, R_foo_NONE = 0,
R_foo_32 = 1, R_foo_32 = 1,
R_foo_illegal = 2, R_foo_good,
R_foo_max R_foo_illegal = 9,
R_foo_count
}; };
If RELOC_MACROS_GEN_FUNC *is* defined, then instead the If RELOC_MACROS_GEN_FUNC *is* defined, then instead the
@ -87,7 +87,7 @@ name (rtype) \
#define FAKE_RELOC(name, number) #define FAKE_RELOC(name, number)
#define EMPTY_RELOC(name) #define EMPTY_RELOC(name)
#define END_RELOC_NUMBERS \ #define END_RELOC_NUMBERS(name) \
default: return NULL; \ default: return NULL; \
} \ } \
} }
@ -95,21 +95,11 @@ name (rtype) \
#else /* Default to generating enum. */ #else /* Default to generating enum. */
/* Some compilers cannot cope with an enum that ends with a trailing #define START_RELOC_NUMBERS(name) enum name {
comma, so START_RELOC_NUMBERS creates a fake reloc entry, (initialised #define RELOC_NUMBER(name, number) name = number,
to -1 so that the first real entry will still default to 0). Further #define FAKE_RELOC(name, number) name = number,
entries then prepend a comma to their definitions, creating a list #define EMPTY_RELOC(name) name,
of enumerator entries that will satisfy these compilers. */ #define END_RELOC_NUMBERS(name) name };
#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 };
#endif #endif

View File

@ -78,7 +78,6 @@ START_RELOC_NUMBERS (elf_sh_reloc_type)
RELOC_NUMBER (R_SH_GNU_VTENTRY, 35) RELOC_NUMBER (R_SH_GNU_VTENTRY, 35)
RELOC_NUMBER (R_SH_LOOP_START, 36) RELOC_NUMBER (R_SH_LOOP_START, 36)
RELOC_NUMBER (R_SH_LOOP_END, 37) RELOC_NUMBER (R_SH_LOOP_END, 37)
EMPTY_RELOC (R_SH_max) END_RELOC_NUMBERS (R_SH_max)
END_RELOC_NUMBERS
#endif #endif

View File

@ -134,8 +134,7 @@ START_RELOC_NUMBERS (elf_sparc_reloc_type)
RELOC_NUMBER (R_SPARC_GNU_VTINHERIT, 250) RELOC_NUMBER (R_SPARC_GNU_VTINHERIT, 250)
RELOC_NUMBER (R_SPARC_GNU_VTENTRY, 251) RELOC_NUMBER (R_SPARC_GNU_VTENTRY, 251)
EMPTY_RELOC (R_SPARC_max) END_RELOC_NUMBERS (R_SPARC_max)
END_RELOC_NUMBERS
/* Relocation macros. */ /* Relocation macros. */

View File

@ -77,9 +77,7 @@ START_RELOC_NUMBERS (v850_reloc_type)
/* END CYGNUS LOCAL */ /* END CYGNUS LOCAL */
RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23) RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23)
RELOC_NUMBER (R_V850_GNU_VTENTRY, 24) RELOC_NUMBER (R_V850_GNU_VTENTRY, 24)
END_RELOC_NUMBERS (R_V850_max)
EMPTY_RELOC (R_V850_max)
END_RELOC_NUMBERS
/* Processor specific section indices. These sections do not actually /* Processor specific section indices. These sections do not actually