19990502 sourceware import
This commit is contained in:
		
							
								
								
									
										719
									
								
								include/elf/ChangeLog
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										719
									
								
								include/elf/ChangeLog
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,719 @@ | ||||
| 1999-04-21  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* reloc-macros.h (START_RELOC_NUMBERS): Prepend an underscore to | ||||
| 	fake reloc entry name (if possible), in order to avoid conflicts | ||||
| 	with typedefs of the same name. | ||||
|  | ||||
| 1999-04-16  Gavin Romig-Koch  <gavin@cygnus.com> | ||||
|  | ||||
| 	* mips.h (EF_MIPS_32BITMODE): New. | ||||
|  | ||||
| 1999-04-08  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* mcore.h: New header file.  Defines for Motorolla's MCore | ||||
| 	processor.  | ||||
|  | ||||
| 1999-04-08  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* common.h: Add new constants defined in: "System V Application | ||||
| 	Binary Interface - DRAFT - April 29, 1998" found at the web site:  | ||||
| 	http://www.sco.com/developer/gabi/contents.html | ||||
|  | ||||
| 	(EM_MMA): Removed.  Replaced with EM_MCORE as Motorolla own this | ||||
| 	value.  | ||||
|  | ||||
| 1999-03-31  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* reloc-macros.h: Fixed to not generate an enum with a trailing | ||||
| 	comma.  | ||||
|  | ||||
| 1999-03-16  Gavin Romig-Koch  <gavin@cygnus.com> | ||||
|  | ||||
| 	* mips.h (E_MIPS_MACH_5000): New. | ||||
|  | ||||
| 1999-03-10  Ulrich Drepper  <drepper@cygnus.com> | ||||
|  | ||||
| 	* common.h: Add definitions for a few more Solaris ELF extensions. | ||||
|  | ||||
| Thu Feb 18 18:58:26 1999  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* external.h: Only use attribute if __GNUC__ is defined. | ||||
|  | ||||
| 1999-02-17  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	Patch submitted by: Scott Bambrough <scottb@corelcomputer.com> | ||||
|  | ||||
| 	* elf/external.h: struct Elf_External_Versym must be packed on | ||||
| 	ARM.  Code uses sizeof(Elf_External_Versym) and assumes it is | ||||
| 	equal to sizeof(char[2]).  Reported by Jim Pick <jim@jimpick.com> | ||||
|  | ||||
| 1999-02-02  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* dwarf2.h (DWARF2_External_ARange): New structure. | ||||
| 	(DWARF2_Internal_ARange): New structure. | ||||
|  | ||||
| Mon Feb  1 11:33:56 1999  Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|         * arm.h:  Renumber relocs to conform to standard. | ||||
|         (EF_NEW_ABI):  Define. | ||||
|         (EF_OLD_ABI):  Define. | ||||
|         * arm-oabi.h:  New file. | ||||
|  | ||||
| 1999-01-28  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* fr30.h: Add R_FR30_GNU_VT{INHERIT,ENTRY} relocs. | ||||
|  | ||||
| 1999-01-27  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* dwarf2.h: Add typedefs for structures found in dwarf2 sections. | ||||
|  | ||||
| 1998-12-16  Gavin Romig-Koch  <gavin@cygnus.com> | ||||
|  | ||||
| 	* mips.h (E_MIPS_MACH_4111): New. | ||||
|  | ||||
| 1998-12-15  Gavin Romig-Koch  <gavin@cygnus.com> | ||||
|  | ||||
| 	* mips.h (EF_MIPS_ABI,E_MIPS_ABI_O32,E_MIPS_ABI_O64, | ||||
| 	E_MIPS_ABI_EABI32,E_MIPS_ABI_EABI64): | ||||
|  | ||||
| 1998-12-03  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* fr30.h: Add R_FR30_48 reloc. | ||||
|  | ||||
| 1998-12-02  Ulrich Drepper  <drepper@cygnus.com> | ||||
|  | ||||
| 	* mips.h: Add external data type for conflict section. | ||||
|  | ||||
| 	* mips.h: Add more LL_* options from Irix 6.5. | ||||
|  | ||||
| 	* mips.h: Add R_MIPS_JALR and adjust R_MIPS_max appropriately. | ||||
|  | ||||
| Tue Nov 10 15:12:28 1998  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_CYGNUS_FR30): Reduce to a 16 bit value. | ||||
|  | ||||
| Tue Nov 10 15:17:28 1998  Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|         * d10v.h:  Add vtable relocs. | ||||
|  | ||||
| Wed Nov  4 15:56:50 1998  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_CYGNUS_FR30): New machine number. | ||||
|  | ||||
| 	* fr30.h: New file: Definitions for the FR30. | ||||
|  | ||||
| Fri Oct 30 11:54:15 1998  Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|         From Philip Blundell <pb@nexus.co.uk>: | ||||
|         * arm.h (R_ARM_COPY, et al.): New relocs, used by Linux for PIC. | ||||
|         (EF_ALIGN8): New flag. | ||||
|  | ||||
| Tue Oct 20 11:19:50 1998  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* common.h (NT_LWPSTATUS): Close comment accidentally left open. | ||||
|  | ||||
| Mon Oct 19 20:24:11 1998  Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|         * sh.h:  Add vtable relocs. | ||||
|  | ||||
| Mon Oct 19 01:44:42 1998  Felix Lee  <flee@cygnus.com> | ||||
|  | ||||
| 	* common.h (NT_PSTATUS, NT_FPREGS, NT_PSINFO, | ||||
|  	NT_LWPSTATUS,NT_LWPSINFO): added. | ||||
| 	* internal.h (Elf_Internal_Note): new structure members. | ||||
|  | ||||
| Fri Oct 16 14:11:25 1998  Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|         * m32r.h:  Add vtable relocs. | ||||
|  | ||||
| Tue Oct  6 09:22:22 1998  Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|         * sparc.h:  Add vtable relocs. | ||||
|  | ||||
| Mon Oct  5 09:39:22 1998  Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|         * v850.h:  Add vtable relocs. | ||||
|  | ||||
| Sun Oct  4 21:17:51 1998  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* i386.h (R_386_max): Change from 252 to 24. | ||||
|  | ||||
| Mon Sep 21 12:24:44 1998  Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|         * i386.h:  Change vtable reloc numbers. | ||||
|  | ||||
| Sun Sep 20 00:54:22 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de> | ||||
|  | ||||
| 	* m68k.h: Add vtable relocs and R_68K_max. | ||||
|  | ||||
| Tue Sep 15 09:56:49 CDT 1998  Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|        * arm.h:  Add vtable relocs. | ||||
|  | ||||
| Mon Aug 31 11:25:27 1998  Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|         * arm.h:  Define STT_ARM_TFUNC.  Remove ST_THUMB_xxxx | ||||
|         definitions. | ||||
|  | ||||
| Sat Aug 29 22:25:51 1998  Richard Henderson  <rth@cygnus.com> | ||||
|  | ||||
| 	* i386.h: Add vtable relocs. | ||||
|  | ||||
| 1998-08-25 16:42  Ulrich Drepper  <drepper@cygnus.com> | ||||
|  | ||||
| 	* common.h: Add SYMINFO_* macros to access Elf*_Syminfo information. | ||||
|  | ||||
| 	* external.h: Add Elf_External_Syminfo definition. | ||||
|  | ||||
| 	* internal.h: Add Elf_Internal_Syminfo, Elf32_Internal_Syminfo, | ||||
| 	and Elf64_Syminfo definitions. | ||||
|  | ||||
| Sun Aug  9 20:26:49 CDT 1998  Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|        * arm.h:  Add ST_THUMB definitions. | ||||
|  | ||||
| Wed Aug  5 15:52:35 1998  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* arm.h: Add ELF header flags to specify compile time optins: | ||||
| 	EF_INTERWORK: New flag. | ||||
| 	EF_APCS_26: New flag. | ||||
| 	EF_APCS_FLOAT: New flag. | ||||
| 	EF_PIC: New flag. | ||||
|  | ||||
| 1998-07-31 21:28  Ulrich Drepper  <drepper@cygnus.com> | ||||
|  | ||||
| 	* mips.h: Add missing RHF_* constants. | ||||
|  | ||||
| Fri Jul 31 10:01:40 1998 Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|         * arm.h: Add R_ARM_THM_PC9 relocation. | ||||
|  | ||||
| 1998-07-30 16:25  Ulrich Drepper  <drepper@cygnus.com> | ||||
|  | ||||
| 	* common.h: Add new DT_* entries and there flag macros from Solaris. | ||||
|  | ||||
| Tue Jul 28 18:14:07 1998  Stan Cox  <scox@equinox.cygnus.com> | ||||
|  | ||||
| 	* sparc.h: (R_SPARC_REV32): Added for little endian data e.g. sparc 86x. | ||||
|  | ||||
| Fri Jul 24 11:22:06 1998  Jeffrey A Law  (law@cygnus.com) | ||||
|  | ||||
| 	* mn10300.h: Add R_MN10300_24 relocation. | ||||
|  | ||||
| 1998-07-24  Ulrich Drepper  <drepper@cygnus.com> | ||||
|  | ||||
| 	* mips.h: Add MIPS64 relocation names and values. | ||||
|  | ||||
| Wed Jul 22 19:29:00 Catherine Moore  <clm@cygnus.com> | ||||
|  | ||||
|         * arm.h: Rename relocations. | ||||
|  | ||||
| 1998-07-22  Ulrich Drepper  <drepper@cygnus.com> | ||||
|  | ||||
| 	* ppc.h: Define enum as elf_ppc_reloc_type. | ||||
|  | ||||
| Wed Jul 22 16:22:11 1998  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* reloc-macros.h: New file.  Provides relocation macros: | ||||
| 	START_RELOC_NUMBERS, RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC and | ||||
| 	END_RELOC_NUMBERS used by other elf header files. | ||||
|  | ||||
| 	* alpha.h: Use reloc-macros.h. | ||||
| 	* arc.h: Use reloc-macros.h. | ||||
| 	* arm.h: Use reloc-macros.h. | ||||
| 	* d10v.h: Use reloc-macros.h. | ||||
| 	* d30v.h: Use reloc-macros.h. | ||||
| 	* hppa.h: Use reloc-macros.h. | ||||
| 	* i386.h: Use reloc-macros.h. | ||||
| 	* m32r.h: Use reloc-macros.h. | ||||
| 	* m68k.h: Use reloc-macros.h. | ||||
| 	* mips.h: Use reloc-macros.h. | ||||
| 	* mn10200.h: Use reloc-macros.h. | ||||
| 	* mn10300.h: Use reloc-macros.h. | ||||
| 	* ppc.h: Use reloc-macros.h. | ||||
| 	* sh.h: Use reloc-macros.h. | ||||
| 	* sparc.h: Use reloc-macros.h. | ||||
| 	* v850.h: Use reloc-macros.h. | ||||
|  | ||||
| 1998-07-22 13:07  Ulrich Drepper  <drepper@cygnus.com> | ||||
|  | ||||
| 	* mn10300.h: Rewrite relocation definition using macros. | ||||
| 	* mips.h: Likewise. | ||||
| 	* ppc.h: Likewise. | ||||
| 	* alpha.h: Likewise. | ||||
| 	* arm.h: Likewise. | ||||
| 	* d10v.h: Likewise. | ||||
| 	* d30v.h: Likewise. | ||||
| 	* m32r.h: Likewise. | ||||
| 	* m68k.h: Likewise. | ||||
| 	* mn10200.h: Likewise. | ||||
| 	* sh.h: Likewise. | ||||
| 	* sparc.h: Likewise. | ||||
|  | ||||
| 1998-07-21 13:07  Ulrich Drepper  <drepper@cygnus.com> | ||||
|  | ||||
| 	* arm.h: New file. | ||||
| 	* d10v.h: New file. | ||||
| 	* d30v.h: New file. | ||||
| 	* i386.h: New file. | ||||
| 	* m68k.h: New file. | ||||
| 	* mn10200.h: New file. | ||||
| 	* sh.h: New file. | ||||
|  | ||||
| 	* mips.h: Add R_MIPS_* and SHT_MIPS_* entries. | ||||
|  | ||||
| 	* mn10300.h: Add R_MN10300_* entries. | ||||
|  | ||||
| 	* ppc.h: Add R_PPC_* entries. | ||||
|  | ||||
| 1998-07-20 07:11  Ulrich Drepper  <drepper@cygnus.com> | ||||
|  | ||||
| 	* mips.h: Add ODK_*, OEX_*, OPAD_*, OHW_*, and OGP_* constants. | ||||
| 	Define Elf32_External_Lib. | ||||
|  | ||||
| 1998-07-19 15:24  Ulrich Drepper  <drepper@cygnus.com> | ||||
|  | ||||
| 	* mips.h (PT_MIPS_OPTIONS): New symbol. | ||||
| 	Add lots of DT_MIPS_* symbols. | ||||
|  | ||||
| Fri Jun 26 10:46:35 1998  Jeffrey A Law  (law@cygnus.com) | ||||
|  | ||||
| 	* mn10300.h: New file. | ||||
|  | ||||
| Thu Jun 18 19:27:56 1998  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_960, EM_V800, EM_FR20, EM_RH32, EM_MMA, | ||||
| 	EM_OLD_ALPHA): Add these constants. | ||||
|  | ||||
| Thu Jun 11 17:59:01 1998  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_486, EM_S370): Add these constants. | ||||
|  | ||||
| Tue Jun  9 09:35:29 1998  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_ARM): Add this constant. | ||||
|  | ||||
| Wed May  6 09:45:30 1998  Gavin Koch  <gavin@cygnus.com> | ||||
|  | ||||
| 	* mips.h (EF_MIPS_MACH,E_MIPS_MACH_*): Added. | ||||
|  | ||||
| Sat Apr 25 18:35:06 1998  Richard Henderson  <rth@cygnus.com> | ||||
|  | ||||
| 	* alpha.h (STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD): New. | ||||
|  | ||||
| Wed Apr 15 15:42:45 1998  Richard Henderson  <rth@cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_SPARC64): Move and rename to EM_OLD_SPARCV9. | ||||
| 	(EM_SPARCV9): New.  This is the official ABI name and number. | ||||
|  | ||||
| Sat Feb 28 17:04:41 1998  Richard Henderson  <rth@cygnus.com> | ||||
|  | ||||
| 	* alpha.h (EF_ALPHA_32BIT, EF_ALPHA_CANRELAX): New. | ||||
|  | ||||
| Mon Dec 15 15:07:49 1997  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* m32r.h (EF_M32R_ARCH, E_M32R_ARCH): New flags to | ||||
| 	specify machine architecture. | ||||
|  | ||||
| Fri Dec  5 11:20:08 1997  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* v850.h: New constants: SHN_V850_SCOMMON, SHN_V850_TCOMMON, | ||||
| 	SHN_V850_ZCOMMON, SHT_V850_SCOMMON, SHT_V850_TCOMMON, | ||||
| 	SHT_V850_ZCOMMON to handle v850 common sections. | ||||
| 	enum reloc_type renamed to v850_reloc_type to avoid name | ||||
| 	conflict. | ||||
|  | ||||
| Thu Oct 23 13:55:24 1997  Richard Henderson  <rth@cygnus.com> | ||||
|  | ||||
| 	* sparc.h (enum elf_sparc_reloc_type): Add UA64 & UA16. | ||||
|  | ||||
| Thu Oct 23 00:42:04 1997  Richard Henderson  <rth@dot.cygnus.com> | ||||
|  | ||||
| 	* sparc.h (DT_SPARC_REGISTER): New macro. | ||||
| 	(DT_SPARC_PLTFMT): In support of old sparc64-linux .plts; will | ||||
| 	go away soon. | ||||
|  | ||||
| Tue Sep 30 13:26:58 1997  Doug Evans  <dje@canuck.cygnus.com> | ||||
|  | ||||
| 	* sparc.h (EF_SPARC_HAL_R1, EF_SPARC_EXT_MASK): New macros. | ||||
| 	(EF_SPARCV9_{MM,TSO,PSO,RMO}): New macros. | ||||
| 	(SHN_BEFORE,SHN_AFTER): New macros. | ||||
| 	(SHF_EXCLUDE,SHF_ORDERED): New macros. | ||||
| 	(STT_REGISTER): New macro. | ||||
| 	(R_SPARC_GLOB_JMP): Deleted, but slot reserved. | ||||
| 	(R_SPARC_{DISP64,PLT64,HIX22,LOX10}): New relocations. | ||||
| 	(R_SPARC_{H44,M44,L44,REGISTER}): New relocations. | ||||
| 	(ELF64_R_TYPE_{DATA,ID,INFO}): New macros. | ||||
|  | ||||
| Wed Sep 17 16:41:42 1997  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* v850.h: Add R_V850_CALLT_6_7_OFFSET and R_V850_CALLT_16_16_OFFSET. | ||||
|  | ||||
| Tue Sep 16 14:16:17 1997  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* v850.h (reloc_type): Add R_V850_TDA_16_16_OFFSET. | ||||
|  | ||||
| Wed Sep  3 15:11:14 1997  Richard Henderson  <rth@cygnus.com> | ||||
|  | ||||
| 	* mips.h: Correct typo in comment. | ||||
|  | ||||
| Wed Sep  3 11:25:57 1997  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* v850.h (reloc_type): Remove R_V850_16_PCREL. | ||||
|  | ||||
| Tue Sep  2 17:41:05 1997  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* common.h: Remove magic number for V850E. | ||||
| 	* common.h: Remove magic number for V850EA. | ||||
| 	* v850.h: Add new flags for e_flags field in elf header. | ||||
|  | ||||
| Mon Aug 25 16:06:47 1997  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_CYGNUS_V850E): backend magic number for v850e. | ||||
| 	* common.h (EM_CYGNUS_V850EA): backend magic number for v850ea. | ||||
|  | ||||
| Mon Aug 18 11:05:23 1997  Nick Clifton  <nickc@cygnus.com> | ||||
|  | ||||
| 	* v850.h (reloc_type): Add 16 bit PC relative relocation. | ||||
|  | ||||
| Fri Aug 15 05:10:09 1997  Doug Evans  <dje@canuck.cygnus.com> | ||||
|  | ||||
| 	* arc.h (enum reloc): Move here from elf32-arc.c. | ||||
|  | ||||
| Fri Aug  8 17:05:29 1997  Doug Evans  <dje@canuck.cygnus.com> | ||||
|  | ||||
| 	* arc.h: New file. | ||||
| 	* common.h (EM_CYGNUS_ARC): Define. | ||||
|  | ||||
| Mon Jun 16 14:46:12 1997  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* internal.h (Elf_Internal_Ehdr): Change e_phoff and e_shoff from | ||||
| 	bfd_signed_vma to bfd_size_type, as they are not signed. | ||||
|  | ||||
| Wed Mar  5 15:35:26 1997  Doug Evans  <dje@seba.cygnus.com> | ||||
|  | ||||
| 	* m32r.h (SHF_M32R_CAN_RELAX): Define. | ||||
|  | ||||
| Mon Feb 24 17:49:01 1997  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* external.h: Dump the 32/64 bit specific forms of the version | ||||
| 	structures, and just define them as size independent. | ||||
|  | ||||
| 	* common.h (VERSYM_HIDDEN, VERSYM_VERSION): Define. | ||||
|  | ||||
| Fri Feb 21 13:00:34 1997  Doug Evans  <dje@canuck.cygnus.com> | ||||
|  | ||||
| 	* m32r.h (enum reloc_type): Add R_M32R_SDA16. | ||||
| 	(SHN_M32R_SCOMMON): Define. | ||||
|  | ||||
| Wed Feb 19 15:35:31 1997  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	From Eric Youngdale <eric@andante.jic.com>: | ||||
| 	* external.h, internal.h, common.h: Added new structures and | ||||
| 	definitions for ELF versions. | ||||
|  | ||||
| Tue Feb 18 17:40:36 1997  Martin M. Hunt  <hunt@pizza.cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_CYGNUS_D30V): Define. | ||||
|  | ||||
| Mon Jan 27 11:54:44 1997  Doug Evans  <dje@seba.cygnus.com> | ||||
|  | ||||
| 	* m32r.h (enum reloc_type): Add R_M32R_HI16_[SU]LO,R_M32R_LO16. | ||||
|  | ||||
| Fri Jan  3 11:32:51 1997  Michael Meissner  <meissner@tiktok.cygnus.com> | ||||
|  | ||||
| 	* v850.h (V850_OTHER_{TDA_BYTE,ERROR}): New bits for the st_other | ||||
| 	field. | ||||
| 	(SHN_V850_*): Remove v850 specific section indexes, which are not | ||||
| 	needed. | ||||
| 	(enum reloc_type): Move the v850 relocations here from | ||||
| 	elf32-v850.c | ||||
|  | ||||
| Thu Jan  2 19:30:23 1997  Michael Meissner  <meissner@tiktok.cygnus.com> | ||||
|  | ||||
| 	* v850.h: New file, provide V850 specific definitions. | ||||
|  | ||||
| Tue Dec 31 14:44:32 1996  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* common.h (DT_AUXILIARY): Define. | ||||
| 	(DT_FILTER): Define. | ||||
|  | ||||
| Wed Dec  4 05:03:37 1996  Jason Merrill  <jason@yorick.cygnus.com> | ||||
|  | ||||
| 	* dwarf2.h: Update. | ||||
|  | ||||
| Tue Nov 26 10:44:47 1996  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* mips.h (STO_MIPS16): Define. | ||||
|  | ||||
| Tue Nov 12 15:45:42 1996  Martin M. Hunt  <hunt@pizza.cygnus.com> | ||||
|  | ||||
| 	* d10v.h: Remove empty file. | ||||
|  | ||||
| Tue Oct  8 11:31:24 1996  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* mips.h (EF_MIPS_ABI2): Define. | ||||
|  | ||||
| Thu Oct  3 10:01:40 1996  Jeffrey A Law  (law@cygnus.com) | ||||
|  | ||||
| 	* common.h: Break mn10x00 support into mn10200 and mn10300. | ||||
|  | ||||
| Wed Oct  2 21:26:43 1996  Jeffrey A Law  (law@cygnus.com) | ||||
|  | ||||
| 	* common.h (EM_CYGNUS_MN10x00): Define. | ||||
|  | ||||
| Mon Sep 23 09:18:04 1996  Doug Evans  <dje@seba.cygnus.com> | ||||
|  | ||||
| 	* m32r.h: New file. | ||||
|  | ||||
| Fri Aug 30 17:06:21 1996  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_SH): Define. | ||||
|  | ||||
| Tue Aug 20 14:47:54 1996  J.T. Conklin  <jtc@hippo.cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_CYGNUS_V850): Define. | ||||
|  | ||||
| Mon Aug 19 10:59:10 1996  Doug Evans  <dje@canuck.cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_CYGNUS_M32R): Define. | ||||
|  | ||||
| Mon Jul 22 18:59:55 1996  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* mips.h (SHT_MIPS_IFACE, SHT_MIPS_CONTENT): Define. | ||||
| 	(SHT_MIPS_SYMBOL_LIB): Define. | ||||
| 	(SHF_MIPS_MERGE, SHF_MIPS_ADDR32, SHF_MIPS_ADDR64): Define. | ||||
| 	(SHF_MIPS_NOSTRIP, SHF_MIPS_LOCAL, SHF_MIPS_NAMES): Define. | ||||
|  | ||||
| Thu Jul 18 19:12:15 1996  Stan Shebs  <shebs@andros.cygnus.com> | ||||
|  | ||||
| 	* dwarf2.h: New file. | ||||
|  | ||||
| Jul 18 13:20:39 1996  Martin M. Hunt  <hunt@pizza.cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_CYGNUS_D10V): Define. | ||||
| 	* d10v.h: New file. | ||||
|  | ||||
| Fri Jun 21 12:33:24 1996  Richard Henderson  <rth@tamu.edu> | ||||
|  | ||||
| 	* alpha.h: New file. | ||||
| 	* common.h (EM_ALPHA): Define. | ||||
|  | ||||
| Fri May 31 17:28:05 1996  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* mips.h (Elf_External_Options, Elf_Internal_Options): Define. | ||||
| 	(bfd_mips_elf_swap_options_in): Declare. | ||||
| 	(bfd_mips_elf_swap_options_out): Declare. | ||||
| 	(ODK_*): Define. | ||||
| 	(Elf64_External_RegInfo, Elf64_Internal_RegInfo): Define. | ||||
| 	(bfd_mips_elf64_swap_reginfo_in): Declare. | ||||
| 	(bfd_mips_elf64_swap_reginfo_out): Declare. | ||||
|  | ||||
| Thu May 30 12:35:57 1996  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* mips.h (E_MIPS_ARCH_4): Define. | ||||
|  | ||||
| Wed May 29 15:35:33 1996  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* mips.h (Elf64_Mips_External_Rel): Define. | ||||
| 	(Elf64_Mips_Internal_Rel): Define. | ||||
| 	(Elf64_Mips_External_Rela, Elf64_Mips_Internal_Rela): Define. | ||||
| 	(RSS_*): Define. | ||||
|  | ||||
| Mon Apr 22 18:26:30 1996  Doug Evans  <dje@canuck.cygnus.com> | ||||
|  | ||||
| 	* sparc.h (R_SPARC_[56]): Always define. | ||||
|  | ||||
| Mon Feb 19 01:55:56 1996  Doug Evans  <dje@charmed.cygnus.com> | ||||
|  | ||||
| 	* sparc.h (R_SPARC_{PLT32,HIPLT22,LOPLT10,PCPLT32,PCPLT22, | ||||
| 	PCPLT10,5,6}): Don't define ifdef SPARC64_OLD_RELOCS. | ||||
|  | ||||
| Tue Feb  6 11:33:58 1996  Doug Evans  <dje@charmed.cygnus.com> | ||||
|  | ||||
| 	* sparc.h (enum sparc_elf_reloc_type): Define. | ||||
|  | ||||
| Wed Jan 17 09:09:16 1996  Doug Evans  <dje@canuck.cygnus.com> | ||||
|  | ||||
| 	* common.h: Define EM_SPARC32PLUS. | ||||
| 	* sparc.h: New file. | ||||
|  | ||||
| Thu Jan 11 16:27:34 1996  Michael Meissner  <meissner@tiktok.cygnus.com> | ||||
|  | ||||
| 	* ppc.h (SHF_EXCLUDE, SHT_ORDERED): New fields from the abi. | ||||
|  | ||||
| Thu Nov 30 16:47:18 1995  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* internal.h (struct elf_segment_map): Add includes_filehdr and | ||||
| 	includes_phdrs fields. | ||||
|  | ||||
| Tue Nov 28 16:58:10 1995  Ian Lance Taylor  <ian@cygnus.com> | ||||
|  | ||||
| 	* internal.h (struct elf_segment_map): Define. | ||||
|  | ||||
| Tue Oct 31 15:19:36 1995  Fred Fish  <fnf@cygnus.com> | ||||
|  | ||||
| 	* common.h, dwarf.h, external.h, hppa.h, internal.h, | ||||
| 	mips.h, ppc.h:  Protect against multiple inclusions. | ||||
|  | ||||
| Thu Sep 21 13:51:58 1995  Michael Meissner  <meissner@tiktok.cygnus.com> | ||||
|  | ||||
| 	* ppc.h (EF_PPC_RELOCATABLE_LIB): Add new flag bit. | ||||
|  | ||||
| Fri Sep  1 15:32:17 1995  Kazumoto Kojima  <kkojima@info.kanagawa-u.ac.jp> | ||||
|  | ||||
| 	* mips.h: Add some definitions used on Irix 5. | ||||
|  | ||||
| Tue Jun 20 10:18:28 1995  Jeff Law  (law@snake.cs.utah.edu) | ||||
|  | ||||
| 	* hppa.h (CPU_PA_RISC1_0): Protect from redefinitions. | ||||
| 	(CPU_PA_RISC1_1): Likewise. | ||||
|  | ||||
| Wed Mar  8 18:14:37 1995  Michael Meissner  <meissner@tiktok.cygnus.com> | ||||
|  | ||||
| 	* ppc.h: New file for PowerPC support. | ||||
|  | ||||
| Tue Feb 14 13:59:13 1995  Michael Meissner  <meissner@tiktok.cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_PPC): Use offical value of 20, not 17. | ||||
| 	(EM_PPC_OLD): Define this to be the old value of EM_PPC. | ||||
|  | ||||
| Tue Jan 24 09:40:59 1995  Michael Meissner  <meissner@tiktok.cygnus.com> | ||||
|  | ||||
| 	* common.h (EM_PPC): New macro, PowerPC machine id. | ||||
|  | ||||
| Tue Jan 17 10:51:38 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com> | ||||
|  | ||||
| 	* mips.h (SHT_MIPS_MSYM, SHT_MIPS_DWARF, SHT_MIPS_EVENTS): Define. | ||||
|  | ||||
| Mon Oct 17 13:43:59 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com> | ||||
|  | ||||
| 	* internal.h (Elf_Internal_Shdr): Remove rawdata and size fields. | ||||
| 	Add bfd_section field. | ||||
|  | ||||
| Tue May 24 16:11:50 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com) | ||||
|  | ||||
| 	* mips.h (Elf32_External_gptab): Define. | ||||
|  | ||||
| Mon May 16 13:22:04 1994  Jeff Law  (law@snake.cs.utah.edu) | ||||
|  | ||||
| 	* common.h (EM_HPPA): Delete. | ||||
| 	(EM_PARISC): Add. | ||||
| 	* hppa.h: New file. | ||||
|  | ||||
| Mon May  9 13:27:03 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com) | ||||
|  | ||||
| 	* common.h (SHN_LORESERVE): Rename from SHN_LORESERV. | ||||
| 	(ELF32_R_TYPE, ELF32_R_INFO): Don't rely on size of unsigned char. | ||||
| 	(ELF64_R_TYPE): Don't rely on size of unsigned long. | ||||
|  | ||||
| Mon Apr 25 15:53:09 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com) | ||||
|  | ||||
| 	* internal.h (Elf_Internal_Shdr): Use PTR, not void *. | ||||
|  | ||||
| Fri Mar 11 00:34:59 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de) | ||||
|  | ||||
| 	* mips.h (SHN_MIPS_TEXT, SHN_MIPS_DATA):  Define. | ||||
|  | ||||
| Sat Mar  5 14:08:54 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de) | ||||
|  | ||||
| 	* internal.h:  Remove Elf32_*, Elf64_* typedefs.  These names | ||||
| 	cause conflicts with system headers, e.g. link.h in gdb/solib.c. | ||||
| 	Combine 32- and 64-bit versions of *_Internal_Dyn. | ||||
| 	* common.h:  Replace uses of Elf64_Word, Elf64_Xword typedefs | ||||
| 	by their expansion. | ||||
| 	* mips.h:  Replace uses of Elf32_Word, Elf32_Sword, Elf32_Addr | ||||
| 	typedefs by their expansion. Add DT_MIPS_RLD_MAP definition. | ||||
|  | ||||
| Fri Feb 18 10:39:54 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com) | ||||
|  | ||||
| 	* common.h (EM_CYGNUS_POWERPC): Define.  This may be temporary, | ||||
| 	depending upon how quickly I can find a real PowerPC ABI. | ||||
|  | ||||
| Mon Feb  7 08:27:13 1994  Jim Kingdon  (kingdon@lioth.cygnus.com) | ||||
|  | ||||
| 	* internal.h: Change HOST_64_BIT to BFD_HOST_64_BIT. | ||||
|  | ||||
| Wed Feb  2 14:12:18 1994  Jim Kingdon  (kingdon@lioth.cygnus.com) | ||||
|  | ||||
| 	* common.h: Add comments regarding value of EM_HPPA and how to | ||||
| 	pick an unofficial value. | ||||
|  | ||||
| Wed Nov 17 17:14:26 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com) | ||||
|  | ||||
| 	* mips.h (SHT_MIPS_OPTIONS): Define. | ||||
|  | ||||
| Mon Nov  8 17:57:00 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com) | ||||
|  | ||||
| 	* mips.h: Added some more MIPS ABI macro definitions. | ||||
|  | ||||
| Wed Nov  3 22:07:17 1993  Ken Raeburn  (raeburn@rtl.cygnus.com) | ||||
|  | ||||
| 	* common.h (EM_MIPS_RS4_BE): New macro. | ||||
|  | ||||
| Tue Oct 12 07:28:18 1993  Ian Lance Taylor  (ian@cygnus.com) | ||||
|  | ||||
| 	* mips.h: New file.  MIPS ABI specific information. | ||||
|  | ||||
| Mon Jun 21 13:13:43 1993  Ken Raeburn  (raeburn@poseidon.cygnus.com) | ||||
|  | ||||
| 	* internal.h: Combined 32- and 64-bit versions of all structures | ||||
| 	except *_Internal_Dyn.  This will simply the assembler interface, | ||||
| 	and some bfd code. | ||||
|  | ||||
| Tue May 25 02:00:16 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com) | ||||
|  | ||||
| 	* external.h, internal.h, common.h: Added 64-bit versions of some | ||||
| 	structures and macros.  Renamed old versions to put "32" in the | ||||
| 	name.  Some are unchanged. | ||||
|  | ||||
| Thu Apr 29 12:12:20 1993  Ken Raeburn  (raeburn@deneb.cygnus.com) | ||||
|  | ||||
| 	* common.h (EM_HPPA, NT_VERSION, STN_UNDEF, DT_*): New macros. | ||||
| 	* external.h (Elf_External_Dyn): New type. | ||||
|  | ||||
| 	* internal.h (Elf_Intenral_Shdr): New field `size'. | ||||
| 	(Elf_Internal_Dyn): New type. | ||||
|  | ||||
| Tue Apr 20 16:03:45 1993  Fred Fish  (fnf@cygnus.com) | ||||
|  | ||||
| 	* dwarf.h (LANG_CHILL):  Change value to one randomly picked in | ||||
| 	the user defined range, to reduce probability of collisions. | ||||
|  | ||||
| Sun Nov 15 09:34:02 1992  Fred Fish  (fnf@cygnus.com) | ||||
|  | ||||
| 	* dwarf.h (AT_src_coords):  Whitespace change only. | ||||
| 	* dwarf.h (AT_body_begin, AT_body_end, LANG_MODULA2): | ||||
| 	Add from latest gcc. | ||||
| 	* dwarf.h (LANG_CHILL):  Add as GNU extension. | ||||
|  | ||||
| Sat Aug  1 13:46:53 1992  Fred Fish  (fnf@cygnus.com) | ||||
|  | ||||
| 	* dwarf.h:  Replace with current version from gcc distribution. | ||||
|  | ||||
| Fri Jun 19 19:05:09 1992  John Gilmore  (gnu at cygnus.com) | ||||
|  | ||||
| 	* internal.h:  Add real struct tags to all the Type_Defs, so they | ||||
| 	can be used in prototypes where the Type_Defs are not known. | ||||
|  | ||||
| Fri Apr  3 20:58:58 1992  Mark Eichin  (eichin at cygnus.com) | ||||
|  | ||||
| 	* common.h: added ELF_R_{SYM,TYPE,INFO} for handling relocation | ||||
| 	info | ||||
| 	added EM_MIPS, and corrected value of EM_860 based on System V ABI | ||||
| 	manual. | ||||
|  | ||||
| 	* external.h: added Elf_External_{Rel,Rela}. | ||||
|  | ||||
| 	* internal.h: added Elf_Internal_{Rel,Rela}. | ||||
| 	added rawdata to Elf_Internal_Shdr. | ||||
|  | ||||
| Sat Nov 30 20:43:59 1991  Steve Chamberlain  (sac at rtl.cygnus.com) | ||||
|  | ||||
| 	* common.h, dwarf.h, external.h, internal.h, ChangeLog; moved from | ||||
| 	../elf-<foo> | ||||
|  | ||||
|  | ||||
| Local Variables: | ||||
| version-control: never | ||||
| End: | ||||
							
								
								
									
										108
									
								
								include/elf/alpha.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								include/elf/alpha.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,108 @@ | ||||
| /* ALPHA ELF support for BFD. | ||||
|    Copyright (C) 1996, 1998 Free Software Foundation, Inc. | ||||
|  | ||||
|    By Eric Youngdale, <eric@aib.com>.  No processor supplement available | ||||
|    for this platform. | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* This file holds definitions specific to the ALPHA ELF ABI.  Note | ||||
|    that most of this is not actually implemented by BFD.  */ | ||||
|  | ||||
| #ifndef _ELF_ALPHA_H | ||||
| #define _ELF_ALPHA_H | ||||
|  | ||||
| /* Processor specific flags for the ELF header e_flags field.  */ | ||||
|  | ||||
| /* All addresses must be below 2GB.  */ | ||||
| #define EF_ALPHA_32BIT		0x00000001 | ||||
|  | ||||
| /* All relocations needed for relaxation with code movement are present.  */ | ||||
| #define EF_ALPHA_CANRELAX	0x00000002 | ||||
|  | ||||
| /* Processor specific section flags.  */ | ||||
|  | ||||
| /* This section must be in the global data area.  */ | ||||
| #define SHF_ALPHA_GPREL		0x10000000 | ||||
|  | ||||
| /* Section contains some sort of debugging information.  The exact | ||||
|    format is unspecified.  It's probably ECOFF symbols.  */ | ||||
| #define SHT_ALPHA_DEBUG		0x70000001 | ||||
|  | ||||
| /* Section contains register usage information.  */ | ||||
| #define SHT_ALPHA_REGINFO	0x70000002 | ||||
|  | ||||
| /* A section of type SHT_MIPS_REGINFO contains the following | ||||
|    structure.  */ | ||||
| typedef struct | ||||
| { | ||||
|   /* Mask of general purpose registers used.  */ | ||||
|   unsigned long ri_gprmask; | ||||
|   /* Mask of co-processor registers used.  */ | ||||
|   unsigned long ri_cprmask[4]; | ||||
|   /* GP register value for this object file.  */ | ||||
|   long ri_gp_value; | ||||
| } Elf64_RegInfo; | ||||
|  | ||||
| /* Special values for the st_other field in the symbol table.  */ | ||||
|  | ||||
| #define STO_ALPHA_NOPV		0x80 | ||||
| #define STO_ALPHA_STD_GPLOAD	0x88 | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Alpha relocs.  */ | ||||
| START_RELOC_NUMBERS (elf_alpha_reloc_type) | ||||
|   RELOC_NUMBER (R_ALPHA_NONE, 0)	/* No reloc */ | ||||
|   RELOC_NUMBER (R_ALPHA_REFLONG, 1)	/* Direct 32 bit */ | ||||
|   RELOC_NUMBER (R_ALPHA_REFQUAD, 2)	/* Direct 64 bit */ | ||||
|   RELOC_NUMBER (R_ALPHA_GPREL32, 3)	/* GP relative 32 bit */ | ||||
|   RELOC_NUMBER (R_ALPHA_LITERAL, 4)	/* GP relative 16 bit w/optimization */ | ||||
|   RELOC_NUMBER (R_ALPHA_LITUSE, 5)	/* Optimization hint for LITERAL */ | ||||
|   RELOC_NUMBER (R_ALPHA_GPDISP, 6)	/* Add displacement to GP */ | ||||
|   RELOC_NUMBER (R_ALPHA_BRADDR, 7)	/* PC+4 relative 23 bit shifted */ | ||||
|   RELOC_NUMBER (R_ALPHA_HINT, 8)	/* PC+4 relative 16 bit shifted */ | ||||
|   RELOC_NUMBER (R_ALPHA_SREL16, 9)	/* PC relative 16 bit */ | ||||
|   RELOC_NUMBER (R_ALPHA_SREL32, 10)	/* PC relative 32 bit */ | ||||
|   RELOC_NUMBER (R_ALPHA_SREL64, 11)	/* PC relative 64 bit */ | ||||
|  | ||||
| /* Inherited these from ECOFF, but they are not particularly useful | ||||
|    and are depreciated.  And not implemented in the BFD, btw.  */ | ||||
|   RELOC_NUMBER (R_ALPHA_OP_PUSH, 12)	/* OP stack push */ | ||||
|   RELOC_NUMBER (R_ALPHA_OP_STORE, 13)	/* OP stack pop and store */ | ||||
|   RELOC_NUMBER (R_ALPHA_OP_PSUB, 14)	/* OP stack subtract */ | ||||
|   RELOC_NUMBER (R_ALPHA_OP_PRSHIFT, 15)	/* OP stack right shift */ | ||||
|  | ||||
|   RELOC_NUMBER (R_ALPHA_GPVALUE, 16) | ||||
|   RELOC_NUMBER (R_ALPHA_GPRELHIGH, 17) | ||||
|   RELOC_NUMBER (R_ALPHA_GPRELLOW, 18) | ||||
|   RELOC_NUMBER (R_ALPHA_IMMED_GP_16, 19) | ||||
|   RELOC_NUMBER (R_ALPHA_IMMED_GP_HI32, 20) | ||||
|   RELOC_NUMBER (R_ALPHA_IMMED_SCN_HI32, 21) | ||||
|   RELOC_NUMBER (R_ALPHA_IMMED_BR_HI32, 22) | ||||
|   RELOC_NUMBER (R_ALPHA_IMMED_LO32, 23) | ||||
|  | ||||
| /* These relocations are specific to shared libraries.  */ | ||||
|   RELOC_NUMBER (R_ALPHA_COPY, 24)	/* Copy symbol at runtime */ | ||||
|   RELOC_NUMBER (R_ALPHA_GLOB_DAT, 25)	/* Create GOT entry */ | ||||
|   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 | ||||
|  | ||||
| #endif /* _ELF_ALPHA_H */ | ||||
							
								
								
									
										54
									
								
								include/elf/arc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								include/elf/arc.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| /* ARC ELF support for BFD. | ||||
|    Copyright (C) 1995, 1997 Free Software Foundation, Inc. | ||||
|    Contributed by Doug Evans, (dje@cygnus.com) | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* This file holds definitions specific to the ARC ELF ABI.  */ | ||||
|  | ||||
| #ifndef _ELF_ARC_H | ||||
| #define _ELF_ARC_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocations.  */ | ||||
| START_RELOC_NUMBERS (elf_arc_reloc_type) | ||||
|   RELOC_NUMBER (R_ARC_NONE, 0) | ||||
|   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 | ||||
|  | ||||
| /* Processor specific flags for the ELF header e_flags field.  */ | ||||
|  | ||||
| /* Four bit ARC machine type field.  */ | ||||
| #define EF_ARC_MACH		0x0000000f | ||||
|  | ||||
| /* Various CPU types.  */ | ||||
| #define E_ARC_MACH_BASE		0x00000000 | ||||
| #define E_ARC_MACH_UNUSED1	0x00000001 | ||||
| #define E_ARC_MACH_UNUSED2	0x00000002 | ||||
| #define E_ARC_MACH_UNUSED4	0x00000003 | ||||
|  | ||||
| /* Leave bits 0xf0 alone in case we ever have more than 16 cpu types. | ||||
|    Highly unlikely, but what the heck.  */ | ||||
|  | ||||
| /* File contains position independent code.  */ | ||||
| #define EF_ARC_PIC		0x00000100 | ||||
|  | ||||
| #endif /* _ELF_ARC_H */ | ||||
							
								
								
									
										87
									
								
								include/elf/arm-oabi.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								include/elf/arm-oabi.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,87 @@ | ||||
| /* ARM ELF support for BFD. | ||||
|    Copyright (C) 1998, 1999 Free Software Foundation, Inc. | ||||
|  | ||||
|    This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
|    This program is free software; you can redistribute it and/or modify | ||||
|    it under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, or | ||||
|    (at your option) any later version. | ||||
|  | ||||
|    This program is distributed in the hope that it will be useful, | ||||
|    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|    GNU General Public License for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with this program; if not, write to the Free Software Foundation, | ||||
|    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| #ifndef _ELF_ARM_H | ||||
| #define _ELF_ARM_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Processor specific flags for the ELF header e_flags field.  */ | ||||
| #define EF_ARM_RELEXEC     0x01 | ||||
| #define EF_ARM_HASENTRY    0x02 | ||||
| #define EF_INTERWORK       0x04 | ||||
| #define EF_APCS_26         0x08 | ||||
| #define EF_APCS_FLOAT      0x10 | ||||
| #define EF_PIC             0x20 | ||||
| #define EF_ALIGN8	   0x40		/* 8-bit structure alignment is in use */ | ||||
| #define EF_NEW_ABI         0x80 | ||||
| #define EF_OLD_ABI         0x100 | ||||
|  | ||||
| /* Local aliases for some flags to match names used by COFF port.  */ | ||||
| #define F_INTERWORK	   EF_INTERWORK | ||||
| #define F_APCS26	   EF_APCS_26 | ||||
| #define F_APCS_FLOAT	   EF_APCS_FLOAT | ||||
| #define F_PIC              EF_PIC | ||||
|  | ||||
| /* Additional symbol types for Thumb */ | ||||
| #define STT_ARM_TFUNC     0xd | ||||
|  | ||||
| /* ARM-specific values for sh_flags */ | ||||
| #define SHF_ENTRYSECT      0x10000000   /* Section contains an entry point */ | ||||
| #define SHF_COMDEF         0x80000000   /* Section may be multiply defined in the input to a link step */ | ||||
|  | ||||
| /* ARM-specific program header flags */ | ||||
| #define PF_ARM_SB          0x10000000   /* Segment contains the location addressed by the static base */ | ||||
|  | ||||
| /* Relocation types.  */ | ||||
| START_RELOC_NUMBERS (elf_arm_reloc_type) | ||||
|   RELOC_NUMBER (R_ARM_NONE,         0) | ||||
|   RELOC_NUMBER (R_ARM_PC24,         1) | ||||
|   RELOC_NUMBER (R_ARM_ABS32,        2) | ||||
|   RELOC_NUMBER (R_ARM_REL32,        3) | ||||
|   RELOC_NUMBER (R_ARM_ABS8,         4) | ||||
|   RELOC_NUMBER (R_ARM_ABS16,        5) | ||||
|   RELOC_NUMBER (R_ARM_ABS12,        6) | ||||
|   RELOC_NUMBER (R_ARM_THM_ABS5,     7) | ||||
|   RELOC_NUMBER (R_ARM_THM_PC22,     8) | ||||
|   RELOC_NUMBER (R_ARM_SBREL32,      9) | ||||
|   RELOC_NUMBER (R_ARM_AMP_VCALL9,  10) | ||||
|   RELOC_NUMBER (R_ARM_THM_PC11,    11)       /* cygnus extension to abi: thumb unconditional branch */ | ||||
|   RELOC_NUMBER (R_ARM_THM_PC9,     12)       /* cygnus extension to abi: thumb conditional branch */ | ||||
|   RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 13) | ||||
|   RELOC_NUMBER (R_ARM_GNU_VTENTRY, 14) | ||||
|   RELOC_NUMBER (R_ARM_COPY,        20)       /* copy symbol at runtime */ | ||||
|   RELOC_NUMBER (R_ARM_GLOB_DAT,    21)       /* create GOT entry */ | ||||
|   RELOC_NUMBER (R_ARM_JUMP_SLOT,   22)       /* create PLT entry */ | ||||
|   RELOC_NUMBER (R_ARM_RELATIVE,    23)       /* adjust by program base */ | ||||
|   RELOC_NUMBER (R_ARM_GOTOFF,      24)       /* 32 bit offset to GOT */ | ||||
|   RELOC_NUMBER (R_ARM_GOTPC,       25)       /* 32 bit PC relative offset to GOT */ | ||||
|   RELOC_NUMBER (R_ARM_GOT32,       26)       /* 32 bit GOT entry */ | ||||
|   RELOC_NUMBER (R_ARM_PLT32,       27)       /* 32 bit PLT address */ | ||||
|   FAKE_RELOC   (FIRST_INVALID_RELOC, 28) | ||||
|   FAKE_RELOC   (LAST_INVALID_RELOC,  249) | ||||
|   RELOC_NUMBER (R_ARM_RSBREL32,   250) | ||||
|   RELOC_NUMBER (R_ARM_THM_RPC22,  251) | ||||
|   RELOC_NUMBER (R_ARM_RREL32,     252) | ||||
|   RELOC_NUMBER (R_ARM_RABS32,     253) | ||||
|   RELOC_NUMBER (R_ARM_RPC24,      254) | ||||
|   RELOC_NUMBER (R_ARM_RBASE,      255) | ||||
| END_RELOC_NUMBERS | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										96
									
								
								include/elf/arm.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								include/elf/arm.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | ||||
| /* ARM ELF support for BFD. | ||||
|    Copyright (C) 1998, 1999 Free Software Foundation, Inc. | ||||
|  | ||||
|    This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
|    This program is free software; you can redistribute it and/or modify | ||||
|    it under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, or | ||||
|    (at your option) any later version. | ||||
|  | ||||
|    This program is distributed in the hope that it will be useful, | ||||
|    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|    GNU General Public License for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with this program; if not, write to the Free Software Foundation, | ||||
|    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| #ifndef _ELF_ARM_H | ||||
| #define _ELF_ARM_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Processor specific flags for the ELF header e_flags field.  */ | ||||
| #define EF_ARM_RELEXEC     0x01 | ||||
| #define EF_ARM_HASENTRY    0x02 | ||||
| #define EF_INTERWORK       0x04 | ||||
| #define EF_APCS_26         0x08 | ||||
| #define EF_APCS_FLOAT      0x10 | ||||
| #define EF_PIC             0x20 | ||||
| #define EF_ALIGN8	   0x40		/* 8-bit structure alignment is in use */ | ||||
| #define EF_NEW_ABI         0x80 | ||||
| #define EF_OLD_ABI         0x100 | ||||
|  | ||||
| /* Local aliases for some flags to match names used by COFF port.  */ | ||||
| #define F_INTERWORK	   EF_INTERWORK | ||||
| #define F_APCS26	   EF_APCS_26 | ||||
| #define F_APCS_FLOAT	   EF_APCS_FLOAT | ||||
| #define F_PIC              EF_PIC | ||||
|  | ||||
| /* Additional symbol types for Thumb */ | ||||
| #define STT_ARM_TFUNC     0xd | ||||
|  | ||||
| /* ARM-specific values for sh_flags */ | ||||
| #define SHF_ENTRYSECT      0x10000000   /* Section contains an entry point */ | ||||
| #define SHF_COMDEF         0x80000000   /* Section may be multiply defined in the input to a link step */ | ||||
|  | ||||
| /* ARM-specific program header flags */ | ||||
| #define PF_ARM_SB          0x10000000   /* Segment contains the location addressed by the static base */ | ||||
|  | ||||
| /* Relocation types.  */ | ||||
| START_RELOC_NUMBERS (elf_arm_reloc_type) | ||||
|   RELOC_NUMBER (R_ARM_NONE,         0) | ||||
|   RELOC_NUMBER (R_ARM_PC24,         1) | ||||
|   RELOC_NUMBER (R_ARM_ABS32,        2) | ||||
|   RELOC_NUMBER (R_ARM_REL32,        3) | ||||
|   RELOC_NUMBER (R_ARM_PC13,         4) | ||||
|   RELOC_NUMBER (R_ARM_ABS16,        5) | ||||
|   RELOC_NUMBER (R_ARM_ABS12,        6) | ||||
|   RELOC_NUMBER (R_ARM_THM_ABS5,     7) | ||||
|   RELOC_NUMBER (R_ARM_ABS8,         8) | ||||
|   RELOC_NUMBER (R_ARM_SBREL32,      9) | ||||
|   RELOC_NUMBER (R_ARM_THM_PC22,    10) | ||||
|   RELOC_NUMBER (R_ARM_THM_PC8,     11) | ||||
|   RELOC_NUMBER (R_ARM_AMP_VCALL9,  12) | ||||
|   RELOC_NUMBER (R_ARM_SWI24,       13) | ||||
|   RELOC_NUMBER (R_ARM_THM_SWI8,    14) | ||||
|   RELOC_NUMBER (R_ARM_XPC25,       15) | ||||
|   RELOC_NUMBER (R_ARM_THM_XPC22,   16) | ||||
|   RELOC_NUMBER (R_ARM_COPY,        20)       /* copy symbol at runtime */ | ||||
|   RELOC_NUMBER (R_ARM_GLOB_DAT,    21)       /* create GOT entry */ | ||||
|   RELOC_NUMBER (R_ARM_JUMP_SLOT,   22)       /* create PLT entry */ | ||||
|   RELOC_NUMBER (R_ARM_RELATIVE,    23)       /* adjust by program base */ | ||||
|   RELOC_NUMBER (R_ARM_GOTOFF,      24)       /* 32 bit offset to GOT */ | ||||
|   RELOC_NUMBER (R_ARM_GOTPC,       25)       /* 32 bit PC relative offset to GOT */ | ||||
|   RELOC_NUMBER (R_ARM_GOT32,       26)       /* 32 bit GOT entry */ | ||||
|   RELOC_NUMBER (R_ARM_PLT32,       27)       /* 32 bit PLT address */ | ||||
|   FAKE_RELOC   (FIRST_INVALID_RELOC1, 28) | ||||
|   FAKE_RELOC   (LAST_INVALID_RELOC1,  99) | ||||
|   RELOC_NUMBER (R_ARM_GNU_VTENTRY, 100) | ||||
|   RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 101) | ||||
|   RELOC_NUMBER (R_ARM_THM_PC11,    102)       /* cygnus extension to abi: thumb unconditional branch */ | ||||
|   RELOC_NUMBER (R_ARM_THM_PC9,     103)       /* cygnus extension to abi: thumb conditional branch */ | ||||
|   FAKE_RELOC   (FIRST_INVALID_RELOC2, 104) | ||||
|   FAKE_RELOC   (LAST_INVALID_RELOC2,  248) | ||||
|   RELOC_NUMBER (R_ARM_RXPC25,     249) | ||||
|   RELOC_NUMBER (R_ARM_RSBREL32,   250) | ||||
|   RELOC_NUMBER (R_ARM_THM_RPC22,  251) | ||||
|   RELOC_NUMBER (R_ARM_RREL32,     252) | ||||
|   RELOC_NUMBER (R_ARM_RABS32,     253) | ||||
|   RELOC_NUMBER (R_ARM_RPC24,      254) | ||||
|   RELOC_NUMBER (R_ARM_RBASE,      255) | ||||
| END_RELOC_NUMBERS | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										454
									
								
								include/elf/common.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										454
									
								
								include/elf/common.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,454 @@ | ||||
| /* ELF support for BFD. | ||||
|    Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc. | ||||
|  | ||||
|    Written by Fred Fish @ Cygnus Support, from information published | ||||
|    in "UNIX System V Release 4, Programmers Guide: ANSI C and | ||||
|    Programming Support Tools". | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
|  | ||||
| /* This file is part of ELF support for BFD, and contains the portions | ||||
|    that are common to both the internal and external representations. | ||||
|    For example, ELFMAG0 is the byte 0x7F in both the internal (in-memory) | ||||
|    and external (in-file) representations. */ | ||||
|  | ||||
| #ifndef _ELF_COMMON_H | ||||
| #define _ELF_COMMON_H | ||||
|  | ||||
| /* Fields in e_ident[] */ | ||||
|  | ||||
| #define EI_MAG0		0	/* File identification byte 0 index */ | ||||
| #define ELFMAG0		0x7F	/* Magic number byte 0 */ | ||||
|  | ||||
| #define EI_MAG1		1	/* File identification byte 1 index */ | ||||
| #define ELFMAG1		'E'	/* Magic number byte 1 */ | ||||
|  | ||||
| #define EI_MAG2		2	/* File identification byte 2 index */ | ||||
| #define ELFMAG2		'L'	/* Magic number byte 2 */ | ||||
|  | ||||
| #define EI_MAG3		3	/* File identification byte 3 index */ | ||||
| #define ELFMAG3		'F'	/* Magic number byte 3 */ | ||||
|  | ||||
| #define EI_CLASS	4	/* File class */ | ||||
| #define ELFCLASSNONE	0	/* Invalid class */ | ||||
| #define ELFCLASS32	1	/* 32-bit objects */ | ||||
| #define ELFCLASS64	2	/* 64-bit objects */ | ||||
|  | ||||
| #define EI_DATA		5	/* Data encoding */ | ||||
| #define ELFDATANONE	0	/* Invalid data encoding */ | ||||
| #define ELFDATA2LSB	1	/* 2's complement, little endian */ | ||||
| #define ELFDATA2MSB	2	/* 2's complement, big endian */ | ||||
|  | ||||
| #define EI_VERSION	6	/* File version */ | ||||
|  | ||||
| #define EI_OSABI        7       /* Operating System/ABI indication */ | ||||
| #define ELFOSABI_SYSV   0       /* UNIX System V ABI */ | ||||
| #define ELFOSABI_HPUX   1       /* HP-UX operating system */ | ||||
| #define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ | ||||
|  | ||||
| #define EI_ABIVERSION   8       /* ABI version */ | ||||
|  | ||||
| #define EI_PAD		9	/* Start of padding bytes */ | ||||
|  | ||||
|  | ||||
| /* Values for e_type, which identifies the object file type */ | ||||
|  | ||||
| #define ET_NONE		0	/* No file type */ | ||||
| #define ET_REL		1	/* Relocatable file */ | ||||
| #define ET_EXEC		2	/* Executable file */ | ||||
| #define ET_DYN		3	/* Shared object file */ | ||||
| #define ET_CORE		4	/* Core file */ | ||||
| #define ET_LOOS         0xFE00	/* Operating system-specific */ | ||||
| #define ET_HIOS         0xFEFF  /* Operating system-specific */ | ||||
| #define ET_LOPROC	0xFF00	/* Processor-specific */ | ||||
| #define ET_HIPROC	0xFFFF	/* Processor-specific */ | ||||
|  | ||||
| /* Values for e_machine, which identifies the architecture */ | ||||
|  | ||||
| #define EM_NONE		0	/* No machine */ | ||||
| #define EM_M32		1	/* AT&T WE 32100 */ | ||||
| #define EM_SPARC	2	/* SUN SPARC */ | ||||
| #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_860		7	/* Intel 80860 */ | ||||
| #define EM_MIPS		8	/* MIPS R3000 (officially, big-endian only) */ | ||||
| #define EM_S370		9	/* Amdahl */ | ||||
| #define EM_MIPS_RS4_BE 10	/* MIPS R4000 big-endian */ | ||||
|  | ||||
| #define EM_PARISC      15	/* HPPA */ | ||||
| #define EM_VPP550      17       /* Fujitsu VPP500 */ | ||||
| #define EM_SPARC32PLUS 18	/* Sun's "v8plus" */ | ||||
| #define EM_960         19       /* Intel 80960 */ | ||||
| #define EM_PPC	       20	/* PowerPC */ | ||||
|  | ||||
| #define EM_V800        36	/* NEC V800 series */ | ||||
| #define EM_FR20	       37	/* Fujitsu FR20 */ | ||||
| #define EM_RH32	       38       /* TRW RH32 */ | ||||
| #define EM_MCORE       39       /* Motorolla MCore */ /* May also be taken by Fujitsu MMA */ | ||||
| #define EM_ARM	       40	/* ARM */ | ||||
| #define EM_OLD_ALPHA   41	/* Digital Alpha */ | ||||
| #define EM_SH	       42	/* Hitachi SH */ | ||||
| #define EM_SPARCV9     43	/* SPARC v9 64-bit */ | ||||
| #define EM_TRICORE     44       /* Siemens Tricore embedded processor */ | ||||
| #define EM_ARC         45       /* Argonaut RISC Core, Argonaut Technologies Inc. */ | ||||
| #define EM_H8_300      46       /* Hitachi H8/300 */ | ||||
| #define EM_H8_300H     47       /* Hitachi H8/300H */ | ||||
| #define EM_H8S         48       /* Hitachi H8S */ | ||||
| #define EM_H8_500      49       /* Hitachi H8/500 */ | ||||
| #define EM_IA_64       50       /* Intel MercedTM Processor */ | ||||
| #define EM_MIPS_X      51       /* Stanford MIPS-X */ | ||||
| #define EM_COLDFIRE    52       /* Motorola Coldfire */ | ||||
| #define EM_68HC12      53       /* Motorola M68HC12 */ | ||||
|  | ||||
| /* If it is necessary to assign new unofficial EM_* values, please pick large | ||||
|    random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision | ||||
|    with official or non-GNU unofficial values. | ||||
|  | ||||
|    NOTE: Do not just increment the most recent number by one. | ||||
|    Somebody else somewhere will do exactly the same thing, and you | ||||
|    will have a collision.  Instead, pick a random number.  */ | ||||
|  | ||||
| /* Cygnus PowerPC ELF backend.  Written in the absence of an ABI.  */ | ||||
| #define EM_CYGNUS_POWERPC 0x9025 | ||||
|  | ||||
| /* Old version of Sparc v9, from before the ABI; this should be | ||||
|    removed shortly.  */ | ||||
| #define EM_OLD_SPARCV9	11 | ||||
|  | ||||
| /* Old version of PowerPC, this should be removed shortly. */ | ||||
| #define EM_PPC_OLD	17 | ||||
|  | ||||
| /* Cygnus ARC ELF backend.  Written in the absence of an ABI.  */ | ||||
| #define EM_CYGNUS_ARC 0x9040 | ||||
|  | ||||
| /* Cygnus M32R ELF backend.  Written in the absence of an ABI.  */ | ||||
| #define EM_CYGNUS_M32R 0x9041 | ||||
|  | ||||
| /* Alpha backend magic number.  Written in the absence of an ABI.  */ | ||||
| #define EM_ALPHA	0x9026 | ||||
|  | ||||
| /* D10V backend magic number.  Written in the absence of an ABI.  */ | ||||
| #define EM_CYGNUS_D10V	0x7650 | ||||
|  | ||||
| /* D30V backend magic number.  Written in the absence of an ABI.  */ | ||||
| #define EM_CYGNUS_D30V	0x7676 | ||||
|  | ||||
| /* V850 backend magic number.  Written in the absense of an ABI.  */ | ||||
| #define EM_CYGNUS_V850	0x9080 | ||||
|  | ||||
| /* mn10200 and mn10300 backend magic numbers. | ||||
|    Written in the absense of an ABI.  */ | ||||
| #define EM_CYGNUS_MN10200	0xdead | ||||
| #define EM_CYGNUS_MN10300	0xbeef | ||||
|  | ||||
| /* FR30 magic number - no EABI available.  */ | ||||
| #define EM_CYGNUS_FR30		0x3330 | ||||
|  | ||||
| /* See the above comment before you add a new EM_* value here.  */ | ||||
|  | ||||
| /* Values for e_version */ | ||||
|  | ||||
| #define EV_NONE		0		/* Invalid ELF version */ | ||||
| #define EV_CURRENT	1		/* Current version */ | ||||
|  | ||||
| /* Values for program header, p_type field */ | ||||
|  | ||||
| #define	PT_NULL		0		/* Program header table entry unused */ | ||||
| #define PT_LOAD		1		/* Loadable program segment */ | ||||
| #define PT_DYNAMIC	2		/* Dynamic linking information */ | ||||
| #define PT_INTERP	3		/* Program interpreter */ | ||||
| #define PT_NOTE		4		/* Auxiliary information */ | ||||
| #define PT_SHLIB	5		/* Reserved, unspecified semantics */ | ||||
| #define PT_PHDR		6		/* Entry for header table itself */ | ||||
| #define PT_LOOS         0x60000000	/* OS-specific */ | ||||
| #define PT_HIOS         0x6fffffff	/* OS-specific */ | ||||
| #define PT_LOPROC	0x70000000	/* Processor-specific */ | ||||
| #define PT_HIPROC	0x7FFFFFFF	/* Processor-specific */ | ||||
|  | ||||
| /* 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 */ | ||||
| #define PF_R		(1 << 2)	/* Segment is readable */ | ||||
| #define PF_MASKOS	0x0F000000	/* OS-specific reserved bits */ | ||||
| #define PF_MASKPROC	0xF0000000	/* Processor-specific reserved bits */ | ||||
|  | ||||
| /* Values for section header, sh_type field */ | ||||
|  | ||||
| #define SHT_NULL	0		/* Section header table entry unused */ | ||||
| #define SHT_PROGBITS	1		/* Program specific (private) data */ | ||||
| #define SHT_SYMTAB	2		/* Link editing symbol table */ | ||||
| #define SHT_STRTAB	3		/* A string table */ | ||||
| #define SHT_RELA	4		/* Relocation entries with addends */ | ||||
| #define SHT_HASH	5		/* A symbol hash table */ | ||||
| #define SHT_DYNAMIC	6		/* Information for dynamic linking */ | ||||
| #define SHT_NOTE	7		/* Information that marks file */ | ||||
| #define SHT_NOBITS	8		/* Section occupies no space in file */ | ||||
| #define SHT_REL		9		/* Relocation entries, no addends */ | ||||
| #define SHT_SHLIB	10		/* Reserved, unspecified semantics */ | ||||
| #define SHT_DYNSYM	11		/* Dynamic linking symbol table */ | ||||
|  | ||||
| #define SHT_LOOS        0x60000000      /* Operating system specific semantics, lo */ | ||||
| #define SHT_HIOS        0x6fffffff      /* Operating system specific semantics, hi */ | ||||
|  | ||||
| /* 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* | ||||
|    versions.  */ | ||||
| #define SHT_SUNW_verdef	0x6ffffffd	/* Versions defined by file */ | ||||
| #define SHT_SUNW_verneed 0x6ffffffe	/* Versions needed by file */ | ||||
| #define SHT_SUNW_versym	0x6fffffff	/* Symbol versions */ | ||||
|  | ||||
| #define SHT_GNU_verdef	SHT_SUNW_verdef | ||||
| #define SHT_GNU_verneed	SHT_SUNW_verneed | ||||
| #define SHT_GNU_versym	SHT_SUNW_versym | ||||
|  | ||||
| #define SHT_LOPROC	0x70000000	/* Processor-specific semantics, lo */ | ||||
| #define SHT_HIPROC	0x7FFFFFFF	/* Processor-specific semantics, hi */ | ||||
| #define SHT_LOUSER	0x80000000	/* Application-specific semantics */ | ||||
| #define SHT_HIUSER	0x8FFFFFFF	/* Application-specific semantics */ | ||||
|  | ||||
| /* 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 */ | ||||
| #define SHF_EXECINSTR	(1 << 2)	/* Executable machine instructions */ | ||||
| #define SHF_MASKOS	0x0F000000	/* OS-specific semantics */ | ||||
| #define SHF_MASKPROC	0xF0000000	/* Processor-specific semantics */ | ||||
|  | ||||
| /* 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 */ | ||||
| #define NT_PRPSINFO	3		/* Contains copy of prpsinfo struct */ | ||||
|  | ||||
| /* 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 */ | ||||
| #define NT_PSINFO	13		/* Has a struct psinfo */ | ||||
| #define NT_LWPSTATUS	16		/* Has a struct lwpstatus_t */ | ||||
| #define NT_LWPSINFO	17		/* Has a struct lwpsinfo_t */ | ||||
|  | ||||
| /* Values of note segment descriptor types for object files.  */ | ||||
| /* (Only for hppa right now.  Should this be moved elsewhere?)  */ | ||||
|  | ||||
| #define NT_VERSION	1		/* Contains a version string.  */ | ||||
|  | ||||
| /* 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. */ | ||||
|  | ||||
| #define ELF_ST_BIND(val)		(((unsigned int)(val)) >> 4) | ||||
| #define ELF_ST_TYPE(val)		((val) & 0xF) | ||||
| #define ELF_ST_INFO(bind,type)		(((bind) << 4) + ((type) & 0xF)) | ||||
|  | ||||
| #define STN_UNDEF	0		/* undefined symbol index */ | ||||
|  | ||||
| #define STB_LOCAL	0		/* Symbol not visible outside obj */ | ||||
| #define STB_GLOBAL	1		/* Symbol visible outside obj */ | ||||
| #define STB_WEAK	2		/* Like globals, lower precedence */ | ||||
| #define STB_LOOS        10		/* OS-specific semantics */ | ||||
| #define STB_HIOS        12		/* OS-specific semantics */ | ||||
| #define STB_LOPROC	13		/* Application-specific semantics */ | ||||
| #define STB_HIPROC	15		/* Application-specific semantics */ | ||||
|  | ||||
| #define STT_NOTYPE	0		/* Symbol type is unspecified */ | ||||
| #define STT_OBJECT	1		/* Symbol is a data object */ | ||||
| #define STT_FUNC	2		/* Symbol is a code object */ | ||||
| #define STT_SECTION	3		/* Symbol associated with a section */ | ||||
| #define STT_FILE	4		/* Symbol gives a file name */ | ||||
| #define STT_LOOS        10		/* OS-specific semantics */ | ||||
| #define STT_HIOS        12		/* OS-specific semantics */ | ||||
| #define STT_LOPROC	13		/* Application-specific semantics */ | ||||
| #define STT_HIPROC	15		/* Application-specific semantics */ | ||||
|  | ||||
| /* Special section indices, which may show up in st_shndx fields, among | ||||
|    other places. */ | ||||
|  | ||||
| #define SHN_UNDEF	0		/* Undefined section reference */ | ||||
| #define SHN_LORESERVE	0xFF00		/* Begin range of reserved indices */ | ||||
| #define SHN_LOPROC	0xFF00		/* Begin range of appl-specific */ | ||||
| #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 */ | ||||
|  | ||||
| /* relocation info handling macros */ | ||||
|  | ||||
| #define ELF32_R_SYM(i)		((i) >> 8) | ||||
| #define ELF32_R_TYPE(i)		((i) & 0xff) | ||||
| #define ELF32_R_INFO(s,t)	(((s) << 8) + ((t) & 0xff)) | ||||
|  | ||||
| #define ELF64_R_SYM(i)		((i) >> 32) | ||||
| #define ELF64_R_TYPE(i)		((i) & 0xffffffff) | ||||
| #define ELF64_R_INFO(s,t)	(((bfd_vma) (s) << 32) + (bfd_vma) (t)) | ||||
|  | ||||
| /* Dynamic section tags */ | ||||
|  | ||||
| #define DT_NULL		0 | ||||
| #define DT_NEEDED	1 | ||||
| #define DT_PLTRELSZ	2 | ||||
| #define DT_PLTGOT	3 | ||||
| #define DT_HASH		4 | ||||
| #define DT_STRTAB	5 | ||||
| #define DT_SYMTAB	6 | ||||
| #define DT_RELA		7 | ||||
| #define DT_RELASZ	8 | ||||
| #define DT_RELAENT	9 | ||||
| #define DT_STRSZ	10 | ||||
| #define DT_SYMENT	11 | ||||
| #define DT_INIT		12 | ||||
| #define DT_FINI		13 | ||||
| #define DT_SONAME	14 | ||||
| #define DT_RPATH	15 | ||||
| #define DT_SYMBOLIC	16 | ||||
| #define DT_REL		17 | ||||
| #define DT_RELSZ	18 | ||||
| #define DT_RELENT	19 | ||||
| #define DT_PLTREL	20 | ||||
| #define DT_DEBUG	21 | ||||
| #define DT_TEXTREL	22 | ||||
| #define DT_JMPREL	23 | ||||
| #define DT_BIND_NOW     24 | ||||
| #define DT_INIT_ARRAY   25 | ||||
| #define DT_FINI_ARRAY   26 | ||||
| #define DT_INIT_ARRAYSZ 27 | ||||
| #define DT_FINI_ARRAYSZ 28 | ||||
|  | ||||
| #define DT_LOOS         0x60000000 | ||||
| #define DT_HIOS         0x6fffffff | ||||
|  | ||||
| /* The next four dynamic tags are used on Solaris.  We support them | ||||
|    everywhere.  */ | ||||
| #define DT_VALRNGLO	0x6ffffd00 | ||||
| #define DT_PLTPADSZ	0x6ffffdf9 | ||||
| #define DT_MOVEENT	0x6ffffdfa | ||||
| #define DT_MOVESZ	0x6ffffdfb | ||||
| #define DT_FEATURE_1	0x6ffffdfc | ||||
| #define DT_POSFLAG_1	0x6ffffdfd | ||||
| #define DT_SYMINSZ	0x6ffffdfe | ||||
| #define DT_SYMINENT	0x6ffffdff | ||||
| #define DT_VALRNGHI	0x6ffffdff | ||||
|  | ||||
| #define DT_ADDRRNGLO	0x6ffffe00 | ||||
| #define DT_SYMINFO	0x6ffffeff | ||||
| #define DT_ADDRRNGHI	0x6ffffeff | ||||
|  | ||||
| #define DT_RELACOUNT	0x6ffffff9 | ||||
| #define DT_RELCOUNT	0x6ffffffa | ||||
| #define DT_FLAGS_1	0x6ffffffb | ||||
| #define DT_VERDEF	0x6ffffffc | ||||
| #define DT_VERDEFNUM	0x6ffffffd | ||||
| #define DT_VERNEED	0x6ffffffe | ||||
| #define DT_VERNEEDNUM	0x6fffffff | ||||
|  | ||||
| /* This tag is a GNU extension to the Solaris version scheme.  */ | ||||
| #define DT_VERSYM	0x6ffffff0 | ||||
|  | ||||
| #define DT_LOPROC	0x70000000 | ||||
| #define DT_HIPROC	0x7fffffff | ||||
|  | ||||
| /* These section tags are used on Solaris.  We support them | ||||
|    everywhere, and hope they do not conflict.  */ | ||||
|  | ||||
| #define DT_AUXILIARY	0x7ffffffd | ||||
| #define DT_USED		0x7ffffffe | ||||
| #define DT_FILTER	0x7fffffff | ||||
|  | ||||
| /* Values used in DT_FEATURE_1 .dynamic entry.  */ | ||||
| #define DTF_1_PARINIT	0x00000001 | ||||
|  | ||||
| /* Flag values used in the DT_POSFLAG_1 .dynamic entry.  */ | ||||
| #define DF_P1_LAZYLOAD	0x00000001 | ||||
| #define DF_P1_GROUPPERM	0x00000002 | ||||
|  | ||||
| /* Flag value in in the DT_1_FLAGS .dynamic entry.  */ | ||||
| #define DF_1_NOW	0x00000001 | ||||
| #define DF_1_GLOBAL	0x00000002 | ||||
| #define DF_1_GROUP	0x00000004 | ||||
| #define DF_1_NODELETE	0x00000008 | ||||
| #define DF_1_LOADFLTR	0x00000010 | ||||
| #define DF_1_INITFIRST	0x00000020 | ||||
| #define DF_1_NOOPEN	0x00000040 | ||||
| #define DF_1_ORIGIN	0x00000080 | ||||
| #define DF_1_DIRECT	0x00000100 | ||||
| #define DF_1_TRANS	0x00000200 | ||||
| #define DF_1_INTERPOSE	0x00000400 | ||||
|  | ||||
| /* These constants are used for the version number of a Elf32_Verdef | ||||
|    structure.  */ | ||||
|  | ||||
| #define VER_DEF_NONE		0 | ||||
| #define VER_DEF_CURRENT		1 | ||||
|  | ||||
| /* These constants appear in the vd_flags field of a Elf32_Verdef | ||||
|    structure.  */ | ||||
|  | ||||
| #define VER_FLG_BASE		0x1 | ||||
| #define VER_FLG_WEAK		0x2 | ||||
|  | ||||
| /* These special constants can be found in an Elf32_Versym field.  */ | ||||
|  | ||||
| #define VER_NDX_LOCAL		0 | ||||
| #define VER_NDX_GLOBAL		1 | ||||
|  | ||||
| /* These constants are used for the version number of a Elf32_Verneed | ||||
|    structure.  */ | ||||
|  | ||||
| #define VER_NEED_NONE		0 | ||||
| #define VER_NEED_CURRENT	1 | ||||
|  | ||||
| /* This flag appears in a Versym structure.  It means that the symbol | ||||
|    is hidden, and is only visible with an explicit version number. | ||||
|    This is a GNU extension.  */ | ||||
|  | ||||
| #define VERSYM_HIDDEN		0x8000 | ||||
|  | ||||
| /* This is the mask for the rest of the Versym information.  */ | ||||
|  | ||||
| #define VERSYM_VERSION		0x7fff | ||||
|  | ||||
| /* This is a special token which appears as part of a symbol name.  It | ||||
|    indictes that the rest of the name is actually the name of a | ||||
|    version node, and is not part of the actual name.  This is a GNU | ||||
|    extension.  For example, the symbol name `stat@ver2' is taken to | ||||
|    mean the symbol `stat' in version `ver2'.  */ | ||||
|  | ||||
| #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 */ | ||||
| /* Syminfo version values.  */ | ||||
| #define SYMINFO_NONE		0 | ||||
| #define SYMINFO_CURRENT		1 | ||||
| #define SYMINFO_NUM		2 | ||||
|  | ||||
| #endif /* _ELF_COMMON_H */ | ||||
							
								
								
									
										38
									
								
								include/elf/d10v.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								include/elf/d10v.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| /* d10v ELF support for BFD. | ||||
|    Copyright (C) 1998 Free Software Foundation, Inc. | ||||
|  | ||||
|    This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
|    This program is free software; you can redistribute it and/or modify | ||||
|    it under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, or | ||||
|    (at your option) any later version. | ||||
|  | ||||
|    This program is distributed in the hope that it will be useful, | ||||
|    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|    GNU General Public License for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with this program; if not, write to the Free Software Foundation, | ||||
|    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| #ifndef _ELF_D10V_H | ||||
| #define _ELF_D10V_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocation types.  */ | ||||
| START_RELOC_NUMBERS (elf_d10v_reloc_type) | ||||
|   RELOC_NUMBER (R_D10V_NONE, 0) | ||||
|   RELOC_NUMBER (R_D10V_10_PCREL_R, 1) | ||||
|   RELOC_NUMBER (R_D10V_10_PCREL_L, 2) | ||||
|   RELOC_NUMBER (R_D10V_16, 3) | ||||
|   RELOC_NUMBER (R_D10V_18, 4) | ||||
|   RELOC_NUMBER (R_D10V_18_PCREL, 5) | ||||
|   RELOC_NUMBER (R_D10V_32, 6) | ||||
|   RELOC_NUMBER (R_D10V_GNU_VTINHERIT, 7) | ||||
|   RELOC_NUMBER (R_D10V_GNU_VTENTRY, 8) | ||||
| END_RELOC_NUMBERS | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										42
									
								
								include/elf/d30v.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								include/elf/d30v.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| /* d30v ELF support for BFD. | ||||
|    Copyright (C) 1998 Free Software Foundation, Inc. | ||||
|  | ||||
|    This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
|    This program is free software; you can redistribute it and/or modify | ||||
|    it under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, or | ||||
|    (at your option) any later version. | ||||
|  | ||||
|    This program is distributed in the hope that it will be useful, | ||||
|    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|    GNU General Public License for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with this program; if not, write to the Free Software Foundation, | ||||
|    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| #ifndef _ELF_D30V_H | ||||
| #define _ELF_D30V_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocations.  */ | ||||
| START_RELOC_NUMBERS (elf_d30v_reloc_type) | ||||
|   RELOC_NUMBER (R_D30V_NONE, 0) | ||||
|   RELOC_NUMBER (R_D30V_6, 1) | ||||
|   RELOC_NUMBER (R_D30V_9_PCREL, 2) | ||||
|   RELOC_NUMBER (R_D30V_9_PCREL_R, 3) | ||||
|   RELOC_NUMBER (R_D30V_15, 4) | ||||
|   RELOC_NUMBER (R_D30V_15_PCREL, 5) | ||||
|   RELOC_NUMBER (R_D30V_15_PCREL_R, 6) | ||||
|   RELOC_NUMBER (R_D30V_21, 7) | ||||
|   RELOC_NUMBER (R_D30V_21_PCREL, 8) | ||||
|   RELOC_NUMBER (R_D30V_21_PCREL_R, 9) | ||||
|   RELOC_NUMBER (R_D30V_32, 10) | ||||
|   RELOC_NUMBER (R_D30V_32_PCREL, 11) | ||||
|   RELOC_NUMBER (R_D30V_32_NORMAL, 12) | ||||
| END_RELOC_NUMBERS | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										319
									
								
								include/elf/dwarf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										319
									
								
								include/elf/dwarf.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,319 @@ | ||||
