Add new ELF ABI defines
This commit is contained in:
		| @@ -1,3 +1,17 @@ | ||||
| 2000-11-22  Nick Clifton  <nickc@redhat.com> | ||||
|  | ||||
| 	* common.h (EM_JAVELIN): New machine number. | ||||
| 	(EM_FIREPATH): New machine number. | ||||
| 	(EM_ZSP): New machine number. | ||||
| 	(EM_MMIX): New machine number. | ||||
| 	(EM_HUANY): New machine number. | ||||
| 	(EM_PRISM): New machine number. | ||||
| 	(SHT_GROUP): New section type. | ||||
| 	(SHT_SYMTAB_SHNDX): New section type. | ||||
| 	(SHF_GROUP): New section flag. | ||||
| 	(SHN_XINDEX): New section index. | ||||
| 	(GRP_COMDAT): New section group flag. | ||||
|  | ||||
| 2000-11-20  H.J. Lu  <hjl@gnu.org> | ||||
|  | ||||
| 	* common.h (ELFOSABI_MONTEREY): Renamed to ... | ||||
|   | ||||
| @@ -71,14 +71,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define ELFOSABI_MODESTO 11     /* Novell Modesto */ | ||||
| #define ELFOSABI_OPENBSD 12     /* OpenBSD */ | ||||
| #define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ | ||||
| #define ELFOSABI_ARM   97		/* ARM */ | ||||
| #define ELFOSABI_ARM   97	/* ARM */ | ||||
|  | ||||
| #define EI_ABIVERSION   8       /* ABI version */ | ||||
|  | ||||
| #define EI_PAD		9	/* Start of padding bytes */ | ||||
|  | ||||
|  | ||||
| /* Values for e_type, which identifies the object file type */ | ||||
| /* Values for e_type, which identifies the object file type.  */ | ||||
|  | ||||
| #define ET_NONE		0	/* No file type */ | ||||
| #define ET_REL		1	/* Relocatable file */ | ||||
| @@ -90,7 +90,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define ET_LOPROC	0xFF00	/* Processor-specific */ | ||||
| #define ET_HIPROC	0xFFFF	/* Processor-specific */ | ||||
|  | ||||
| /* Values for e_machine, which identifies the architecture */ | ||||
| /* Values for e_machine, which identifies the architecture.  */ | ||||
|  | ||||
| #define EM_NONE		0	/* No machine */ | ||||
| #define EM_M32		1	/* AT&T WE 32100 */ | ||||
| @@ -98,7 +98,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define EM_386		3	/* Intel 80386 */ | ||||
| #define EM_68K		4	/* Motorola m68k family */ | ||||
| #define EM_88K		5	/* Motorola m88k family */ | ||||
| #define EM_486		6	/* Intel 80486 */ | ||||
| #define EM_486		6	/* Intel 80486 *//* Reserved for future use */ | ||||
| #define EM_860		7	/* Intel 80860 */ | ||||
| #define EM_MIPS		8	/* MIPS R3000 (officially, big-endian only) */ | ||||
| #define EM_S370		9	/* IBM System/370 */ | ||||
| @@ -149,9 +149,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define EM_68HC08      71	/* Motorola MC68HC08 Microcontroller */ | ||||
| #define EM_68HC05      72	/* Motorola MC68HC05 Microcontroller */ | ||||
| #define EM_SVX         73	/* Silicon Graphics SVx */ | ||||
| #define EM_ST19        74	/* STMicroelectronics ST19 8-bit microcontroller */ | ||||
| #define EM_ST19        74	/* STMicroelectronics ST19 8-bit cpu */ | ||||
| #define EM_VAX         75	/* Digital VAX */ | ||||
| #define EM_CRIS	       76	/* Axis Communications 32-bit embedded processor */ | ||||
| #define EM_CRIS	       76	/* Axis Communications 32-bit embedded cpu */ | ||||
| #define EM_JAVELIN     77	/* Infineon Technologies 32-bit embedded cpu */ | ||||
| #define EM_FIREPATH    78	/* Element 14 64-bit DSP processor */ | ||||
| #define EM_ZSP         79	/* LSI Logic's 16-bit DSP processor */ | ||||
| #define EM_MMIX	       80	/* Donald Knuth's education 64-bit processor */ | ||||
| #define EM_HUANY       81	/* Harvard's machine-independent format */ | ||||
| #define EM_PRISM       82	/* SiTera Prism */ | ||||
|  | ||||
| #define EM_PJ          99       /* picoJava */ | ||||
|  | ||||
| @@ -205,12 +211,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* See the above comment before you add a new EM_* value here.  */ | ||||
|  | ||||
| /* Values for e_version */ | ||||
| /* Values for e_version.  */ | ||||
|  | ||||
| #define EV_NONE		0		/* Invalid ELF version */ | ||||
| #define EV_CURRENT	1		/* Current version */ | ||||
|  | ||||
| /* Values for program header, p_type field */ | ||||
| /* Values for program header, p_type field.  */ | ||||
|  | ||||
| #define	PT_NULL		0		/* Program header table entry unused */ | ||||
| #define PT_LOAD		1		/* Loadable program segment */ | ||||
| @@ -224,7 +230,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define PT_LOPROC	0x70000000	/* Processor-specific */ | ||||
| #define PT_HIPROC	0x7FFFFFFF	/* Processor-specific */ | ||||
|  | ||||
| /* Program segment permissions, in program header p_flags field */ | ||||
| /* Program segment permissions, in program header p_flags field.  */ | ||||
|  | ||||
| #define PF_X		(1 << 0)	/* Segment is executable */ | ||||
| #define PF_W		(1 << 1)	/* Segment is writable */ | ||||
| @@ -233,7 +239,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define PF_MASKOS	0x0FF00000	/* New value, Oct 4, 1999 Draft */ | ||||
| #define PF_MASKPROC	0xF0000000	/* Processor-specific reserved bits */ | ||||
|  | ||||
| /* Values for section header, sh_type field */ | ||||
| /* Values for section header, sh_type field.  */ | ||||
|  | ||||
| #define SHT_NULL	0		/* Section header table entry unused */ | ||||
| #define SHT_PROGBITS	1		/* Program specific (private) data */ | ||||
| @@ -248,12 +254,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define SHT_SHLIB	10		/* Reserved, unspecified semantics */ | ||||
| #define SHT_DYNSYM	11		/* Dynamic linking symbol table */ | ||||
|  | ||||
| #define SHT_INIT_ARRAY  14		/* Array of pointers to init functions */ | ||||
| #define SHT_FINI_ARRAY  15		/* Array of pointers to finish functions */ | ||||
| #define SHT_PREINIT_ARRAY 16		/* Array of pointers to pre-init functions */ | ||||
| #define SHT_INIT_ARRAY    14		/* Array of ptrs to init functions */ | ||||
| #define SHT_FINI_ARRAY    15		/* Array of ptrs to finish functions */ | ||||
| #define SHT_PREINIT_ARRAY 16		/* Array of ptrs to pre-init funcs */ | ||||
| #define SHT_GROUP         17		/* Section contains a section group */ | ||||
| #define SHT_SYMTAB_SHNDX  18		/* Indicies for SHN_XINDEX entries */ | ||||
|  | ||||
| #define SHT_LOOS        0x60000000      /* Operating system specific semantics, lo */ | ||||
| #define SHT_HIOS        0x6fffffff      /* Operating system specific semantics, hi */ | ||||
| #define SHT_LOOS        0x60000000      /* First of OS specific semantics */ | ||||
| #define SHT_HIOS        0x6fffffff      /* Last of OS specific semantics */ | ||||
|  | ||||
| /* The next three section types are defined by Solaris, and are named | ||||
|    SHT_SUNW*.  We use them in GNU code, so we also define SHT_GNU* | ||||
| @@ -272,7 +280,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| /* #define SHT_HIUSER	0x8FFFFFFF    *//* Application-specific semantics */ | ||||
| #define SHT_HIUSER	0xFFFFFFFF	/* New value, defined in Oct 4, 1999 Draft */ | ||||
|  | ||||
| /* Values for section header, sh_flags field */ | ||||
| /* Values for section header, sh_flags field.  */ | ||||
|  | ||||
| #define SHF_WRITE	(1 << 0)	/* Writable data during execution */ | ||||
| #define SHF_ALLOC	(1 << 1)	/* Occupies memory during execution */ | ||||
| @@ -281,13 +289,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define SHF_STRINGS	(1 << 5)	/* Contains null terminated character strings */ | ||||
| #define SHF_INFO_LINK	(1 << 6)	/* sh_info holds section header table index */ | ||||
| #define SHF_LINK_ORDER  (1 << 7)	/* Preserve section ordering when linking */ | ||||
| #define SHF_OS_NONCONFORMING (1 << 8)	/* OS specifci processing required */ | ||||
| #define SHF_OS_NONCONFORMING (1 << 8)	/* OS specific processing required */ | ||||
| #define SHF_GROUP	(1 << 9)	/* Member of a section group */ | ||||
|  | ||||
| /* #define SHF_MASKOS	0x0F000000    *//* OS-specific semantics */ | ||||
| #define SHF_MASKOS	0x0FF00000	/* New value, Oct 4, 1999 Draft */ | ||||
| #define SHF_MASKPROC	0xF0000000	/* Processor-specific semantics */ | ||||
|  | ||||
| /* Values of note segment descriptor types for core files. */ | ||||
| /* Values of note segment descriptor types for core files.  */ | ||||
|  | ||||
| #define NT_PRSTATUS	1		/* Contains copy of prstatus struct */ | ||||
| #define NT_FPREGSET	2		/* Contains copy of fpregset struct */ | ||||
| @@ -296,7 +305,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define NT_PRXFPREG     0x46e62b7f	/* Contains a user_xfpregs_struct; */ | ||||
| 					/*   note name must be "LINUX".  */ | ||||
|  | ||||
| /* Note segments for core files on dir-style procfs systems. */ | ||||
| /* Note segments for core files on dir-style procfs systems.  */ | ||||
|  | ||||
| #define NT_PSTATUS	10		/* Has a struct pstatus */ | ||||
| #define NT_FPREGS	12		/* Has a struct fpregset */ | ||||
| @@ -312,7 +321,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* These three macros disassemble and assemble a symbol table st_info field, | ||||
|    which contains the symbol binding and symbol type.  The STB_ and STT_ | ||||
|    defines identify the binding and type. */ | ||||
|    defines identify the binding and type.  */ | ||||
|  | ||||
| #define ELF_ST_BIND(val)		(((unsigned int)(val)) >> 4) | ||||
| #define ELF_ST_TYPE(val)		((val) & 0xF) | ||||
| @@ -338,7 +347,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define ELF64_ST_VISIBILITY  ELF_ST_VISIBILITY | ||||
|  | ||||
|  | ||||
| #define STN_UNDEF	0		/* undefined symbol index */ | ||||
| #define STN_UNDEF	0		/* Undefined symbol index */ | ||||
|  | ||||
| #define STB_LOCAL	0		/* Symbol not visible outside obj */ | ||||
| #define STB_GLOBAL	1		/* Symbol visible outside obj */ | ||||
| @@ -360,7 +369,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define STT_HIPROC	15		/* Application-specific semantics */ | ||||
|  | ||||
| /* Special section indices, which may show up in st_shndx fields, among | ||||
|    other places. */ | ||||
|    other places.  */ | ||||
|  | ||||
| #define SHN_UNDEF	0		/* Undefined section reference */ | ||||
| #define SHN_LORESERVE	0xFF00		/* Begin range of reserved indices */ | ||||
| @@ -368,9 +377,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define SHN_HIPROC	0xFF1F		/* End range of appl-specific */ | ||||
| #define SHN_LOOS        0xFF20		/* OS specific semantics, lo */ | ||||
| #define SHN_HIOS        0xFF3F		/* OS specific semantics, hi */ | ||||
| #define SHN_ABS		0xFFF1		/* Associated symbol is absolute */ | ||||
| #define SHN_COMMON	0xFFF2		/* Associated symbol is in common */ | ||||
| #define SHN_HIRESERVE	0xFFFF		/* End range of reserved indices */ | ||||
| #define SHN_ABS	        0xFFF1		/* Associated symbol is absolute */ | ||||
| #define SHN_COMMON      0xFFF2		/* Associated symbol is in common */ | ||||
| #define SHN_XINDEX      0xFFFF		/* Section index it held elsewhere */ | ||||
| #define SHN_HIRESERVE   0xFFFF		/* End range of reserved indices */ | ||||
|  | ||||
| /* The following constants control how a symbol may be accessed once it has | ||||
|    become part of an executable or shared library.  */ | ||||
| @@ -379,9 +389,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define STV_INTERNAL	1		/* OS specific version of STV_HIDDEN */ | ||||
| #define STV_HIDDEN	2		/* Can only be seen inside currect component */ | ||||
| #define STV_PROTECTED	3		/* Treat as STB_LOCAL inside current component */ | ||||
| 					    | ||||
|  | ||||
| /* relocation info handling macros */ | ||||
| /* Relocation info handling macros.  */ | ||||
|  | ||||
| #define ELF32_R_SYM(i)		((i) >> 8) | ||||
| #define ELF32_R_TYPE(i)		((i) & 0xff) | ||||
| @@ -391,7 +400,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define ELF64_R_TYPE(i)		((i) & 0xffffffff) | ||||
| #define ELF64_R_INFO(s,t)	(((bfd_vma) (s) << 32) + (bfd_vma) (t)) | ||||
|  | ||||
| /* Dynamic section tags */ | ||||
| /* Dynamic section tags.  */ | ||||
|  | ||||
| #define DT_NULL		0 | ||||
| #define DT_NEEDED	1 | ||||
| @@ -493,7 +502,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|    http://docs.sun.com:80/ab2/coll.45.13/LLM/@Ab2PageView/21165?Ab2Lang=C&Ab2Enc=iso-8859-1 | ||||
|  | ||||
|    DTF_1_CONFEXP is the same as DTF_1_PARINIT. It is a typo. The value | ||||
|    defined here is the same as the one in <sys/link.h> on Solaris 8. */ | ||||
|    defined here is the same as the one in <sys/link.h> on Solaris 8.  */ | ||||
| #define DTF_1_CONFEXP	0x00000002 | ||||
|  | ||||
| /* Flag values used in the DT_POSFLAG_1 .dynamic entry.  */ | ||||
| @@ -564,19 +573,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
| #define ELF_VER_CHR	'@' | ||||
|  | ||||
| /* Possible values for si_boundto.  */ | ||||
|  | ||||
| #define SYMINFO_BT_SELF		0xffff	/* Symbol bound to self */ | ||||
| #define SYMINFO_BT_PARENT	0xfffe	/* Symbol bound to parent */ | ||||
| #define SYMINFO_BT_LOWRESERVE	0xff00	/* Beginning of reserved entries */ | ||||
|  | ||||
| /* Possible bitmasks for si_flags.  */ | ||||
|  | ||||
| #define SYMINFO_FLG_DIRECT	0x0001	/* Direct bound symbol */ | ||||
| #define SYMINFO_FLG_PASSTHRU	0x0002	/* Pass-thru symbol for translator */ | ||||
| #define SYMINFO_FLG_COPY	0x0004	/* Symbol is a copy-reloc */ | ||||
| #define SYMINFO_FLG_LAZYLOAD	0x0008	/* Symbol bound to object to be lazy | ||||
| 					   loaded */ | ||||
| #define SYMINFO_FLG_LAZYLOAD	0x0008	/* Symbol bound to object to be lazy loaded */ | ||||
|  | ||||
| /* Syminfo version values.  */ | ||||
|  | ||||
| #define SYMINFO_NONE		0 | ||||
| #define SYMINFO_CURRENT		1 | ||||
| #define SYMINFO_NUM		2 | ||||
|  | ||||
| /* Section Group Flags.  */ | ||||
|  | ||||
| #define GRP_COMDAT		0x1	/* A COMDAT group */ | ||||
|  | ||||
| #endif /* _ELF_COMMON_H */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user