2002-04-28 21:10:32 +04:00
|
|
|
/* $NetBSD: elf_machdep.h,v 1.8 2002/04/28 17:10:34 uch Exp $ */
|
1999-09-13 14:30:21 +04:00
|
|
|
|
2001-03-29 07:23:33 +04:00
|
|
|
#ifndef _BYTE_ORDER
|
|
|
|
#error Define _BYTE_ORDER!
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if _BYTE_ORDER == _LITTLE_ENDIAN
|
|
|
|
#define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB
|
|
|
|
#else
|
1999-10-25 17:55:06 +04:00
|
|
|
#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
|
2001-03-29 07:23:33 +04:00
|
|
|
#endif
|
1999-09-13 14:30:21 +04:00
|
|
|
#define ELF32_MACHDEP_ID_CASES \
|
1999-10-25 17:55:06 +04:00
|
|
|
case EM_SH: \
|
1999-09-13 14:30:21 +04:00
|
|
|
break;
|
|
|
|
|
|
|
|
#define ELF64_MACHDEP_ENDIANNESS XXX /* break compilation */
|
|
|
|
#define ELF64_MACHDEP_ID_CASES \
|
|
|
|
/* no 64-bit ELF machine types supported */
|
2000-04-02 19:35:47 +04:00
|
|
|
|
2001-12-10 02:05:56 +03:00
|
|
|
#define ELF32_MACHDEP_ID EM_SH
|
|
|
|
|
2002-04-28 21:10:32 +04:00
|
|
|
#define ARCH_ELFSIZE 32 /* MD native binary size */
|
2002-01-29 04:35:36 +03:00
|
|
|
|
2002-01-29 04:42:57 +03:00
|
|
|
/*
|
|
|
|
* SuperH ELF header flags.
|
|
|
|
*/
|
|
|
|
#define EF_SH_MACH_MASK 0x1f
|
|
|
|
|
|
|
|
#define EF_SH_UNKNOWN 0x00
|
|
|
|
#define EF_SH_SH1 0x01
|
|
|
|
#define EF_SH_SH2 0x02
|
|
|
|
#define EF_SH_SH3 0x03
|
|
|
|
#define EF_SH_DSP 0x04
|
|
|
|
#define EF_SH_SH3_DSP 0x05
|
|
|
|
#define EF_SH_SH3E 0x08
|
|
|
|
#define EF_SH_SH4 0x09
|
|
|
|
|
|
|
|
#define EF_SH_HAS_DSP(x) ((x) & EF_SH_DSP)
|
|
|
|
#define EF_SH_HAS_FP(x) ((x) & EF_SH_SH3E)
|
|
|
|
|
|
|
|
|
2002-01-29 04:35:36 +03:00
|
|
|
#define R_SH_NONE 0
|
|
|
|
#define R_SH_DIR32 1
|
|
|
|
#define R_SH_REL32 2
|
|
|
|
#define R_SH_DIR8WPN 3
|
|
|
|
#define R_SH_IND12W 4
|
|
|
|
#define R_SH_DIR8WPL 5
|
|
|
|
#define R_SH_DIR8WPZ 6
|
|
|
|
#define R_SH_DIR8BP 7
|
|
|
|
#define R_SH_DIR8W 8
|
|
|
|
#define R_SH_DIR8L 9
|
|
|
|
#define R_SH_SWITCH16 25
|
|
|
|
#define R_SH_SWITCH32 26
|
|
|
|
#define R_SH_USES 27
|
|
|
|
#define R_SH_COUNT 28
|
|
|
|
#define R_SH_ALIGN 29
|
|
|
|
#define R_SH_CODE 30
|
|
|
|
#define R_SH_DATA 31
|
|
|
|
#define R_SH_LABEL 32
|
|
|
|
#define R_SH_SWITCH8 33
|
|
|
|
#define R_SH_GNU_VTINHERIT 34
|
|
|
|
#define R_SH_GNU_VTENTRY 35
|
|
|
|
#define R_SH_LOOP_START 36
|
|
|
|
#define R_SH_LOOP_END 37
|
|
|
|
#define R_SH_GOT32 160
|
|
|
|
#define R_SH_PLT32 161
|
|
|
|
#define R_SH_COPY 162
|
|
|
|
#define R_SH_GLOB_DAT 163
|
|
|
|
#define R_SH_JMP_SLOT 164
|
|
|
|
#define R_SH_RELATIVE 165
|
|
|
|
#define R_SH_GOTOFF 166
|
|
|
|
#define R_SH_GOTPC 167
|
|
|
|
|
|
|
|
#define R_TYPE(name) __CONCAT(R_SH_,name)
|