| /* Declarations and definitions of codes relating to the DWARF symbolic | ||||
|    debugging information format. | ||||
|  | ||||
|    Written by Ron Guilmette (rfg@ncd.com) | ||||
|  | ||||
| Copyright (C) 1992 Free Software Foundation, Inc. | ||||
|  | ||||
| This file is part of GNU CC. | ||||
|  | ||||
| GNU CC is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2, or (at your option) | ||||
| any later version. | ||||
|  | ||||
| GNU CC is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with GNU CC; see the file COPYING.  If not, write to | ||||
| the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* This file is derived from the DWARF specification (a public document) | ||||
|    Revision 1.0.1 (April 8, 1992) developed by the UNIX International | ||||
|    Programming Languages Special Interest Group (UI/PLSIG) and distributed | ||||
|    by UNIX International.  Copies of this specification are available from | ||||
|    UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. | ||||
| */ | ||||
|  | ||||
| #ifndef _ELF_DWARF_H | ||||
| #define _ELF_DWARF_H | ||||
|  | ||||
| /* Tag names and codes.  */ | ||||
|  | ||||
| enum dwarf_tag { | ||||
|     TAG_padding			= 0x0000, | ||||
|     TAG_array_type		= 0x0001, | ||||
|     TAG_class_type		= 0x0002, | ||||
|     TAG_entry_point		= 0x0003, | ||||
|     TAG_enumeration_type	= 0x0004, | ||||
|     TAG_formal_parameter	= 0x0005, | ||||
|     TAG_global_subroutine	= 0x0006, | ||||
|     TAG_global_variable		= 0x0007, | ||||
|     				/* 0x0008 -- reserved */ | ||||
| 				/* 0x0009 -- reserved */ | ||||
|     TAG_label			= 0x000a, | ||||
|     TAG_lexical_block		= 0x000b, | ||||
|     TAG_local_variable		= 0x000c, | ||||
|     TAG_member			= 0x000d, | ||||
| 				/* 0x000e -- reserved */ | ||||
|     TAG_pointer_type		= 0x000f, | ||||
|     TAG_reference_type		= 0x0010, | ||||
|     TAG_compile_unit		= 0x0011, | ||||
|     TAG_string_type		= 0x0012, | ||||
|     TAG_structure_type		= 0x0013, | ||||
|     TAG_subroutine		= 0x0014, | ||||
|     TAG_subroutine_type		= 0x0015, | ||||
|     TAG_typedef			= 0x0016, | ||||
|     TAG_union_type		= 0x0017, | ||||
|     TAG_unspecified_parameters	= 0x0018, | ||||
|     TAG_variant			= 0x0019, | ||||
|     TAG_common_block		= 0x001a, | ||||
|     TAG_common_inclusion	= 0x001b, | ||||
|     TAG_inheritance		= 0x001c, | ||||
|     TAG_inlined_subroutine	= 0x001d, | ||||
|     TAG_module			= 0x001e, | ||||
|     TAG_ptr_to_member_type	= 0x001f, | ||||
|     TAG_set_type		= 0x0020, | ||||
|     TAG_subrange_type		= 0x0021, | ||||
|     TAG_with_stmt		= 0x0022, | ||||
|  | ||||
|     /* GNU extensions */ | ||||
|  | ||||
|     TAG_format_label		= 0x8000,  /* for FORTRAN 77 and Fortran 90 */ | ||||
|     TAG_namelist		= 0x8001,  /* For Fortran 90 */ | ||||
|     TAG_function_template	= 0x8002,  /* for C++ */ | ||||
|     TAG_class_template		= 0x8003   /* for C++ */ | ||||
| }; | ||||
|  | ||||
| #define TAG_lo_user	0x8000  /* implementation-defined range start */ | ||||
| #define TAG_hi_user	0xffff  /* implementation-defined range end */ | ||||
| #define TAG_source_file TAG_compile_unit  /* for backward compatibility */ | ||||
|  | ||||
| /* Form names and codes.  */ | ||||
|  | ||||
| enum dwarf_form { | ||||
|     FORM_ADDR	= 0x1, | ||||
|     FORM_REF	= 0x2, | ||||
|     FORM_BLOCK2	= 0x3, | ||||
|     FORM_BLOCK4	= 0x4, | ||||
|     FORM_DATA2	= 0x5, | ||||
|     FORM_DATA4	= 0x6, | ||||
|     FORM_DATA8	= 0x7, | ||||
|     FORM_STRING	= 0x8 | ||||
| }; | ||||
|  | ||||
| /* Attribute names and codes.  */ | ||||
|  | ||||
| enum dwarf_attribute { | ||||
|     AT_sibling			= (0x0010|FORM_REF), | ||||
|     AT_location			= (0x0020|FORM_BLOCK2), | ||||
|     AT_name			= (0x0030|FORM_STRING), | ||||
|     AT_fund_type		= (0x0050|FORM_DATA2), | ||||
|     AT_mod_fund_type		= (0x0060|FORM_BLOCK2), | ||||
|     AT_user_def_type		= (0x0070|FORM_REF), | ||||
|     AT_mod_u_d_type		= (0x0080|FORM_BLOCK2), | ||||
|     AT_ordering			= (0x0090|FORM_DATA2), | ||||
|     AT_subscr_data		= (0x00a0|FORM_BLOCK2), | ||||
|     AT_byte_size		= (0x00b0|FORM_DATA4), | ||||
|     AT_bit_offset		= (0x00c0|FORM_DATA2), | ||||
|     AT_bit_size			= (0x00d0|FORM_DATA4), | ||||
| 				/* (0x00e0|FORM_xxxx) -- reserved */ | ||||
|     AT_element_list		= (0x00f0|FORM_BLOCK4), | ||||
|     AT_stmt_list		= (0x0100|FORM_DATA4), | ||||
|     AT_low_pc			= (0x0110|FORM_ADDR), | ||||
|     AT_high_pc			= (0x0120|FORM_ADDR), | ||||
|     AT_language			= (0x0130|FORM_DATA4), | ||||
|     AT_member			= (0x0140|FORM_REF), | ||||
|     AT_discr			= (0x0150|FORM_REF), | ||||
|     AT_discr_value		= (0x0160|FORM_BLOCK2), | ||||
| 				/* (0x0170|FORM_xxxx) -- reserved */ | ||||
| 				/* (0x0180|FORM_xxxx) -- reserved */ | ||||
|     AT_string_length		= (0x0190|FORM_BLOCK2), | ||||
|     AT_common_reference		= (0x01a0|FORM_REF), | ||||
|     AT_comp_dir			= (0x01b0|FORM_STRING), | ||||
|         AT_const_value_string	= (0x01c0|FORM_STRING), | ||||
|         AT_const_value_data2	= (0x01c0|FORM_DATA2), | ||||
|         AT_const_value_data4	= (0x01c0|FORM_DATA4), | ||||
|         AT_const_value_data8	= (0x01c0|FORM_DATA8), | ||||
|         AT_const_value_block2	= (0x01c0|FORM_BLOCK2), | ||||
|         AT_const_value_block4	= (0x01c0|FORM_BLOCK4), | ||||
|     AT_containing_type		= (0x01d0|FORM_REF), | ||||
|         AT_default_value_addr	= (0x01e0|FORM_ADDR), | ||||
|         AT_default_value_data2	= (0x01e0|FORM_DATA2), | ||||
|         AT_default_value_data4	= (0x01e0|FORM_DATA4), | ||||
|         AT_default_value_data8	= (0x01e0|FORM_DATA8), | ||||
|         AT_default_value_string	= (0x01e0|FORM_STRING), | ||||
|     AT_friends			= (0x01f0|FORM_BLOCK2), | ||||
|     AT_inline			= (0x0200|FORM_STRING), | ||||
|     AT_is_optional		= (0x0210|FORM_STRING), | ||||
|         AT_lower_bound_ref	= (0x0220|FORM_REF), | ||||
|         AT_lower_bound_data2	= (0x0220|FORM_DATA2), | ||||
|         AT_lower_bound_data4	= (0x0220|FORM_DATA4), | ||||
|         AT_lower_bound_data8	= (0x0220|FORM_DATA8), | ||||
|     AT_private			= (0x0240|FORM_STRING), | ||||
|     AT_producer			= (0x0250|FORM_STRING), | ||||
|     AT_program			= (0x0230|FORM_STRING), | ||||
|     AT_protected		= (0x0260|FORM_STRING), | ||||
|     AT_prototyped		= (0x0270|FORM_STRING), | ||||
|     AT_public			= (0x0280|FORM_STRING), | ||||
|     AT_pure_virtual		= (0x0290|FORM_STRING), | ||||
|     AT_return_addr		= (0x02a0|FORM_BLOCK2), | ||||
|     AT_abstract_origin		= (0x02b0|FORM_REF), | ||||
|     AT_start_scope		= (0x02c0|FORM_DATA4), | ||||
|     AT_stride_size		= (0x02e0|FORM_DATA4), | ||||
|         AT_upper_bound_ref	= (0x02f0|FORM_REF), | ||||
|         AT_upper_bound_data2	= (0x02f0|FORM_DATA2), | ||||
|         AT_upper_bound_data4	= (0x02f0|FORM_DATA4), | ||||
|         AT_upper_bound_data8	= (0x02f0|FORM_DATA8), | ||||
|     AT_virtual			= (0x0300|FORM_STRING), | ||||
|  | ||||
|     /* GNU extensions.  */ | ||||
|  | ||||
|     AT_sf_names			= (0x8000|FORM_DATA4), | ||||
|     AT_src_info			= (0x8010|FORM_DATA4), | ||||
|     AT_mac_info			= (0x8020|FORM_DATA4), | ||||
|     AT_src_coords		= (0x8030|FORM_DATA4), | ||||
|     AT_body_begin		= (0x8040|FORM_ADDR), | ||||
|     AT_body_end			= (0x8050|FORM_ADDR) | ||||
| }; | ||||
|  | ||||
| #define AT_lo_user	0x8000  /* implementation-defined range start */ | ||||
| #define AT_hi_user	0xffff  /* implementation-defined range end */ | ||||
|  | ||||
| /* Location atom names and codes.  */ | ||||
|  | ||||
| enum dwarf_location_atom { | ||||
|     OP_REG	= 0x01, | ||||
|     OP_BASEREG	= 0x02, | ||||
|     OP_ADDR	= 0x03, | ||||
|     OP_CONST	= 0x04, | ||||
|     OP_DEREF2	= 0x05, | ||||
|     OP_DEREF4	= 0x06, | ||||
|     OP_ADD	= 0x07 | ||||
| }; | ||||
|  | ||||
| #define OP_LO_USER	0x80  /* implementation-defined range start */ | ||||
| #define OP_HI_USER	0xff  /* implementation-defined range end */ | ||||
|  | ||||
| /* Fundamental type names and codes.  */ | ||||
|  | ||||
| enum dwarf_fundamental_type { | ||||
|     FT_char		= 0x0001, | ||||
|     FT_signed_char	= 0x0002, | ||||
|     FT_unsigned_char	= 0x0003, | ||||
|     FT_short		= 0x0004, | ||||
|     FT_signed_short	= 0x0005, | ||||
|     FT_unsigned_short	= 0x0006, | ||||
|     FT_integer		= 0x0007, | ||||
|     FT_signed_integer	= 0x0008, | ||||
|     FT_unsigned_integer	= 0x0009, | ||||
|     FT_long		= 0x000a, | ||||
|     FT_signed_long	= 0x000b, | ||||
|     FT_unsigned_long	= 0x000c, | ||||
|     FT_pointer		= 0x000d,  /* an alias for (void *) */ | ||||
|     FT_float		= 0x000e, | ||||
|     FT_dbl_prec_float	= 0x000f, | ||||
|     FT_ext_prec_float	= 0x0010,  /* breaks "classic" svr4 SDB */ | ||||
|     FT_complex		= 0x0011,  /* breaks "classic" svr4 SDB */ | ||||
|     FT_dbl_prec_complex	= 0x0012,  /* breaks "classic" svr4 SDB */ | ||||
| 			/* 0x0013 -- reserved */ | ||||
|     FT_void		= 0x0014, | ||||
|     FT_boolean		= 0x0015,  /* breaks "classic" svr4 SDB */ | ||||
|     FT_ext_prec_complex	= 0x0016,  /* breaks "classic" svr4 SDB */ | ||||
|     FT_label		= 0x0017, | ||||
|    | ||||
|     /* GNU extensions | ||||
|        The low order byte must indicate the size (in bytes) for the type. | ||||
|        All of these types will probably break "classic" svr4 SDB */ | ||||
|  | ||||
|     FT_long_long	= 0x8008, | ||||
|     FT_signed_long_long	= 0x8108, | ||||
|     FT_unsigned_long_long = 0x8208, | ||||
|  | ||||
|     FT_int8		= 0x9001, | ||||
|     FT_signed_int8	= 0x9101, | ||||
|     FT_unsigned_int8	= 0x9201, | ||||
|     FT_int16		= 0x9302, | ||||
|     FT_signed_int16	= 0x9402, | ||||
|     FT_unsigned_int16	= 0x9502, | ||||
|     FT_int32		= 0x9604, | ||||
|     FT_signed_int32	= 0x9704, | ||||
|     FT_unsigned_int32	= 0x9804, | ||||
|     FT_int64		= 0x9908, | ||||
|     FT_signed_int64	= 0x9a08, | ||||
|     FT_unsigned_int64	= 0x9b08, | ||||
|  | ||||
|     FT_real32		= 0xa004, | ||||
|     FT_real64		= 0xa108, | ||||
|     FT_real96		= 0xa20c, | ||||
|     FT_real128		= 0xa310 | ||||
| }; | ||||
|  | ||||
| #define FT_lo_user	0x8000  /* implementation-defined range start */ | ||||
| #define FT_hi_user	0xffff  /* implementation defined range end */ | ||||
|  | ||||
| /* Type modifier names and codes.  */ | ||||
|  | ||||
| enum dwarf_type_modifier { | ||||
|     MOD_pointer_to	= 0x01, | ||||
|     MOD_reference_to	= 0x02, | ||||
|     MOD_const		= 0x03, | ||||
|     MOD_volatile	= 0x04 | ||||
| }; | ||||
|  | ||||
| #define MOD_lo_user	0x80  /* implementation-defined range start */ | ||||
| #define MOD_hi_user	0xff  /* implementation-defined range end */ | ||||
|  | ||||
| /* Array ordering names and codes.  */ | ||||
|  | ||||
| enum dwarf_array_dim_ordering { | ||||
|     ORD_row_major	= 0, | ||||
|     ORD_col_major	= 1 | ||||
| }; | ||||
|  | ||||
| /* Array subscript format names and codes.  */ | ||||
|  | ||||
| enum dwarf_subscr_data_formats { | ||||
|     FMT_FT_C_C	= 0x0, | ||||
|     FMT_FT_C_X	= 0x1, | ||||
|     FMT_FT_X_C	= 0x2, | ||||
|     FMT_FT_X_X	= 0x3, | ||||
|     FMT_UT_C_C	= 0x4, | ||||
|     FMT_UT_C_X	= 0x5, | ||||
|     FMT_UT_X_C	= 0x6, | ||||
|     FMT_UT_X_X	= 0x7, | ||||
|     FMT_ET	= 0x8 | ||||
| }; | ||||
|  | ||||
| /* Derived from above for ease of use.  */ | ||||
|  | ||||
| #define FMT_CODE(_FUNDAMENTAL_TYPE_P, _UB_CONST_P, _LB_CONST_P) \ | ||||
|  (((_FUNDAMENTAL_TYPE_P) ? 0 : 4)	\ | ||||
|   | ((_UB_CONST_P) ? 0 : 2)		\ | ||||
|   | ((_LB_CONST_P) ? 0 : 1)) | ||||
|  | ||||
| /* Source language names and codes.  */ | ||||
|  | ||||
| enum dwarf_source_language { | ||||
|     LANG_C89		= 0x00000001, | ||||
|     LANG_C		= 0x00000002, | ||||
|     LANG_ADA83		= 0x00000003, | ||||
|     LANG_C_PLUS_PLUS	= 0x00000004, | ||||
|     LANG_COBOL74	= 0x00000005, | ||||
|     LANG_COBOL85	= 0x00000006, | ||||
|     LANG_FORTRAN77	= 0x00000007, | ||||
|     LANG_FORTRAN90	= 0x00000008, | ||||
|     LANG_PASCAL83	= 0x00000009, | ||||
|     LANG_MODULA2	= 0x0000000a, | ||||
|  | ||||
|     /* GNU extensions */ | ||||
|  | ||||
|     LANG_CHILL		= 0x00009af3	/* random value for GNU Chill */ | ||||
| }; | ||||
|  | ||||
| #define LANG_lo_user	0x00008000  /* implementation-defined range start */ | ||||
| #define LANG_hi_user	0x0000ffff  /* implementation-defined range end */ | ||||
|  | ||||
| /* Names and codes for GNU "macinfo" extension.  */ | ||||
|  | ||||
| enum dwarf_macinfo_record_type { | ||||
|     MACINFO_start	= 's', | ||||
|     MACINFO_resume	= 'r', | ||||
|     MACINFO_define	= 'd', | ||||
|     MACINFO_undef	= 'u' | ||||
| }; | ||||
|  | ||||
| #endif /* _ELF_DWARF_H */ | ||||
							
								
								
									
										637
									
								
								include/elf/dwarf2.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										637
									
								
								include/elf/dwarf2.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,637 @@ | ||||
| /* Declarations and definitions of codes relating to the DWARF symbolic | ||||
|    debugging information format. | ||||
|    Copyright (C) 1992, 1993, 1995, 1996, 1999 Free Software Foundation, Inc. | ||||
|  | ||||
|    Written by Gary Funck (gary@intrepid.com) The Ada Joint Program | ||||
|    Office (AJPO), Florida State Unviversity and Silicon Graphics Inc. | ||||
|    provided support for this effort -- June 21, 1995. | ||||
|  | ||||
|    Derived from the DWARF 1 implementation written by Ron Guilmette | ||||
|    (rfg@netcom.com), November 1990. | ||||
|  | ||||
| This file is part of GNU CC. | ||||
|  | ||||
| GNU CC is free software; you can redistribute it and/or modify it | ||||
| under the terms of the GNU General Public License as published by the | ||||
| Free Software Foundation; either version 2, or (at your option) any | ||||
| later version. | ||||
|  | ||||
| GNU CC is distributed in the hope that it will be useful, but WITHOUT | ||||
| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
| FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
| for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with GNU CC; see the file COPYING.  If not, write to the Free | ||||
| Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* This file is derived from the DWARF specification (a public document) | ||||
|    Revision 2.0.0 (July 27, 1993) developed by the UNIX International | ||||
|    Programming Languages Special Interest Group (UI/PLSIG) and distributed | ||||
|    by UNIX International.  Copies of this specification are available from | ||||
|    UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.  */ | ||||
|  | ||||
| #ifndef _ELF_DWARF2_H | ||||
| #define _ELF_DWARF2_H | ||||
|  | ||||
| /* Structure found in the .debug_line section.  */ | ||||
| typedef struct | ||||
| { | ||||
|   unsigned char li_length          [4]; | ||||
|   unsigned char li_version         [2]; | ||||
|   unsigned char li_prologue_length [4]; | ||||
|   unsigned char li_min_insn_length [1]; | ||||
|   unsigned char li_default_is_stmt [1]; | ||||
|   unsigned char li_line_base       [1]; | ||||
|   unsigned char li_line_range      [1]; | ||||
|   unsigned char li_opcode_base     [1]; | ||||
| } | ||||
| DWARF2_External_LineInfo; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   unsigned long  li_length; | ||||
|   unsigned short li_version; | ||||
|   unsigned int   li_prologue_length; | ||||
|   unsigned char  li_min_insn_length; | ||||
|   unsigned char  li_default_is_stmt; | ||||
|   int            li_line_base; | ||||
|   unsigned char  li_line_range; | ||||
|   unsigned char  li_opcode_base; | ||||
| } | ||||
| DWARF2_Internal_LineInfo; | ||||
|  | ||||
| /* Structure found in .debug_pubnames section.  */ | ||||
| typedef struct | ||||
| { | ||||
|   unsigned char pn_length  [4]; | ||||
|   unsigned char pn_version [2]; | ||||
|   unsigned char pn_offset  [4]; | ||||
|   unsigned char pn_size    [4]; | ||||
| } | ||||
| DWARF2_External_PubNames; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   unsigned long  pn_length; | ||||
|   unsigned short pn_version; | ||||
|   unsigned long  pn_offset; | ||||
|   unsigned long  pn_size; | ||||
| } | ||||
| DWARF2_Internal_PubNames; | ||||
|  | ||||
| /* Strcuture found in .debug_info section.  */ | ||||
| typedef struct | ||||
| { | ||||
|   unsigned char  cu_length        [4]; | ||||
|   unsigned char  cu_version       [2]; | ||||
|   unsigned char  cu_abbrev_offset [4]; | ||||
|   unsigned char  cu_pointer_size  [1]; | ||||
| } | ||||
| DWARF2_External_CompUnit; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   unsigned long  cu_length; | ||||
|   unsigned short cu_version; | ||||
|   unsigned long  cu_abbrev_offset; | ||||
|   unsigned char  cu_pointer_size; | ||||
| } | ||||
| DWARF2_Internal_CompUnit; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   unsigned char  ar_length       [4]; | ||||
|   unsigned char  ar_version      [2]; | ||||
|   unsigned char  ar_info_offset  [4]; | ||||
|   unsigned char  ar_pointer_size [1]; | ||||
|   unsigned char  ar_segment_size [1]; | ||||
| } | ||||
| DWARF2_External_ARange; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   unsigned long  ar_length; | ||||
|   unsigned short ar_version; | ||||
|   unsigned long  ar_info_offset; | ||||
|   unsigned char  ar_pointer_size; | ||||
|   unsigned char  ar_segment_size; | ||||
| } | ||||
| DWARF2_Internal_ARange; | ||||
|  | ||||
|  | ||||
| /* Tag names and codes.  */ | ||||
|  | ||||
| enum dwarf_tag | ||||
|   { | ||||
|     DW_TAG_padding = 0x00, | ||||
|     DW_TAG_array_type = 0x01, | ||||
|     DW_TAG_class_type = 0x02, | ||||
|     DW_TAG_entry_point = 0x03, | ||||
|     DW_TAG_enumeration_type = 0x04, | ||||
|     DW_TAG_formal_parameter = 0x05, | ||||
|     DW_TAG_imported_declaration = 0x08, | ||||
|     DW_TAG_label = 0x0a, | ||||
|     DW_TAG_lexical_block = 0x0b, | ||||
|     DW_TAG_member = 0x0d, | ||||
|     DW_TAG_pointer_type = 0x0f, | ||||
|     DW_TAG_reference_type = 0x10, | ||||
|     DW_TAG_compile_unit = 0x11, | ||||
|     DW_TAG_string_type = 0x12, | ||||
|     DW_TAG_structure_type = 0x13, | ||||
|     DW_TAG_subroutine_type = 0x15, | ||||
|     DW_TAG_typedef = 0x16, | ||||
|     DW_TAG_union_type = 0x17, | ||||
|     DW_TAG_unspecified_parameters = 0x18, | ||||
|     DW_TAG_variant = 0x19, | ||||
|     DW_TAG_common_block = 0x1a, | ||||
|     DW_TAG_common_inclusion = 0x1b, | ||||
|     DW_TAG_inheritance = 0x1c, | ||||
|     DW_TAG_inlined_subroutine = 0x1d, | ||||
|     DW_TAG_module = 0x1e, | ||||
|     DW_TAG_ptr_to_member_type = 0x1f, | ||||
|     DW_TAG_set_type = 0x20, | ||||
|     DW_TAG_subrange_type = 0x21, | ||||
|     DW_TAG_with_stmt = 0x22, | ||||
|     DW_TAG_access_declaration = 0x23, | ||||
|     DW_TAG_base_type = 0x24, | ||||
|     DW_TAG_catch_block = 0x25, | ||||
|     DW_TAG_const_type = 0x26, | ||||
|     DW_TAG_constant = 0x27, | ||||
|     DW_TAG_enumerator = 0x28, | ||||
|     DW_TAG_file_type = 0x29, | ||||
|     DW_TAG_friend = 0x2a, | ||||
|     DW_TAG_namelist = 0x2b, | ||||
|     DW_TAG_namelist_item = 0x2c, | ||||
|     DW_TAG_packed_type = 0x2d, | ||||
|     DW_TAG_subprogram = 0x2e, | ||||
|     DW_TAG_template_type_param = 0x2f, | ||||
|     DW_TAG_template_value_param = 0x30, | ||||
|     DW_TAG_thrown_type = 0x31, | ||||
|     DW_TAG_try_block = 0x32, | ||||
|     DW_TAG_variant_part = 0x33, | ||||
|     DW_TAG_variable = 0x34, | ||||
|     DW_TAG_volatile_type = 0x35, | ||||
|     /* SGI/MIPS Extensions */ | ||||
|     DW_TAG_MIPS_loop = 0x4081, | ||||
|     /* GNU extensions */ | ||||
|     DW_TAG_format_label = 0x4101,	/* for FORTRAN 77 and Fortran 90 */ | ||||
|     DW_TAG_function_template = 0x4102,	/* for C++ */ | ||||
|     DW_TAG_class_template = 0x4103	/* for C++ */ | ||||
|   }; | ||||
|  | ||||
| #define DW_TAG_lo_user	0x4080 | ||||
| #define DW_TAG_hi_user	0xffff | ||||
|  | ||||
| /* flag that tells whether entry has a child or not */ | ||||
| #define DW_children_no   0 | ||||
| #define	DW_children_yes  1 | ||||
|  | ||||
| /* Form names and codes.  */ | ||||
| enum dwarf_form | ||||
|   { | ||||
|     DW_FORM_addr = 0x01, | ||||
|     DW_FORM_block2 = 0x03, | ||||
|     DW_FORM_block4 = 0x04, | ||||
|     DW_FORM_data2 = 0x05, | ||||
|     DW_FORM_data4 = 0x06, | ||||
|     DW_FORM_data8 = 0x07, | ||||
|     DW_FORM_string = 0x08, | ||||
|     DW_FORM_block = 0x09, | ||||
|     DW_FORM_block1 = 0x0a, | ||||
|     DW_FORM_data1 = 0x0b, | ||||
|     DW_FORM_flag = 0x0c, | ||||
|     DW_FORM_sdata = 0x0d, | ||||
|     DW_FORM_strp = 0x0e, | ||||
|     DW_FORM_udata = 0x0f, | ||||
|     DW_FORM_ref_addr = 0x10, | ||||
|     DW_FORM_ref1 = 0x11, | ||||
|     DW_FORM_ref2 = 0x12, | ||||
|     DW_FORM_ref4 = 0x13, | ||||
|     DW_FORM_ref8 = 0x14, | ||||
|     DW_FORM_ref_udata = 0x15, | ||||
|     DW_FORM_indirect = 0x16 | ||||
|   }; | ||||
|  | ||||
| /* Attribute names and codes.  */ | ||||
|  | ||||
| enum dwarf_attribute | ||||
|   { | ||||
|     DW_AT_sibling = 0x01, | ||||
|     DW_AT_location = 0x02, | ||||
|     DW_AT_name = 0x03, | ||||
|     DW_AT_ordering = 0x09, | ||||
|     DW_AT_subscr_data = 0x0a, | ||||
|     DW_AT_byte_size = 0x0b, | ||||
|     DW_AT_bit_offset = 0x0c, | ||||
|     DW_AT_bit_size = 0x0d, | ||||
|     DW_AT_element_list = 0x0f, | ||||
|     DW_AT_stmt_list = 0x10, | ||||
|     DW_AT_low_pc = 0x11, | ||||
|     DW_AT_high_pc = 0x12, | ||||
|     DW_AT_language = 0x13, | ||||
|     DW_AT_member = 0x14, | ||||
|     DW_AT_discr = 0x15, | ||||
|     DW_AT_discr_value = 0x16, | ||||
|     DW_AT_visibility = 0x17, | ||||
|     DW_AT_import = 0x18, | ||||
|     DW_AT_string_length = 0x19, | ||||
|     DW_AT_common_reference = 0x1a, | ||||
|     DW_AT_comp_dir = 0x1b, | ||||
|     DW_AT_const_value = 0x1c, | ||||
|     DW_AT_containing_type = 0x1d, | ||||
|     DW_AT_default_value = 0x1e, | ||||
|     DW_AT_inline = 0x20, | ||||
|     DW_AT_is_optional = 0x21, | ||||
|     DW_AT_lower_bound = 0x22, | ||||
|     DW_AT_producer = 0x25, | ||||
|     DW_AT_prototyped = 0x27, | ||||
|     DW_AT_return_addr = 0x2a, | ||||
|     DW_AT_start_scope = 0x2c, | ||||
|     DW_AT_stride_size = 0x2e, | ||||
|     DW_AT_upper_bound = 0x2f, | ||||
|     DW_AT_abstract_origin = 0x31, | ||||
|     DW_AT_accessibility = 0x32, | ||||
|     DW_AT_address_class = 0x33, | ||||
|     DW_AT_artificial = 0x34, | ||||
|     DW_AT_base_types = 0x35, | ||||
|     DW_AT_calling_convention = 0x36, | ||||
|     DW_AT_count = 0x37, | ||||
|     DW_AT_data_member_location = 0x38, | ||||
|     DW_AT_decl_column = 0x39, | ||||
|     DW_AT_decl_file = 0x3a, | ||||
|     DW_AT_decl_line = 0x3b, | ||||
|     DW_AT_declaration = 0x3c, | ||||
|     DW_AT_discr_list = 0x3d, | ||||
|     DW_AT_encoding = 0x3e, | ||||
|     DW_AT_external = 0x3f, | ||||
|     DW_AT_frame_base = 0x40, | ||||
|     DW_AT_friend = 0x41, | ||||
|     DW_AT_identifier_case = 0x42, | ||||
|     DW_AT_macro_info = 0x43, | ||||
|     DW_AT_namelist_items = 0x44, | ||||
|     DW_AT_priority = 0x45, | ||||
|     DW_AT_segment = 0x46, | ||||
|     DW_AT_specification = 0x47, | ||||
|     DW_AT_static_link = 0x48, | ||||
|     DW_AT_type = 0x49, | ||||
|     DW_AT_use_location = 0x4a, | ||||
|     DW_AT_variable_parameter = 0x4b, | ||||
|     DW_AT_virtuality = 0x4c, | ||||
|     DW_AT_vtable_elem_location = 0x4d, | ||||
|     /* SGI/MIPS Extensions */ | ||||
|     DW_AT_MIPS_fde = 0x2001, | ||||
|     DW_AT_MIPS_loop_begin = 0x2002, | ||||
|     DW_AT_MIPS_tail_loop_begin = 0x2003, | ||||
|     DW_AT_MIPS_epilog_begin = 0x2004, | ||||
|     DW_AT_MIPS_loop_unroll_factor = 0x2005, | ||||
|     DW_AT_MIPS_software_pipeline_depth = 0x2006, | ||||
|     DW_AT_MIPS_linkage_name = 0x2007, | ||||
|     DW_AT_MIPS_stride = 0x2008, | ||||
|     DW_AT_MIPS_abstract_name = 0x2009, | ||||
|     DW_AT_MIPS_clone_origin = 0x200a, | ||||
|     DW_AT_MIPS_has_inlines = 0x200b, | ||||
|     /* GNU extensions.  */ | ||||
|     DW_AT_sf_names = 0x2101, | ||||
|     DW_AT_src_info = 0x2102, | ||||
|     DW_AT_mac_info = 0x2103, | ||||
|     DW_AT_src_coords = 0x2104, | ||||
|     DW_AT_body_begin = 0x2105, | ||||
|     DW_AT_body_end = 0x2106 | ||||
|   }; | ||||
|  | ||||
| #define DW_AT_lo_user	0x2000	/* implementation-defined range start */ | ||||
| #define DW_AT_hi_user	0x3ff0	/* implementation-defined range end */ | ||||
|  | ||||
| /* Location atom names and codes.  */ | ||||
|  | ||||
| enum dwarf_location_atom | ||||
|   { | ||||
|     DW_OP_addr = 0x03, | ||||
|     DW_OP_deref = 0x06, | ||||
|     DW_OP_const1u = 0x08, | ||||
|     DW_OP_const1s = 0x09, | ||||
|     DW_OP_const2u = 0x0a, | ||||
|     DW_OP_const2s = 0x0b, | ||||
|     DW_OP_const4u = 0x0c, | ||||
|     DW_OP_const4s = 0x0d, | ||||
|     DW_OP_const8u = 0x0e, | ||||
|     DW_OP_const8s = 0x0f, | ||||
|     DW_OP_constu = 0x10, | ||||
|     DW_OP_consts = 0x11, | ||||
|     DW_OP_dup = 0x12, | ||||
|     DW_OP_drop = 0x13, | ||||
|     DW_OP_over = 0x14, | ||||
|     DW_OP_pick = 0x15, | ||||
|     DW_OP_swap = 0x16, | ||||
|     DW_OP_rot = 0x17, | ||||
|     DW_OP_xderef = 0x18, | ||||
|     DW_OP_abs = 0x19, | ||||
|     DW_OP_and = 0x1a, | ||||
|     DW_OP_div = 0x1b, | ||||
|     DW_OP_minus = 0x1c, | ||||
|     DW_OP_mod = 0x1d, | ||||
|     DW_OP_mul = 0x1e, | ||||
|     DW_OP_neg = 0x1f, | ||||
|     DW_OP_not = 0x20, | ||||
|     DW_OP_or = 0x21, | ||||
|     DW_OP_plus = 0x22, | ||||
|     DW_OP_plus_uconst = 0x23, | ||||
|     DW_OP_shl = 0x24, | ||||
|     DW_OP_shr = 0x25, | ||||
|     DW_OP_shra = 0x26, | ||||
|     DW_OP_xor = 0x27, | ||||
|     DW_OP_bra = 0x28, | ||||
|     DW_OP_eq = 0x29, | ||||
|     DW_OP_ge = 0x2a, | ||||
|     DW_OP_gt = 0x2b, | ||||
|     DW_OP_le = 0x2c, | ||||
|     DW_OP_lt = 0x2d, | ||||
|     DW_OP_ne = 0x2e, | ||||
|     DW_OP_skip = 0x2f, | ||||
|     DW_OP_lit0 = 0x30, | ||||
|     DW_OP_lit1 = 0x31, | ||||
|     DW_OP_lit2 = 0x32, | ||||
|     DW_OP_lit3 = 0x33, | ||||
|     DW_OP_lit4 = 0x34, | ||||
|     DW_OP_lit5 = 0x35, | ||||
|     DW_OP_lit6 = 0x36, | ||||
|     DW_OP_lit7 = 0x37, | ||||
|     DW_OP_lit8 = 0x38, | ||||
|     DW_OP_lit9 = 0x39, | ||||
|     DW_OP_lit10 = 0x3a, | ||||
|     DW_OP_lit11 = 0x3b, | ||||
|     DW_OP_lit12 = 0x3c, | ||||
|     DW_OP_lit13 = 0x3d, | ||||
|     DW_OP_lit14 = 0x3e, | ||||
|     DW_OP_lit15 = 0x3f, | ||||
|     DW_OP_lit16 = 0x40, | ||||
|     DW_OP_lit17 = 0x41, | ||||
|     DW_OP_lit18 = 0x42, | ||||
|     DW_OP_lit19 = 0x43, | ||||
|     DW_OP_lit20 = 0x44, | ||||
|     DW_OP_lit21 = 0x45, | ||||
|     DW_OP_lit22 = 0x46, | ||||
|     DW_OP_lit23 = 0x47, | ||||
|     DW_OP_lit24 = 0x48, | ||||
|     DW_OP_lit25 = 0x49, | ||||
|     DW_OP_lit26 = 0x4a, | ||||
|     DW_OP_lit27 = 0x4b, | ||||
|     DW_OP_lit28 = 0x4c, | ||||
|     DW_OP_lit29 = 0x4d, | ||||
|     DW_OP_lit30 = 0x4e, | ||||
|     DW_OP_lit31 = 0x4f, | ||||
|     DW_OP_reg0 = 0x50, | ||||
|     DW_OP_reg1 = 0x51, | ||||
|     DW_OP_reg2 = 0x52, | ||||
|     DW_OP_reg3 = 0x53, | ||||
|     DW_OP_reg4 = 0x54, | ||||
|     DW_OP_reg5 = 0x55, | ||||
|     DW_OP_reg6 = 0x56, | ||||
|     DW_OP_reg7 = 0x57, | ||||
|     DW_OP_reg8 = 0x58, | ||||
|     DW_OP_reg9 = 0x59, | ||||
|     DW_OP_reg10 = 0x5a, | ||||
|     DW_OP_reg11 = 0x5b, | ||||
|     DW_OP_reg12 = 0x5c, | ||||
|     DW_OP_reg13 = 0x5d, | ||||
|     DW_OP_reg14 = 0x5e, | ||||
|     DW_OP_reg15 = 0x5f, | ||||
|     DW_OP_reg16 = 0x60, | ||||
|     DW_OP_reg17 = 0x61, | ||||
|     DW_OP_reg18 = 0x62, | ||||
|     DW_OP_reg19 = 0x63, | ||||
|     DW_OP_reg20 = 0x64, | ||||
|     DW_OP_reg21 = 0x65, | ||||
|     DW_OP_reg22 = 0x66, | ||||
|     DW_OP_reg23 = 0x67, | ||||
|     DW_OP_reg24 = 0x68, | ||||
|     DW_OP_reg25 = 0x69, | ||||
|     DW_OP_reg26 = 0x6a, | ||||
|     DW_OP_reg27 = 0x6b, | ||||
|     DW_OP_reg28 = 0x6c, | ||||
|     DW_OP_reg29 = 0x6d, | ||||
|     DW_OP_reg30 = 0x6e, | ||||
|     DW_OP_reg31 = 0x6f, | ||||
|     DW_OP_breg0 = 0x70, | ||||
|     DW_OP_breg1 = 0x71, | ||||
|     DW_OP_breg2 = 0x72, | ||||
|     DW_OP_breg3 = 0x73, | ||||
|     DW_OP_breg4 = 0x74, | ||||
|     DW_OP_breg5 = 0x75, | ||||
|     DW_OP_breg6 = 0x76, | ||||
|     DW_OP_breg7 = 0x77, | ||||
|     DW_OP_breg8 = 0x78, | ||||
|     DW_OP_breg9 = 0x79, | ||||
|     DW_OP_breg10 = 0x7a, | ||||
|     DW_OP_breg11 = 0x7b, | ||||
|     DW_OP_breg12 = 0x7c, | ||||
|     DW_OP_breg13 = 0x7d, | ||||
|     DW_OP_breg14 = 0x7e, | ||||
|     DW_OP_breg15 = 0x7f, | ||||
|     DW_OP_breg16 = 0x80, | ||||
|     DW_OP_breg17 = 0x81, | ||||
|     DW_OP_breg18 = 0x82, | ||||
|     DW_OP_breg19 = 0x83, | ||||
|     DW_OP_breg20 = 0x84, | ||||
|     DW_OP_breg21 = 0x85, | ||||
|     DW_OP_breg22 = 0x86, | ||||
|     DW_OP_breg23 = 0x87, | ||||
|     DW_OP_breg24 = 0x88, | ||||
|     DW_OP_breg25 = 0x89, | ||||
|     DW_OP_breg26 = 0x8a, | ||||
|     DW_OP_breg27 = 0x8b, | ||||
|     DW_OP_breg28 = 0x8c, | ||||
|     DW_OP_breg29 = 0x8d, | ||||
|     DW_OP_breg30 = 0x8e, | ||||
|     DW_OP_breg31 = 0x8f, | ||||
|     DW_OP_regx = 0x90, | ||||
|     DW_OP_fbreg = 0x91, | ||||
|     DW_OP_bregx = 0x92, | ||||
|     DW_OP_piece = 0x93, | ||||
|     DW_OP_deref_size = 0x94, | ||||
|     DW_OP_xderef_size = 0x95, | ||||
|     DW_OP_nop = 0x96 | ||||
|   }; | ||||
|  | ||||
| #define DW_OP_lo_user	0x80	/* implementation-defined range start */ | ||||
| #define DW_OP_hi_user	0xff	/* implementation-defined range end */ | ||||
|  | ||||
| /* Type encodings.  */ | ||||
|  | ||||
| enum dwarf_type | ||||
|   { | ||||
|     DW_ATE_void = 0x0, | ||||
|     DW_ATE_address = 0x1, | ||||
|     DW_ATE_boolean = 0x2, | ||||
|     DW_ATE_complex_float = 0x3, | ||||
|     DW_ATE_float = 0x4, | ||||
|     DW_ATE_signed = 0x5, | ||||
|     DW_ATE_signed_char = 0x6, | ||||
|     DW_ATE_unsigned = 0x7, | ||||
|     DW_ATE_unsigned_char = 0x8 | ||||
|   }; | ||||
|  | ||||
| #define	DW_ATE_lo_user 0x80 | ||||
| #define	DW_ATE_hi_user 0xff | ||||
|  | ||||
| /* Array ordering names and codes.  */ | ||||
| enum dwarf_array_dim_ordering | ||||
|   { | ||||
|     DW_ORD_row_major = 0, | ||||
|     DW_ORD_col_major = 1 | ||||
|   }; | ||||
|  | ||||
| /* access attribute */ | ||||
| enum dwarf_access_attribute | ||||
|   { | ||||
|     DW_ACCESS_public = 1, | ||||
|     DW_ACCESS_protected = 2, | ||||
|     DW_ACCESS_private = 3 | ||||
|   }; | ||||
|  | ||||
| /* visibility */ | ||||
| enum dwarf_visibility_attribute | ||||
|   { | ||||
|     DW_VIS_local = 1, | ||||
|     DW_VIS_exported = 2, | ||||
|     DW_VIS_qualified = 3 | ||||
|   }; | ||||
|  | ||||
| /* virtuality */ | ||||
| enum dwarf_virtuality_attribute | ||||
|   { | ||||
|     DW_VIRTUALITY_none = 0, | ||||
|     DW_VIRTUALITY_virtual = 1, | ||||
|     DW_VIRTUALITY_pure_virtual = 2 | ||||
|   }; | ||||
|  | ||||
| /* case sensitivity */ | ||||
| enum dwarf_id_case | ||||
|   { | ||||
|     DW_ID_case_sensitive = 0, | ||||
|     DW_ID_up_case = 1, | ||||
|     DW_ID_down_case = 2, | ||||
|     DW_ID_case_insensitive = 3 | ||||
|   }; | ||||
|  | ||||
| /* calling convention */ | ||||
| enum dwarf_calling_convention | ||||
|   { | ||||
|     DW_CC_normal = 0x1, | ||||
|     DW_CC_program = 0x2, | ||||
|     DW_CC_nocall = 0x3 | ||||
|   }; | ||||
|  | ||||
| #define DW_CC_lo_user 0x40 | ||||
| #define DW_CC_hi_user 0xff | ||||
|  | ||||
| /* inline attribute */ | ||||
| enum dwarf_inline_attribute | ||||
|   { | ||||
|     DW_INL_not_inlined = 0, | ||||
|     DW_INL_inlined = 1, | ||||
|     DW_INL_declared_not_inlined = 2, | ||||
|     DW_INL_declared_inlined = 3 | ||||
|   }; | ||||
|  | ||||
| /* descriminant lists */ | ||||
| enum dwarf_descrim_list | ||||
|   { | ||||
|     DW_DSC_label = 0, | ||||
|     DW_DSC_range = 1 | ||||
|   }; | ||||
|  | ||||
| /* line number opcodes */ | ||||
| enum dwarf_line_number_ops | ||||
|   { | ||||
|     DW_LNS_extended_op = 0, | ||||
|     DW_LNS_copy = 1, | ||||
|     DW_LNS_advance_pc = 2, | ||||
|     DW_LNS_advance_line = 3, | ||||
|     DW_LNS_set_file = 4, | ||||
|     DW_LNS_set_column = 5, | ||||
|     DW_LNS_negate_stmt = 6, | ||||
|     DW_LNS_set_basic_block = 7, | ||||
|     DW_LNS_const_add_pc = 8, | ||||
|     DW_LNS_fixed_advance_pc = 9 | ||||
|   }; | ||||
|  | ||||
| /* line number extended opcodes */ | ||||
| enum dwarf_line_number_x_ops | ||||
|   { | ||||
|     DW_LNE_end_sequence = 1, | ||||
|     DW_LNE_set_address = 2, | ||||
|     DW_LNE_define_file = 3 | ||||
|   }; | ||||
|  | ||||
| /* call frame information */ | ||||
| enum dwarf_call_frame_info | ||||
|   { | ||||
|     DW_CFA_advance_loc = 0x40, | ||||
|     DW_CFA_offset = 0x80, | ||||
|     DW_CFA_restore = 0xc0, | ||||
|     DW_CFA_nop = 0x00, | ||||
|     DW_CFA_set_loc = 0x01, | ||||
|     DW_CFA_advance_loc1 = 0x02, | ||||
|     DW_CFA_advance_loc2 = 0x03, | ||||
|     DW_CFA_advance_loc4 = 0x04, | ||||
|     DW_CFA_offset_extended = 0x05, | ||||
|     DW_CFA_restore_extended = 0x06, | ||||
|     DW_CFA_undefined = 0x07, | ||||
|     DW_CFA_same_value = 0x08, | ||||
|     DW_CFA_register = 0x09, | ||||
|     DW_CFA_remember_state = 0x0a, | ||||
|     DW_CFA_restore_state = 0x0b, | ||||
|     DW_CFA_def_cfa = 0x0c, | ||||
|     DW_CFA_def_cfa_register = 0x0d, | ||||
|     DW_CFA_def_cfa_offset = 0x0e, | ||||
|     /* SGI/MIPS specific */ | ||||
|     DW_CFA_MIPS_advance_loc8 = 0x1d | ||||
|   }; | ||||
|  | ||||
| #define DW_CIE_ID	  0xffffffff | ||||
| #define DW_CIE_VERSION	  1 | ||||
|  | ||||
| #define DW_CFA_extended   0 | ||||
| #define DW_CFA_low_user   0x1c | ||||
| #define DW_CFA_high_user  0x3f | ||||
|  | ||||
| #define DW_CHILDREN_no		     0x00 | ||||
| #define DW_CHILDREN_yes		     0x01 | ||||
|  | ||||
| #define DW_ADDR_none		0 | ||||
|  | ||||
| /* Source language names and codes.  */ | ||||
|  | ||||
| enum dwarf_source_language | ||||
|   { | ||||
|     DW_LANG_C89 = 0x0001, | ||||
|     DW_LANG_C = 0x0002, | ||||
|     DW_LANG_Ada83 = 0x0003, | ||||
|     DW_LANG_C_plus_plus = 0x0004, | ||||
|     DW_LANG_Cobol74 = 0x0005, | ||||
|     DW_LANG_Cobol85 = 0x0006, | ||||
|     DW_LANG_Fortran77 = 0x0007, | ||||
|     DW_LANG_Fortran90 = 0x0008, | ||||
|     DW_LANG_Pascal83 = 0x0009, | ||||
|     DW_LANG_Modula2 = 0x000a, | ||||
|     DW_LANG_Mips_Assembler = 0x8001 | ||||
|   }; | ||||
|  | ||||
|  | ||||
| #define DW_LANG_lo_user 0x8000	/* implementation-defined range start */ | ||||
| #define DW_LANG_hi_user 0xffff	/* implementation-defined range start */ | ||||
|  | ||||
| /* Names and codes for macro information.  */ | ||||
|  | ||||
| enum dwarf_macinfo_record_type | ||||
|   { | ||||
|     DW_MACINFO_define = 1, | ||||
|     DW_MACINFO_undef = 2, | ||||
|     DW_MACINFO_start_file = 3, | ||||
|     DW_MACINFO_end_file = 4, | ||||
|     DW_MACINFO_vendor_ext = 255 | ||||
|   }; | ||||
|  | ||||
| #endif /* _ELF_DWARF2_H */ | ||||
							
								
								
									
										256
									
								
								include/elf/external.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								include/elf/external.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,256 @@ | ||||
| /* ELF support for BFD. | ||||
|    Copyright (C) 1991, 92, 93, 95, 97, 98, 1999 Free Software Foundation, Inc. | ||||
|  | ||||
|    Written by Fred Fish @ Cygnus Support, from information published | ||||
|    in "UNIX System V Release 4, Programmers Guide: ANSI C and | ||||
|    Programming Support Tools". | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
|  | ||||
| /* This file is part of ELF support for BFD, and contains the portions | ||||
|    that describe how ELF is represented externally by the BFD library. | ||||
|    I.E. it describes the in-file representation of ELF.  It requires | ||||
|    the elf-common.h file which contains the portions that are common to | ||||
|    both the internal and external representations. */ | ||||
|  | ||||
| /* The 64-bit stuff is kind of random.  Perhaps someone will publish a | ||||
|    spec someday.  */ | ||||
|  | ||||
| #ifndef _ELF_EXTERNAL_H | ||||
| #define _ELF_EXTERNAL_H | ||||
|  | ||||
| /* ELF Header (32-bit implementations) */ | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char	e_ident[16];		/* ELF "magic number" */ | ||||
|   unsigned char	e_type[2];		/* Identifies object file type */ | ||||
|   unsigned char	e_machine[2];		/* Specifies required architecture */ | ||||
|   unsigned char	e_version[4];		/* Identifies object file version */ | ||||
|   unsigned char	e_entry[4];		/* Entry point virtual address */ | ||||
|   unsigned char	e_phoff[4];		/* Program header table file offset */ | ||||
|   unsigned char	e_shoff[4];		/* Section header table file offset */ | ||||
|   unsigned char	e_flags[4];		/* Processor-specific flags */ | ||||
|   unsigned char	e_ehsize[2];		/* ELF header size in bytes */ | ||||
|   unsigned char	e_phentsize[2];		/* Program header table entry size */ | ||||
|   unsigned char	e_phnum[2];		/* Program header table entry count */ | ||||
|   unsigned char	e_shentsize[2];		/* Section header table entry size */ | ||||
|   unsigned char	e_shnum[2];		/* Section header table entry count */ | ||||
|   unsigned char	e_shstrndx[2];		/* Section header string table index */ | ||||
| } Elf32_External_Ehdr; | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char	e_ident[16];		/* ELF "magic number" */ | ||||
|   unsigned char	e_type[2];		/* Identifies object file type */ | ||||
|   unsigned char	e_machine[2];		/* Specifies required architecture */ | ||||
|   unsigned char	e_version[4];		/* Identifies object file version */ | ||||
|   unsigned char	e_entry[8];		/* Entry point virtual address */ | ||||
|   unsigned char	e_phoff[8];		/* Program header table file offset */ | ||||
|   unsigned char	e_shoff[8];		/* Section header table file offset */ | ||||
|   unsigned char	e_flags[4];		/* Processor-specific flags */ | ||||
|   unsigned char	e_ehsize[2];		/* ELF header size in bytes */ | ||||
|   unsigned char	e_phentsize[2];		/* Program header table entry size */ | ||||
|   unsigned char	e_phnum[2];		/* Program header table entry count */ | ||||
|   unsigned char	e_shentsize[2];		/* Section header table entry size */ | ||||
|   unsigned char	e_shnum[2];		/* Section header table entry count */ | ||||
|   unsigned char	e_shstrndx[2];		/* Section header string table index */ | ||||
| } Elf64_External_Ehdr; | ||||
|  | ||||
| /* Program header */ | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char	p_type[4];		/* Identifies program segment type */ | ||||
|   unsigned char	p_offset[4];		/* Segment file offset */ | ||||
|   unsigned char	p_vaddr[4];		/* Segment virtual address */ | ||||
|   unsigned char	p_paddr[4];		/* Segment physical address */ | ||||
|   unsigned char	p_filesz[4];		/* Segment size in file */ | ||||
|   unsigned char	p_memsz[4];		/* Segment size in memory */ | ||||
|   unsigned char	p_flags[4];		/* Segment flags */ | ||||
|   unsigned char	p_align[4];		/* Segment alignment, file & memory */ | ||||
| } Elf32_External_Phdr; | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char	p_type[4];		/* Identifies program segment type */ | ||||
|   unsigned char	p_flags[4];		/* Segment flags */ | ||||
|   unsigned char	p_offset[8];		/* Segment file offset */ | ||||
|   unsigned char	p_vaddr[8];		/* Segment virtual address */ | ||||
|   unsigned char	p_paddr[8];		/* Segment physical address */ | ||||
|   unsigned char	p_filesz[8];		/* Segment size in file */ | ||||
|   unsigned char	p_memsz[8];		/* Segment size in memory */ | ||||
|   unsigned char	p_align[8];		/* Segment alignment, file & memory */ | ||||
| } Elf64_External_Phdr; | ||||
|  | ||||
| /* Section header */ | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char	sh_name[4];		/* Section name, index in string tbl */ | ||||
|   unsigned char	sh_type[4];		/* Type of section */ | ||||
|   unsigned char	sh_flags[4];		/* Miscellaneous section attributes */ | ||||
|   unsigned char	sh_addr[4];		/* Section virtual addr at execution */ | ||||
|   unsigned char	sh_offset[4];		/* Section file offset */ | ||||
|   unsigned char	sh_size[4];		/* Size of section in bytes */ | ||||
|   unsigned char	sh_link[4];		/* Index of another section */ | ||||
|   unsigned char	sh_info[4];		/* Additional section information */ | ||||
|   unsigned char	sh_addralign[4];	/* Section alignment */ | ||||
|   unsigned char	sh_entsize[4];		/* Entry size if section holds table */ | ||||
| } Elf32_External_Shdr; | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char	sh_name[4];		/* Section name, index in string tbl */ | ||||
|   unsigned char	sh_type[4];		/* Type of section */ | ||||
|   unsigned char	sh_flags[8];		/* Miscellaneous section attributes */ | ||||
|   unsigned char	sh_addr[8];		/* Section virtual addr at execution */ | ||||
|   unsigned char	sh_offset[8];		/* Section file offset */ | ||||
|   unsigned char	sh_size[8];		/* Size of section in bytes */ | ||||
|   unsigned char	sh_link[4];		/* Index of another section */ | ||||
|   unsigned char	sh_info[4];		/* Additional section information */ | ||||
|   unsigned char	sh_addralign[8];	/* Section alignment */ | ||||
|   unsigned char	sh_entsize[8];		/* Entry size if section holds table */ | ||||
| } Elf64_External_Shdr; | ||||
|  | ||||
| /* Symbol table entry */ | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char	st_name[4];		/* Symbol name, index in string tbl */ | ||||
|   unsigned char	st_value[4];		/* Value of the symbol */ | ||||
|   unsigned char	st_size[4];		/* Associated symbol size */ | ||||
|   unsigned char	st_info[1];		/* Type and binding attributes */ | ||||
|   unsigned char	st_other[1];		/* No defined meaning, 0 */ | ||||
|   unsigned char	st_shndx[2];		/* Associated section index */ | ||||
| } Elf32_External_Sym; | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char	st_name[4];		/* Symbol name, index in string tbl */ | ||||
|   unsigned char	st_info[1];		/* Type and binding attributes */ | ||||
|   unsigned char	st_other[1];		/* No defined meaning, 0 */ | ||||
|   unsigned char	st_shndx[2];		/* Associated section index */ | ||||
|   unsigned char	st_value[8];		/* Value of the symbol */ | ||||
|   unsigned char	st_size[8];		/* Associated symbol size */ | ||||
| } Elf64_External_Sym; | ||||
|  | ||||
| /* Note segments */ | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char	namesz[4];		/* Size of entry's owner string */ | ||||
|   unsigned char	descsz[4];		/* Size of the note descriptor */ | ||||
|   unsigned char	type[4];		/* Interpretation of the descriptor */ | ||||
|   char		name[1];		/* Start of the name+desc data */ | ||||
| } Elf_External_Note; | ||||
|  | ||||
| /* Relocation Entries */ | ||||
| typedef struct { | ||||
|   unsigned char r_offset[4];	/* Location at which to apply the action */ | ||||
|   unsigned char	r_info[4];	/* index and type of relocation */ | ||||
| } Elf32_External_Rel; | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char r_offset[4];	/* Location at which to apply the action */ | ||||
|   unsigned char	r_info[4];	/* index and type of relocation */ | ||||
|   unsigned char	r_addend[4];	/* Constant addend used to compute value */ | ||||
| } Elf32_External_Rela; | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char r_offset[8];	/* Location at which to apply the action */ | ||||
|   unsigned char	r_info[8];	/* index and type of relocation */ | ||||
| } Elf64_External_Rel; | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char r_offset[8];	/* Location at which to apply the action */ | ||||
|   unsigned char	r_info[8];	/* index and type of relocation */ | ||||
|   unsigned char	r_addend[8];	/* Constant addend used to compute value */ | ||||
| } Elf64_External_Rela; | ||||
|  | ||||
| /* dynamic section structure */ | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char	d_tag[4];		/* entry tag value */ | ||||
|   union { | ||||
|     unsigned char	d_val[4]; | ||||
|     unsigned char	d_ptr[4]; | ||||
|   } d_un; | ||||
| } Elf32_External_Dyn; | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char	d_tag[8];		/* entry tag value */ | ||||
|   union { | ||||
|     unsigned char	d_val[8]; | ||||
|     unsigned char	d_ptr[8]; | ||||
|   } d_un; | ||||
| } Elf64_External_Dyn; | ||||
|  | ||||
| /* The version structures are currently size independent.  They are | ||||
|    named without a 32 or 64.  If that ever changes, these structures | ||||
|    will need to be renamed.  */ | ||||
|  | ||||
| /* This structure appears in a SHT_GNU_verdef section.  */ | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char		vd_version[2]; | ||||
|   unsigned char		vd_flags[2]; | ||||
|   unsigned char		vd_ndx[2]; | ||||
|   unsigned char		vd_cnt[2]; | ||||
|   unsigned char		vd_hash[4]; | ||||
|   unsigned char		vd_aux[4]; | ||||
|   unsigned char		vd_next[4]; | ||||
| } Elf_External_Verdef; | ||||
|  | ||||
| /* This structure appears in a SHT_GNU_verdef section.  */ | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char		vda_name[4]; | ||||
|   unsigned char		vda_next[4]; | ||||
| } Elf_External_Verdaux; | ||||
|  | ||||
| /* This structure appears in a SHT_GNU_verneed section.  */ | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char		vn_version[2]; | ||||
|   unsigned char		vn_cnt[2]; | ||||
|   unsigned char		vn_file[4]; | ||||
|   unsigned char		vn_aux[4]; | ||||
|   unsigned char		vn_next[4]; | ||||
| } Elf_External_Verneed; | ||||
|  | ||||
| /* This structure appears in a SHT_GNU_verneed section.  */ | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char		vna_hash[4]; | ||||
|   unsigned char		vna_flags[2]; | ||||
|   unsigned char		vna_other[2]; | ||||
|   unsigned char		vna_name[4]; | ||||
|   unsigned char		vna_next[4]; | ||||
| } Elf_External_Vernaux; | ||||
|  | ||||
| /* This structure appears in a SHT_GNU_versym section.  This is not a | ||||
|    standard ELF structure; ELF just uses Elf32_Half.  */ | ||||
|  | ||||
| typedef struct { | ||||
|   unsigned char		vs_vers[2]; | ||||
| } | ||||
| #ifdef __GNUC__ | ||||
|   __attribute__ ((packed)) | ||||
| #endif | ||||
|   Elf_External_Versym; | ||||
|  | ||||
| /* Structure for syminfo section.  */ | ||||
| typedef struct | ||||
| { | ||||
|   unsigned char		si_boundto[2]; | ||||
|   unsigned char		si_flags[2]; | ||||
| } Elf_External_Syminfo; | ||||
|  | ||||
| #endif /* _ELF_EXTERNAL_H */ | ||||
							
								
								
									
										43
									
								
								include/elf/fr30.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								include/elf/fr30.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| /* FR30 ELF support for BFD. | ||||
|    Copyright (C) 1998 Free Software Foundation, Inc. | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software Foundation, Inc., | ||||
| 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| #ifndef _ELF_FR30_H | ||||
| #define _ELF_FR30_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocations.  */ | ||||
| START_RELOC_NUMBERS (elf_fr30_reloc_type) | ||||
|   RELOC_NUMBER (R_FR30_NONE, 0) | ||||
|   RELOC_NUMBER (R_FR30_8, 1) | ||||
|   RELOC_NUMBER (R_FR30_20, 2) | ||||
|   RELOC_NUMBER (R_FR30_32, 3) | ||||
|   RELOC_NUMBER (R_FR30_48, 4) | ||||
|   RELOC_NUMBER (R_FR30_6_IN_4, 5) | ||||
|   RELOC_NUMBER (R_FR30_8_IN_8, 6) | ||||
|   RELOC_NUMBER (R_FR30_9_IN_8, 7) | ||||
|   RELOC_NUMBER (R_FR30_10_IN_8, 8) | ||||
|   RELOC_NUMBER (R_FR30_9_PCREL, 9) | ||||
|   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 | ||||
|  | ||||
| #endif /* _ELF_FR30_H */ | ||||
							
								
								
									
										187
									
								
								include/elf/hppa.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										187
									
								
								include/elf/hppa.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,187 @@ | ||||
| /* HPPA ELF support for BFD. | ||||
|    Copyright (C) 1993, 1994 Free Software Foundation, Inc. | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* This file holds definitions specific to the HPPA ELF ABI.  Note | ||||
|    that most of this is not actually implemented by BFD.  */ | ||||
|  | ||||
| #ifndef _ELF_HPPA_H | ||||
| #define _ELF_HPPA_H | ||||
|  | ||||
| /* Processor specific flags for the ELF header e_flags field.  */ | ||||
|  | ||||
| /* Target processor IDs to be placed in the low 16 bits of the flags | ||||
|    field.  Note these names are shared with SOM, and therefore do not | ||||
|    follow ELF naming conventions.  */ | ||||
|  | ||||
| /* PA 1.0 big endian.  */ | ||||
| #ifndef CPU_PA_RISC1_0 | ||||
| #define CPU_PA_RISC1_0		0x0000020b | ||||
| #endif | ||||
|  | ||||
| /* PA 1.1 big endian.  */ | ||||
| #ifndef CPU_PA_RISC1_1 | ||||
| #define CPU_PA_RISC1_1		0x00000210 | ||||
| #endif | ||||
|  | ||||
| /* PA 1.0 little endian (unsupported) is 0x0000028b.  */ | ||||
| /* PA 1.1 little endian (unsupported) is 0x00000290.  */ | ||||
|  | ||||
| /* Trap null address dereferences.  */ | ||||
| #define ELF_PARISC_TRAPNIL	0x00010000 | ||||
|  | ||||
| /* .PARISC.archext section is present.  */ | ||||
| #define EF_PARISC_EXT		0x00020000 | ||||
|  | ||||
| /* Processor specific section types.  */ | ||||
|  | ||||
| /* Holds the global offset table, a table of pointers to external | ||||
|    data.  */ | ||||
| #define SHT_PARISC_GOT		SHT_LOPROC+0 | ||||
|  | ||||
| /* Nonloadable section containing information in architecture | ||||
|    extensions used by the code.  */ | ||||
| #define SHT_PARISC_ARCH		SHT_LOPROC+1 | ||||
|  | ||||
| /* Section in which $global$ is defined.  */ | ||||
| #define SHT_PARISC_GLOBAL	SHT_LOPROC+2 | ||||
|  | ||||
| /* Section holding millicode routines (mul, div, rem, dyncall, etc.  */ | ||||
| #define SHT_PARISC_MILLI	SHT_LOPROC+3 | ||||
|  | ||||
| /* Section holding unwind information for use by debuggers.  */ | ||||
| #define SHT_PARISC_UNWIND	SHT_LOPROC+4 | ||||
|  | ||||
| /* Section holding the procedure linkage table.  */ | ||||
| #define SHT_PARISC_PLT		SHT_LOPROC+5 | ||||
|  | ||||
| /* Short initialized and uninitialized data.  */ | ||||
| #define SHT_PARISC_SDATA	SHT_LOPROC+6 | ||||
| #define SHT_PARISC_SBSS		SHT_LOPROC+7 | ||||
|  | ||||
| /* Optional section holding argument location/relocation info.  */ | ||||
| #define SHT_PARISC_SYMEXTN	SHT_LOPROC+8 | ||||
|  | ||||
| /* Option section for linker stubs.  */ | ||||
| #define SHT_PARISC_STUBS	SHT_LOPROC+9 | ||||
|  | ||||
| /* Processor specific section flags.  */ | ||||
|  | ||||
| /* This section is near the global data pointer and thus allows short | ||||
|    addressing modes to be used.  */ | ||||
| #define SHF_PARISC_SHORT        0x20000000 | ||||
|  | ||||
| /* Processor specific symbol types.  */ | ||||
|  | ||||
| /* Millicode function entry point.  */ | ||||
| #define STT_PARISC_MILLICODE	STT_LOPROC+0 | ||||
|  | ||||
|  | ||||
| /* ELF/HPPA relocation types */ | ||||
|  | ||||
| #include "reloc-macros.h" | ||||
|  | ||||
| START_RELOC_NUMBERS (elf32_hppa_reloc_type) | ||||
|      RELOC_NUMBER (R_PARISC_NONE,      0)	/* No reloc */ | ||||
|       | ||||
|      /* These relocation types do simple base + offset relocations.  */ | ||||
|  | ||||
|      RELOC_NUMBER (R_PARISC_DIR32,  0x01) | ||||
|      RELOC_NUMBER (R_PARISC_DIR21L, 0x02) | ||||
|      RELOC_NUMBER (R_PARISC_DIR17R, 0x03) | ||||
|      RELOC_NUMBER (R_PARISC_DIR17F, 0x04) | ||||
|      RELOC_NUMBER (R_PARISC_DIR14R, 0x06) | ||||
|  | ||||
|     /* PC-relative relocation types | ||||
|        Typically used for calls. | ||||
|        Note PCREL17C and PCREL17F differ only in overflow handling. | ||||
|        PCREL17C never reports a relocation error. | ||||
|  | ||||
|        When supporting argument relocations, function calls must be | ||||
|        accompanied by parameter relocation information.  This information is  | ||||
|        carried in the ten high-order bits of the addend field.  The remaining | ||||
|        22 bits of of the addend field are sign-extended to form the Addend. | ||||
|  | ||||
|        Note the code to build argument relocations depends on the  | ||||
|        addend being zero.  A consequence of this limitation is GAS | ||||
|        can not perform relocation reductions for function symbols.  */ | ||||
|       | ||||
|      RELOC_NUMBER (R_PARISC_PCREL21L, 0x0a) | ||||
|      RELOC_NUMBER (R_PARISC_PCREL17R, 0x0b) | ||||
|      RELOC_NUMBER (R_PARISC_PCREL17F, 0x0c) | ||||
|      RELOC_NUMBER (R_PARISC_PCREL17C, 0x0d) | ||||
|      RELOC_NUMBER (R_PARISC_PCREL14R, 0x0e) | ||||
|      RELOC_NUMBER (R_PARISC_PCREL14F, 0x0f) | ||||
|  | ||||
|     /* DP-relative relocation types.  */ | ||||
|      RELOC_NUMBER (R_PARISC_DPREL21L, 0x12) | ||||
|      RELOC_NUMBER (R_PARISC_DPREL14R, 0x16) | ||||
|      RELOC_NUMBER (R_PARISC_DPREL14F, 0x17) | ||||
|  | ||||
|     /* Data linkage table (DLT) relocation types | ||||
|  | ||||
|        SOM DLT_REL fixup requests are used to for static data references | ||||
|        from position-independent code within shared libraries.  They are | ||||
|        similar to the GOT relocation types in some SVR4 implementations.  */ | ||||
|  | ||||
|      RELOC_NUMBER (R_PARISC_DLTREL21L, 0x1a) | ||||
|      RELOC_NUMBER (R_PARISC_DLTREL14R, 0x1e) | ||||
|      RELOC_NUMBER (R_PARISC_DLTREL14F, 0x1f) | ||||
|  | ||||
|     /* DLT indirect relocation types  */ | ||||
|      RELOC_NUMBER (R_PARISC_DLTIND21L, 0x22) | ||||
|      RELOC_NUMBER (R_PARISC_DLTIND14R, 0x26) | ||||
|      RELOC_NUMBER (R_PARISC_DLTIND14F, 0x27) | ||||
|  | ||||
|     /* Base relative relocation types.  Ugh.  These imply lots of state */ | ||||
|      RELOC_NUMBER (R_PARISC_SETBASE,    0x28) | ||||
|      RELOC_NUMBER (R_PARISC_BASEREL32,  0x29) | ||||
|      RELOC_NUMBER (R_PARISC_BASEREL21L, 0x2a) | ||||
|      RELOC_NUMBER (R_PARISC_BASEREL17R, 0x2b) | ||||
|      RELOC_NUMBER (R_PARISC_BASEREL17F, 0x2c) | ||||
|      RELOC_NUMBER (R_PARISC_BASEREL14R, 0x2e) | ||||
|      RELOC_NUMBER (R_PARISC_BASEREL14F, 0x2f) | ||||
|  | ||||
|     /* Segment relative relocation types.  */ | ||||
|      RELOC_NUMBER (R_PARISC_TEXTREL32, 0x31) | ||||
|      RELOC_NUMBER (R_PARISC_DATAREL32, 0x39) | ||||
|  | ||||
|     /* Plabel relocation types.  */ | ||||
|      RELOC_NUMBER (R_PARISC_PLABEL32,  0x41) | ||||
|      RELOC_NUMBER (R_PARISC_PLABEL21L, 0x42) | ||||
|      RELOC_NUMBER (R_PARISC_PLABEL14R, 0x46) | ||||
|  | ||||
|     /* PLT relocations.  */ | ||||
|      RELOC_NUMBER (R_PARISC_PLTIND21L, 0x82) | ||||
|      RELOC_NUMBER (R_PARISC_PLTIND14R, 0x86) | ||||
|      RELOC_NUMBER (R_PARISC_PLTIND14F, 0x87) | ||||
|  | ||||
|     /* Misc relocation types.  */ | ||||
|      RELOC_NUMBER (R_PARISC_COPY,     0x88) | ||||
|      RELOC_NUMBER (R_PARISC_GLOB_DAT, 0x89) | ||||
|      RELOC_NUMBER (R_PARISC_JMP_SLOT, 0x8a) | ||||
|      RELOC_NUMBER (R_PARISC_RELATIVE, 0x8b) | ||||
|       | ||||
|      EMPTY_RELOC (R_PARISC_UNIMPLEMENTED) | ||||
| END_RELOC_NUMBERS | ||||
|  | ||||
| #ifndef RELOC_MACROS_GEN_FUNC | ||||
| typedef enum elf32_hppa_reloc_type elf32_hppa_reloc_type; | ||||
| #endif | ||||
|  | ||||
| #endif /* _ELF_HPPA_H */ | ||||
							
								
								
									
										49
									
								
								include/elf/i386.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								include/elf/i386.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,49 @@ | ||||
| /* ix86 ELF support for BFD. | ||||
|    Copyright (C) 1998 Free Software Foundation, Inc. | ||||
|  | ||||
|    This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
|    This program is free software; you can redistribute it and/or modify | ||||
|    it under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, or | ||||
|    (at your option) any later version. | ||||
|  | ||||
|    This program is distributed in the hope that it will be useful, | ||||
|    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|    GNU General Public License for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with this program; if not, write to the Free Software Foundation, | ||||
|    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| #ifndef _ELF_I386_H | ||||
| #define _ELF_I386_H | ||||
|  | ||||
| #include "reloc-macros.h" | ||||
|  | ||||
| START_RELOC_NUMBERS (elf_i386_reloc_type) | ||||
|      RELOC_NUMBER (R_386_NONE,      0)	/* No reloc */ | ||||
|      RELOC_NUMBER (R_386_32,        1)	/* Direct 32 bit  */ | ||||
|      RELOC_NUMBER (R_386_PC32,      2)	/* PC relative 32 bit */ | ||||
|      RELOC_NUMBER (R_386_GOT32,     3)	/* 32 bit GOT entry */ | ||||
|      RELOC_NUMBER (R_386_PLT32,	    4)	/* 32 bit PLT address */ | ||||
|      RELOC_NUMBER (R_386_COPY,	    5)	/* Copy symbol at runtime */ | ||||
|      RELOC_NUMBER (R_386_GLOB_DAT,  6)	/* Create GOT entry */ | ||||
|      RELOC_NUMBER (R_386_JUMP_SLOT, 7)	/* Create PLT entry */ | ||||
|      RELOC_NUMBER (R_386_RELATIVE,  8)	/* Adjust by program base */ | ||||
|      RELOC_NUMBER (R_386_GOTOFF,    9)	/* 32 bit offset to GOT */ | ||||
|      RELOC_NUMBER (R_386_GOTPC,    10)	/* 32 bit PC relative offset to GOT */ | ||||
|      FAKE_RELOC   (FIRST_INVALID_RELOC, 11) | ||||
|      FAKE_RELOC   (LAST_INVALID_RELOC,  19) | ||||
|      RELOC_NUMBER (R_386_16,       20) | ||||
|      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 | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										312
									
								
								include/elf/internal.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										312
									
								
								include/elf/internal.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,312 @@ | ||||
| /* ELF support for BFD. | ||||
|    Copyright (C) 1991, 92, 93, 94, 95, 97, 1998 Free Software Foundation, Inc. | ||||
|  | ||||
|    Written by Fred Fish @ Cygnus Support, from information published | ||||
|    in "UNIX System V Release 4, Programmers Guide: ANSI C and | ||||
|    Programming Support Tools". | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
|  | ||||
| /* This file is part of ELF support for BFD, and contains the portions | ||||
|    that describe how ELF is represented internally in the BFD library. | ||||
|    I.E. it describes the in-memory representation of ELF.  It requires | ||||
|    the elf-common.h file which contains the portions that are common to | ||||
|    both the internal and external representations. */ | ||||
|  | ||||
|  | ||||
| /* NOTE that these structures are not kept in the same order as they appear | ||||
|    in the object file.  In some cases they've been reordered for more optimal | ||||
|    packing under various circumstances.  */ | ||||
|  | ||||
| #ifndef _ELF_INTERNAL_H | ||||
| #define _ELF_INTERNAL_H | ||||
|  | ||||
| /* ELF Header */ | ||||
|  | ||||
| #define EI_NIDENT	16		/* Size of e_ident[] */ | ||||
|  | ||||
| typedef struct elf_internal_ehdr { | ||||
|   unsigned char		e_ident[EI_NIDENT];	/* ELF "magic number" */ | ||||
|   bfd_vma		e_entry;		/* Entry point virtual address */ | ||||
|   bfd_size_type		e_phoff;		/* Program header table file offset */ | ||||
|   bfd_size_type		e_shoff;		/* Section header table file offset */ | ||||
|   unsigned long		e_version;		/* Identifies object file version */ | ||||
|   unsigned long		e_flags;		/* Processor-specific flags */ | ||||
|   unsigned short	e_type;			/* Identifies object file type */ | ||||
|   unsigned short	e_machine;		/* Specifies required architecture */ | ||||
|   unsigned short	e_ehsize;		/* ELF header size in bytes */ | ||||
|   unsigned short	e_phentsize;		/* Program header table entry size */ | ||||
|   unsigned short	e_phnum;		/* Program header table entry count */ | ||||
|   unsigned short	e_shentsize;		/* Section header table entry size */ | ||||
|   unsigned short	e_shnum;		/* Section header table entry count */ | ||||
|   unsigned short	e_shstrndx;		/* Section header string table index */ | ||||
| } Elf_Internal_Ehdr; | ||||
|  | ||||
| #define elf32_internal_ehdr elf_internal_ehdr | ||||
| #define Elf32_Internal_Ehdr Elf_Internal_Ehdr | ||||
| #define elf64_internal_ehdr elf_internal_ehdr | ||||
| #define Elf64_Internal_Ehdr Elf_Internal_Ehdr | ||||
|  | ||||
| /* Program header */ | ||||
|  | ||||
| struct elf_internal_phdr { | ||||
|   unsigned long	p_type;			/* Identifies program segment type */ | ||||
|   unsigned long	p_flags;		/* Segment flags */ | ||||
|   bfd_vma	p_offset;		/* Segment file offset */ | ||||
|   bfd_vma	p_vaddr;		/* Segment virtual address */ | ||||
|   bfd_vma	p_paddr;		/* Segment physical address */ | ||||
|   bfd_vma	p_filesz;		/* Segment size in file */ | ||||
|   bfd_vma	p_memsz;		/* Segment size in memory */ | ||||
|   bfd_vma	p_align;		/* Segment alignment, file & memory */ | ||||
| }; | ||||
|  | ||||
| typedef struct elf_internal_phdr Elf_Internal_Phdr; | ||||
| #define elf32_internal_phdr elf_internal_phdr | ||||
| #define Elf32_Internal_Phdr Elf_Internal_Phdr | ||||
| #define elf64_internal_phdr elf_internal_phdr | ||||
| #define Elf64_Internal_Phdr Elf_Internal_Phdr | ||||
|  | ||||
| /* Section header */ | ||||
|  | ||||
| typedef struct elf_internal_shdr { | ||||
|   unsigned int	sh_name;		/* Section name, index in string tbl */ | ||||
|   unsigned int	sh_type;		/* Type of section */ | ||||
|   bfd_vma	sh_flags;		/* Miscellaneous section attributes */ | ||||
|   bfd_vma	sh_addr;		/* Section virtual addr at execution */ | ||||
|   bfd_size_type	sh_size;		/* Size of section in bytes */ | ||||
|   bfd_size_type	sh_entsize;		/* Entry size if section holds table */ | ||||
|   unsigned long	sh_link;		/* Index of another section */ | ||||
|   unsigned long	sh_info;		/* Additional section information */ | ||||
|   file_ptr	sh_offset;		/* Section file offset */ | ||||
|   unsigned int	sh_addralign;		/* Section alignment */ | ||||
|  | ||||
|   /* The internal rep also has some cached info associated with it. */ | ||||
|   asection *	bfd_section;		/* Associated BFD section.  */ | ||||
|   PTR		contents;		/* Section contents.  */ | ||||
| } Elf_Internal_Shdr; | ||||
|  | ||||
| #define elf32_internal_shdr elf_internal_shdr | ||||
| #define Elf32_Internal_Shdr Elf_Internal_Shdr | ||||
| #define elf64_internal_shdr elf_internal_shdr | ||||
| #define Elf64_Internal_Shdr Elf_Internal_Shdr | ||||
|  | ||||
| /* Symbol table entry */ | ||||
|  | ||||
| struct elf_internal_sym { | ||||
|   bfd_vma	st_value;		/* Value of the symbol */ | ||||
|   bfd_vma	st_size;		/* Associated symbol size */ | ||||
|   unsigned long	st_name;		/* Symbol name, index in string tbl */ | ||||
|   unsigned char	st_info;		/* Type and binding attributes */ | ||||
|   unsigned char	st_other;		/* No defined meaning, 0 */ | ||||
|   unsigned short st_shndx;		/* Associated section index */ | ||||
| }; | ||||
|  | ||||
| typedef struct elf_internal_sym Elf_Internal_Sym; | ||||
|  | ||||
| #define elf32_internal_sym elf_internal_sym | ||||
| #define elf64_internal_sym elf_internal_sym | ||||
| #define Elf32_Internal_Sym Elf_Internal_Sym | ||||
| #define Elf64_Internal_Sym Elf_Internal_Sym | ||||
|  | ||||
| /* Note segments */ | ||||
|  | ||||
| typedef struct elf_internal_note { | ||||
|   unsigned long	namesz;			/* Size of entry's owner string */ | ||||
|   unsigned long	descsz;			/* Size of the note descriptor */ | ||||
|   unsigned long	type;			/* Interpretation of the descriptor */ | ||||
|   char *	namedata;		/* Start of the name+desc data */ | ||||
|   char *	descdata;		/* Start of the desc data */ | ||||
|   bfd_vma	descpos;		/* File offset of the descdata */ | ||||
| } Elf_Internal_Note; | ||||
| #define Elf32_Internal_Note	Elf_Internal_Note | ||||
| #define elf32_internal_note	elf_internal_note | ||||
|  | ||||
| /* Relocation Entries */ | ||||
|  | ||||
| typedef struct elf_internal_rel { | ||||
|   bfd_vma	r_offset;	/* Location at which to apply the action */ | ||||
|   /* This needs to support 64-bit values in elf64.  */ | ||||
|   bfd_vma	r_info;		/* index and type of relocation */ | ||||
| } Elf_Internal_Rel; | ||||
|  | ||||
| #define elf32_internal_rel elf_internal_rel | ||||
| #define Elf32_Internal_Rel Elf_Internal_Rel | ||||
| #define elf64_internal_rel elf_internal_rel | ||||
| #define Elf64_Internal_Rel Elf_Internal_Rel | ||||
|  | ||||
| typedef struct elf_internal_rela { | ||||
|   bfd_vma	r_offset;	/* Location at which to apply the action */ | ||||
|   bfd_vma	r_info;		/* Index and Type of relocation */ | ||||
|   bfd_signed_vma r_addend;	/* Constant addend used to compute value */ | ||||
| } Elf_Internal_Rela; | ||||
|  | ||||
| #define elf32_internal_rela elf_internal_rela | ||||
| #define elf64_internal_rela elf_internal_rela | ||||
| #define Elf32_Internal_Rela Elf_Internal_Rela | ||||
| #define Elf64_Internal_Rela Elf_Internal_Rela | ||||
|  | ||||
| /* dynamic section structure */ | ||||
|  | ||||
| typedef struct elf_internal_dyn { | ||||
|   /* This needs to support 64-bit values in elf64.  */ | ||||
|   bfd_vma d_tag;		/* entry tag value */ | ||||
|   union { | ||||
|     /* This needs to support 64-bit values in elf64.  */ | ||||
|     bfd_vma	d_val; | ||||
|     bfd_vma	d_ptr; | ||||
|   } d_un; | ||||
| } Elf_Internal_Dyn; | ||||
|  | ||||
| #define elf32_internal_dyn elf_internal_dyn | ||||
| #define elf64_internal_dyn elf_internal_dyn | ||||
| #define Elf32_Internal_Dyn Elf_Internal_Dyn | ||||
| #define Elf64_Internal_Dyn Elf_Internal_Dyn | ||||
|  | ||||
| /* This structure appears in a SHT_GNU_verdef section.  */ | ||||
|  | ||||
| typedef struct elf_internal_verdef { | ||||
|   unsigned short vd_version;	/* Version number of structure.  */ | ||||
|   unsigned short vd_flags;	/* Flags (VER_FLG_*).  */ | ||||
|   unsigned short vd_ndx;	/* Version index.  */ | ||||
|   unsigned short vd_cnt;	/* Number of verdaux entries.  */ | ||||
|   unsigned long	 vd_hash;	/* Hash of name.  */ | ||||
|   unsigned long	 vd_aux;	/* Offset to verdaux entries.  */ | ||||
|   unsigned long	 vd_next;	/* Offset to next verdef.  */ | ||||
|  | ||||
|   /* These fields are set up when BFD reads in the structure.  FIXME: | ||||
|      It would be cleaner to store these in a different structure.  */ | ||||
|   bfd			      *vd_bfd;		/* BFD.  */ | ||||
|   const char		      *vd_nodename;	/* Version name.  */ | ||||
|   struct elf_internal_verdef  *vd_nextdef;	/* vd_next as pointer.  */ | ||||
|   struct elf_internal_verdaux *vd_auxptr;	/* vd_aux as pointer.  */ | ||||
|   unsigned int		       vd_exp_refno;	/* Used by the linker.  */ | ||||
| } Elf_Internal_Verdef; | ||||
|  | ||||
| /* This structure appears in a SHT_GNU_verdef section.  */ | ||||
|  | ||||
| typedef struct elf_internal_verdaux { | ||||
|   unsigned long vda_name;	/* String table offset of name.  */ | ||||
|   unsigned long vda_next;	/* Offset to next verdaux.  */ | ||||
|  | ||||
|   /* These fields are set up when BFD reads in the structure.  FIXME: | ||||
|      It would be cleaner to store these in a different structure.  */ | ||||
|   const char *vda_nodename;			/* vda_name as pointer.  */ | ||||
|   struct elf_internal_verdaux *vda_nextptr;	/* vda_next as pointer.  */ | ||||
| } Elf_Internal_Verdaux; | ||||
|  | ||||
| /* This structure appears in a SHT_GNU_verneed section.  */ | ||||
|  | ||||
| typedef struct elf_internal_verneed { | ||||
|   unsigned short vn_version;	/* Version number of structure.  */ | ||||
|   unsigned short vn_cnt;	/* Number of vernaux entries.  */ | ||||
|   unsigned long	 vn_file;	/* String table offset of library name.  */ | ||||
|   unsigned long	 vn_aux;	/* Offset to vernaux entries.  */ | ||||
|   unsigned long	 vn_next;	/* Offset to next verneed.  */ | ||||
|  | ||||
|   /* These fields are set up when BFD reads in the structure.  FIXME: | ||||
|      It would be cleaner to store these in a different structure.  */ | ||||
|   bfd			      *vn_bfd;		/* BFD.  */ | ||||
|   const char                  *vn_filename;	/* vn_file as pointer.  */ | ||||
|   struct elf_internal_vernaux *vn_auxptr;	/* vn_aux as pointer.  */ | ||||
|   struct elf_internal_verneed *vn_nextref;	/* vn_nextref as pointer.  */ | ||||
| } Elf_Internal_Verneed; | ||||
|  | ||||
| /* This structure appears in a SHT_GNU_verneed section.  */ | ||||
|  | ||||
| typedef struct elf_internal_vernaux { | ||||
|   unsigned long	 vna_hash;	/* Hash of dependency name.  */ | ||||
|   unsigned short vna_flags;	/* Flags (VER_FLG_*).  */ | ||||
|   unsigned short vna_other;	/* Unused.  */ | ||||
|   unsigned long	 vna_name;	/* String table offset to version name.  */ | ||||
|   unsigned long	 vna_next;	/* Offset to next vernaux.  */ | ||||
|  | ||||
|   /* These fields are set up when BFD reads in the structure.  FIXME: | ||||
|      It would be cleaner to store these in a different structure.  */ | ||||
|   const char                  *vna_nodename;	/* vna_name as pointer.  */ | ||||
|   struct elf_internal_vernaux *vna_nextptr;	/* vna_next as pointer.  */ | ||||
| } Elf_Internal_Vernaux; | ||||
|  | ||||
| /* This structure appears in a SHT_GNU_versym section.  This is not a | ||||
|    standard ELF structure; ELF just uses Elf32_Half.  */ | ||||
|  | ||||
| typedef struct elf_internal_versym { | ||||
|   unsigned short vs_vers; | ||||
| } Elf_Internal_Versym; | ||||
|  | ||||
| /* Structure for syminfo section.  */ | ||||
| typedef struct | ||||
| { | ||||
|   unsigned short int 	si_boundto; | ||||
|   unsigned short int	si_flags; | ||||
| } Elf_Internal_Syminfo; | ||||
|  | ||||
|  | ||||
| #define elf32_internal_verdef elf_internal_verdef | ||||
| #define elf64_internal_verdef elf_internal_verdef | ||||
| #define elf32_internal_verdaux elf_internal_verdaux | ||||
| #define elf64_internal_verdaux elf_internal_verdaux | ||||
| #define elf32_internal_verneed elf_internal_verneed | ||||
| #define elf64_internal_verneed elf_internal_verneed | ||||
| #define elf32_internal_vernaux elf_internal_vernaux | ||||
| #define elf64_internal_vernaux elf_internal_vernaux | ||||
| #define elf32_internal_versym elf_internal_versym | ||||
| #define elf64_internal_versym elf_internal_versym | ||||
|  | ||||
| #define Elf32_Internal_Verdef Elf_Internal_Verdef | ||||
| #define Elf64_Internal_Verdef Elf_Internal_Verdef | ||||
| #define Elf32_Internal_Verdaux Elf_Internal_Verdaux | ||||
| #define Elf64_Internal_Verdaux Elf_Internal_Verdaux | ||||
| #define Elf32_Internal_Verneed Elf_Internal_Verneed | ||||
| #define Elf64_Internal_Verneed Elf_Internal_Verneed | ||||
| #define Elf32_Internal_Vernaux Elf_Internal_Vernaux | ||||
| #define Elf64_Internal_Vernaux Elf_Internal_Vernaux | ||||
| #define Elf32_Internal_Versym Elf_Internal_Versym | ||||
| #define Elf64_Internal_Versym Elf_Internal_Versym | ||||
| #define Elf32_Internal_Syminfo Elf_Internal_Syminfo | ||||
| #define Elf64_Internal_Syminfo Elf_Internal_Syminfo | ||||
|  | ||||
| /* This structure is used to describe how sections should be assigned | ||||
|    to program segments.  */ | ||||
|  | ||||
| struct elf_segment_map | ||||
| { | ||||
|   /* Next program segment.  */ | ||||
|   struct elf_segment_map *next; | ||||
|   /* Program segment type.  */ | ||||
|   unsigned long p_type; | ||||
|   /* Program segment flags.  */ | ||||
|   unsigned long p_flags; | ||||
|   /* Program segment physical address.  */ | ||||
|   bfd_vma p_paddr; | ||||
|   /* Whether the p_flags field is valid; if not, the flags are based | ||||
|      on the section flags.  */ | ||||
|   unsigned int p_flags_valid : 1; | ||||
|   /* Whether the p_paddr field is valid; if not, the physical address | ||||
|      is based on the section lma values.  */ | ||||
|   unsigned int p_paddr_valid : 1; | ||||
|   /* Whether this segment includes the file header.  */ | ||||
|   unsigned int includes_filehdr : 1; | ||||
|   /* Whether this segment includes the program headers.  */ | ||||
|   unsigned int includes_phdrs : 1; | ||||
|   /* Number of sections (may be 0).  */ | ||||
|   unsigned int count; | ||||
|   /* Sections.  Actual number of elements is in count field.  */ | ||||
|   asection *sections[1]; | ||||
| }; | ||||
|  | ||||
| #endif /* _ELF_INTERNAL_H */ | ||||
							
								
								
									
										66
									
								
								include/elf/m32r.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								include/elf/m32r.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| /* M32R ELF support for BFD. | ||||
|    Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software Foundation, Inc., | ||||
| 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| #ifndef _ELF_M32R_H | ||||
| #define _ELF_M32R_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocations.  */ | ||||
| START_RELOC_NUMBERS (elf_m32r_reloc_type) | ||||
|   RELOC_NUMBER (R_M32R_NONE, 0) | ||||
|   RELOC_NUMBER (R_M32R_16, 1) | ||||
|   RELOC_NUMBER (R_M32R_32, 2) | ||||
|   RELOC_NUMBER (R_M32R_24, 3) | ||||
|   RELOC_NUMBER (R_M32R_10_PCREL, 4) | ||||
|   RELOC_NUMBER (R_M32R_18_PCREL, 5) | ||||
|   RELOC_NUMBER (R_M32R_26_PCREL, 6) | ||||
|   RELOC_NUMBER (R_M32R_HI16_ULO, 7) | ||||
|   RELOC_NUMBER (R_M32R_HI16_SLO, 8) | ||||
|   RELOC_NUMBER (R_M32R_LO16, 9) | ||||
|   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 | ||||
|  | ||||
| /* Processor specific section indices.  These sections do not actually | ||||
|    exist.  Symbols with a st_shndx field corresponding to one of these | ||||
|    values have a special meaning.  */ | ||||
|  | ||||
| /* Small common symbol.  */ | ||||
| #define SHN_M32R_SCOMMON	0xff00 | ||||
|  | ||||
| /* Processor specific section flags.  */ | ||||
|  | ||||
| /* This section contains sufficient relocs to be relaxed. | ||||
|    When relaxing, even relocs of branch instructions the assembler could | ||||
|    complete must be present because relaxing may cause the branch target to | ||||
|    move.  */ | ||||
| #define SHF_M32R_CAN_RELAX	0x10000000 | ||||
|  | ||||
| /* Processor specific flags for the ELF header e_flags field.  */ | ||||
|  | ||||
| /* Two bit m32r architecture field.  */ | ||||
| #define EF_M32R_ARCH		0x30000000 | ||||
|  | ||||
| /* m32r code.  */ | ||||
| #define E_M32R_ARCH		0x00000000 | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										56
									
								
								include/elf/m68k.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								include/elf/m68k.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| /* MC68k ELF support for BFD. | ||||
|    Copyright (C) 1998 Free Software Foundation, Inc. | ||||
|  | ||||
|    This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
|    This program is free software; you can redistribute it and/or modify | ||||
|    it under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, or | ||||
|    (at your option) any later version. | ||||
|  | ||||
|    This program is distributed in the hope that it will be useful, | ||||
|    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|    GNU General Public License for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with this program; if not, write to the Free Software Foundation, | ||||
|    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| #ifndef _ELF_M68K_H | ||||
| #define _ELF_M68K_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocation types.  */ | ||||
| START_RELOC_NUMBERS (elf_m68k_reloc_type) | ||||
|   RELOC_NUMBER (R_68K_NONE, 0)		/* No reloc */ | ||||
|   RELOC_NUMBER (R_68K_32, 1)		/* Direct 32 bit  */ | ||||
|   RELOC_NUMBER (R_68K_16, 2)		/* Direct 16 bit  */ | ||||
|   RELOC_NUMBER (R_68K_8, 3)		/* Direct 8 bit  */ | ||||
|   RELOC_NUMBER (R_68K_PC32, 4)		/* PC relative 32 bit */ | ||||
|   RELOC_NUMBER (R_68K_PC16, 5)		/* PC relative 16 bit */ | ||||
|   RELOC_NUMBER (R_68K_PC8, 6)		/* PC relative 8 bit */ | ||||
|   RELOC_NUMBER (R_68K_GOT32, 7)		/* 32 bit PC relative GOT entry */ | ||||
|   RELOC_NUMBER (R_68K_GOT16, 8)		/* 16 bit PC relative GOT entry */ | ||||
|   RELOC_NUMBER (R_68K_GOT8, 9)		/* 8 bit PC relative GOT entry */ | ||||
|   RELOC_NUMBER (R_68K_GOT32O, 10)	/* 32 bit GOT offset */ | ||||
|   RELOC_NUMBER (R_68K_GOT16O, 11)	/* 16 bit GOT offset */ | ||||
|   RELOC_NUMBER (R_68K_GOT8O, 12)	/* 8 bit GOT offset */ | ||||
|   RELOC_NUMBER (R_68K_PLT32, 13)	/* 32 bit PC relative PLT address */ | ||||
|   RELOC_NUMBER (R_68K_PLT16, 14)	/* 16 bit PC relative PLT address */ | ||||
|   RELOC_NUMBER (R_68K_PLT8, 15)		/* 8 bit PC relative PLT address */ | ||||
|   RELOC_NUMBER (R_68K_PLT32O, 16)	/* 32 bit PLT offset */ | ||||
|   RELOC_NUMBER (R_68K_PLT16O, 17)	/* 16 bit PLT offset */ | ||||
|   RELOC_NUMBER (R_68K_PLT8O, 18)	/* 8 bit PLT offset */ | ||||
|   RELOC_NUMBER (R_68K_COPY, 19)		/* Copy symbol at runtime */ | ||||
|   RELOC_NUMBER (R_68K_GLOB_DAT, 20)	/* Create GOT entry */ | ||||
|   RELOC_NUMBER (R_68K_JMP_SLOT, 21)	/* Create PLT entry */ | ||||
|   RELOC_NUMBER (R_68K_RELATIVE, 22)	/* Adjust by program base */ | ||||
|   /* 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 | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										43
									
								
								include/elf/mcore.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								include/elf/mcore.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| /* Motorolla MCore support for BFD. | ||||
|    Copyright (C) 1995, 1999 Free Software Foundation, Inc. | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* This file holds definitions specific to the MCore ELF ABI. */ | ||||
| #ifndef _ELF_MORE_H | ||||
| #define _ELF_MORE_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocations.  */ | ||||
| START_RELOC_NUMBERS (elf_mcore_reloc_type) | ||||
|   RELOC_NUMBER (R_MCORE_NONE, 0) | ||||
|   RELOC_NUMBER (R_MCORE_ADDR32, 1) | ||||
|   RELOC_NUMBER (R_MCORE_PCRELIMM8BY4, 2) | ||||
|   RELOC_NUMBER (R_MCORE_PCRELIMM11BY2, 3) | ||||
|   RELOC_NUMBER (R_MCORE_PCRELIMM4BY2, 4) | ||||
|   RELOC_NUMBER (R_MCORE_PCREL32, 5) | ||||
|   RELOC_NUMBER (R_MCORE_PCRELJSR_IMM11BY2, 6) | ||||
|   RELOC_NUMBER (R_MCORE_GNU_VTINHERIT, 7) | ||||
|   RELOC_NUMBER (R_MCORE_GNU_VTENTRY, 8) | ||||
|   EMPTY_RELOC  (R_MCORE_max) | ||||
| END_RELOC_NUMBERS | ||||
|  | ||||
| /* Section Attributes.  */ | ||||
| #define SHF_MCORE_NOREAD	0x80000000 | ||||
|  | ||||
| #endif /* _ELF_MCORE_H */ | ||||
							
								
								
									
										860
									
								
								include/elf/mips.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										860
									
								
								include/elf/mips.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,860 @@ | ||||
| /* MIPS ELF support for BFD. | ||||
|    Copyright (C) 1993, 1994, 1995, 1996, 1998 Free Software Foundation, Inc. | ||||
|  | ||||
|    By Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>, from | ||||
|    information in the System V Application Binary Interface, MIPS | ||||
|    Processor Supplement. | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* This file holds definitions specific to the MIPS ELF ABI.  Note | ||||
|    that most of this is not actually implemented by BFD.  */ | ||||
|  | ||||
| #ifndef _ELF_MIPS_H | ||||
| #define _ELF_MIPS_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocation types.  */ | ||||
| START_RELOC_NUMBERS (elf_mips_reloc_type) | ||||
|   RELOC_NUMBER (R_MIPS_NONE, 0) | ||||
|   RELOC_NUMBER (R_MIPS_16, 1) | ||||
|   RELOC_NUMBER (R_MIPS_32, 2) | ||||
|   RELOC_NUMBER (R_MIPS_REL32, 3) | ||||
|   RELOC_NUMBER (R_MIPS_26, 4) | ||||
|   RELOC_NUMBER (R_MIPS_HI16, 5) | ||||
|   RELOC_NUMBER (R_MIPS_LO16, 6) | ||||
|   RELOC_NUMBER (R_MIPS_GPREL16, 7) | ||||
|   RELOC_NUMBER (R_MIPS_LITERAL, 8) | ||||
|   RELOC_NUMBER (R_MIPS_GOT16, 9) | ||||
|   RELOC_NUMBER (R_MIPS_PC16, 10) | ||||
|   RELOC_NUMBER (R_MIPS_CALL16, 11) | ||||
|   RELOC_NUMBER (R_MIPS_GPREL32, 12) | ||||
|   /* The remaining relocs are defined on Irix, although they are not | ||||
|      in the MIPS ELF ABI.  */ | ||||
|   RELOC_NUMBER (R_MIPS_UNUSED1, 13) | ||||
|   RELOC_NUMBER (R_MIPS_UNUSED2, 14) | ||||
|   RELOC_NUMBER (R_MIPS_UNUSED3, 15) | ||||
|   RELOC_NUMBER (R_MIPS_SHIFT5, 16) | ||||
|   RELOC_NUMBER (R_MIPS_SHIFT6, 17) | ||||
|   RELOC_NUMBER (R_MIPS_64, 18) | ||||
|   RELOC_NUMBER (R_MIPS_GOT_DISP, 19) | ||||
|   RELOC_NUMBER (R_MIPS_GOT_PAGE, 20) | ||||
|   RELOC_NUMBER (R_MIPS_GOT_OFST, 21) | ||||
|   RELOC_NUMBER (R_MIPS_GOT_HI16, 22) | ||||
|   RELOC_NUMBER (R_MIPS_GOT_LO16, 23) | ||||
|   RELOC_NUMBER (R_MIPS_SUB, 24) | ||||
|   RELOC_NUMBER (R_MIPS_INSERT_A, 25) | ||||
|   RELOC_NUMBER (R_MIPS_INSERT_B, 26) | ||||
|   RELOC_NUMBER (R_MIPS_DELETE, 27) | ||||
|   RELOC_NUMBER (R_MIPS_HIGHER, 28) | ||||
|   RELOC_NUMBER (R_MIPS_HIGHEST, 29) | ||||
|   RELOC_NUMBER (R_MIPS_CALL_HI16, 30) | ||||
|   RELOC_NUMBER (R_MIPS_CALL_LO16, 31) | ||||
|   RELOC_NUMBER (R_MIPS_SCN_DISP, 32) | ||||
|   RELOC_NUMBER (R_MIPS_REL16, 33) | ||||
|   RELOC_NUMBER (R_MIPS_ADD_IMMEDIATE, 34) | ||||
|   RELOC_NUMBER (R_MIPS_PJUMP, 35) | ||||
|   RELOC_NUMBER (R_MIPS_RELGOT, 36) | ||||
|   RELOC_NUMBER (R_MIPS_JALR, 37) | ||||
|   RELOC_NUMBER (R_MIPS_max, 38) | ||||
|   /* These relocs are used for the mips16.  */ | ||||
|   RELOC_NUMBER (R_MIPS16_26, 100) | ||||
|   RELOC_NUMBER (R_MIPS16_GPREL, 101) | ||||
|   /* 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 | ||||
|  | ||||
| /* Processor specific flags for the ELF header e_flags field.  */ | ||||
|  | ||||
| /* At least one .noreorder directive appears in the source.  */ | ||||
| #define EF_MIPS_NOREORDER	0x00000001 | ||||
|  | ||||
| /* File contains position independent code.  */ | ||||
| #define EF_MIPS_PIC		0x00000002 | ||||
|  | ||||
| /* Code in file uses the standard calling sequence for calling | ||||
|    position independent code.  */ | ||||
| #define EF_MIPS_CPIC		0x00000004 | ||||
|  | ||||
| /* Code in file uses new ABI (-n32 on Irix 6).  */ | ||||
| #define EF_MIPS_ABI2		0x00000020 | ||||
|  | ||||
| /* Indicates code compiled for a 64-bit machine in 32-bit mode.  | ||||
|    (regs are 32-bits wide.) */ | ||||
| #define EF_MIPS_32BITMODE       0x00000100 | ||||
|  | ||||
| /* Four bit MIPS architecture field.  */ | ||||
| #define EF_MIPS_ARCH		0xf0000000 | ||||
|  | ||||
| /* -mips1 code.  */ | ||||
| #define E_MIPS_ARCH_1		0x00000000 | ||||
|  | ||||
| /* -mips2 code.  */ | ||||
| #define E_MIPS_ARCH_2		0x10000000 | ||||
|  | ||||
| /* -mips3 code.  */ | ||||
| #define E_MIPS_ARCH_3		0x20000000 | ||||
|  | ||||
| /* -mips4 code.  */ | ||||
| #define E_MIPS_ARCH_4		0x30000000 | ||||
|  | ||||
| /* The ABI of the file.  Also see EF_MIPS_ABI2 above. */ | ||||
| #define EF_MIPS_ABI		0x0000F000 | ||||
|  | ||||
| /* The original o32 abi. */ | ||||
| #define E_MIPS_ABI_O32          0x00001000 | ||||
|  | ||||
| /* O32 extended to work on 64 bit architectures */ | ||||
| #define E_MIPS_ABI_O64          0x00002000 | ||||
|  | ||||
| /* EABI in 32 bit mode */ | ||||
| #define E_MIPS_ABI_EABI32       0x00003000 | ||||
|  | ||||
| /* EABI in 64 bit mode */ | ||||
| #define E_MIPS_ABI_EABI64       0x00004000 | ||||
|  | ||||
|  | ||||
| /* 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 | ||||
|    is developed, this code should be changed to follow it. */ | ||||
|  | ||||
| #define EF_MIPS_MACH		0x00FF0000 | ||||
|  | ||||
| /* Cygnus is choosing values between 80 and 9F; | ||||
|    00 - 7F should be left for a future standard; | ||||
|    the rest are open. */ | ||||
|  | ||||
| #define E_MIPS_MACH_3900	0x00810000 | ||||
|  | ||||
| #define E_MIPS_MACH_4010	0x00820000 | ||||
| #define E_MIPS_MACH_4100	0x00830000 | ||||
| #define E_MIPS_MACH_4650	0x00850000 | ||||
| #define E_MIPS_MACH_4111	0x00880000 | ||||
|  | ||||
|  | ||||
| /* Processor specific section indices.  These sections do not actually | ||||
|    exist.  Symbols with a st_shndx field corresponding to one of these | ||||
|    values have a special meaning.  */ | ||||
|  | ||||
| /* Defined and allocated common symbol.  Value is virtual address.  If | ||||
|    relocated, alignment must be preserved.  */ | ||||
| #define SHN_MIPS_ACOMMON	0xff00 | ||||
|  | ||||
| /* Defined and allocated text symbol.  Value is virtual address. | ||||
|    Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables.  */ | ||||
| #define SHN_MIPS_TEXT		0xff01 | ||||
|  | ||||
| /* Defined and allocated data symbol.  Value is virtual address. | ||||
|    Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables.  */ | ||||
| #define SHN_MIPS_DATA		0xff02 | ||||
|  | ||||
| /* Small common symbol.  */ | ||||
| #define SHN_MIPS_SCOMMON	0xff03 | ||||
|  | ||||
| /* Small undefined symbol.  */ | ||||
| #define SHN_MIPS_SUNDEFINED	0xff04 | ||||
|  | ||||
| /* Processor specific section types.  */ | ||||
|  | ||||
| /* Section contains the set of dynamic shared objects used when | ||||
|    statically linking.  */ | ||||
| #define SHT_MIPS_LIBLIST	0x70000000 | ||||
|  | ||||
| /* I'm not sure what this is, but it's used on Irix 5.  */ | ||||
| #define SHT_MIPS_MSYM		0x70000001 | ||||
|  | ||||
| /* Section contains list of symbols whose definitions conflict with | ||||
|    symbols defined in shared objects.  */ | ||||
| #define SHT_MIPS_CONFLICT	0x70000002 | ||||
|  | ||||
| /* Section contains the global pointer table.  */ | ||||
| #define SHT_MIPS_GPTAB		0x70000003 | ||||
|  | ||||
| /* Section contains microcode information.  The exact format is | ||||
|    unspecified.  */ | ||||
| #define SHT_MIPS_UCODE		0x70000004 | ||||
|  | ||||
| /* Section contains some sort of debugging information.  The exact | ||||
|    format is unspecified.  It's probably ECOFF symbols.  */ | ||||
| #define SHT_MIPS_DEBUG		0x70000005 | ||||
|  | ||||
| /* Section contains register usage information.  */ | ||||
| #define SHT_MIPS_REGINFO	0x70000006 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_PACKAGE	0x70000007 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_PACKSYM	0x70000008 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_RELD		0x70000009 | ||||
|  | ||||
| /* Section contains interface information.  */ | ||||
| #define SHT_MIPS_IFACE		0x7000000b | ||||
|  | ||||
| /* Section contains description of contents of another section.  */ | ||||
| #define SHT_MIPS_CONTENT	0x7000000c | ||||
|  | ||||
| /* Section contains miscellaneous options.  */ | ||||
| #define SHT_MIPS_OPTIONS	0x7000000d | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_SHDR		0x70000010 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_FDESC		0x70000011 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_EXTSYM		0x70000012 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_DENSE		0x70000013 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_PDESC		0x70000014 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_LOCSYM		0x70000015 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_AUXSYM		0x70000016 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_OPTSYM		0x70000017 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_LOCSTR		0x70000018 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_LINE		0x70000019 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_RFDESC		0x7000001a | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_DELTASYM	0x7000001b | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_DELTAINST	0x7000001c | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_DELTACLASS	0x7000001d | ||||
|  | ||||
| /* DWARF debugging section.  */ | ||||
| #define SHT_MIPS_DWARF		0x7000001e | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_DELTADECL	0x7000001f | ||||
|  | ||||
| /* List of libraries the binary depends on.  Includes a time stamp, version | ||||
|    number.  */ | ||||
| #define SHT_MIPS_SYMBOL_LIB	0x70000020 | ||||
|  | ||||
| /* Events section.  */ | ||||
| #define SHT_MIPS_EVENTS		0x70000021 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_TRANSLATE	0x70000022 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_PIXIE		0x70000023 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_XLATE		0x70000024 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_XLATE_DEBUG	0x70000025 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_WHIRL		0x70000026 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_EH_REGION	0x70000027 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_XLATE_OLD	0x70000028 | ||||
|  | ||||
| /* ??? */ | ||||
| #define SHT_MIPS_PDR_EXCEPTION	0x70000029 | ||||
|  | ||||
|  | ||||
| /* A section of type SHT_MIPS_LIBLIST contains an array of the | ||||
|    following structure.  The sh_link field is the section index of the | ||||
|    string table.  The sh_info field is the number of entries in the | ||||
|    section.  */ | ||||
| typedef struct | ||||
| { | ||||
|   /* String table index for name of shared object.  */ | ||||
|   unsigned long l_name; | ||||
|   /* Time stamp.  */ | ||||
|   unsigned long l_time_stamp; | ||||
|   /* Checksum of symbol names and common sizes.  */ | ||||
|   unsigned long l_checksum; | ||||
|   /* String table index for version.  */ | ||||
|   unsigned long l_version; | ||||
|   /* Flags.  */ | ||||
|   unsigned long l_flags; | ||||
| } Elf32_Lib; | ||||
|  | ||||
| /* The external version of Elf32_Lib.  */ | ||||
| typedef struct | ||||
| { | ||||
|   unsigned char l_name[4]; | ||||
|   unsigned char l_time_stamp[4]; | ||||
|   unsigned char l_checksum[4]; | ||||
|   unsigned char l_version[4]; | ||||
|   unsigned char l_flags[4]; | ||||
| } Elf32_External_Lib; | ||||
|  | ||||
| /* The l_flags field of an Elf32_Lib structure may contain the | ||||
|    following flags.  */ | ||||
|  | ||||
| /* Require an exact match at runtime.  */ | ||||
| #define LL_EXACT_MATCH		0x00000001 | ||||
|  | ||||
| /* Ignore version incompatibilities at runtime.  */ | ||||
| #define LL_IGNORE_INT_VER	0x00000002 | ||||
|  | ||||
| /* Require matching minor version number.  */ | ||||
| #define LL_REQUIRE_MINOR	0x00000004 | ||||
|  | ||||
| /* ??? */ | ||||
| #define LL_EXPORTS		0x00000008 | ||||
|  | ||||
| /* Delay loading of this library until really needed.  */ | ||||
| #define LL_DELAY_LOAD		0x00000010 | ||||
|  | ||||
| /* ??? Delta C++ stuff ??? */ | ||||
| #define LL_DELTA		0x00000020 | ||||
|  | ||||
|  | ||||
| /* A section of type SHT_MIPS_CONFLICT is an array of indices into the | ||||
|    .dynsym section.  Each element has the following type.  */ | ||||
| typedef unsigned long Elf32_Conflict; | ||||
| typedef unsigned char Elf32_External_Conflict[4]; | ||||
|  | ||||
| typedef unsigned long Elf64_Conflict; | ||||
| typedef unsigned char Elf64_External_Conflict[8]; | ||||
|  | ||||
| /* A section of type SHT_MIPS_GPTAB contains information about how | ||||
|    much GP space would be required for different -G arguments.  This | ||||
|    information is only used so that the linker can provide informative | ||||
|    suggestions as to the best -G value to use.  The sh_info field is | ||||
|    the index of the section for which this information applies.  The | ||||
|    contents of the section are an array of the following union.  The | ||||
|    first element uses the gt_header field.  The remaining elements use | ||||
|    the gt_entry field.  */ | ||||
| typedef union | ||||
| { | ||||
|   struct | ||||
|     { | ||||
|       /* -G value actually used for this object file.  */ | ||||
|       unsigned long gt_current_g_value; | ||||
|       /* Unused.  */ | ||||
|       unsigned long gt_unused; | ||||
|     } gt_header; | ||||
|   struct | ||||
|     { | ||||
|       /* If this -G argument has been used...  */ | ||||
|       unsigned long gt_g_value; | ||||
|       /* ...this many GP section bytes would be required.  */ | ||||
|       unsigned long gt_bytes; | ||||
|     } gt_entry; | ||||
| } Elf32_gptab; | ||||
|  | ||||
| /* The external version of Elf32_gptab.  */ | ||||
|  | ||||
| typedef union | ||||
| { | ||||
|   struct | ||||
|     { | ||||
|       unsigned char gt_current_g_value[4]; | ||||
|       unsigned char gt_unused[4]; | ||||
|     } gt_header; | ||||
|   struct | ||||
|     { | ||||
|       unsigned char gt_g_value[4]; | ||||
|       unsigned char gt_bytes[4]; | ||||
|     } gt_entry; | ||||
| } Elf32_External_gptab; | ||||
|  | ||||
| /* A section of type SHT_MIPS_REGINFO contains the following | ||||
|    structure.  */ | ||||
| typedef struct | ||||
| { | ||||
|   /* Mask of general purpose registers used.  */ | ||||
|   unsigned long ri_gprmask; | ||||
|   /* Mask of co-processor registers used.  */ | ||||
|   unsigned long ri_cprmask[4]; | ||||
|   /* GP register value for this object file.  */ | ||||
|   long ri_gp_value; | ||||
| } Elf32_RegInfo; | ||||
|  | ||||
| /* The external version of the Elf_RegInfo structure.  */ | ||||
| typedef struct | ||||
| { | ||||
|   unsigned char ri_gprmask[4]; | ||||
|   unsigned char ri_cprmask[4][4]; | ||||
|   unsigned char ri_gp_value[4]; | ||||
| } Elf32_External_RegInfo; | ||||
|  | ||||
| /* MIPS ELF .reginfo swapping routines.  */ | ||||
| extern void bfd_mips_elf32_swap_reginfo_in | ||||
|   PARAMS ((bfd *, const Elf32_External_RegInfo *, Elf32_RegInfo *)); | ||||
| extern void bfd_mips_elf32_swap_reginfo_out | ||||
|   PARAMS ((bfd *, const Elf32_RegInfo *, Elf32_External_RegInfo *)); | ||||
|  | ||||
| /* Processor specific section flags.  */ | ||||
|  | ||||
| /* This section must be in the global data area.  */ | ||||
| #define SHF_MIPS_GPREL		0x10000000 | ||||
|  | ||||
| /* This section should be merged.  */ | ||||
| #define SHF_MIPS_MERGE		0x20000000 | ||||
|  | ||||
| /* This section contains 32 bit addresses.  */ | ||||
| #define SHF_MIPS_ADDR32		0x40000000 | ||||
|  | ||||
| /* This section contains 64 bit addresses.  */ | ||||
| #define SHF_MIPS_ADDR64		0x80000000 | ||||
|  | ||||
| /* This section may not be stripped.  */ | ||||
| #define SHF_MIPS_NOSTRIP	0x08000000 | ||||
|  | ||||
| /* This section is local to threads.  */ | ||||
| #define SHF_MIPS_LOCAL		0x04000000 | ||||
|  | ||||
| /* Linker should generate implicit weak names for this section.  */ | ||||
| #define SHF_MIPS_NAMES		0x02000000 | ||||
|  | ||||
| /* Processor specific program header types.  */ | ||||
|  | ||||
| /* Register usage information.  Identifies one .reginfo section.  */ | ||||
| #define PT_MIPS_REGINFO		0x70000000 | ||||
|  | ||||
| /* Runtime procedure table.  */ | ||||
| #define PT_MIPS_RTPROC		0x70000001 | ||||
|  | ||||
| /* Options (for what ???).  */ | ||||
| #define PT_MIPS_OPTIONS		0x70000002 | ||||
|  | ||||
| /* Processor specific dynamic array tags.  */ | ||||
|  | ||||
| /* 32 bit version number for runtime linker interface.  */ | ||||
| #define DT_MIPS_RLD_VERSION	0x70000001 | ||||
|  | ||||
| /* Time stamp.  */ | ||||
| #define DT_MIPS_TIME_STAMP	0x70000002 | ||||
|  | ||||
| /* Checksum of external strings and common sizes.  */ | ||||
| #define DT_MIPS_ICHECKSUM	0x70000003 | ||||
|  | ||||
| /* Index of version string in string table.  */ | ||||
| #define DT_MIPS_IVERSION	0x70000004 | ||||
|  | ||||
| /* 32 bits of flags.  */ | ||||
| #define DT_MIPS_FLAGS		0x70000005 | ||||
|  | ||||
| /* Base address of the segment.  */ | ||||
| #define DT_MIPS_BASE_ADDRESS	0x70000006 | ||||
|  | ||||
| /* ??? */ | ||||
| #define DT_MIPS_MSYM		0x70000007 | ||||
|  | ||||
| /* Address of .conflict section.  */ | ||||
| #define DT_MIPS_CONFLICT	0x70000008 | ||||
|  | ||||
| /* Address of .liblist section.  */ | ||||
| #define DT_MIPS_LIBLIST		0x70000009 | ||||
|  | ||||
| /* Number of local global offset table entries.  */ | ||||
| #define DT_MIPS_LOCAL_GOTNO	0x7000000a | ||||
|  | ||||
| /* Number of entries in the .conflict section.  */ | ||||
| #define DT_MIPS_CONFLICTNO	0x7000000b | ||||
|  | ||||
| /* Number of entries in the .liblist section.  */ | ||||
| #define DT_MIPS_LIBLISTNO	0x70000010 | ||||
|  | ||||
| /* Number of entries in the .dynsym section.  */ | ||||
| #define DT_MIPS_SYMTABNO	0x70000011 | ||||
|  | ||||
| /* Index of first external dynamic symbol not referenced locally.  */ | ||||
| #define DT_MIPS_UNREFEXTNO	0x70000012 | ||||
|  | ||||
| /* Index of first dynamic symbol in global offset table.  */ | ||||
| #define DT_MIPS_GOTSYM		0x70000013 | ||||
|  | ||||
| /* Number of page table entries in global offset table.  */ | ||||
| #define DT_MIPS_HIPAGENO	0x70000014 | ||||
|  | ||||
| /* Address of run time loader map, used for debugging.  */ | ||||
| #define DT_MIPS_RLD_MAP		0x70000016 | ||||
|  | ||||
| /* Delta C++ class definition.  */ | ||||
| #define DT_MIPS_DELTA_CLASS	0x70000017 | ||||
|  | ||||
| /* Number of entries in DT_MIPS_DELTA_CLASS.  */ | ||||
| #define DT_MIPS_DELTA_CLASS_NO	0x70000018 | ||||
|  | ||||
| /* Delta C++ class instances.  */ | ||||
| #define DT_MIPS_DELTA_INSTANCE	0x70000019 | ||||
|  | ||||
| /* Number of entries in DT_MIPS_DELTA_INSTANCE.  */ | ||||
| #define DT_MIPS_DELTA_INSTANCE_NO	0x7000001a | ||||
|  | ||||
| /* Delta relocations.  */ | ||||
| #define DT_MIPS_DELTA_RELOC	0x7000001b | ||||
|  | ||||
| /* Number of entries in DT_MIPS_DELTA_RELOC.  */ | ||||
| #define DT_MIPS_DELTA_RELOC_NO	0x7000001c | ||||
|  | ||||
| /* Delta symbols that Delta relocations refer to.  */ | ||||
| #define DT_MIPS_DELTA_SYM	0x7000001d | ||||
|  | ||||
| /* Number of entries in DT_MIPS_DELTA_SYM.  */ | ||||
| #define DT_MIPS_DELTA_SYM_NO	0x7000001e | ||||
|  | ||||
| /* Delta symbols that hold class declarations.  */ | ||||
| #define DT_MIPS_DELTA_CLASSSYM	0x70000020 | ||||
|  | ||||
| /* Number of entries in DT_MIPS_DELTA_CLASSSYM.  */ | ||||
| #define DT_MIPS_DELTA_CLASSSYM_NO	0x70000021 | ||||
|  | ||||
| /* Flags indicating information about C++ flavor.  */ | ||||
| #define DT_MIPS_CXX_FLAGS	0x70000022 | ||||
|  | ||||
| /* Pixie information (???).  */ | ||||
| #define DT_MIPS_PIXIE_INIT	0x70000023 | ||||
|  | ||||
| /* ??? */ | ||||
| #define DT_MIPS_SYMBOL_LIB	0x70000024 | ||||
|  | ||||
| /* ??? */ | ||||
| #define DT_MIPS_LOCALPAGE_GOTIDX	0x70000025 | ||||
|  | ||||
| /* ??? */ | ||||
| #define DT_MIPS_LOCAL_GOTIDX	0x70000026 | ||||
|  | ||||
| /* ??? */ | ||||
| #define DT_MIPS_HIDDEN_GOTIDX	0x70000027 | ||||
|  | ||||
| /* ??? */ | ||||
| #define DT_MIPS_PROTECTED_GOTIDX	0x70000028 | ||||
|  | ||||
| /* Address of `.MIPS.options'.  */ | ||||
| #define DT_MIPS_OPTIONS		0x70000029 | ||||
|  | ||||
| /* Address of `.interface'.  */ | ||||
| #define DT_MIPS_INTERFACE	0x7000002a | ||||
|  | ||||
| /* ??? */ | ||||
| #define DT_MIPS_DYNSTR_ALIGN	0x7000002b | ||||
|  | ||||
| /* Size of the .interface section.  */ | ||||
| #define DT_MIPS_INTERFACE_SIZE	0x7000002c | ||||
|  | ||||
| /* Size of rld_text_resolve function stored in the GOT.  */ | ||||
| #define DT_MIPS_RLD_TEXT_RESOLVE_ADDR	0x7000002d | ||||
|  | ||||
| /* Default suffix of DSO to be added by rld on dlopen() calls.  */ | ||||
| #define DT_MIPS_PERF_SUFFIX	0x7000002e | ||||
|  | ||||
| /* Size of compact relocation section (O32).  */ | ||||
| #define DT_MIPS_COMPACT_SIZE	0x7000002f | ||||
|  | ||||
| /* GP value for auxiliary GOTs.  */ | ||||
| #define DT_MIPS_GP_VALUE	0x70000030 | ||||
|  | ||||
| /* Address of auxiliary .dynamic.  */ | ||||
| #define DT_MIPS_AUX_DYNAMIC	0x70000031 | ||||
|  | ||||
| /* Flags which may appear in a DT_MIPS_FLAGS entry.  */ | ||||
|  | ||||
| /* No flags.  */ | ||||
| #define RHF_NONE		0x00000000 | ||||
|  | ||||
| /* Uses shortcut pointers.  */ | ||||
| #define RHF_QUICKSTART		0x00000001 | ||||
|  | ||||
| /* Hash size is not a power of two.  */ | ||||
| #define RHF_NOTPOT		0x00000002 | ||||
|  | ||||
| /* Ignore LD_LIBRARY_PATH.  */ | ||||
| #define RHS_NO_LIBRARY_REPLACEMENT \ | ||||
| 				0x00000004 | ||||
|  | ||||
| #define RHF_NO_MOVE		   0x00000008 | ||||
| #define RHF_SGI_ONLY		   0x00000010 | ||||
| #define RHF_GUARANTEE_INIT	   0x00000020 | ||||
| #define RHF_DELTA_C_PLUS_PLUS	   0x00000040 | ||||
| #define RHF_GUARANTEE_START_INIT   0x00000080 | ||||
| #define RHF_PIXIE		   0x00000100 | ||||
| #define RHF_DEFAULT_DELAY_LOAD	   0x00000200 | ||||
| #define RHF_REQUICKSTART	   0x00000400 | ||||
| #define RHF_REQUICKSTARTED	   0x00000800 | ||||
| #define RHF_CORD		   0x00001000 | ||||
| #define RHF_NO_UNRES_UNDEF	   0x00002000 | ||||
| #define RHF_RLD_ORDER_SAFE	   0x00004000 | ||||
|  | ||||
| /* Special values for the st_other field in the symbol table.  These | ||||
|    are used in an Irix 5 dynamic symbol table.  */ | ||||
|  | ||||
| #define STO_DEFAULT		0x00 | ||||
| #define STO_INTERNAL		0x01 | ||||
| #define STO_HIDDEN		0x02 | ||||
| #define STO_PROTECTED		0x03 | ||||
|  | ||||
| /* This value is used for a mips16 .text symbol.  */ | ||||
| #define STO_MIPS16		0xf0 | ||||
|  | ||||
| /* The 64-bit MIPS ELF ABI uses an unusual reloc format.  Each | ||||
|    relocation entry specifies up to three actual relocations, all at | ||||
|    the same address.  The first relocation which required a symbol | ||||
|    uses the symbol in the r_sym field.  The second relocation which | ||||
|    requires a symbol uses the symbol in the r_ssym field.  If all | ||||
|    three relocations require a symbol, the third one uses a zero | ||||
|    value.  */ | ||||
|  | ||||
| /* An entry in a 64 bit SHT_REL section.  */ | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   /* Address of relocation.  */ | ||||
|   unsigned char r_offset[8]; | ||||
|   /* Symbol index.  */ | ||||
|   unsigned char r_sym[4]; | ||||
|   /* Special symbol.  */ | ||||
|   unsigned char r_ssym[1]; | ||||
|   /* Third relocation.  */ | ||||
|   unsigned char r_type3[1]; | ||||
|   /* Second relocation.  */ | ||||
|   unsigned char r_type2[1]; | ||||
|   /* First relocation.  */ | ||||
|   unsigned char r_type[1]; | ||||
| } Elf64_Mips_External_Rel; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   /* Address of relocation.  */ | ||||
|   bfd_vma r_offset; | ||||
|   /* Symbol index.  */ | ||||
|   unsigned long r_sym; | ||||
|   /* Special symbol.  */ | ||||
|   unsigned char r_ssym; | ||||
|   /* Third relocation.  */ | ||||
|   unsigned char r_type3; | ||||
|   /* Second relocation.  */ | ||||
|   unsigned char r_type2; | ||||
|   /* First relocation.  */ | ||||
|   unsigned char r_type; | ||||
| } Elf64_Mips_Internal_Rel; | ||||
|  | ||||
| /* An entry in a 64 bit SHT_RELA section.  */ | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   /* Address of relocation.  */ | ||||
|   unsigned char r_offset[8]; | ||||
|   /* Symbol index.  */ | ||||
|   unsigned char r_sym[4]; | ||||
|   /* Special symbol.  */ | ||||
|   unsigned char r_ssym[1]; | ||||
|   /* Third relocation.  */ | ||||
|   unsigned char r_type3[1]; | ||||
|   /* Second relocation.  */ | ||||
|   unsigned char r_type2[1]; | ||||
|   /* First relocation.  */ | ||||
|   unsigned char r_type[1]; | ||||
|   /* Addend.  */ | ||||
|   unsigned char r_addend[8]; | ||||
| } Elf64_Mips_External_Rela; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   /* Address of relocation.  */ | ||||
|   bfd_vma r_offset; | ||||
|   /* Symbol index.  */ | ||||
|   unsigned long r_sym; | ||||
|   /* Special symbol.  */ | ||||
|   unsigned char r_ssym; | ||||
|   /* Third relocation.  */ | ||||
|   unsigned char r_type3; | ||||
|   /* Second relocation.  */ | ||||
|   unsigned char r_type2; | ||||
|   /* First relocation.  */ | ||||
|   unsigned char r_type; | ||||
|   /* Addend.  */ | ||||
|   bfd_signed_vma r_addend; | ||||
| } Elf64_Mips_Internal_Rela; | ||||
|  | ||||
| /* Values found in the r_ssym field of a relocation entry.  */ | ||||
|  | ||||
| /* No relocation.  */ | ||||
| #define RSS_UNDEF	0 | ||||
|  | ||||
| /* Value of GP.  */ | ||||
| #define RSS_GP		1 | ||||
|  | ||||
| /* Value of GP in object being relocated.  */ | ||||
| #define RSS_GP0		2 | ||||
|  | ||||
| /* Address of location being relocated.  */ | ||||
| #define RSS_LOC		3 | ||||
|  | ||||
| /* A SHT_MIPS_OPTIONS section contains a series of options, each of | ||||
|    which starts with this header.  */ | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   /* Type of option.  */ | ||||
|   unsigned char kind[1]; | ||||
|   /* Size of option descriptor, including header.  */ | ||||
|   unsigned char size[1]; | ||||
|   /* Section index of affected section, or 0 for global option.  */ | ||||
|   unsigned char section[2]; | ||||
|   /* Information specific to this kind of option.  */ | ||||
|   unsigned char info[4]; | ||||
| } Elf_External_Options; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   /* Type of option.  */ | ||||
|   unsigned char kind; | ||||
|   /* Size of option descriptor, including header.  */ | ||||
|   unsigned char size; | ||||
|   /* Section index of affected section, or 0 for global option.  */ | ||||
|   unsigned short section; | ||||
|   /* Information specific to this kind of option.  */ | ||||
|   unsigned long info; | ||||
| } Elf_Internal_Options; | ||||
|  | ||||
| /* MIPS ELF option header swapping routines.  */ | ||||
| extern void bfd_mips_elf_swap_options_in | ||||
|   PARAMS ((bfd *, const Elf_External_Options *, Elf_Internal_Options *)); | ||||
| extern void bfd_mips_elf_swap_options_out | ||||
|   PARAMS ((bfd *, const Elf_Internal_Options *, Elf_External_Options *)); | ||||
|  | ||||
| /* Values which may appear in the kind field of an Elf_Options | ||||
|    structure.  */ | ||||
|  | ||||
| /* Undefined.  */ | ||||
| #define ODK_NULL	0 | ||||
|  | ||||
| /* Register usage and GP value.  */ | ||||
| #define ODK_REGINFO	1 | ||||
|  | ||||
| /* Exception processing information.  */ | ||||
| #define ODK_EXCEPTIONS	2 | ||||
|  | ||||
| /* Section padding information.  */ | ||||
| #define ODK_PAD		3 | ||||
|  | ||||
| /* Hardware workarounds performed.  */ | ||||
| #define ODK_HWPATCH	4 | ||||
|  | ||||
| /* Fill value used by the linker.  */ | ||||
| #define ODK_FILL	5 | ||||
|  | ||||
| /* Reserved space for desktop tools.  */ | ||||
| #define ODK_TAGS	6 | ||||
|  | ||||
| /* Hardware workarounds, AND bits when merging.  */ | ||||
| #define ODK_HWAND	7 | ||||
|  | ||||
| /* Hardware workarounds, OR bits when merging.  */ | ||||
| #define ODK_HWOR	8 | ||||
|  | ||||
| /* GP group to use for text/data sections.  */ | ||||
| #define ODK_GP_GROUP	9 | ||||
|  | ||||
| /* ID information.  */ | ||||
| #define ODK_IDENT	10 | ||||
|  | ||||
| /* In the 32 bit ABI, an ODK_REGINFO option is just a Elf32_RegInfo | ||||
|    structure.  In the 64 bit ABI, it is the following structure.  The | ||||
|    info field of the options header is not used.  */ | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   /* Mask of general purpose registers used.  */ | ||||
|   unsigned char ri_gprmask[4]; | ||||
|   /* Padding.  */ | ||||
|   unsigned char ri_pad[4]; | ||||
|   /* Mask of co-processor registers used.  */ | ||||
|   unsigned char ri_cprmask[4][4]; | ||||
|   /* GP register value for this object file.  */ | ||||
|   unsigned char ri_gp_value[8]; | ||||
| } Elf64_External_RegInfo; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   /* Mask of general purpose registers used.  */ | ||||
|   unsigned long ri_gprmask; | ||||
|   /* Padding.  */ | ||||
|   unsigned long ri_pad; | ||||
|   /* Mask of co-processor registers used.  */ | ||||
|   unsigned long ri_cprmask[4]; | ||||
|   /* GP register value for this object file.  */ | ||||
|   bfd_vma ri_gp_value; | ||||
| } Elf64_Internal_RegInfo; | ||||
|  | ||||
| /* MIPS ELF reginfo swapping routines.  */ | ||||
| extern void bfd_mips_elf64_swap_reginfo_in | ||||
|   PARAMS ((bfd *, const Elf64_External_RegInfo *, Elf64_Internal_RegInfo *)); | ||||
| extern void bfd_mips_elf64_swap_reginfo_out | ||||
|   PARAMS ((bfd *, const Elf64_Internal_RegInfo *, Elf64_External_RegInfo *)); | ||||
|  | ||||
| /* Masks for the info work of an ODK_EXCEPTIONS descriptor.  */ | ||||
| #define OEX_FPU_MIN	0x1f	/* FPEs which must be enabled.  */ | ||||
| #define OEX_FPU_MAX	0x1f00	/* FPEs which may be enabled.  */ | ||||
| #define OEX_PAGE0	0x10000	/* Page zero must be mapped.  */ | ||||
| #define OEX_SMM		0x20000	/* Force sequential memory mode.  */ | ||||
| #define OEX_FPDBUG	0x40000	/* Force floating-point debug mode.  */ | ||||
| #define OEX_DISMISS	0x80000	/* Dismiss invalid address faults.  */ | ||||
|  | ||||
| /* Masks of the FP exceptions for OEX_FPU_MIN and OEX_FPU_MAX.  */ | ||||
| #define OEX_FPU_INVAL	0x10	/* Invalid operation exception.  */ | ||||
| #define OEX_FPU_DIV0	0x08	/* Division by zero exception.  */ | ||||
| #define OEX_FPU_OFLO	0x04	/* Overflow exception.  */ | ||||
| #define OEX_FPU_UFLO	0x02	/* Underflow exception.  */ | ||||
| #define OEX_FPU_INEX	0x01	/* Inexact exception.  */ | ||||
|  | ||||
| /* Masks for the info word of an ODK_PAD descriptor.  */ | ||||
| #define OPAD_PREFIX	0x01 | ||||
| #define OPAD_POSTFIX	0x02 | ||||
| #define OPAD_SYMBOL	0x04 | ||||
|  | ||||
| /* Masks for the info word of an ODK_HWPATCH descriptor.  */ | ||||
| #define OHW_R4KEOP	0x01	/* R4000 end-of-page patch.  */ | ||||
| #define OHW_R8KPFETCH	0x02	/* May need R8000 prefetch patch.  */ | ||||
| #define OHW_R5KEOP	0x04	/* R5000 end-of-page patch.  */ | ||||
| #define OHW_R5KCVTL	0x08	/* R5000 cvt.[ds].l bug (clean == 1).  */ | ||||
|  | ||||
| /* Masks for the info word of an ODK_IDENT/ODK_GP_GROUP descriptor.  */ | ||||
| #define OGP_GROUP	0x0000ffff	/* GP group number.  */ | ||||
| #define OGP_SELF	0xffff0000	/* Self-contained GP groups.  */ | ||||
|  | ||||
| /* Masks for the info word of an ODK_HWAND/ODK_HWOR descriptor.  */ | ||||
| #define OHWA0_R4KEOP_CHECKED	0x00000001 | ||||
| #define OHWA0_R4KEOP_CLEAN	0x00000002 | ||||
|  | ||||
|  | ||||
| #endif /* _ELF_MIPS_H */ | ||||
							
								
								
									
										39
									
								
								include/elf/mn10200.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								include/elf/mn10200.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| /* MN10200 ELF support for BFD. | ||||
|    Copyright (C) 1998 Free Software Foundation, Inc. | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* This file holds definitions specific to the MN10200 ELF ABI. */ | ||||
|  | ||||
| #ifndef _ELF_MN10200_H | ||||
| #define _ELF_MN10200_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocations.  */ | ||||
| START_RELOC_NUMBERS (elf_mn10200_reloc_type) | ||||
|   RELOC_NUMBER (R_MN10200_NONE, 0) | ||||
|   RELOC_NUMBER (R_MN10200_32, 1) | ||||
|   RELOC_NUMBER (R_MN10200_16, 2) | ||||
|   RELOC_NUMBER (R_MN10200_8, 3) | ||||
|   RELOC_NUMBER (R_MN10200_24, 4) | ||||
|   RELOC_NUMBER (R_MN10200_PCREL8, 5) | ||||
|   RELOC_NUMBER (R_MN10200_PCREL16, 6) | ||||
|   RELOC_NUMBER (R_MN10200_PCREL24, 7) | ||||
| END_RELOC_NUMBERS | ||||
|  | ||||
| #endif /* _ELF_MN10200_H */ | ||||
							
								
								
									
										53
									
								
								include/elf/mn10300.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								include/elf/mn10300.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| /* MN10300 ELF support for BFD. | ||||
|    Copyright (C) 1998 Free Software Foundation, Inc. | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* This file holds definitions specific to the MN10300 ELF ABI. */ | ||||
|  | ||||
| #ifndef _ELF_MN10300_H | ||||
| #define _ELF_MN10300_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocations.  */ | ||||
| START_RELOC_NUMBERS (elf_mn10300_reloc_type) | ||||
|   RELOC_NUMBER (R_MN10300_NONE, 0) | ||||
|   RELOC_NUMBER (R_MN10300_32, 1) | ||||
|   RELOC_NUMBER (R_MN10300_16, 2) | ||||
|   RELOC_NUMBER (R_MN10300_8, 3) | ||||
|   RELOC_NUMBER (R_MN10300_PCREL32, 4) | ||||
|   RELOC_NUMBER (R_MN10300_PCREL16, 5) | ||||
|   RELOC_NUMBER (R_MN10300_PCREL8, 6) | ||||
|   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 | ||||
|  | ||||
| /* 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 | ||||
|    is developed, this code should be changed to follow it. */ | ||||
|  | ||||
| #define EF_MN10300_MACH		0x00FF0000 | ||||
|  | ||||
| /* Cygnus is choosing values between 80 and 9F; | ||||
|    00 - 7F should be left for a future standard; | ||||
|    the rest are open. */ | ||||
|  | ||||
| #define E_MN10300_MACH_MN10300	0x00810000 | ||||
| #endif /* _ELF_MN10300_H */ | ||||
							
								
								
									
										127
									
								
								include/elf/ppc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								include/elf/ppc.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,127 @@ | ||||
| /* PPC ELF support for BFD. | ||||
|    Copyright (C) 1995, 1998 Free Software Foundation, Inc. | ||||
|  | ||||
|    By Michael Meissner, Cygnus Support, <meissner@cygnus.com>, from information | ||||
|    in the System V Application Binary Interface, PowerPC Processor Supplement | ||||
|    and the PowerPC Embedded Application Binary Interface (eabi). | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* This file holds definitions specific to the PPC ELF ABI.  Note | ||||
|    that most of this is not actually implemented by BFD.  */ | ||||
|  | ||||
| #ifndef _ELF_PPC_H | ||||
| #define _ELF_PPC_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocations.  */ | ||||
| START_RELOC_NUMBERS (elf_ppc_reloc_type) | ||||
|   RELOC_NUMBER (R_PPC_NONE, 0) | ||||
|   RELOC_NUMBER (R_PPC_ADDR32, 1) | ||||
|   RELOC_NUMBER (R_PPC_ADDR24, 2) | ||||
|   RELOC_NUMBER (R_PPC_ADDR16, 3) | ||||
|   RELOC_NUMBER (R_PPC_ADDR16_LO, 4) | ||||
|   RELOC_NUMBER (R_PPC_ADDR16_HI, 5) | ||||
|   RELOC_NUMBER (R_PPC_ADDR16_HA, 6) | ||||
|   RELOC_NUMBER (R_PPC_ADDR14, 7) | ||||
|   RELOC_NUMBER (R_PPC_ADDR14_BRTAKEN, 8) | ||||
|   RELOC_NUMBER (R_PPC_ADDR14_BRNTAKEN, 9) | ||||
|   RELOC_NUMBER (R_PPC_REL24, 10) | ||||
|   RELOC_NUMBER (R_PPC_REL14, 11) | ||||
|   RELOC_NUMBER (R_PPC_REL14_BRTAKEN, 12) | ||||
|   RELOC_NUMBER (R_PPC_REL14_BRNTAKEN, 13) | ||||
|   RELOC_NUMBER (R_PPC_GOT16, 14) | ||||
|   RELOC_NUMBER (R_PPC_GOT16_LO, 15) | ||||
|   RELOC_NUMBER (R_PPC_GOT16_HI, 16) | ||||
|   RELOC_NUMBER (R_PPC_GOT16_HA, 17) | ||||
|   RELOC_NUMBER (R_PPC_PLTREL24, 18) | ||||
|   RELOC_NUMBER (R_PPC_COPY, 19) | ||||
|   RELOC_NUMBER (R_PPC_GLOB_DAT, 20) | ||||
|   RELOC_NUMBER (R_PPC_JMP_SLOT, 21) | ||||
|   RELOC_NUMBER (R_PPC_RELATIVE, 22) | ||||
|   RELOC_NUMBER (R_PPC_LOCAL24PC, 23) | ||||
|   RELOC_NUMBER (R_PPC_UADDR32, 24) | ||||
|   RELOC_NUMBER (R_PPC_UADDR16, 25) | ||||
|   RELOC_NUMBER (R_PPC_REL32, 26) | ||||
|   RELOC_NUMBER (R_PPC_PLT32, 27) | ||||
|   RELOC_NUMBER (R_PPC_PLTREL32, 28) | ||||
|   RELOC_NUMBER (R_PPC_PLT16_LO, 29) | ||||
|   RELOC_NUMBER (R_PPC_PLT16_HI, 30) | ||||
|   RELOC_NUMBER (R_PPC_PLT16_HA, 31) | ||||
|   RELOC_NUMBER (R_PPC_SDAREL16, 32) | ||||
|   RELOC_NUMBER (R_PPC_SECTOFF, 33) | ||||
|   RELOC_NUMBER (R_PPC_SECTOFF_LO, 34) | ||||
|   RELOC_NUMBER (R_PPC_SECTOFF_HI, 35) | ||||
|   RELOC_NUMBER (R_PPC_SECTOFF_HA, 36) | ||||
|  | ||||
| /* The remaining relocs are from the Embedded ELF ABI, and are not | ||||
|    in the SVR4 ELF ABI.  */ | ||||
|   RELOC_NUMBER (R_PPC_EMB_NADDR32, 101) | ||||
|   RELOC_NUMBER (R_PPC_EMB_NADDR16, 102) | ||||
|   RELOC_NUMBER (R_PPC_EMB_NADDR16_LO, 103) | ||||
|   RELOC_NUMBER (R_PPC_EMB_NADDR16_HI, 104) | ||||
|   RELOC_NUMBER (R_PPC_EMB_NADDR16_HA, 105) | ||||
|   RELOC_NUMBER (R_PPC_EMB_SDAI16, 106) | ||||
|   RELOC_NUMBER (R_PPC_EMB_SDA2I16, 107) | ||||
|   RELOC_NUMBER (R_PPC_EMB_SDA2REL, 108) | ||||
|   RELOC_NUMBER (R_PPC_EMB_SDA21, 109) | ||||
|   RELOC_NUMBER (R_PPC_EMB_MRKREF, 110) | ||||
|   RELOC_NUMBER (R_PPC_EMB_RELSEC16, 111) | ||||
|   RELOC_NUMBER (R_PPC_EMB_RELST_LO, 112) | ||||
|   RELOC_NUMBER (R_PPC_EMB_RELST_HI, 113) | ||||
|   RELOC_NUMBER (R_PPC_EMB_RELST_HA, 114) | ||||
|   RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115) | ||||
|   RELOC_NUMBER (R_PPC_EMB_RELSDA, 116) | ||||
|  | ||||
|   /* These are GNU extensions to enable C++ vtable garbage collection.  */ | ||||
|   RELOC_NUMBER (R_PPC_GNU_VTINHERIT, 253) | ||||
|   RELOC_NUMBER (R_PPC_GNU_VTENTRY, 254) | ||||
|  | ||||
| /* This is a phony reloc to handle any old fashioned TOC16 references | ||||
|    that may still be in object files.  */ | ||||
|   RELOC_NUMBER (R_PPC_TOC16, 255) | ||||
|  | ||||
|   EMPTY_RELOC (R_PPC_max) | ||||
| END_RELOC_NUMBERS | ||||
|  | ||||
|  | ||||
| /* Processor specific flags for the ELF header e_flags field.  */ | ||||
|  | ||||
| #define	EF_PPC_EMB		0x80000000	/* PowerPC embedded flag  */ | ||||
|  | ||||
| 						/* CYGNUS local bits below */ | ||||
| #define	EF_PPC_RELOCATABLE	0x00010000	/* PowerPC -mrelocatable flag */ | ||||
| #define	EF_PPC_RELOCATABLE_LIB	0x00008000	/* PowerPC -mrelocatable-lib flag */ | ||||
|  | ||||
| /* Processor specific section headers, sh_type field */ | ||||
|  | ||||
| #define SHT_ORDERED		SHT_HIPROC	/* Link editor is to sort the \ | ||||
| 						   entries in this section \ | ||||
| 						   based on the address \ | ||||
| 						   specified in the associated \ | ||||
| 						   symbol table entry.  */ | ||||
|  | ||||
| /* Processor specific section flags, sh_flags field */ | ||||
|  | ||||
| #define SHF_EXCLUDE		0x80000000	/* Link editor is to exclude \ | ||||
| 						   this section from executable \ | ||||
| 						   and shared objects that it \ | ||||
| 						   builds when those objects \ | ||||
| 						   are not to be furhter \ | ||||
| 						   relocated.  */ | ||||
| #endif /* _ELF_PPC_H */ | ||||
							
								
								
									
										116
									
								
								include/elf/reloc-macros.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								include/elf/reloc-macros.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,116 @@ | ||||
| /* Generic relocation support for BFD. | ||||
|    Copyright (C) 1998 Free Software Foundation, Inc. | ||||
|  | ||||
|    This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
|    This program is free software; you can redistribute it and/or modify | ||||
|    it under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, or | ||||
|    (at your option) any later version. | ||||
|  | ||||
|    This program is distributed in the hope that it will be useful, | ||||
|    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|    GNU General Public License for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with this program; if not, write to the Free Software Foundation, | ||||
|    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* These macros are used by the various *.h target specific header | ||||
|    files to either generate an enum containing all the known relocations | ||||
|    for that target, or if RELOC_MACROS_GEN_FUNC is defined, a recognition | ||||
|    function is generated instead.  (This is used by binutils/readelf.c) | ||||
|  | ||||
|    Given a header file like this: | ||||
|  | ||||
|    	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 | ||||
|  | ||||
|    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 | ||||
|    	}; | ||||
|  | ||||
|    If RELOC_MACROS_GEN_FUNC *is* defined, then instead the | ||||
|    following function will be generated: | ||||
|  | ||||
|    	static char * foo PARAMS ((unsigned long rtype)); | ||||
|    	static char * | ||||
|    	foo (rtype) | ||||
|    	    unsigned long rtype; | ||||
|    	{ | ||||
|    	   switch (rtype) | ||||
|    	   { | ||||
|    	   case 0: return "R_foo_NONE"; | ||||
|    	   case 1: return "R_foo_32"; | ||||
|    	   default: return NULL; | ||||
|    	   } | ||||
|    	} | ||||
|    */ | ||||
|     | ||||
| #ifndef _RELOC_MACROS_H | ||||
| #define _RELOC_MACROS_H | ||||
|  | ||||
| #ifdef RELOC_MACROS_GEN_FUNC | ||||
|  | ||||
| /* This function takes the relocation number and returns the | ||||
|    string version name of the name of that relocation.  If | ||||
|    the relocation is not recognised, NULL is returned.  */ | ||||
|  | ||||
| #define START_RELOC_NUMBERS(name)   				\ | ||||
| static const char * name    PARAMS ((unsigned long rtype)); 	\ | ||||
| static const char *						\ | ||||
| name (rtype)							\ | ||||
| 	unsigned long rtype;					\ | ||||
| {								\ | ||||
|   switch (rtype)						\ | ||||
|   { | ||||
|  | ||||
| #ifdef __STDC__					   | ||||
| #define RELOC_NUMBER(name, number)  case number : return #name ; | ||||
| #else | ||||
| #define RELOC_NUMBER(name, number)  case number : return "name" ; | ||||
| #endif | ||||
|  | ||||
| #define FAKE_RELOC(name, number)     | ||||
| #define EMPTY_RELOC(name) | ||||
| 					   | ||||
| #define END_RELOC_NUMBERS	\ | ||||
|     default: return NULL;	\ | ||||
|   }				\ | ||||
| } | ||||
|  | ||||
|  | ||||
| #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.  */ | ||||
| #ifdef __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 /* RELOC_MACROS_H */ | ||||
							
								
								
									
										55
									
								
								include/elf/sh.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								include/elf/sh.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| /* SH ELF support for BFD. | ||||
|    Copyright (C) 1998 Free Software Foundation, Inc. | ||||
|  | ||||
|    This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
|    This program is free software; you can redistribute it and/or modify | ||||
|    it under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, or | ||||
|    (at your option) any later version. | ||||
|  | ||||
|    This program is distributed in the hope that it will be useful, | ||||
|    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|    GNU General Public License for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with this program; if not, write to the Free Software Foundation, | ||||
|    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| #ifndef _ELF_SH_H | ||||
| #define _ELF_SH_H | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocations.  */ | ||||
| /* Relocations 25ff are GNU extensions. | ||||
|    25..33 are used for relaxation and use the same constants as COFF uses.  */ | ||||
| START_RELOC_NUMBERS (elf_sh_reloc_type) | ||||
|   RELOC_NUMBER (R_SH_NONE, 0) | ||||
|   RELOC_NUMBER (R_SH_DIR32, 1) | ||||
|   RELOC_NUMBER (R_SH_REL32, 2) | ||||
|   RELOC_NUMBER (R_SH_DIR8WPN, 3) | ||||
|   RELOC_NUMBER (R_SH_IND12W, 4) | ||||
|   RELOC_NUMBER (R_SH_DIR8WPL, 5) | ||||
|   RELOC_NUMBER (R_SH_DIR8WPZ, 6) | ||||
|   RELOC_NUMBER (R_SH_DIR8BP, 7) | ||||
|   RELOC_NUMBER (R_SH_DIR8W, 8) | ||||
|   RELOC_NUMBER (R_SH_DIR8L, 9) | ||||
|   FAKE_RELOC (R_SH_FIRST_INVALID_RELOC, 10) | ||||
|   FAKE_RELOC (R_SH_LAST_INVALID_RELOC, 24) | ||||
|   RELOC_NUMBER (R_SH_SWITCH16, 25) | ||||
|   RELOC_NUMBER (R_SH_SWITCH32, 26) | ||||
|   RELOC_NUMBER (R_SH_USES, 27) | ||||
|   RELOC_NUMBER (R_SH_COUNT, 28) | ||||
|   RELOC_NUMBER (R_SH_ALIGN, 29) | ||||
|   RELOC_NUMBER (R_SH_CODE, 30) | ||||
|   RELOC_NUMBER (R_SH_DATA, 31) | ||||
|   RELOC_NUMBER (R_SH_LABEL, 32) | ||||
|   RELOC_NUMBER (R_SH_SWITCH8, 33) | ||||
|   RELOC_NUMBER (R_SH_GNU_VTINHERIT, 34) | ||||
|   RELOC_NUMBER (R_SH_GNU_VTENTRY, 35) | ||||
|   EMPTY_RELOC (R_SH_max) | ||||
| END_RELOC_NUMBERS | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										156
									
								
								include/elf/sparc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										156
									
								
								include/elf/sparc.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,156 @@ | ||||
| /* SPARC ELF support for BFD. | ||||
|    Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. | ||||
|    By Doug Evans, Cygnus Support, <dje@cygnus.com>. | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| #ifndef _ELF_SPARC_H | ||||
| #define _ELF_SPARC_H | ||||
|  | ||||
| /* Processor specific flags for the ELF header e_flags field.  */ | ||||
|  | ||||
| /* These are defined by Sun.  */ | ||||
|  | ||||
| #define EF_SPARC_32PLUS_MASK	0xffff00	/* bits indicating V8+ type */ | ||||
| #define EF_SPARC_32PLUS		0x000100	/* generic V8+ features */ | ||||
| #define EF_SPARC_SUN_US1	0x000200	/* Sun UltraSPARC1 extensions */ | ||||
| #define EF_SPARC_HAL_R1		0x000400	/* HAL R1 extensions */ | ||||
|  | ||||
| #define EF_SPARC_LEDATA         0x800000	/* little endian data */ | ||||
|  | ||||
| /* This name is used in the V9 ABI.  */ | ||||
| #define EF_SPARC_EXT_MASK	0xffff00	/* reserved for vendor extensions */ | ||||
|  | ||||
| /* V9 memory models */ | ||||
| #define EF_SPARCV9_MM		0x3		/* memory model mask */ | ||||
| #define EF_SPARCV9_TSO		0x0		/* total store ordering */ | ||||
| #define EF_SPARCV9_PSO		0x1		/* partial store ordering */ | ||||
| #define EF_SPARCV9_RMO		0x2		/* relaxed store ordering */ | ||||
|  | ||||
| /* Section indices.  */ | ||||
|  | ||||
| #define SHN_BEFORE		0xff00		/* used with SHF_ORDERED */ | ||||
| #define SHN_AFTER		0xff01		/* used with SHF_ORDERED */ | ||||
|  | ||||
| /* Section flags.  */ | ||||
|  | ||||
| #define SHF_EXCLUDE		0x80000000	/* exclude from linking */ | ||||
| #define SHF_ORDERED		0x40000000	/* treat sh_link,sh_info specially */ | ||||
|  | ||||
| /* Symbol types.  */ | ||||
|  | ||||
| #define STT_REGISTER		13		/* global reg reserved to app. */ | ||||
|  | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| /* Relocation types.  */ | ||||
| START_RELOC_NUMBERS (elf_sparc_reloc_type) | ||||
|   RELOC_NUMBER (R_SPARC_NONE, 0) | ||||
|   RELOC_NUMBER (R_SPARC_8, 1) | ||||
|   RELOC_NUMBER (R_SPARC_16, 2) | ||||
|   RELOC_NUMBER (R_SPARC_32, 3) | ||||
|   RELOC_NUMBER (R_SPARC_DISP8, 4) | ||||
|   RELOC_NUMBER (R_SPARC_DISP16, 5) | ||||
|   RELOC_NUMBER (R_SPARC_DISP32, 6) | ||||
|   RELOC_NUMBER (R_SPARC_WDISP30, 7) | ||||
|   RELOC_NUMBER (R_SPARC_WDISP22, 8) | ||||
|   RELOC_NUMBER (R_SPARC_HI22, 9) | ||||
|   RELOC_NUMBER (R_SPARC_22, 10) | ||||
|   RELOC_NUMBER (R_SPARC_13, 11) | ||||
|   RELOC_NUMBER (R_SPARC_LO10, 12) | ||||
|   RELOC_NUMBER (R_SPARC_GOT10, 13) | ||||
|   RELOC_NUMBER (R_SPARC_GOT13, 14) | ||||
|   RELOC_NUMBER (R_SPARC_GOT22, 15) | ||||
|   RELOC_NUMBER (R_SPARC_PC10, 16) | ||||
|   RELOC_NUMBER (R_SPARC_PC22, 17) | ||||
|   RELOC_NUMBER (R_SPARC_WPLT30, 18) | ||||
|   RELOC_NUMBER (R_SPARC_COPY, 19) | ||||
|   RELOC_NUMBER (R_SPARC_GLOB_DAT, 20) | ||||
|   RELOC_NUMBER (R_SPARC_JMP_SLOT, 21) | ||||
|   RELOC_NUMBER (R_SPARC_RELATIVE, 22) | ||||
|   RELOC_NUMBER (R_SPARC_UA32, 23) | ||||
|  | ||||
|   /* ??? These 6 relocs are new but not currently used.  For binary | ||||
|      compatility in the sparc64-elf toolchain, we leave them out. | ||||
|      A non-binary upward compatible change is expected for sparc64-elf.  */ | ||||
| #ifndef SPARC64_OLD_RELOCS | ||||
|   /* ??? New relocs on the UltraSPARC.  Not sure what they're for yet.  */ | ||||
|   RELOC_NUMBER (R_SPARC_PLT32, 24) | ||||
|   RELOC_NUMBER (R_SPARC_HIPLT22, 25) | ||||
|   RELOC_NUMBER (R_SPARC_LOPLT10, 26) | ||||
|   RELOC_NUMBER (R_SPARC_PCPLT32, 27) | ||||
|   RELOC_NUMBER (R_SPARC_PCPLT22, 28) | ||||
|   RELOC_NUMBER (R_SPARC_PCPLT10, 29) | ||||
| #endif | ||||
|  | ||||
|   /* v9 relocs */ | ||||
|   RELOC_NUMBER (R_SPARC_10, 30) | ||||
|   RELOC_NUMBER (R_SPARC_11, 31) | ||||
|   RELOC_NUMBER (R_SPARC_64, 32) | ||||
|   RELOC_NUMBER (R_SPARC_OLO10, 33) | ||||
|   RELOC_NUMBER (R_SPARC_HH22, 34) | ||||
|   RELOC_NUMBER (R_SPARC_HM10, 35) | ||||
|   RELOC_NUMBER (R_SPARC_LM22, 36) | ||||
|   RELOC_NUMBER (R_SPARC_PC_HH22, 37) | ||||
|   RELOC_NUMBER (R_SPARC_PC_HM10, 38) | ||||
|   RELOC_NUMBER (R_SPARC_PC_LM22, 39) | ||||
|   RELOC_NUMBER (R_SPARC_WDISP16, 40) | ||||
|   RELOC_NUMBER (R_SPARC_WDISP19, 41) | ||||
|   RELOC_NUMBER (R_SPARC_UNUSED_42, 42) | ||||
|   RELOC_NUMBER (R_SPARC_7, 43) | ||||
|   RELOC_NUMBER (R_SPARC_5, 44) | ||||
|   RELOC_NUMBER (R_SPARC_6, 45) | ||||
|   RELOC_NUMBER (R_SPARC_DISP64, 46) | ||||
|   RELOC_NUMBER (R_SPARC_PLT64, 47) | ||||
|   RELOC_NUMBER (R_SPARC_HIX22, 48) | ||||
|   RELOC_NUMBER (R_SPARC_LOX10, 49) | ||||
|   RELOC_NUMBER (R_SPARC_H44, 50) | ||||
|   RELOC_NUMBER (R_SPARC_M44, 51) | ||||
|   RELOC_NUMBER (R_SPARC_L44, 52) | ||||
|   RELOC_NUMBER (R_SPARC_REGISTER, 53) | ||||
|   RELOC_NUMBER (R_SPARC_UA64, 54) | ||||
|   RELOC_NUMBER (R_SPARC_UA16, 55) | ||||
|  | ||||
|   /* little endian data relocs */ | ||||
|   RELOC_NUMBER (R_SPARC_REV32, 56) | ||||
|  | ||||
|   RELOC_NUMBER (R_SPARC_GNU_VTINHERIT, 250) | ||||
|   RELOC_NUMBER (R_SPARC_GNU_VTENTRY, 251) | ||||
|  | ||||
|   EMPTY_RELOC  (R_SPARC_max) | ||||
| END_RELOC_NUMBERS | ||||
|  | ||||
| /* Relocation macros.  */ | ||||
|  | ||||
| #define ELF64_R_TYPE_DATA(info)		(((bfd_vma) (info) << 32) >> 40) | ||||
| #define ELF64_R_TYPE_ID(info)		(((bfd_vma) (info) << 56) >> 56) | ||||
| #define ELF64_R_TYPE_INFO(data, type)	(((bfd_vma) (data) << 8) \ | ||||
| 					 + (bfd_vma) (type)) | ||||
|  | ||||
| #define DT_SPARC_REGISTER	0x70000001 | ||||
|  | ||||
| /* | ||||
|  * FIXME: NOT ABI -- GET RID OF THIS | ||||
|  * Defines the format used by the .plt.  Currently defined values are | ||||
|  *   0 -- reserved to SI | ||||
|  *   1 -- absolute address in .got.plt | ||||
|  *   2 -- got-relative address in .got.plt | ||||
|  */ | ||||
|  | ||||
| #define DT_SPARC_PLTFMT		0x70000001 | ||||
|  | ||||
| #endif /* _ELF_SPARC_H */ | ||||
							
								
								
									
										111
									
								
								include/elf/v850.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								include/elf/v850.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,111 @@ | ||||
| /* V850 ELF support for BFD. | ||||
|    Copyright (C) 1997 Free Software Foundation, Inc. | ||||
|    Created by Michael Meissner, Cygnus Support <meissner@cygnus.com> | ||||
|  | ||||
| This file is part of BFD, the Binary File Descriptor library. | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| /* This file holds definitions specific to the MIPS ELF ABI.  Note | ||||
|    that most of this is not actually implemented by BFD.  */ | ||||
|  | ||||
| #ifndef _ELF_V850_H | ||||
| #define _ELF_V850_H | ||||
|  | ||||
| /* Processor specific flags for the ELF header e_flags field.  */ | ||||
|  | ||||
| /* Four bit V850 architecture field.  */ | ||||
| #define EF_V850_ARCH		0xf0000000 | ||||
|  | ||||
| /* v850 code.  */ | ||||
| #define E_V850_ARCH		0x00000000 | ||||
|  | ||||
| /* v850e code.  */ | ||||
| #define E_V850E_ARCH		0x10000000 | ||||
|  | ||||
| /* v850ea code.  */ | ||||
| #define E_V850EA_ARCH		0x20000000 | ||||
|  | ||||
|  | ||||
| /* Flags for the st_other field */ | ||||
| #define V850_OTHER_SDA		0x01	/* symbol had SDA relocations */ | ||||
| #define V850_OTHER_ZDA		0x02	/* symbol had ZDA relocations */ | ||||
| #define V850_OTHER_TDA		0x04	/* symbol had TDA relocations */ | ||||
| #define V850_OTHER_TDA_BYTE	0x08	/* symbol had TDA byte relocations */ | ||||
| #define V850_OTHER_ERROR	0x80	/* symbol had an error reported */ | ||||
|  | ||||
| /* V850 relocations */ | ||||
| #include "elf/reloc-macros.h" | ||||
|  | ||||
| START_RELOC_NUMBERS (v850_reloc_type) | ||||
|      RELOC_NUMBER (R_V850_NONE, 0) | ||||
|      RELOC_NUMBER (R_V850_9_PCREL, 1) | ||||
|      RELOC_NUMBER (R_V850_22_PCREL, 2) | ||||
|      RELOC_NUMBER (R_V850_HI16_S, 3) | ||||
|      RELOC_NUMBER (R_V850_HI16, 4) | ||||
|      RELOC_NUMBER (R_V850_LO16, 5) | ||||
|      RELOC_NUMBER (R_V850_32, 6) | ||||
|      RELOC_NUMBER (R_V850_16, 7) | ||||
|      RELOC_NUMBER (R_V850_8, 8) | ||||
|      RELOC_NUMBER( R_V850_SDA_16_16_OFFSET, 9)		/* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */ | ||||
|      RELOC_NUMBER( R_V850_SDA_15_16_OFFSET, 10)		/* For ld.w, ld.h, ld.hu, st.w, st.h */ | ||||
|      RELOC_NUMBER( R_V850_ZDA_16_16_OFFSET, 11)		/* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */ | ||||
|      RELOC_NUMBER( R_V850_ZDA_15_16_OFFSET, 12)		/* For ld.w, ld.h, ld.hu, st.w, st.h */ | ||||
|      RELOC_NUMBER( R_V850_TDA_6_8_OFFSET, 13)		/* For sst.w, sld.w */ | ||||
|      RELOC_NUMBER( R_V850_TDA_7_8_OFFSET, 14)		/* For sst.h, sld.h */ | ||||
|      RELOC_NUMBER( R_V850_TDA_7_7_OFFSET, 15)		/* For sst.b, sld.b */ | ||||
|      RELOC_NUMBER( R_V850_TDA_16_16_OFFSET, 16)		/* For set1, clr1, not1, tst1, movea, movhi */ | ||||
| /* CYGNUS LOCAL v850e */ | ||||
|      RELOC_NUMBER( R_V850_TDA_4_5_OFFSET, 17)		/* For sld.hu */ | ||||
|      RELOC_NUMBER( R_V850_TDA_4_4_OFFSET, 18)		/* For sld.bu */ | ||||
|      RELOC_NUMBER( R_V850_SDA_16_16_SPLIT_OFFSET, 19)	/* For ld.bu */ | ||||
|      RELOC_NUMBER( R_V850_ZDA_16_16_SPLIT_OFFSET, 20)	/* For ld.bu */ | ||||
|      RELOC_NUMBER( R_V850_CALLT_6_7_OFFSET, 21)		/* For callt */ | ||||
|      RELOC_NUMBER( R_V850_CALLT_16_16_OFFSET, 22)	/* For callt */ | ||||
| /* 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 | ||||
|  | ||||
|  | ||||
| /* Processor specific section indices.  These sections do not actually | ||||
|    exist.  Symbols with a st_shndx field corresponding to one of these | ||||
|    values have a special meaning.  */ | ||||
|  | ||||
| /* Small data area common symbol.  */ | ||||
| #define SHN_V850_SCOMMON	0xff00 | ||||
|  | ||||
| /* Tiny data area common symbol.  */ | ||||
| #define SHN_V850_TCOMMON	0xff01 | ||||
|  | ||||
| /* Zero data area common symbol.  */ | ||||
| #define SHN_V850_ZCOMMON	0xff02 | ||||
|  | ||||
|  | ||||
| /* Processor specific section types.  */ | ||||
|  | ||||
| /* Section contains the .scommon data.  */ | ||||
| #define SHT_V850_SCOMMON	0x70000000 | ||||
|  | ||||
| /* Section contains the .scommon data.  */ | ||||
| #define SHT_V850_TCOMMON	0x70000001 | ||||
|  | ||||
| /* Section contains the .scommon data.  */ | ||||
| #define SHT_V850_ZCOMMON	0x70000002 | ||||
|  | ||||
|  | ||||
| #endif /* _ELF_V850_H */ | ||||
		Reference in New Issue
	
	Block a user