github.com/afumu/libc@v0.0.6/musl/include/elf.h (about)

     1  #ifndef _ELF_H
     2  #define _ELF_H
     3  
     4  #ifdef __cplusplus
     5  extern "C" {
     6  #endif
     7  
     8  #include <stdint.h>
     9  
    10  typedef uint16_t Elf32_Half;
    11  typedef uint16_t Elf64_Half;
    12  
    13  typedef uint32_t Elf32_Word;
    14  typedef	int32_t  Elf32_Sword;
    15  typedef uint32_t Elf64_Word;
    16  typedef	int32_t  Elf64_Sword;
    17  
    18  typedef uint64_t Elf32_Xword;
    19  typedef	int64_t  Elf32_Sxword;
    20  typedef uint64_t Elf64_Xword;
    21  typedef	int64_t  Elf64_Sxword;
    22  
    23  typedef uint32_t Elf32_Addr;
    24  typedef uint64_t Elf64_Addr;
    25  
    26  typedef uint32_t Elf32_Off;
    27  typedef uint64_t Elf64_Off;
    28  
    29  typedef uint16_t Elf32_Section;
    30  typedef uint16_t Elf64_Section;
    31  
    32  typedef Elf32_Half Elf32_Versym;
    33  typedef Elf64_Half Elf64_Versym;
    34  
    35  #define EI_NIDENT (16)
    36  
    37  typedef struct {
    38    unsigned char	e_ident[EI_NIDENT];
    39    Elf32_Half	e_type;
    40    Elf32_Half	e_machine;
    41    Elf32_Word	e_version;
    42    Elf32_Addr	e_entry;
    43    Elf32_Off	e_phoff;
    44    Elf32_Off	e_shoff;
    45    Elf32_Word	e_flags;
    46    Elf32_Half	e_ehsize;
    47    Elf32_Half	e_phentsize;
    48    Elf32_Half	e_phnum;
    49    Elf32_Half	e_shentsize;
    50    Elf32_Half	e_shnum;
    51    Elf32_Half	e_shstrndx;
    52  } Elf32_Ehdr;
    53  
    54  typedef struct {
    55    unsigned char	e_ident[EI_NIDENT];
    56    Elf64_Half	e_type;
    57    Elf64_Half	e_machine;
    58    Elf64_Word	e_version;
    59    Elf64_Addr	e_entry;
    60    Elf64_Off	e_phoff;
    61    Elf64_Off	e_shoff;
    62    Elf64_Word	e_flags;
    63    Elf64_Half	e_ehsize;
    64    Elf64_Half	e_phentsize;
    65    Elf64_Half	e_phnum;
    66    Elf64_Half	e_shentsize;
    67    Elf64_Half	e_shnum;
    68    Elf64_Half	e_shstrndx;
    69  } Elf64_Ehdr;
    70  
    71  #define EI_MAG0		0
    72  #define ELFMAG0		0x7f
    73  
    74  #define EI_MAG1		1
    75  #define ELFMAG1		'E'
    76  
    77  #define EI_MAG2		2
    78  #define ELFMAG2		'L'
    79  
    80  #define EI_MAG3		3
    81  #define ELFMAG3		'F'
    82  
    83  
    84  #define	ELFMAG		"\177ELF"
    85  #define	SELFMAG		4
    86  
    87  #define EI_CLASS	4
    88  #define ELFCLASSNONE	0
    89  #define ELFCLASS32	1
    90  #define ELFCLASS64	2
    91  #define ELFCLASSNUM	3
    92  
    93  #define EI_DATA		5
    94  #define ELFDATANONE	0
    95  #define ELFDATA2LSB	1
    96  #define ELFDATA2MSB	2
    97  #define ELFDATANUM	3
    98  
    99  #define EI_VERSION	6
   100  
   101  
   102  #define EI_OSABI	7
   103  #define ELFOSABI_NONE		0
   104  #define ELFOSABI_SYSV		0
   105  #define ELFOSABI_HPUX		1
   106  #define ELFOSABI_NETBSD		2
   107  #define ELFOSABI_LINUX		3
   108  #define ELFOSABI_GNU		3
   109  #define ELFOSABI_SOLARIS	6
   110  #define ELFOSABI_AIX		7
   111  #define ELFOSABI_IRIX		8
   112  #define ELFOSABI_FREEBSD	9
   113  #define ELFOSABI_TRU64		10
   114  #define ELFOSABI_MODESTO	11
   115  #define ELFOSABI_OPENBSD	12
   116  #define ELFOSABI_ARM		97
   117  #define ELFOSABI_STANDALONE	255
   118  
   119  #define EI_ABIVERSION	8
   120  
   121  #define EI_PAD		9
   122  
   123  
   124  
   125  #define ET_NONE		0
   126  #define ET_REL		1
   127  #define ET_EXEC		2
   128  #define ET_DYN		3
   129  #define ET_CORE		4
   130  #define	ET_NUM		5
   131  #define ET_LOOS		0xfe00
   132  #define ET_HIOS		0xfeff
   133  #define ET_LOPROC	0xff00
   134  #define ET_HIPROC	0xffff
   135  
   136  
   137  
   138  #define EM_NONE		 0
   139  #define EM_M32		 1
   140  #define EM_SPARC	 2
   141  #define EM_386		 3
   142  #define EM_68K		 4
   143  #define EM_88K		 5
   144  #define EM_860		 7
   145  #define EM_MIPS		 8
   146  #define EM_S370		 9
   147  #define EM_MIPS_RS3_LE	10
   148  
   149  #define EM_PARISC	15
   150  #define EM_VPP500	17
   151  #define EM_SPARC32PLUS	18
   152  #define EM_960		19
   153  #define EM_PPC		20
   154  #define EM_PPC64	21
   155  #define EM_S390		22
   156  
   157  #define EM_V800		36
   158  #define EM_FR20		37
   159  #define EM_RH32		38
   160  #define EM_RCE		39
   161  #define EM_ARM		40
   162  #define EM_FAKE_ALPHA	41
   163  #define EM_SH		42
   164  #define EM_SPARCV9	43
   165  #define EM_TRICORE	44
   166  #define EM_ARC		45
   167  #define EM_H8_300	46
   168  #define EM_H8_300H	47
   169  #define EM_H8S		48
   170  #define EM_H8_500	49
   171  #define EM_IA_64	50
   172  #define EM_MIPS_X	51
   173  #define EM_COLDFIRE	52
   174  #define EM_68HC12	53
   175  #define EM_MMA		54
   176  #define EM_PCP		55
   177  #define EM_NCPU		56
   178  #define EM_NDR1		57
   179  #define EM_STARCORE	58
   180  #define EM_ME16		59
   181  #define EM_ST100	60
   182  #define EM_TINYJ	61
   183  #define EM_X86_64	62
   184  #define EM_PDSP		63
   185  
   186  #define EM_FX66		66
   187  #define EM_ST9PLUS	67
   188  #define EM_ST7		68
   189  #define EM_68HC16	69
   190  #define EM_68HC11	70
   191  #define EM_68HC08	71
   192  #define EM_68HC05	72
   193  #define EM_SVX		73
   194  #define EM_ST19		74
   195  #define EM_VAX		75
   196  #define EM_CRIS		76
   197  #define EM_JAVELIN	77
   198  #define EM_FIREPATH	78
   199  #define EM_ZSP		79
   200  #define EM_MMIX		80
   201  #define EM_HUANY	81
   202  #define EM_PRISM	82
   203  #define EM_AVR		83
   204  #define EM_FR30		84
   205  #define EM_D10V		85
   206  #define EM_D30V		86
   207  #define EM_V850		87
   208  #define EM_M32R		88
   209  #define EM_MN10300	89
   210  #define EM_MN10200	90
   211  #define EM_PJ		91
   212  #define EM_OR1K		92
   213  #define EM_OPENRISC	92
   214  #define EM_ARC_A5	93
   215  #define EM_ARC_COMPACT	93
   216  #define EM_XTENSA	94
   217  #define EM_VIDEOCORE	95
   218  #define EM_TMM_GPP	96
   219  #define EM_NS32K	97
   220  #define EM_TPC		98
   221  #define EM_SNP1K	99
   222  #define EM_ST200	100
   223  #define EM_IP2K		101
   224  #define EM_MAX		102
   225  #define EM_CR		103
   226  #define EM_F2MC16	104
   227  #define EM_MSP430	105
   228  #define EM_BLACKFIN	106
   229  #define EM_SE_C33	107
   230  #define EM_SEP		108
   231  #define EM_ARCA		109
   232  #define EM_UNICORE	110
   233  #define EM_EXCESS	111
   234  #define EM_DXP		112
   235  #define EM_ALTERA_NIOS2 113
   236  #define EM_CRX		114
   237  #define EM_XGATE	115
   238  #define EM_C166		116
   239  #define EM_M16C		117
   240  #define EM_DSPIC30F	118
   241  #define EM_CE		119
   242  #define EM_M32C		120
   243  #define EM_TSK3000	131
   244  #define EM_RS08		132
   245  #define EM_SHARC	133
   246  #define EM_ECOG2	134
   247  #define EM_SCORE7	135
   248  #define EM_DSP24	136
   249  #define EM_VIDEOCORE3	137
   250  #define EM_LATTICEMICO32 138
   251  #define EM_SE_C17	139
   252  #define EM_TI_C6000	140
   253  #define EM_TI_C2000	141
   254  #define EM_TI_C5500	142
   255  #define EM_TI_ARP32	143
   256  #define EM_TI_PRU	144
   257  #define EM_MMDSP_PLUS	160
   258  #define EM_CYPRESS_M8C	161
   259  #define EM_R32C		162
   260  #define EM_TRIMEDIA	163
   261  #define EM_QDSP6	164
   262  #define EM_8051		165
   263  #define EM_STXP7X	166
   264  #define EM_NDS32	167
   265  #define EM_ECOG1X	168
   266  #define EM_MAXQ30	169
   267  #define EM_XIMO16	170
   268  #define EM_MANIK	171
   269  #define EM_CRAYNV2	172
   270  #define EM_RX		173
   271  #define EM_METAG	174
   272  #define EM_MCST_ELBRUS	175
   273  #define EM_ECOG16	176
   274  #define EM_CR16		177
   275  #define EM_ETPU		178
   276  #define EM_SLE9X	179
   277  #define EM_L10M		180
   278  #define EM_K10M		181
   279  #define EM_AARCH64	183
   280  #define EM_AVR32	185
   281  #define EM_STM8		186
   282  #define EM_TILE64	187
   283  #define EM_TILEPRO	188
   284  #define EM_MICROBLAZE	189
   285  #define EM_CUDA		190
   286  #define EM_TILEGX	191
   287  #define EM_CLOUDSHIELD	192
   288  #define EM_COREA_1ST	193
   289  #define EM_COREA_2ND	194
   290  #define EM_ARC_COMPACT2	195
   291  #define EM_OPEN8	196
   292  #define EM_RL78		197
   293  #define EM_VIDEOCORE5	198
   294  #define EM_78KOR	199
   295  #define EM_56800EX	200
   296  #define EM_BA1		201
   297  #define EM_BA2		202
   298  #define EM_XCORE	203
   299  #define EM_MCHP_PIC	204
   300  #define EM_KM32		210
   301  #define EM_KMX32	211
   302  #define EM_EMX16	212
   303  #define EM_EMX8		213
   304  #define EM_KVARC	214
   305  #define EM_CDP		215
   306  #define EM_COGE		216
   307  #define EM_COOL		217
   308  #define EM_NORC		218
   309  #define EM_CSR_KALIMBA	219
   310  #define EM_Z80		220
   311  #define EM_VISIUM	221
   312  #define EM_FT32		222
   313  #define EM_MOXIE	223
   314  #define EM_AMDGPU	224
   315  #define EM_RISCV	243
   316  #define EM_BPF		247
   317  #define EM_CSKY		252
   318  #define EM_NUM		253
   319  
   320  #define EM_ALPHA	0x9026
   321  
   322  #define EV_NONE		0
   323  #define EV_CURRENT	1
   324  #define EV_NUM		2
   325  
   326  typedef struct {
   327    Elf32_Word	sh_name;
   328    Elf32_Word	sh_type;
   329    Elf32_Word	sh_flags;
   330    Elf32_Addr	sh_addr;
   331    Elf32_Off	sh_offset;
   332    Elf32_Word	sh_size;
   333    Elf32_Word	sh_link;
   334    Elf32_Word	sh_info;
   335    Elf32_Word	sh_addralign;
   336    Elf32_Word	sh_entsize;
   337  } Elf32_Shdr;
   338  
   339  typedef struct {
   340    Elf64_Word	sh_name;
   341    Elf64_Word	sh_type;
   342    Elf64_Xword	sh_flags;
   343    Elf64_Addr	sh_addr;
   344    Elf64_Off	sh_offset;
   345    Elf64_Xword	sh_size;
   346    Elf64_Word	sh_link;
   347    Elf64_Word	sh_info;
   348    Elf64_Xword	sh_addralign;
   349    Elf64_Xword	sh_entsize;
   350  } Elf64_Shdr;
   351  
   352  
   353  
   354  #define SHN_UNDEF	0
   355  #define SHN_LORESERVE	0xff00
   356  #define SHN_LOPROC	0xff00
   357  #define SHN_BEFORE	0xff00
   358  
   359  #define SHN_AFTER	0xff01
   360  
   361  #define SHN_HIPROC	0xff1f
   362  #define SHN_LOOS	0xff20
   363  #define SHN_HIOS	0xff3f
   364  #define SHN_ABS		0xfff1
   365  #define SHN_COMMON	0xfff2
   366  #define SHN_XINDEX	0xffff
   367  #define SHN_HIRESERVE	0xffff
   368  
   369  
   370  
   371  #define SHT_NULL	  0
   372  #define SHT_PROGBITS	  1
   373  #define SHT_SYMTAB	  2
   374  #define SHT_STRTAB	  3
   375  #define SHT_RELA	  4
   376  #define SHT_HASH	  5
   377  #define SHT_DYNAMIC	  6
   378  #define SHT_NOTE	  7
   379  #define SHT_NOBITS	  8
   380  #define SHT_REL		  9
   381  #define SHT_SHLIB	  10
   382  #define SHT_DYNSYM	  11
   383  #define SHT_INIT_ARRAY	  14
   384  #define SHT_FINI_ARRAY	  15
   385  #define SHT_PREINIT_ARRAY 16
   386  #define SHT_GROUP	  17
   387  #define SHT_SYMTAB_SHNDX  18
   388  #define	SHT_NUM		  19
   389  #define SHT_LOOS	  0x60000000
   390  #define SHT_GNU_ATTRIBUTES 0x6ffffff5
   391  #define SHT_GNU_HASH	  0x6ffffff6
   392  #define SHT_GNU_LIBLIST	  0x6ffffff7
   393  #define SHT_CHECKSUM	  0x6ffffff8
   394  #define SHT_LOSUNW	  0x6ffffffa
   395  #define SHT_SUNW_move	  0x6ffffffa
   396  #define SHT_SUNW_COMDAT   0x6ffffffb
   397  #define SHT_SUNW_syminfo  0x6ffffffc
   398  #define SHT_GNU_verdef	  0x6ffffffd
   399  #define SHT_GNU_verneed	  0x6ffffffe
   400  #define SHT_GNU_versym	  0x6fffffff
   401  #define SHT_HISUNW	  0x6fffffff
   402  #define SHT_HIOS	  0x6fffffff
   403  #define SHT_LOPROC	  0x70000000
   404  #define SHT_HIPROC	  0x7fffffff
   405  #define SHT_LOUSER	  0x80000000
   406  #define SHT_HIUSER	  0x8fffffff
   407  
   408  #define SHF_WRITE	     (1 << 0)
   409  #define SHF_ALLOC	     (1 << 1)
   410  #define SHF_EXECINSTR	     (1 << 2)
   411  #define SHF_MERGE	     (1 << 4)
   412  #define SHF_STRINGS	     (1 << 5)
   413  #define SHF_INFO_LINK	     (1 << 6)
   414  #define SHF_LINK_ORDER	     (1 << 7)
   415  #define SHF_OS_NONCONFORMING (1 << 8)
   416  
   417  #define SHF_GROUP	     (1 << 9)
   418  #define SHF_TLS		     (1 << 10)
   419  #define SHF_COMPRESSED	     (1 << 11)
   420  #define SHF_MASKOS	     0x0ff00000
   421  #define SHF_MASKPROC	     0xf0000000
   422  #define SHF_ORDERED	     (1 << 30)
   423  #define SHF_EXCLUDE	     (1U << 31)
   424  
   425  typedef struct {
   426    Elf32_Word	ch_type;
   427    Elf32_Word	ch_size;
   428    Elf32_Word	ch_addralign;
   429  } Elf32_Chdr;
   430  
   431  typedef struct {
   432    Elf64_Word	ch_type;
   433    Elf64_Word	ch_reserved;
   434    Elf64_Xword	ch_size;
   435    Elf64_Xword	ch_addralign;
   436  } Elf64_Chdr;
   437  
   438  #define ELFCOMPRESS_ZLIB	1
   439  #define ELFCOMPRESS_LOOS	0x60000000
   440  #define ELFCOMPRESS_HIOS	0x6fffffff
   441  #define ELFCOMPRESS_LOPROC	0x70000000
   442  #define ELFCOMPRESS_HIPROC	0x7fffffff
   443  
   444  
   445  #define GRP_COMDAT	0x1
   446  
   447  typedef struct {
   448    Elf32_Word	st_name;
   449    Elf32_Addr	st_value;
   450    Elf32_Word	st_size;
   451    unsigned char	st_info;
   452    unsigned char	st_other;
   453    Elf32_Section	st_shndx;
   454  } Elf32_Sym;
   455  
   456  typedef struct {
   457    Elf64_Word	st_name;
   458    unsigned char	st_info;
   459    unsigned char st_other;
   460    Elf64_Section	st_shndx;
   461    Elf64_Addr	st_value;
   462    Elf64_Xword	st_size;
   463  } Elf64_Sym;
   464  
   465  typedef struct {
   466    Elf32_Half si_boundto;
   467    Elf32_Half si_flags;
   468  } Elf32_Syminfo;
   469  
   470  typedef struct {
   471    Elf64_Half si_boundto;
   472    Elf64_Half si_flags;
   473  } Elf64_Syminfo;
   474  
   475  #define SYMINFO_BT_SELF		0xffff
   476  #define SYMINFO_BT_PARENT	0xfffe
   477  #define SYMINFO_BT_LOWRESERVE	0xff00
   478  
   479  #define SYMINFO_FLG_DIRECT	0x0001
   480  #define SYMINFO_FLG_PASSTHRU	0x0002
   481  #define SYMINFO_FLG_COPY	0x0004
   482  #define SYMINFO_FLG_LAZYLOAD	0x0008
   483  
   484  #define SYMINFO_NONE		0
   485  #define SYMINFO_CURRENT		1
   486  #define SYMINFO_NUM		2
   487  
   488  #define ELF32_ST_BIND(val)		(((unsigned char) (val)) >> 4)
   489  #define ELF32_ST_TYPE(val)		((val) & 0xf)
   490  #define ELF32_ST_INFO(bind, type)	(((bind) << 4) + ((type) & 0xf))
   491  
   492  #define ELF64_ST_BIND(val)		ELF32_ST_BIND (val)
   493  #define ELF64_ST_TYPE(val)		ELF32_ST_TYPE (val)
   494  #define ELF64_ST_INFO(bind, type)	ELF32_ST_INFO ((bind), (type))
   495  
   496  #define STB_LOCAL	0
   497  #define STB_GLOBAL	1
   498  #define STB_WEAK	2
   499  #define	STB_NUM		3
   500  #define STB_LOOS	10
   501  #define STB_GNU_UNIQUE	10
   502  #define STB_HIOS	12
   503  #define STB_LOPROC	13
   504  #define STB_HIPROC	15
   505  
   506  #define STT_NOTYPE	0
   507  #define STT_OBJECT	1
   508  #define STT_FUNC	2
   509  #define STT_SECTION	3
   510  #define STT_FILE	4
   511  #define STT_COMMON	5
   512  #define STT_TLS		6
   513  #define	STT_NUM		7
   514  #define STT_LOOS	10
   515  #define STT_GNU_IFUNC	10
   516  #define STT_HIOS	12
   517  #define STT_LOPROC	13
   518  #define STT_HIPROC	15
   519  
   520  #define STN_UNDEF	0
   521  
   522  #define ELF32_ST_VISIBILITY(o)	((o) & 0x03)
   523  #define ELF64_ST_VISIBILITY(o)	ELF32_ST_VISIBILITY (o)
   524  
   525  #define STV_DEFAULT	0
   526  #define STV_INTERNAL	1
   527  #define STV_HIDDEN	2
   528  #define STV_PROTECTED	3
   529  
   530  
   531  
   532  
   533  typedef struct {
   534    Elf32_Addr	r_offset;
   535    Elf32_Word	r_info;
   536  } Elf32_Rel;
   537  
   538  typedef struct {
   539    Elf64_Addr	r_offset;
   540    Elf64_Xword	r_info;
   541  } Elf64_Rel;
   542  
   543  
   544  
   545  typedef struct {
   546    Elf32_Addr	r_offset;
   547    Elf32_Word	r_info;
   548    Elf32_Sword	r_addend;
   549  } Elf32_Rela;
   550  
   551  typedef struct {
   552    Elf64_Addr	r_offset;
   553    Elf64_Xword	r_info;
   554    Elf64_Sxword	r_addend;
   555  } Elf64_Rela;
   556  
   557  
   558  
   559  #define ELF32_R_SYM(val)		((val) >> 8)
   560  #define ELF32_R_TYPE(val)		((val) & 0xff)
   561  #define ELF32_R_INFO(sym, type)		(((sym) << 8) + ((type) & 0xff))
   562  
   563  #define ELF64_R_SYM(i)			((i) >> 32)
   564  #define ELF64_R_TYPE(i)			((i) & 0xffffffff)
   565  #define ELF64_R_INFO(sym,type)		((((Elf64_Xword) (sym)) << 32) + (type))
   566  
   567  
   568  
   569  typedef struct {
   570    Elf32_Word	p_type;
   571    Elf32_Off	p_offset;
   572    Elf32_Addr	p_vaddr;
   573    Elf32_Addr	p_paddr;
   574    Elf32_Word	p_filesz;
   575    Elf32_Word	p_memsz;
   576    Elf32_Word	p_flags;
   577    Elf32_Word	p_align;
   578  } Elf32_Phdr;
   579  
   580  typedef struct {
   581    Elf64_Word	p_type;
   582    Elf64_Word	p_flags;
   583    Elf64_Off	p_offset;
   584    Elf64_Addr	p_vaddr;
   585    Elf64_Addr	p_paddr;
   586    Elf64_Xword	p_filesz;
   587    Elf64_Xword	p_memsz;
   588    Elf64_Xword	p_align;
   589  } Elf64_Phdr;
   590  
   591  
   592  
   593  #define	PT_NULL		0
   594  #define PT_LOAD		1
   595  #define PT_DYNAMIC	2
   596  #define PT_INTERP	3
   597  #define PT_NOTE		4
   598  #define PT_SHLIB	5
   599  #define PT_PHDR		6
   600  #define PT_TLS		7
   601  #define	PT_NUM		8
   602  #define PT_LOOS		0x60000000
   603  #define PT_GNU_EH_FRAME	0x6474e550
   604  #define PT_GNU_STACK	0x6474e551
   605  #define PT_GNU_RELRO	0x6474e552
   606  #define PT_LOSUNW	0x6ffffffa
   607  #define PT_SUNWBSS	0x6ffffffa
   608  #define PT_SUNWSTACK	0x6ffffffb
   609  #define PT_HISUNW	0x6fffffff
   610  #define PT_HIOS		0x6fffffff
   611  #define PT_LOPROC	0x70000000
   612  #define PT_HIPROC	0x7fffffff
   613  
   614  
   615  #define PN_XNUM 0xffff
   616  
   617  
   618  #define PF_X		(1 << 0)
   619  #define PF_W		(1 << 1)
   620  #define PF_R		(1 << 2)
   621  #define PF_MASKOS	0x0ff00000
   622  #define PF_MASKPROC	0xf0000000
   623  
   624  
   625  
   626  #define NT_PRSTATUS	1
   627  #define NT_PRFPREG	2
   628  #define NT_FPREGSET	2
   629  #define NT_PRPSINFO	3
   630  #define NT_PRXREG	4
   631  #define NT_TASKSTRUCT	4
   632  #define NT_PLATFORM	5
   633  #define NT_AUXV		6
   634  #define NT_GWINDOWS	7
   635  #define NT_ASRS		8
   636  #define NT_PSTATUS	10
   637  #define NT_PSINFO	13
   638  #define NT_PRCRED	14
   639  #define NT_UTSNAME	15
   640  #define NT_LWPSTATUS	16
   641  #define NT_LWPSINFO	17
   642  #define NT_PRFPXREG	20
   643  #define NT_SIGINFO	0x53494749
   644  #define NT_FILE		0x46494c45
   645  #define NT_PRXFPREG	0x46e62b7f
   646  #define NT_PPC_VMX	0x100
   647  #define NT_PPC_SPE	0x101
   648  #define NT_PPC_VSX	0x102
   649  #define NT_PPC_TAR	0x103
   650  #define NT_PPC_PPR	0x104
   651  #define NT_PPC_DSCR	0x105
   652  #define NT_PPC_EBB	0x106
   653  #define NT_PPC_PMU	0x107
   654  #define NT_PPC_TM_CGPR	0x108
   655  #define NT_PPC_TM_CFPR	0x109
   656  #define NT_PPC_TM_CVMX	0x10a
   657  #define NT_PPC_TM_CVSX	0x10b
   658  #define NT_PPC_TM_SPR	0x10c
   659  #define NT_PPC_TM_CTAR	0x10d
   660  #define NT_PPC_TM_CPPR	0x10e
   661  #define NT_PPC_TM_CDSCR	0x10f
   662  #define NT_386_TLS	0x200
   663  #define NT_386_IOPERM	0x201
   664  #define NT_X86_XSTATE	0x202
   665  #define NT_S390_HIGH_GPRS	0x300
   666  #define NT_S390_TIMER	0x301
   667  #define NT_S390_TODCMP	0x302
   668  #define NT_S390_TODPREG	0x303
   669  #define NT_S390_CTRS	0x304
   670  #define NT_S390_PREFIX	0x305
   671  #define NT_S390_LAST_BREAK	0x306
   672  #define NT_S390_SYSTEM_CALL	0x307
   673  #define NT_S390_TDB	0x308
   674  #define NT_S390_VXRS_LOW	0x309
   675  #define NT_S390_VXRS_HIGH	0x30a
   676  #define NT_S390_GS_CB	0x30b
   677  #define NT_S390_GS_BC	0x30c
   678  #define NT_S390_RI_CB	0x30d
   679  #define NT_ARM_VFP	0x400
   680  #define NT_ARM_TLS	0x401
   681  #define NT_ARM_HW_BREAK	0x402
   682  #define NT_ARM_HW_WATCH	0x403
   683  #define NT_ARM_SYSTEM_CALL	0x404
   684  #define NT_ARM_SVE	0x405
   685  #define NT_ARM_PAC_MASK	0x406
   686  #define NT_ARM_PACA_KEYS	0x407
   687  #define NT_ARM_PACG_KEYS	0x408
   688  #define NT_METAG_CBUF	0x500
   689  #define NT_METAG_RPIPE	0x501
   690  #define NT_METAG_TLS	0x502
   691  #define NT_ARC_V2	0x600
   692  #define NT_VMCOREDD	0x700
   693  #define NT_MIPS_DSP	0x800
   694  #define NT_MIPS_FP_MODE	0x801
   695  #define NT_MIPS_MSA	0x802
   696  #define NT_VERSION	1
   697  
   698  
   699  
   700  
   701  typedef struct {
   702    Elf32_Sword d_tag;
   703    union {
   704        Elf32_Word d_val;
   705        Elf32_Addr d_ptr;
   706    } d_un;
   707  } Elf32_Dyn;
   708  
   709  typedef struct {
   710    Elf64_Sxword d_tag;
   711    union {
   712        Elf64_Xword d_val;
   713        Elf64_Addr d_ptr;
   714    } d_un;
   715  } Elf64_Dyn;
   716  
   717  
   718  
   719  #define DT_NULL		0
   720  #define DT_NEEDED	1
   721  #define DT_PLTRELSZ	2
   722  #define DT_PLTGOT	3
   723  #define DT_HASH		4
   724  #define DT_STRTAB	5
   725  #define DT_SYMTAB	6
   726  #define DT_RELA		7
   727  #define DT_RELASZ	8
   728  #define DT_RELAENT	9
   729  #define DT_STRSZ	10
   730  #define DT_SYMENT	11
   731  #define DT_INIT		12
   732  #define DT_FINI		13
   733  #define DT_SONAME	14
   734  #define DT_RPATH	15
   735  #define DT_SYMBOLIC	16
   736  #define DT_REL		17
   737  #define DT_RELSZ	18
   738  #define DT_RELENT	19
   739  #define DT_PLTREL	20
   740  #define DT_DEBUG	21
   741  #define DT_TEXTREL	22
   742  #define DT_JMPREL	23
   743  #define	DT_BIND_NOW	24
   744  #define	DT_INIT_ARRAY	25
   745  #define	DT_FINI_ARRAY	26
   746  #define	DT_INIT_ARRAYSZ	27
   747  #define	DT_FINI_ARRAYSZ	28
   748  #define DT_RUNPATH	29
   749  #define DT_FLAGS	30
   750  #define DT_ENCODING	32
   751  #define DT_PREINIT_ARRAY 32
   752  #define DT_PREINIT_ARRAYSZ 33
   753  #define DT_SYMTAB_SHNDX	34
   754  #define	DT_NUM		35
   755  #define DT_LOOS		0x6000000d
   756  #define DT_HIOS		0x6ffff000
   757  #define DT_LOPROC	0x70000000
   758  #define DT_HIPROC	0x7fffffff
   759  #define	DT_PROCNUM	DT_MIPS_NUM
   760  
   761  #define DT_VALRNGLO	0x6ffffd00
   762  #define DT_GNU_PRELINKED 0x6ffffdf5
   763  #define DT_GNU_CONFLICTSZ 0x6ffffdf6
   764  #define DT_GNU_LIBLISTSZ 0x6ffffdf7
   765  #define DT_CHECKSUM	0x6ffffdf8
   766  #define DT_PLTPADSZ	0x6ffffdf9
   767  #define DT_MOVEENT	0x6ffffdfa
   768  #define DT_MOVESZ	0x6ffffdfb
   769  #define DT_FEATURE_1	0x6ffffdfc
   770  #define DT_POSFLAG_1	0x6ffffdfd
   771  
   772  #define DT_SYMINSZ	0x6ffffdfe
   773  #define DT_SYMINENT	0x6ffffdff
   774  #define DT_VALRNGHI	0x6ffffdff
   775  #define DT_VALTAGIDX(tag)	(DT_VALRNGHI - (tag))
   776  #define DT_VALNUM 12
   777  
   778  #define DT_ADDRRNGLO	0x6ffffe00
   779  #define DT_GNU_HASH	0x6ffffef5
   780  #define DT_TLSDESC_PLT	0x6ffffef6
   781  #define DT_TLSDESC_GOT	0x6ffffef7
   782  #define DT_GNU_CONFLICT	0x6ffffef8
   783  #define DT_GNU_LIBLIST	0x6ffffef9
   784  #define DT_CONFIG	0x6ffffefa
   785  #define DT_DEPAUDIT	0x6ffffefb
   786  #define DT_AUDIT	0x6ffffefc
   787  #define	DT_PLTPAD	0x6ffffefd
   788  #define	DT_MOVETAB	0x6ffffefe
   789  #define DT_SYMINFO	0x6ffffeff
   790  #define DT_ADDRRNGHI	0x6ffffeff
   791  #define DT_ADDRTAGIDX(tag)	(DT_ADDRRNGHI - (tag))
   792  #define DT_ADDRNUM 11
   793  
   794  
   795  
   796  #define DT_VERSYM	0x6ffffff0
   797  
   798  #define DT_RELACOUNT	0x6ffffff9
   799  #define DT_RELCOUNT	0x6ffffffa
   800  
   801  
   802  #define DT_FLAGS_1	0x6ffffffb
   803  #define	DT_VERDEF	0x6ffffffc
   804  
   805  #define	DT_VERDEFNUM	0x6ffffffd
   806  #define	DT_VERNEED	0x6ffffffe
   807  
   808  #define	DT_VERNEEDNUM	0x6fffffff
   809  #define DT_VERSIONTAGIDX(tag)	(DT_VERNEEDNUM - (tag))
   810  #define DT_VERSIONTAGNUM 16
   811  
   812  
   813  
   814  #define DT_AUXILIARY    0x7ffffffd
   815  #define DT_FILTER       0x7fffffff
   816  #define DT_EXTRATAGIDX(tag)	((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
   817  #define DT_EXTRANUM	3
   818  
   819  
   820  #define DF_ORIGIN	0x00000001
   821  #define DF_SYMBOLIC	0x00000002
   822  #define DF_TEXTREL	0x00000004
   823  #define DF_BIND_NOW	0x00000008
   824  #define DF_STATIC_TLS	0x00000010
   825  
   826  
   827  
   828  #define DF_1_NOW	0x00000001
   829  #define DF_1_GLOBAL	0x00000002
   830  #define DF_1_GROUP	0x00000004
   831  #define DF_1_NODELETE	0x00000008
   832  #define DF_1_LOADFLTR	0x00000010
   833  #define DF_1_INITFIRST	0x00000020
   834  #define DF_1_NOOPEN	0x00000040
   835  #define DF_1_ORIGIN	0x00000080
   836  #define DF_1_DIRECT	0x00000100
   837  #define DF_1_TRANS	0x00000200
   838  #define DF_1_INTERPOSE	0x00000400
   839  #define DF_1_NODEFLIB	0x00000800
   840  #define DF_1_NODUMP	0x00001000
   841  #define DF_1_CONFALT	0x00002000
   842  #define DF_1_ENDFILTEE	0x00004000
   843  #define	DF_1_DISPRELDNE	0x00008000
   844  #define	DF_1_DISPRELPND	0x00010000
   845  #define	DF_1_NODIRECT	0x00020000
   846  #define	DF_1_IGNMULDEF	0x00040000
   847  #define	DF_1_NOKSYMS	0x00080000
   848  #define	DF_1_NOHDR	0x00100000
   849  #define	DF_1_EDITED	0x00200000
   850  #define	DF_1_NORELOC	0x00400000
   851  #define	DF_1_SYMINTPOSE	0x00800000
   852  #define	DF_1_GLOBAUDIT	0x01000000
   853  #define	DF_1_SINGLETON	0x02000000
   854  #define	DF_1_STUB	0x04000000
   855  #define	DF_1_PIE	0x08000000
   856  
   857  #define DTF_1_PARINIT	0x00000001
   858  #define DTF_1_CONFEXP	0x00000002
   859  
   860  
   861  #define DF_P1_LAZYLOAD	0x00000001
   862  #define DF_P1_GROUPPERM	0x00000002
   863  
   864  
   865  
   866  
   867  typedef struct {
   868    Elf32_Half	vd_version;
   869    Elf32_Half	vd_flags;
   870    Elf32_Half	vd_ndx;
   871    Elf32_Half	vd_cnt;
   872    Elf32_Word	vd_hash;
   873    Elf32_Word	vd_aux;
   874    Elf32_Word	vd_next;
   875  } Elf32_Verdef;
   876  
   877  typedef struct {
   878    Elf64_Half	vd_version;
   879    Elf64_Half	vd_flags;
   880    Elf64_Half	vd_ndx;
   881    Elf64_Half	vd_cnt;
   882    Elf64_Word	vd_hash;
   883    Elf64_Word	vd_aux;
   884    Elf64_Word	vd_next;
   885  } Elf64_Verdef;
   886  
   887  
   888  
   889  #define VER_DEF_NONE	0
   890  #define VER_DEF_CURRENT	1
   891  #define VER_DEF_NUM	2
   892  
   893  
   894  #define VER_FLG_BASE	0x1
   895  #define VER_FLG_WEAK	0x2
   896  
   897  
   898  #define	VER_NDX_LOCAL		0
   899  #define	VER_NDX_GLOBAL		1
   900  #define	VER_NDX_LORESERVE	0xff00
   901  #define	VER_NDX_ELIMINATE	0xff01
   902  
   903  
   904  
   905  typedef struct {
   906    Elf32_Word	vda_name;
   907    Elf32_Word	vda_next;
   908  } Elf32_Verdaux;
   909  
   910  typedef struct {
   911    Elf64_Word	vda_name;
   912    Elf64_Word	vda_next;
   913  } Elf64_Verdaux;
   914  
   915  
   916  
   917  
   918  typedef struct {
   919    Elf32_Half	vn_version;
   920    Elf32_Half	vn_cnt;
   921    Elf32_Word	vn_file;
   922    Elf32_Word	vn_aux;
   923    Elf32_Word	vn_next;
   924  } Elf32_Verneed;
   925  
   926  typedef struct {
   927    Elf64_Half	vn_version;
   928    Elf64_Half	vn_cnt;
   929    Elf64_Word	vn_file;
   930    Elf64_Word	vn_aux;
   931    Elf64_Word	vn_next;
   932  } Elf64_Verneed;
   933  
   934  
   935  
   936  #define VER_NEED_NONE	 0
   937  #define VER_NEED_CURRENT 1
   938  #define VER_NEED_NUM	 2
   939  
   940  
   941  
   942  typedef struct {
   943    Elf32_Word	vna_hash;
   944    Elf32_Half	vna_flags;
   945    Elf32_Half	vna_other;
   946    Elf32_Word	vna_name;
   947    Elf32_Word	vna_next;
   948  } Elf32_Vernaux;
   949  
   950  typedef struct {
   951    Elf64_Word	vna_hash;
   952    Elf64_Half	vna_flags;
   953    Elf64_Half	vna_other;
   954    Elf64_Word	vna_name;
   955    Elf64_Word	vna_next;
   956  } Elf64_Vernaux;
   957  
   958  
   959  
   960  #define VER_FLG_WEAK	0x2
   961  
   962  
   963  
   964  typedef struct {
   965    uint32_t a_type;
   966    union {
   967        uint32_t a_val;
   968    } a_un;
   969  } Elf32_auxv_t;
   970  
   971  typedef struct {
   972    uint64_t a_type;
   973    union {
   974        uint64_t a_val;
   975    } a_un;
   976  } Elf64_auxv_t;
   977  
   978  
   979  
   980  #define AT_NULL		0
   981  #define AT_IGNORE	1
   982  #define AT_EXECFD	2
   983  #define AT_PHDR		3
   984  #define AT_PHENT	4
   985  #define AT_PHNUM	5
   986  #define AT_PAGESZ	6
   987  #define AT_BASE		7
   988  #define AT_FLAGS	8
   989  #define AT_ENTRY	9
   990  #define AT_NOTELF	10
   991  #define AT_UID		11
   992  #define AT_EUID		12
   993  #define AT_GID		13
   994  #define AT_EGID		14
   995  #define AT_CLKTCK	17
   996  
   997  
   998  #define AT_PLATFORM	15
   999  #define AT_HWCAP	16
  1000  
  1001  
  1002  
  1003  
  1004  #define AT_FPUCW	18
  1005  
  1006  
  1007  #define AT_DCACHEBSIZE	19
  1008  #define AT_ICACHEBSIZE	20
  1009  #define AT_UCACHEBSIZE	21
  1010  
  1011  
  1012  
  1013  #define AT_IGNOREPPC	22
  1014  
  1015  #define	AT_SECURE	23
  1016  
  1017  #define AT_BASE_PLATFORM 24
  1018  
  1019  #define AT_RANDOM	25
  1020  
  1021  #define AT_HWCAP2	26
  1022  
  1023  #define AT_EXECFN	31
  1024  
  1025  
  1026  
  1027  #define AT_SYSINFO	32
  1028  #define AT_SYSINFO_EHDR	33
  1029  
  1030  
  1031  
  1032  #define AT_L1I_CACHESHAPE	34
  1033  #define AT_L1D_CACHESHAPE	35
  1034  #define AT_L2_CACHESHAPE	36
  1035  #define AT_L3_CACHESHAPE	37
  1036  
  1037  #define AT_L1I_CACHESIZE	40
  1038  #define AT_L1I_CACHEGEOMETRY	41
  1039  #define AT_L1D_CACHESIZE	42
  1040  #define AT_L1D_CACHEGEOMETRY	43
  1041  #define AT_L2_CACHESIZE		44
  1042  #define AT_L2_CACHEGEOMETRY	45
  1043  #define AT_L3_CACHESIZE		46
  1044  #define AT_L3_CACHEGEOMETRY	47
  1045  
  1046  #define AT_MINSIGSTKSZ		51
  1047  
  1048  
  1049  typedef struct {
  1050    Elf32_Word n_namesz;
  1051    Elf32_Word n_descsz;
  1052    Elf32_Word n_type;
  1053  } Elf32_Nhdr;
  1054  
  1055  typedef struct {
  1056    Elf64_Word n_namesz;
  1057    Elf64_Word n_descsz;
  1058    Elf64_Word n_type;
  1059  } Elf64_Nhdr;
  1060  
  1061  
  1062  
  1063  
  1064  #define ELF_NOTE_SOLARIS	"SUNW Solaris"
  1065  
  1066  
  1067  #define ELF_NOTE_GNU		"GNU"
  1068  
  1069  
  1070  
  1071  
  1072  
  1073  #define ELF_NOTE_PAGESIZE_HINT	1
  1074  
  1075  
  1076  #define NT_GNU_ABI_TAG	1
  1077  #define ELF_NOTE_ABI	NT_GNU_ABI_TAG
  1078  
  1079  
  1080  
  1081  #define ELF_NOTE_OS_LINUX	0
  1082  #define ELF_NOTE_OS_GNU		1
  1083  #define ELF_NOTE_OS_SOLARIS2	2
  1084  #define ELF_NOTE_OS_FREEBSD	3
  1085  
  1086  #define NT_GNU_BUILD_ID	3
  1087  #define NT_GNU_GOLD_VERSION	4
  1088  
  1089  
  1090  
  1091  typedef struct {
  1092    Elf32_Xword m_value;
  1093    Elf32_Word m_info;
  1094    Elf32_Word m_poffset;
  1095    Elf32_Half m_repeat;
  1096    Elf32_Half m_stride;
  1097  } Elf32_Move;
  1098  
  1099  typedef struct {
  1100    Elf64_Xword m_value;
  1101    Elf64_Xword m_info;
  1102    Elf64_Xword m_poffset;
  1103    Elf64_Half m_repeat;
  1104    Elf64_Half m_stride;
  1105  } Elf64_Move;
  1106  
  1107  
  1108  #define ELF32_M_SYM(info)	((info) >> 8)
  1109  #define ELF32_M_SIZE(info)	((unsigned char) (info))
  1110  #define ELF32_M_INFO(sym, size)	(((sym) << 8) + (unsigned char) (size))
  1111  
  1112  #define ELF64_M_SYM(info)	ELF32_M_SYM (info)
  1113  #define ELF64_M_SIZE(info)	ELF32_M_SIZE (info)
  1114  #define ELF64_M_INFO(sym, size)	ELF32_M_INFO (sym, size)
  1115  
  1116  #define EF_CPU32	0x00810000
  1117  
  1118  #define R_68K_NONE	0
  1119  #define R_68K_32	1
  1120  #define R_68K_16	2
  1121  #define R_68K_8		3
  1122  #define R_68K_PC32	4
  1123  #define R_68K_PC16	5
  1124  #define R_68K_PC8	6
  1125  #define R_68K_GOT32	7
  1126  #define R_68K_GOT16	8
  1127  #define R_68K_GOT8	9
  1128  #define R_68K_GOT32O	10
  1129  #define R_68K_GOT16O	11
  1130  #define R_68K_GOT8O	12
  1131  #define R_68K_PLT32	13
  1132  #define R_68K_PLT16	14
  1133  #define R_68K_PLT8	15
  1134  #define R_68K_PLT32O	16
  1135  #define R_68K_PLT16O	17
  1136  #define R_68K_PLT8O	18
  1137  #define R_68K_COPY	19
  1138  #define R_68K_GLOB_DAT	20
  1139  #define R_68K_JMP_SLOT	21
  1140  #define R_68K_RELATIVE	22
  1141  #define R_68K_TLS_GD32	25
  1142  #define R_68K_TLS_GD16	26
  1143  #define R_68K_TLS_GD8	27
  1144  #define R_68K_TLS_LDM32	28
  1145  #define R_68K_TLS_LDM16	29
  1146  #define R_68K_TLS_LDM8	30
  1147  #define R_68K_TLS_LDO32	31
  1148  #define R_68K_TLS_LDO16	32
  1149  #define R_68K_TLS_LDO8	33
  1150  #define R_68K_TLS_IE32	34
  1151  #define R_68K_TLS_IE16	35
  1152  #define R_68K_TLS_IE8	36
  1153  #define R_68K_TLS_LE32	37
  1154  #define R_68K_TLS_LE16	38
  1155  #define R_68K_TLS_LE8	39
  1156  #define R_68K_TLS_DTPMOD32	40
  1157  #define R_68K_TLS_DTPREL32	41
  1158  #define R_68K_TLS_TPREL32	42
  1159  #define R_68K_NUM	43
  1160  
  1161  #define R_386_NONE	   0
  1162  #define R_386_32	   1
  1163  #define R_386_PC32	   2
  1164  #define R_386_GOT32	   3
  1165  #define R_386_PLT32	   4
  1166  #define R_386_COPY	   5
  1167  #define R_386_GLOB_DAT	   6
  1168  #define R_386_JMP_SLOT	   7
  1169  #define R_386_RELATIVE	   8
  1170  #define R_386_GOTOFF	   9
  1171  #define R_386_GOTPC	   10
  1172  #define R_386_32PLT	   11
  1173  #define R_386_TLS_TPOFF	   14
  1174  #define R_386_TLS_IE	   15
  1175  #define R_386_TLS_GOTIE	   16
  1176  #define R_386_TLS_LE	   17
  1177  #define R_386_TLS_GD	   18
  1178  #define R_386_TLS_LDM	   19
  1179  #define R_386_16	   20
  1180  #define R_386_PC16	   21
  1181  #define R_386_8		   22
  1182  #define R_386_PC8	   23
  1183  #define R_386_TLS_GD_32	   24
  1184  #define R_386_TLS_GD_PUSH  25
  1185  #define R_386_TLS_GD_CALL  26
  1186  #define R_386_TLS_GD_POP   27
  1187  #define R_386_TLS_LDM_32   28
  1188  #define R_386_TLS_LDM_PUSH 29
  1189  #define R_386_TLS_LDM_CALL 30
  1190  #define R_386_TLS_LDM_POP  31
  1191  #define R_386_TLS_LDO_32   32
  1192  #define R_386_TLS_IE_32	   33
  1193  #define R_386_TLS_LE_32	   34
  1194  #define R_386_TLS_DTPMOD32 35
  1195  #define R_386_TLS_DTPOFF32 36
  1196  #define R_386_TLS_TPOFF32  37
  1197  #define R_386_SIZE32       38
  1198  #define R_386_TLS_GOTDESC  39
  1199  #define R_386_TLS_DESC_CALL 40
  1200  #define R_386_TLS_DESC     41
  1201  #define R_386_IRELATIVE	   42
  1202  #define R_386_GOT32X	   43
  1203  #define R_386_NUM	   44
  1204  
  1205  
  1206  
  1207  
  1208  
  1209  #define STT_SPARC_REGISTER	13
  1210  
  1211  
  1212  
  1213  #define EF_SPARCV9_MM		3
  1214  #define EF_SPARCV9_TSO		0
  1215  #define EF_SPARCV9_PSO		1
  1216  #define EF_SPARCV9_RMO		2
  1217  #define EF_SPARC_LEDATA		0x800000
  1218  #define EF_SPARC_EXT_MASK	0xFFFF00
  1219  #define EF_SPARC_32PLUS		0x000100
  1220  #define EF_SPARC_SUN_US1	0x000200
  1221  #define EF_SPARC_HAL_R1		0x000400
  1222  #define EF_SPARC_SUN_US3	0x000800
  1223  
  1224  
  1225  
  1226  #define R_SPARC_NONE		0
  1227  #define R_SPARC_8		1
  1228  #define R_SPARC_16		2
  1229  #define R_SPARC_32		3
  1230  #define R_SPARC_DISP8		4
  1231  #define R_SPARC_DISP16		5
  1232  #define R_SPARC_DISP32		6
  1233  #define R_SPARC_WDISP30		7
  1234  #define R_SPARC_WDISP22		8
  1235  #define R_SPARC_HI22		9
  1236  #define R_SPARC_22		10
  1237  #define R_SPARC_13		11
  1238  #define R_SPARC_LO10		12
  1239  #define R_SPARC_GOT10		13
  1240  #define R_SPARC_GOT13		14
  1241  #define R_SPARC_GOT22		15
  1242  #define R_SPARC_PC10		16
  1243  #define R_SPARC_PC22		17
  1244  #define R_SPARC_WPLT30		18
  1245  #define R_SPARC_COPY		19
  1246  #define R_SPARC_GLOB_DAT	20
  1247  #define R_SPARC_JMP_SLOT	21
  1248  #define R_SPARC_RELATIVE	22
  1249  #define R_SPARC_UA32		23
  1250  
  1251  
  1252  
  1253  #define R_SPARC_PLT32		24
  1254  #define R_SPARC_HIPLT22		25
  1255  #define R_SPARC_LOPLT10		26
  1256  #define R_SPARC_PCPLT32		27
  1257  #define R_SPARC_PCPLT22		28
  1258  #define R_SPARC_PCPLT10		29
  1259  #define R_SPARC_10		30
  1260  #define R_SPARC_11		31
  1261  #define R_SPARC_64		32
  1262  #define R_SPARC_OLO10		33
  1263  #define R_SPARC_HH22		34
  1264  #define R_SPARC_HM10		35
  1265  #define R_SPARC_LM22		36
  1266  #define R_SPARC_PC_HH22		37
  1267  #define R_SPARC_PC_HM10		38
  1268  #define R_SPARC_PC_LM22		39
  1269  #define R_SPARC_WDISP16		40
  1270  #define R_SPARC_WDISP19		41
  1271  #define R_SPARC_GLOB_JMP	42
  1272  #define R_SPARC_7		43
  1273  #define R_SPARC_5		44
  1274  #define R_SPARC_6		45
  1275  #define R_SPARC_DISP64		46
  1276  #define R_SPARC_PLT64		47
  1277  #define R_SPARC_HIX22		48
  1278  #define R_SPARC_LOX10		49
  1279  #define R_SPARC_H44		50
  1280  #define R_SPARC_M44		51
  1281  #define R_SPARC_L44		52
  1282  #define R_SPARC_REGISTER	53
  1283  #define R_SPARC_UA64		54
  1284  #define R_SPARC_UA16		55
  1285  #define R_SPARC_TLS_GD_HI22	56
  1286  #define R_SPARC_TLS_GD_LO10	57
  1287  #define R_SPARC_TLS_GD_ADD	58
  1288  #define R_SPARC_TLS_GD_CALL	59
  1289  #define R_SPARC_TLS_LDM_HI22	60
  1290  #define R_SPARC_TLS_LDM_LO10	61
  1291  #define R_SPARC_TLS_LDM_ADD	62
  1292  #define R_SPARC_TLS_LDM_CALL	63
  1293  #define R_SPARC_TLS_LDO_HIX22	64
  1294  #define R_SPARC_TLS_LDO_LOX10	65
  1295  #define R_SPARC_TLS_LDO_ADD	66
  1296  #define R_SPARC_TLS_IE_HI22	67
  1297  #define R_SPARC_TLS_IE_LO10	68
  1298  #define R_SPARC_TLS_IE_LD	69
  1299  #define R_SPARC_TLS_IE_LDX	70
  1300  #define R_SPARC_TLS_IE_ADD	71
  1301  #define R_SPARC_TLS_LE_HIX22	72
  1302  #define R_SPARC_TLS_LE_LOX10	73
  1303  #define R_SPARC_TLS_DTPMOD32	74
  1304  #define R_SPARC_TLS_DTPMOD64	75
  1305  #define R_SPARC_TLS_DTPOFF32	76
  1306  #define R_SPARC_TLS_DTPOFF64	77
  1307  #define R_SPARC_TLS_TPOFF32	78
  1308  #define R_SPARC_TLS_TPOFF64	79
  1309  #define R_SPARC_GOTDATA_HIX22	80
  1310  #define R_SPARC_GOTDATA_LOX10	81
  1311  #define R_SPARC_GOTDATA_OP_HIX22	82
  1312  #define R_SPARC_GOTDATA_OP_LOX10	83
  1313  #define R_SPARC_GOTDATA_OP	84
  1314  #define R_SPARC_H34		85
  1315  #define R_SPARC_SIZE32		86
  1316  #define R_SPARC_SIZE64		87
  1317  #define R_SPARC_GNU_VTINHERIT	250
  1318  #define R_SPARC_GNU_VTENTRY	251
  1319  #define R_SPARC_REV32		252
  1320  
  1321  #define R_SPARC_NUM		253
  1322  
  1323  
  1324  
  1325  #define DT_SPARC_REGISTER 0x70000001
  1326  #define DT_SPARC_NUM	2
  1327  
  1328  
  1329  #define EF_MIPS_NOREORDER   1
  1330  #define EF_MIPS_PIC	    2
  1331  #define EF_MIPS_CPIC	    4
  1332  #define EF_MIPS_XGOT	    8
  1333  #define EF_MIPS_64BIT_WHIRL 16
  1334  #define EF_MIPS_ABI2	    32
  1335  #define EF_MIPS_ABI_ON32    64
  1336  #define EF_MIPS_FP64	    512
  1337  #define EF_MIPS_NAN2008     1024
  1338  #define EF_MIPS_ARCH	    0xf0000000
  1339  
  1340  
  1341  
  1342  #define EF_MIPS_ARCH_1	    0x00000000
  1343  #define EF_MIPS_ARCH_2	    0x10000000
  1344  #define EF_MIPS_ARCH_3	    0x20000000
  1345  #define EF_MIPS_ARCH_4	    0x30000000
  1346  #define EF_MIPS_ARCH_5	    0x40000000
  1347  #define EF_MIPS_ARCH_32     0x50000000
  1348  #define EF_MIPS_ARCH_64     0x60000000
  1349  #define EF_MIPS_ARCH_32R2   0x70000000
  1350  #define EF_MIPS_ARCH_64R2   0x80000000
  1351  
  1352  
  1353  #define E_MIPS_ARCH_1	  0x00000000
  1354  #define E_MIPS_ARCH_2	  0x10000000
  1355  #define E_MIPS_ARCH_3	  0x20000000
  1356  #define E_MIPS_ARCH_4	  0x30000000
  1357  #define E_MIPS_ARCH_5	  0x40000000
  1358  #define E_MIPS_ARCH_32	  0x50000000
  1359  #define E_MIPS_ARCH_64	  0x60000000
  1360  
  1361  
  1362  
  1363  #define SHN_MIPS_ACOMMON    0xff00
  1364  #define SHN_MIPS_TEXT	    0xff01
  1365  #define SHN_MIPS_DATA	    0xff02
  1366  #define SHN_MIPS_SCOMMON    0xff03
  1367  #define SHN_MIPS_SUNDEFINED 0xff04
  1368  
  1369  
  1370  
  1371  #define SHT_MIPS_LIBLIST       0x70000000
  1372  #define SHT_MIPS_MSYM	       0x70000001
  1373  #define SHT_MIPS_CONFLICT      0x70000002
  1374  #define SHT_MIPS_GPTAB	       0x70000003
  1375  #define SHT_MIPS_UCODE	       0x70000004
  1376  #define SHT_MIPS_DEBUG	       0x70000005
  1377  #define SHT_MIPS_REGINFO       0x70000006
  1378  #define SHT_MIPS_PACKAGE       0x70000007
  1379  #define SHT_MIPS_PACKSYM       0x70000008
  1380  #define SHT_MIPS_RELD	       0x70000009
  1381  #define SHT_MIPS_IFACE         0x7000000b
  1382  #define SHT_MIPS_CONTENT       0x7000000c
  1383  #define SHT_MIPS_OPTIONS       0x7000000d
  1384  #define SHT_MIPS_SHDR	       0x70000010
  1385  #define SHT_MIPS_FDESC	       0x70000011
  1386  #define SHT_MIPS_EXTSYM	       0x70000012
  1387  #define SHT_MIPS_DENSE	       0x70000013
  1388  #define SHT_MIPS_PDESC	       0x70000014
  1389  #define SHT_MIPS_LOCSYM	       0x70000015
  1390  #define SHT_MIPS_AUXSYM	       0x70000016
  1391  #define SHT_MIPS_OPTSYM	       0x70000017
  1392  #define SHT_MIPS_LOCSTR	       0x70000018
  1393  #define SHT_MIPS_LINE	       0x70000019
  1394  #define SHT_MIPS_RFDESC	       0x7000001a
  1395  #define SHT_MIPS_DELTASYM      0x7000001b
  1396  #define SHT_MIPS_DELTAINST     0x7000001c
  1397  #define SHT_MIPS_DELTACLASS    0x7000001d
  1398  #define SHT_MIPS_DWARF         0x7000001e
  1399  #define SHT_MIPS_DELTADECL     0x7000001f
  1400  #define SHT_MIPS_SYMBOL_LIB    0x70000020
  1401  #define SHT_MIPS_EVENTS	       0x70000021
  1402  #define SHT_MIPS_TRANSLATE     0x70000022
  1403  #define SHT_MIPS_PIXIE	       0x70000023
  1404  #define SHT_MIPS_XLATE	       0x70000024
  1405  #define SHT_MIPS_XLATE_DEBUG   0x70000025
  1406  #define SHT_MIPS_WHIRL	       0x70000026
  1407  #define SHT_MIPS_EH_REGION     0x70000027
  1408  #define SHT_MIPS_XLATE_OLD     0x70000028
  1409  #define SHT_MIPS_PDR_EXCEPTION 0x70000029
  1410  
  1411  
  1412  
  1413  #define SHF_MIPS_GPREL	 0x10000000
  1414  #define SHF_MIPS_MERGE	 0x20000000
  1415  #define SHF_MIPS_ADDR	 0x40000000
  1416  #define SHF_MIPS_STRINGS 0x80000000
  1417  #define SHF_MIPS_NOSTRIP 0x08000000
  1418  #define SHF_MIPS_LOCAL	 0x04000000
  1419  #define SHF_MIPS_NAMES	 0x02000000
  1420  #define SHF_MIPS_NODUPE	 0x01000000
  1421  
  1422  
  1423  
  1424  
  1425  
  1426  #define STO_MIPS_DEFAULT		0x0
  1427  #define STO_MIPS_INTERNAL		0x1
  1428  #define STO_MIPS_HIDDEN			0x2
  1429  #define STO_MIPS_PROTECTED		0x3
  1430  #define STO_MIPS_PLT			0x8
  1431  #define STO_MIPS_SC_ALIGN_UNUSED	0xff
  1432  
  1433  
  1434  #define STB_MIPS_SPLIT_COMMON		13
  1435  
  1436  
  1437  
  1438  typedef union {
  1439    struct {
  1440        Elf32_Word gt_current_g_value;
  1441        Elf32_Word gt_unused;
  1442    } gt_header;
  1443    struct {
  1444        Elf32_Word gt_g_value;
  1445        Elf32_Word gt_bytes;
  1446    } gt_entry;
  1447  } Elf32_gptab;
  1448  
  1449  
  1450  
  1451  typedef struct {
  1452    Elf32_Word	ri_gprmask;
  1453    Elf32_Word	ri_cprmask[4];
  1454    Elf32_Sword	ri_gp_value;
  1455  } Elf32_RegInfo;
  1456  
  1457  
  1458  
  1459  typedef struct {
  1460    unsigned char kind;
  1461  
  1462    unsigned char size;
  1463    Elf32_Section section;
  1464  
  1465    Elf32_Word info;
  1466  } Elf_Options;
  1467  
  1468  
  1469  
  1470  #define ODK_NULL	0
  1471  #define ODK_REGINFO	1
  1472  #define ODK_EXCEPTIONS	2
  1473  #define ODK_PAD		3
  1474  #define ODK_HWPATCH	4
  1475  #define ODK_FILL	5
  1476  #define ODK_TAGS	6
  1477  #define ODK_HWAND	7
  1478  #define ODK_HWOR	8
  1479  
  1480  
  1481  
  1482  #define OEX_FPU_MIN	0x1f
  1483  #define OEX_FPU_MAX	0x1f00
  1484  #define OEX_PAGE0	0x10000
  1485  #define OEX_SMM		0x20000
  1486  #define OEX_FPDBUG	0x40000
  1487  #define OEX_PRECISEFP	OEX_FPDBUG
  1488  #define OEX_DISMISS	0x80000
  1489  
  1490  #define OEX_FPU_INVAL	0x10
  1491  #define OEX_FPU_DIV0	0x08
  1492  #define OEX_FPU_OFLO	0x04
  1493  #define OEX_FPU_UFLO	0x02
  1494  #define OEX_FPU_INEX	0x01
  1495  
  1496  
  1497  
  1498  #define OHW_R4KEOP	0x1
  1499  #define OHW_R8KPFETCH	0x2
  1500  #define OHW_R5KEOP	0x4
  1501  #define OHW_R5KCVTL	0x8
  1502  
  1503  #define OPAD_PREFIX	0x1
  1504  #define OPAD_POSTFIX	0x2
  1505  #define OPAD_SYMBOL	0x4
  1506  
  1507  
  1508  
  1509  typedef struct {
  1510    Elf32_Word hwp_flags1;
  1511    Elf32_Word hwp_flags2;
  1512  } Elf_Options_Hw;
  1513  
  1514  
  1515  
  1516  #define OHWA0_R4KEOP_CHECKED	0x00000001
  1517  #define OHWA1_R4KEOP_CLEAN	0x00000002
  1518  
  1519  
  1520  
  1521  #define R_MIPS_NONE		0
  1522  #define R_MIPS_16		1
  1523  #define R_MIPS_32		2
  1524  #define R_MIPS_REL32		3
  1525  #define R_MIPS_26		4
  1526  #define R_MIPS_HI16		5
  1527  #define R_MIPS_LO16		6
  1528  #define R_MIPS_GPREL16		7
  1529  #define R_MIPS_LITERAL		8
  1530  #define R_MIPS_GOT16		9
  1531  #define R_MIPS_PC16		10
  1532  #define R_MIPS_CALL16		11
  1533  #define R_MIPS_GPREL32		12
  1534  
  1535  #define R_MIPS_SHIFT5		16
  1536  #define R_MIPS_SHIFT6		17
  1537  #define R_MIPS_64		18
  1538  #define R_MIPS_GOT_DISP		19
  1539  #define R_MIPS_GOT_PAGE		20
  1540  #define R_MIPS_GOT_OFST		21
  1541  #define R_MIPS_GOT_HI16		22
  1542  #define R_MIPS_GOT_LO16		23
  1543  #define R_MIPS_SUB		24
  1544  #define R_MIPS_INSERT_A		25
  1545  #define R_MIPS_INSERT_B		26
  1546  #define R_MIPS_DELETE		27
  1547  #define R_MIPS_HIGHER		28
  1548  #define R_MIPS_HIGHEST		29
  1549  #define R_MIPS_CALL_HI16	30
  1550  #define R_MIPS_CALL_LO16	31
  1551  #define R_MIPS_SCN_DISP		32
  1552  #define R_MIPS_REL16		33
  1553  #define R_MIPS_ADD_IMMEDIATE	34
  1554  #define R_MIPS_PJUMP		35
  1555  #define R_MIPS_RELGOT		36
  1556  #define R_MIPS_JALR		37
  1557  #define R_MIPS_TLS_DTPMOD32	38
  1558  #define R_MIPS_TLS_DTPREL32	39
  1559  #define R_MIPS_TLS_DTPMOD64	40
  1560  #define R_MIPS_TLS_DTPREL64	41
  1561  #define R_MIPS_TLS_GD		42
  1562  #define R_MIPS_TLS_LDM		43
  1563  #define R_MIPS_TLS_DTPREL_HI16	44
  1564  #define R_MIPS_TLS_DTPREL_LO16	45
  1565  #define R_MIPS_TLS_GOTTPREL	46
  1566  #define R_MIPS_TLS_TPREL32	47
  1567  #define R_MIPS_TLS_TPREL64	48
  1568  #define R_MIPS_TLS_TPREL_HI16	49
  1569  #define R_MIPS_TLS_TPREL_LO16	50
  1570  #define R_MIPS_GLOB_DAT		51
  1571  #define R_MIPS_COPY		126
  1572  #define R_MIPS_JUMP_SLOT        127
  1573  
  1574  #define R_MIPS_NUM		128
  1575  
  1576  
  1577  
  1578  #define PT_MIPS_REGINFO	0x70000000
  1579  #define PT_MIPS_RTPROC  0x70000001
  1580  #define PT_MIPS_OPTIONS 0x70000002
  1581  #define PT_MIPS_ABIFLAGS 0x70000003
  1582  
  1583  
  1584  
  1585  #define PF_MIPS_LOCAL	0x10000000
  1586  
  1587  
  1588  
  1589  #define DT_MIPS_RLD_VERSION  0x70000001
  1590  #define DT_MIPS_TIME_STAMP   0x70000002
  1591  #define DT_MIPS_ICHECKSUM    0x70000003
  1592  #define DT_MIPS_IVERSION     0x70000004
  1593  #define DT_MIPS_FLAGS	     0x70000005
  1594  #define DT_MIPS_BASE_ADDRESS 0x70000006
  1595  #define DT_MIPS_MSYM	     0x70000007
  1596  #define DT_MIPS_CONFLICT     0x70000008
  1597  #define DT_MIPS_LIBLIST	     0x70000009
  1598  #define DT_MIPS_LOCAL_GOTNO  0x7000000a
  1599  #define DT_MIPS_CONFLICTNO   0x7000000b
  1600  #define DT_MIPS_LIBLISTNO    0x70000010
  1601  #define DT_MIPS_SYMTABNO     0x70000011
  1602  #define DT_MIPS_UNREFEXTNO   0x70000012
  1603  #define DT_MIPS_GOTSYM	     0x70000013
  1604  #define DT_MIPS_HIPAGENO     0x70000014
  1605  #define DT_MIPS_RLD_MAP	     0x70000016
  1606  #define DT_MIPS_DELTA_CLASS  0x70000017
  1607  #define DT_MIPS_DELTA_CLASS_NO    0x70000018
  1608  
  1609  #define DT_MIPS_DELTA_INSTANCE    0x70000019
  1610  #define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
  1611  
  1612  #define DT_MIPS_DELTA_RELOC  0x7000001b
  1613  #define DT_MIPS_DELTA_RELOC_NO 0x7000001c
  1614  
  1615  #define DT_MIPS_DELTA_SYM    0x7000001d
  1616  
  1617  #define DT_MIPS_DELTA_SYM_NO 0x7000001e
  1618  
  1619  #define DT_MIPS_DELTA_CLASSSYM 0x70000020
  1620  
  1621  #define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
  1622  
  1623  #define DT_MIPS_CXX_FLAGS    0x70000022
  1624  #define DT_MIPS_PIXIE_INIT   0x70000023
  1625  #define DT_MIPS_SYMBOL_LIB   0x70000024
  1626  #define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
  1627  #define DT_MIPS_LOCAL_GOTIDX 0x70000026
  1628  #define DT_MIPS_HIDDEN_GOTIDX 0x70000027
  1629  #define DT_MIPS_PROTECTED_GOTIDX 0x70000028
  1630  #define DT_MIPS_OPTIONS	     0x70000029
  1631  #define DT_MIPS_INTERFACE    0x7000002a
  1632  #define DT_MIPS_DYNSTR_ALIGN 0x7000002b
  1633  #define DT_MIPS_INTERFACE_SIZE 0x7000002c
  1634  #define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
  1635  
  1636  #define DT_MIPS_PERF_SUFFIX  0x7000002e
  1637  
  1638  #define DT_MIPS_COMPACT_SIZE 0x7000002f
  1639  #define DT_MIPS_GP_VALUE     0x70000030
  1640  #define DT_MIPS_AUX_DYNAMIC  0x70000031
  1641  
  1642  #define DT_MIPS_PLTGOT	     0x70000032
  1643  
  1644  #define DT_MIPS_RWPLT        0x70000034
  1645  #define DT_MIPS_RLD_MAP_REL  0x70000035
  1646  #define DT_MIPS_NUM	     0x36
  1647  
  1648  
  1649  
  1650  #define RHF_NONE		   0
  1651  #define RHF_QUICKSTART		   (1 << 0)
  1652  #define RHF_NOTPOT		   (1 << 1)
  1653  #define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
  1654  #define RHF_NO_MOVE		   (1 << 3)
  1655  #define RHF_SGI_ONLY		   (1 << 4)
  1656  #define RHF_GUARANTEE_INIT	   (1 << 5)
  1657  #define RHF_DELTA_C_PLUS_PLUS	   (1 << 6)
  1658  #define RHF_GUARANTEE_START_INIT   (1 << 7)
  1659  #define RHF_PIXIE		   (1 << 8)
  1660  #define RHF_DEFAULT_DELAY_LOAD	   (1 << 9)
  1661  #define RHF_REQUICKSTART	   (1 << 10)
  1662  #define RHF_REQUICKSTARTED	   (1 << 11)
  1663  #define RHF_CORD		   (1 << 12)
  1664  #define RHF_NO_UNRES_UNDEF	   (1 << 13)
  1665  #define RHF_RLD_ORDER_SAFE	   (1 << 14)
  1666  
  1667  
  1668  
  1669  typedef struct {
  1670    Elf32_Word l_name;
  1671    Elf32_Word l_time_stamp;
  1672    Elf32_Word l_checksum;
  1673    Elf32_Word l_version;
  1674    Elf32_Word l_flags;
  1675  } Elf32_Lib;
  1676  
  1677  typedef struct {
  1678    Elf64_Word l_name;
  1679    Elf64_Word l_time_stamp;
  1680    Elf64_Word l_checksum;
  1681    Elf64_Word l_version;
  1682    Elf64_Word l_flags;
  1683  } Elf64_Lib;
  1684  
  1685  
  1686  
  1687  
  1688  #define LL_NONE		  0
  1689  #define LL_EXACT_MATCH	  (1 << 0)
  1690  #define LL_IGNORE_INT_VER (1 << 1)
  1691  #define LL_REQUIRE_MINOR  (1 << 2)
  1692  #define LL_EXPORTS	  (1 << 3)
  1693  #define LL_DELAY_LOAD	  (1 << 4)
  1694  #define LL_DELTA	  (1 << 5)
  1695  
  1696  
  1697  
  1698  typedef Elf32_Addr Elf32_Conflict;
  1699  
  1700  typedef struct {
  1701    Elf32_Half version;
  1702    unsigned char isa_level;
  1703    unsigned char isa_rev;
  1704    unsigned char gpr_size;
  1705    unsigned char cpr1_size;
  1706    unsigned char cpr2_size;
  1707    unsigned char fp_abi;
  1708    Elf32_Word isa_ext;
  1709    Elf32_Word ases;
  1710    Elf32_Word flags1;
  1711    Elf32_Word flags2;
  1712  } Elf_MIPS_ABIFlags_v0;
  1713  
  1714  #define MIPS_AFL_REG_NONE	0x00
  1715  #define MIPS_AFL_REG_32		0x01
  1716  #define MIPS_AFL_REG_64		0x02
  1717  #define MIPS_AFL_REG_128	0x03
  1718  
  1719  #define MIPS_AFL_ASE_DSP	0x00000001
  1720  #define MIPS_AFL_ASE_DSPR2	0x00000002
  1721  #define MIPS_AFL_ASE_EVA	0x00000004
  1722  #define MIPS_AFL_ASE_MCU	0x00000008
  1723  #define MIPS_AFL_ASE_MDMX	0x00000010
  1724  #define MIPS_AFL_ASE_MIPS3D	0x00000020
  1725  #define MIPS_AFL_ASE_MT		0x00000040
  1726  #define MIPS_AFL_ASE_SMARTMIPS	0x00000080
  1727  #define MIPS_AFL_ASE_VIRT	0x00000100
  1728  #define MIPS_AFL_ASE_MSA	0x00000200
  1729  #define MIPS_AFL_ASE_MIPS16	0x00000400
  1730  #define MIPS_AFL_ASE_MICROMIPS	0x00000800
  1731  #define MIPS_AFL_ASE_XPA	0x00001000
  1732  #define MIPS_AFL_ASE_MASK	0x00001fff
  1733  
  1734  #define MIPS_AFL_EXT_XLR	  1
  1735  #define MIPS_AFL_EXT_OCTEON2	  2
  1736  #define MIPS_AFL_EXT_OCTEONP	  3
  1737  #define MIPS_AFL_EXT_LOONGSON_3A  4
  1738  #define MIPS_AFL_EXT_OCTEON	  5
  1739  #define MIPS_AFL_EXT_5900	  6
  1740  #define MIPS_AFL_EXT_4650	  7
  1741  #define MIPS_AFL_EXT_4010	  8
  1742  #define MIPS_AFL_EXT_4100	  9
  1743  #define MIPS_AFL_EXT_3900	  10
  1744  #define MIPS_AFL_EXT_10000	  11
  1745  #define MIPS_AFL_EXT_SB1	  12
  1746  #define MIPS_AFL_EXT_4111	  13
  1747  #define MIPS_AFL_EXT_4120	  14
  1748  #define MIPS_AFL_EXT_5400	  15
  1749  #define MIPS_AFL_EXT_5500	  16
  1750  #define MIPS_AFL_EXT_LOONGSON_2E  17
  1751  #define MIPS_AFL_EXT_LOONGSON_2F  18
  1752  
  1753  #define MIPS_AFL_FLAGS1_ODDSPREG  1
  1754  
  1755  enum
  1756  {
  1757    Val_GNU_MIPS_ABI_FP_ANY = 0,
  1758    Val_GNU_MIPS_ABI_FP_DOUBLE = 1,
  1759    Val_GNU_MIPS_ABI_FP_SINGLE = 2,
  1760    Val_GNU_MIPS_ABI_FP_SOFT = 3,
  1761    Val_GNU_MIPS_ABI_FP_OLD_64 = 4,
  1762    Val_GNU_MIPS_ABI_FP_XX = 5,
  1763    Val_GNU_MIPS_ABI_FP_64 = 6,
  1764    Val_GNU_MIPS_ABI_FP_64A = 7,
  1765    Val_GNU_MIPS_ABI_FP_MAX = 7
  1766  };
  1767  
  1768  
  1769  
  1770  
  1771  #define EF_PARISC_TRAPNIL	0x00010000
  1772  #define EF_PARISC_EXT		0x00020000
  1773  #define EF_PARISC_LSB		0x00040000
  1774  #define EF_PARISC_WIDE		0x00080000
  1775  #define EF_PARISC_NO_KABP	0x00100000
  1776  
  1777  #define EF_PARISC_LAZYSWAP	0x00400000
  1778  #define EF_PARISC_ARCH		0x0000ffff
  1779  
  1780  
  1781  
  1782  #define EFA_PARISC_1_0		    0x020b
  1783  #define EFA_PARISC_1_1		    0x0210
  1784  #define EFA_PARISC_2_0		    0x0214
  1785  
  1786  
  1787  
  1788  #define SHN_PARISC_ANSI_COMMON	0xff00
  1789  
  1790  #define SHN_PARISC_HUGE_COMMON	0xff01
  1791  
  1792  
  1793  
  1794  #define SHT_PARISC_EXT		0x70000000
  1795  #define SHT_PARISC_UNWIND	0x70000001
  1796  #define SHT_PARISC_DOC		0x70000002
  1797  
  1798  
  1799  
  1800  #define SHF_PARISC_SHORT	0x20000000
  1801  #define SHF_PARISC_HUGE		0x40000000
  1802  #define SHF_PARISC_SBP		0x80000000
  1803  
  1804  
  1805  
  1806  #define STT_PARISC_MILLICODE	13
  1807  
  1808  #define STT_HP_OPAQUE		(STT_LOOS + 0x1)
  1809  #define STT_HP_STUB		(STT_LOOS + 0x2)
  1810  
  1811  
  1812  
  1813  #define R_PARISC_NONE		0
  1814  #define R_PARISC_DIR32		1
  1815  #define R_PARISC_DIR21L		2
  1816  #define R_PARISC_DIR17R		3
  1817  #define R_PARISC_DIR17F		4
  1818  #define R_PARISC_DIR14R		6
  1819  #define R_PARISC_PCREL32	9
  1820  #define R_PARISC_PCREL21L	10
  1821  #define R_PARISC_PCREL17R	11
  1822  #define R_PARISC_PCREL17F	12
  1823  #define R_PARISC_PCREL14R	14
  1824  #define R_PARISC_DPREL21L	18
  1825  #define R_PARISC_DPREL14R	22
  1826  #define R_PARISC_GPREL21L	26
  1827  #define R_PARISC_GPREL14R	30
  1828  #define R_PARISC_LTOFF21L	34
  1829  #define R_PARISC_LTOFF14R	38
  1830  #define R_PARISC_SECREL32	41
  1831  #define R_PARISC_SEGBASE	48
  1832  #define R_PARISC_SEGREL32	49
  1833  #define R_PARISC_PLTOFF21L	50
  1834  #define R_PARISC_PLTOFF14R	54
  1835  #define R_PARISC_LTOFF_FPTR32	57
  1836  #define R_PARISC_LTOFF_FPTR21L	58
  1837  #define R_PARISC_LTOFF_FPTR14R	62
  1838  #define R_PARISC_FPTR64		64
  1839  #define R_PARISC_PLABEL32	65
  1840  #define R_PARISC_PLABEL21L	66
  1841  #define R_PARISC_PLABEL14R	70
  1842  #define R_PARISC_PCREL64	72
  1843  #define R_PARISC_PCREL22F	74
  1844  #define R_PARISC_PCREL14WR	75
  1845  #define R_PARISC_PCREL14DR	76
  1846  #define R_PARISC_PCREL16F	77
  1847  #define R_PARISC_PCREL16WF	78
  1848  #define R_PARISC_PCREL16DF	79
  1849  #define R_PARISC_DIR64		80
  1850  #define R_PARISC_DIR14WR	83
  1851  #define R_PARISC_DIR14DR	84
  1852  #define R_PARISC_DIR16F		85
  1853  #define R_PARISC_DIR16WF	86
  1854  #define R_PARISC_DIR16DF	87
  1855  #define R_PARISC_GPREL64	88
  1856  #define R_PARISC_GPREL14WR	91
  1857  #define R_PARISC_GPREL14DR	92
  1858  #define R_PARISC_GPREL16F	93
  1859  #define R_PARISC_GPREL16WF	94
  1860  #define R_PARISC_GPREL16DF	95
  1861  #define R_PARISC_LTOFF64	96
  1862  #define R_PARISC_LTOFF14WR	99
  1863  #define R_PARISC_LTOFF14DR	100
  1864  #define R_PARISC_LTOFF16F	101
  1865  #define R_PARISC_LTOFF16WF	102
  1866  #define R_PARISC_LTOFF16DF	103
  1867  #define R_PARISC_SECREL64	104
  1868  #define R_PARISC_SEGREL64	112
  1869  #define R_PARISC_PLTOFF14WR	115
  1870  #define R_PARISC_PLTOFF14DR	116
  1871  #define R_PARISC_PLTOFF16F	117
  1872  #define R_PARISC_PLTOFF16WF	118
  1873  #define R_PARISC_PLTOFF16DF	119
  1874  #define R_PARISC_LTOFF_FPTR64	120
  1875  #define R_PARISC_LTOFF_FPTR14WR	123
  1876  #define R_PARISC_LTOFF_FPTR14DR	124
  1877  #define R_PARISC_LTOFF_FPTR16F	125
  1878  #define R_PARISC_LTOFF_FPTR16WF	126
  1879  #define R_PARISC_LTOFF_FPTR16DF	127
  1880  #define R_PARISC_LORESERVE	128
  1881  #define R_PARISC_COPY		128
  1882  #define R_PARISC_IPLT		129
  1883  #define R_PARISC_EPLT		130
  1884  #define R_PARISC_TPREL32	153
  1885  #define R_PARISC_TPREL21L	154
  1886  #define R_PARISC_TPREL14R	158
  1887  #define R_PARISC_LTOFF_TP21L	162
  1888  #define R_PARISC_LTOFF_TP14R	166
  1889  #define R_PARISC_LTOFF_TP14F	167
  1890  #define R_PARISC_TPREL64	216
  1891  #define R_PARISC_TPREL14WR	219
  1892  #define R_PARISC_TPREL14DR	220
  1893  #define R_PARISC_TPREL16F	221
  1894  #define R_PARISC_TPREL16WF	222
  1895  #define R_PARISC_TPREL16DF	223
  1896  #define R_PARISC_LTOFF_TP64	224
  1897  #define R_PARISC_LTOFF_TP14WR	227
  1898  #define R_PARISC_LTOFF_TP14DR	228
  1899  #define R_PARISC_LTOFF_TP16F	229
  1900  #define R_PARISC_LTOFF_TP16WF	230
  1901  #define R_PARISC_LTOFF_TP16DF	231
  1902  #define R_PARISC_GNU_VTENTRY	232
  1903  #define R_PARISC_GNU_VTINHERIT	233
  1904  #define R_PARISC_TLS_GD21L	234
  1905  #define R_PARISC_TLS_GD14R	235
  1906  #define R_PARISC_TLS_GDCALL	236
  1907  #define R_PARISC_TLS_LDM21L	237
  1908  #define R_PARISC_TLS_LDM14R	238
  1909  #define R_PARISC_TLS_LDMCALL	239
  1910  #define R_PARISC_TLS_LDO21L	240
  1911  #define R_PARISC_TLS_LDO14R	241
  1912  #define R_PARISC_TLS_DTPMOD32	242
  1913  #define R_PARISC_TLS_DTPMOD64	243
  1914  #define R_PARISC_TLS_DTPOFF32	244
  1915  #define R_PARISC_TLS_DTPOFF64	245
  1916  #define R_PARISC_TLS_LE21L	R_PARISC_TPREL21L
  1917  #define R_PARISC_TLS_LE14R	R_PARISC_TPREL14R
  1918  #define R_PARISC_TLS_IE21L	R_PARISC_LTOFF_TP21L
  1919  #define R_PARISC_TLS_IE14R	R_PARISC_LTOFF_TP14R
  1920  #define R_PARISC_TLS_TPREL32	R_PARISC_TPREL32
  1921  #define R_PARISC_TLS_TPREL64	R_PARISC_TPREL64
  1922  #define R_PARISC_HIRESERVE	255
  1923  
  1924  
  1925  
  1926  #define PT_HP_TLS		(PT_LOOS + 0x0)
  1927  #define PT_HP_CORE_NONE		(PT_LOOS + 0x1)
  1928  #define PT_HP_CORE_VERSION	(PT_LOOS + 0x2)
  1929  #define PT_HP_CORE_KERNEL	(PT_LOOS + 0x3)
  1930  #define PT_HP_CORE_COMM		(PT_LOOS + 0x4)
  1931  #define PT_HP_CORE_PROC		(PT_LOOS + 0x5)
  1932  #define PT_HP_CORE_LOADABLE	(PT_LOOS + 0x6)
  1933  #define PT_HP_CORE_STACK	(PT_LOOS + 0x7)
  1934  #define PT_HP_CORE_SHM		(PT_LOOS + 0x8)
  1935  #define PT_HP_CORE_MMF		(PT_LOOS + 0x9)
  1936  #define PT_HP_PARALLEL		(PT_LOOS + 0x10)
  1937  #define PT_HP_FASTBIND		(PT_LOOS + 0x11)
  1938  #define PT_HP_OPT_ANNOT		(PT_LOOS + 0x12)
  1939  #define PT_HP_HSL_ANNOT		(PT_LOOS + 0x13)
  1940  #define PT_HP_STACK		(PT_LOOS + 0x14)
  1941  
  1942  #define PT_PARISC_ARCHEXT	0x70000000
  1943  #define PT_PARISC_UNWIND	0x70000001
  1944  
  1945  
  1946  
  1947  #define PF_PARISC_SBP		0x08000000
  1948  
  1949  #define PF_HP_PAGE_SIZE		0x00100000
  1950  #define PF_HP_FAR_SHARED	0x00200000
  1951  #define PF_HP_NEAR_SHARED	0x00400000
  1952  #define PF_HP_CODE		0x01000000
  1953  #define PF_HP_MODIFY		0x02000000
  1954  #define PF_HP_LAZYSWAP		0x04000000
  1955  #define PF_HP_SBP		0x08000000
  1956  
  1957  
  1958  
  1959  
  1960  
  1961  
  1962  #define EF_ALPHA_32BIT		1
  1963  #define EF_ALPHA_CANRELAX	2
  1964  
  1965  
  1966  
  1967  
  1968  #define SHT_ALPHA_DEBUG		0x70000001
  1969  #define SHT_ALPHA_REGINFO	0x70000002
  1970  
  1971  
  1972  
  1973  #define SHF_ALPHA_GPREL		0x10000000
  1974  
  1975  
  1976  #define STO_ALPHA_NOPV		0x80
  1977  #define STO_ALPHA_STD_GPLOAD	0x88
  1978  
  1979  
  1980  
  1981  #define R_ALPHA_NONE		0
  1982  #define R_ALPHA_REFLONG		1
  1983  #define R_ALPHA_REFQUAD		2
  1984  #define R_ALPHA_GPREL32		3
  1985  #define R_ALPHA_LITERAL		4
  1986  #define R_ALPHA_LITUSE		5
  1987  #define R_ALPHA_GPDISP		6
  1988  #define R_ALPHA_BRADDR		7
  1989  #define R_ALPHA_HINT		8
  1990  #define R_ALPHA_SREL16		9
  1991  #define R_ALPHA_SREL32		10
  1992  #define R_ALPHA_SREL64		11
  1993  #define R_ALPHA_GPRELHIGH	17
  1994  #define R_ALPHA_GPRELLOW	18
  1995  #define R_ALPHA_GPREL16		19
  1996  #define R_ALPHA_COPY		24
  1997  #define R_ALPHA_GLOB_DAT	25
  1998  #define R_ALPHA_JMP_SLOT	26
  1999  #define R_ALPHA_RELATIVE	27
  2000  #define R_ALPHA_TLS_GD_HI	28
  2001  #define R_ALPHA_TLSGD		29
  2002  #define R_ALPHA_TLS_LDM		30
  2003  #define R_ALPHA_DTPMOD64	31
  2004  #define R_ALPHA_GOTDTPREL	32
  2005  #define R_ALPHA_DTPREL64	33
  2006  #define R_ALPHA_DTPRELHI	34
  2007  #define R_ALPHA_DTPRELLO	35
  2008  #define R_ALPHA_DTPREL16	36
  2009  #define R_ALPHA_GOTTPREL	37
  2010  #define R_ALPHA_TPREL64		38
  2011  #define R_ALPHA_TPRELHI		39
  2012  #define R_ALPHA_TPRELLO		40
  2013  #define R_ALPHA_TPREL16		41
  2014  
  2015  #define R_ALPHA_NUM		46
  2016  
  2017  
  2018  #define LITUSE_ALPHA_ADDR	0
  2019  #define LITUSE_ALPHA_BASE	1
  2020  #define LITUSE_ALPHA_BYTOFF	2
  2021  #define LITUSE_ALPHA_JSR	3
  2022  #define LITUSE_ALPHA_TLS_GD	4
  2023  #define LITUSE_ALPHA_TLS_LDM	5
  2024  
  2025  
  2026  #define DT_ALPHA_PLTRO		(DT_LOPROC + 0)
  2027  #define DT_ALPHA_NUM		1
  2028  
  2029  
  2030  
  2031  
  2032  #define EF_PPC_EMB		0x80000000
  2033  
  2034  
  2035  #define EF_PPC_RELOCATABLE	0x00010000
  2036  #define EF_PPC_RELOCATABLE_LIB	0x00008000
  2037  
  2038  
  2039  
  2040  #define R_PPC_NONE		0
  2041  #define R_PPC_ADDR32		1
  2042  #define R_PPC_ADDR24		2
  2043  #define R_PPC_ADDR16		3
  2044  #define R_PPC_ADDR16_LO		4
  2045  #define R_PPC_ADDR16_HI		5
  2046  #define R_PPC_ADDR16_HA		6
  2047  #define R_PPC_ADDR14		7
  2048  #define R_PPC_ADDR14_BRTAKEN	8
  2049  #define R_PPC_ADDR14_BRNTAKEN	9
  2050  #define R_PPC_REL24		10
  2051  #define R_PPC_REL14		11
  2052  #define R_PPC_REL14_BRTAKEN	12
  2053  #define R_PPC_REL14_BRNTAKEN	13
  2054  #define R_PPC_GOT16		14
  2055  #define R_PPC_GOT16_LO		15
  2056  #define R_PPC_GOT16_HI		16
  2057  #define R_PPC_GOT16_HA		17
  2058  #define R_PPC_PLTREL24		18
  2059  #define R_PPC_COPY		19
  2060  #define R_PPC_GLOB_DAT		20
  2061  #define R_PPC_JMP_SLOT		21
  2062  #define R_PPC_RELATIVE		22
  2063  #define R_PPC_LOCAL24PC		23
  2064  #define R_PPC_UADDR32		24
  2065  #define R_PPC_UADDR16		25
  2066  #define R_PPC_REL32		26
  2067  #define R_PPC_PLT32		27
  2068  #define R_PPC_PLTREL32		28
  2069  #define R_PPC_PLT16_LO		29
  2070  #define R_PPC_PLT16_HI		30
  2071  #define R_PPC_PLT16_HA		31
  2072  #define R_PPC_SDAREL16		32
  2073  #define R_PPC_SECTOFF		33
  2074  #define R_PPC_SECTOFF_LO	34
  2075  #define R_PPC_SECTOFF_HI	35
  2076  #define R_PPC_SECTOFF_HA	36
  2077  
  2078  
  2079  #define R_PPC_TLS		67
  2080  #define R_PPC_DTPMOD32		68
  2081  #define R_PPC_TPREL16		69
  2082  #define R_PPC_TPREL16_LO	70
  2083  #define R_PPC_TPREL16_HI	71
  2084  #define R_PPC_TPREL16_HA	72
  2085  #define R_PPC_TPREL32		73
  2086  #define R_PPC_DTPREL16		74
  2087  #define R_PPC_DTPREL16_LO	75
  2088  #define R_PPC_DTPREL16_HI	76
  2089  #define R_PPC_DTPREL16_HA	77
  2090  #define R_PPC_DTPREL32		78
  2091  #define R_PPC_GOT_TLSGD16	79
  2092  #define R_PPC_GOT_TLSGD16_LO	80
  2093  #define R_PPC_GOT_TLSGD16_HI	81
  2094  #define R_PPC_GOT_TLSGD16_HA	82
  2095  #define R_PPC_GOT_TLSLD16	83
  2096  #define R_PPC_GOT_TLSLD16_LO	84
  2097  #define R_PPC_GOT_TLSLD16_HI	85
  2098  #define R_PPC_GOT_TLSLD16_HA	86
  2099  #define R_PPC_GOT_TPREL16	87
  2100  #define R_PPC_GOT_TPREL16_LO	88
  2101  #define R_PPC_GOT_TPREL16_HI	89
  2102  #define R_PPC_GOT_TPREL16_HA	90
  2103  #define R_PPC_GOT_DTPREL16	91
  2104  #define R_PPC_GOT_DTPREL16_LO	92
  2105  #define R_PPC_GOT_DTPREL16_HI	93
  2106  #define R_PPC_GOT_DTPREL16_HA	94
  2107  #define R_PPC_TLSGD		95
  2108  #define R_PPC_TLSLD		96
  2109  
  2110  
  2111  #define R_PPC_EMB_NADDR32	101
  2112  #define R_PPC_EMB_NADDR16	102
  2113  #define R_PPC_EMB_NADDR16_LO	103
  2114  #define R_PPC_EMB_NADDR16_HI	104
  2115  #define R_PPC_EMB_NADDR16_HA	105
  2116  #define R_PPC_EMB_SDAI16	106
  2117  #define R_PPC_EMB_SDA2I16	107
  2118  #define R_PPC_EMB_SDA2REL	108
  2119  #define R_PPC_EMB_SDA21		109
  2120  #define R_PPC_EMB_MRKREF	110
  2121  #define R_PPC_EMB_RELSEC16	111
  2122  #define R_PPC_EMB_RELST_LO	112
  2123  #define R_PPC_EMB_RELST_HI	113
  2124  #define R_PPC_EMB_RELST_HA	114
  2125  #define R_PPC_EMB_BIT_FLD	115
  2126  #define R_PPC_EMB_RELSDA	116
  2127  
  2128  
  2129  #define R_PPC_DIAB_SDA21_LO	180
  2130  #define R_PPC_DIAB_SDA21_HI	181
  2131  #define R_PPC_DIAB_SDA21_HA	182
  2132  #define R_PPC_DIAB_RELSDA_LO	183
  2133  #define R_PPC_DIAB_RELSDA_HI	184
  2134  #define R_PPC_DIAB_RELSDA_HA	185
  2135  
  2136  
  2137  #define R_PPC_IRELATIVE		248
  2138  
  2139  
  2140  #define R_PPC_REL16		249
  2141  #define R_PPC_REL16_LO		250
  2142  #define R_PPC_REL16_HI		251
  2143  #define R_PPC_REL16_HA		252
  2144  
  2145  
  2146  
  2147  #define R_PPC_TOC16		255
  2148  
  2149  
  2150  #define DT_PPC_GOT		(DT_LOPROC + 0)
  2151  #define DT_PPC_OPT		(DT_LOPROC + 1)
  2152  #define DT_PPC_NUM		2
  2153  
  2154  #define PPC_OPT_TLS		1
  2155  
  2156  
  2157  #define R_PPC64_NONE		R_PPC_NONE
  2158  #define R_PPC64_ADDR32		R_PPC_ADDR32
  2159  #define R_PPC64_ADDR24		R_PPC_ADDR24
  2160  #define R_PPC64_ADDR16		R_PPC_ADDR16
  2161  #define R_PPC64_ADDR16_LO	R_PPC_ADDR16_LO
  2162  #define R_PPC64_ADDR16_HI	R_PPC_ADDR16_HI
  2163  #define R_PPC64_ADDR16_HA	R_PPC_ADDR16_HA
  2164  #define R_PPC64_ADDR14		R_PPC_ADDR14
  2165  #define R_PPC64_ADDR14_BRTAKEN	R_PPC_ADDR14_BRTAKEN
  2166  #define R_PPC64_ADDR14_BRNTAKEN	R_PPC_ADDR14_BRNTAKEN
  2167  #define R_PPC64_REL24		R_PPC_REL24
  2168  #define R_PPC64_REL14		R_PPC_REL14
  2169  #define R_PPC64_REL14_BRTAKEN	R_PPC_REL14_BRTAKEN
  2170  #define R_PPC64_REL14_BRNTAKEN	R_PPC_REL14_BRNTAKEN
  2171  #define R_PPC64_GOT16		R_PPC_GOT16
  2172  #define R_PPC64_GOT16_LO	R_PPC_GOT16_LO
  2173  #define R_PPC64_GOT16_HI	R_PPC_GOT16_HI
  2174  #define R_PPC64_GOT16_HA	R_PPC_GOT16_HA
  2175  
  2176  #define R_PPC64_COPY		R_PPC_COPY
  2177  #define R_PPC64_GLOB_DAT	R_PPC_GLOB_DAT
  2178  #define R_PPC64_JMP_SLOT	R_PPC_JMP_SLOT
  2179  #define R_PPC64_RELATIVE	R_PPC_RELATIVE
  2180  
  2181  #define R_PPC64_UADDR32		R_PPC_UADDR32
  2182  #define R_PPC64_UADDR16		R_PPC_UADDR16
  2183  #define R_PPC64_REL32		R_PPC_REL32
  2184  #define R_PPC64_PLT32		R_PPC_PLT32
  2185  #define R_PPC64_PLTREL32	R_PPC_PLTREL32
  2186  #define R_PPC64_PLT16_LO	R_PPC_PLT16_LO
  2187  #define R_PPC64_PLT16_HI	R_PPC_PLT16_HI
  2188  #define R_PPC64_PLT16_HA	R_PPC_PLT16_HA
  2189  
  2190  #define R_PPC64_SECTOFF		R_PPC_SECTOFF
  2191  #define R_PPC64_SECTOFF_LO	R_PPC_SECTOFF_LO
  2192  #define R_PPC64_SECTOFF_HI	R_PPC_SECTOFF_HI
  2193  #define R_PPC64_SECTOFF_HA	R_PPC_SECTOFF_HA
  2194  #define R_PPC64_ADDR30		37
  2195  #define R_PPC64_ADDR64		38
  2196  #define R_PPC64_ADDR16_HIGHER	39
  2197  #define R_PPC64_ADDR16_HIGHERA	40
  2198  #define R_PPC64_ADDR16_HIGHEST	41
  2199  #define R_PPC64_ADDR16_HIGHESTA	42
  2200  #define R_PPC64_UADDR64		43
  2201  #define R_PPC64_REL64		44
  2202  #define R_PPC64_PLT64		45
  2203  #define R_PPC64_PLTREL64	46
  2204  #define R_PPC64_TOC16		47
  2205  #define R_PPC64_TOC16_LO	48
  2206  #define R_PPC64_TOC16_HI	49
  2207  #define R_PPC64_TOC16_HA	50
  2208  #define R_PPC64_TOC		51
  2209  #define R_PPC64_PLTGOT16	52
  2210  #define R_PPC64_PLTGOT16_LO	53
  2211  #define R_PPC64_PLTGOT16_HI	54
  2212  #define R_PPC64_PLTGOT16_HA	55
  2213  
  2214  #define R_PPC64_ADDR16_DS	56
  2215  #define R_PPC64_ADDR16_LO_DS	57
  2216  #define R_PPC64_GOT16_DS	58
  2217  #define R_PPC64_GOT16_LO_DS	59
  2218  #define R_PPC64_PLT16_LO_DS	60
  2219  #define R_PPC64_SECTOFF_DS	61
  2220  #define R_PPC64_SECTOFF_LO_DS	62
  2221  #define R_PPC64_TOC16_DS	63
  2222  #define R_PPC64_TOC16_LO_DS	64
  2223  #define R_PPC64_PLTGOT16_DS	65
  2224  #define R_PPC64_PLTGOT16_LO_DS	66
  2225  
  2226  
  2227  #define R_PPC64_TLS		67
  2228  #define R_PPC64_DTPMOD64	68
  2229  #define R_PPC64_TPREL16		69
  2230  #define R_PPC64_TPREL16_LO	70
  2231  #define R_PPC64_TPREL16_HI	71
  2232  #define R_PPC64_TPREL16_HA	72
  2233  #define R_PPC64_TPREL64		73
  2234  #define R_PPC64_DTPREL16	74
  2235  #define R_PPC64_DTPREL16_LO	75
  2236  #define R_PPC64_DTPREL16_HI	76
  2237  #define R_PPC64_DTPREL16_HA	77
  2238  #define R_PPC64_DTPREL64	78
  2239  #define R_PPC64_GOT_TLSGD16	79
  2240  #define R_PPC64_GOT_TLSGD16_LO	80
  2241  #define R_PPC64_GOT_TLSGD16_HI	81
  2242  #define R_PPC64_GOT_TLSGD16_HA	82
  2243  #define R_PPC64_GOT_TLSLD16	83
  2244  #define R_PPC64_GOT_TLSLD16_LO	84
  2245  #define R_PPC64_GOT_TLSLD16_HI	85
  2246  #define R_PPC64_GOT_TLSLD16_HA	86
  2247  #define R_PPC64_GOT_TPREL16_DS	87
  2248  #define R_PPC64_GOT_TPREL16_LO_DS 88
  2249  #define R_PPC64_GOT_TPREL16_HI	89
  2250  #define R_PPC64_GOT_TPREL16_HA	90
  2251  #define R_PPC64_GOT_DTPREL16_DS	91
  2252  #define R_PPC64_GOT_DTPREL16_LO_DS 92
  2253  #define R_PPC64_GOT_DTPREL16_HI	93
  2254  #define R_PPC64_GOT_DTPREL16_HA	94
  2255  #define R_PPC64_TPREL16_DS	95
  2256  #define R_PPC64_TPREL16_LO_DS	96
  2257  #define R_PPC64_TPREL16_HIGHER	97
  2258  #define R_PPC64_TPREL16_HIGHERA	98
  2259  #define R_PPC64_TPREL16_HIGHEST	99
  2260  #define R_PPC64_TPREL16_HIGHESTA 100
  2261  #define R_PPC64_DTPREL16_DS	101
  2262  #define R_PPC64_DTPREL16_LO_DS	102
  2263  #define R_PPC64_DTPREL16_HIGHER	103
  2264  #define R_PPC64_DTPREL16_HIGHERA 104
  2265  #define R_PPC64_DTPREL16_HIGHEST 105
  2266  #define R_PPC64_DTPREL16_HIGHESTA 106
  2267  #define R_PPC64_TLSGD		107
  2268  #define R_PPC64_TLSLD		108
  2269  #define R_PPC64_TOCSAVE		109
  2270  #define R_PPC64_ADDR16_HIGH	110
  2271  #define R_PPC64_ADDR16_HIGHA	111
  2272  #define R_PPC64_TPREL16_HIGH	112
  2273  #define R_PPC64_TPREL16_HIGHA	113
  2274  #define R_PPC64_DTPREL16_HIGH	114
  2275  #define R_PPC64_DTPREL16_HIGHA	115
  2276  
  2277  
  2278  #define R_PPC64_JMP_IREL	247
  2279  #define R_PPC64_IRELATIVE	248
  2280  #define R_PPC64_REL16		249
  2281  #define R_PPC64_REL16_LO	250
  2282  #define R_PPC64_REL16_HI	251
  2283  #define R_PPC64_REL16_HA	252
  2284  
  2285  #define EF_PPC64_ABI	3
  2286  
  2287  #define DT_PPC64_GLINK  (DT_LOPROC + 0)
  2288  #define DT_PPC64_OPD	(DT_LOPROC + 1)
  2289  #define DT_PPC64_OPDSZ	(DT_LOPROC + 2)
  2290  #define DT_PPC64_OPT	(DT_LOPROC + 3)
  2291  #define DT_PPC64_NUM	4
  2292  
  2293  #define PPC64_OPT_TLS		1
  2294  #define PPC64_OPT_MULTI_TOC	2
  2295  #define PPC64_OPT_LOCALENTRY	4
  2296  
  2297  #define STO_PPC64_LOCAL_BIT	5
  2298  #define STO_PPC64_LOCAL_MASK	0xe0
  2299  #define PPC64_LOCAL_ENTRY_OFFSET(x) (1 << (((x)&0xe0)>>5) & 0xfc)
  2300  
  2301  
  2302  #define EF_ARM_RELEXEC		0x01
  2303  #define EF_ARM_HASENTRY		0x02
  2304  #define EF_ARM_INTERWORK	0x04
  2305  #define EF_ARM_APCS_26		0x08
  2306  #define EF_ARM_APCS_FLOAT	0x10
  2307  #define EF_ARM_PIC		0x20
  2308  #define EF_ARM_ALIGN8		0x40
  2309  #define EF_ARM_NEW_ABI		0x80
  2310  #define EF_ARM_OLD_ABI		0x100
  2311  #define EF_ARM_SOFT_FLOAT	0x200
  2312  #define EF_ARM_VFP_FLOAT	0x400
  2313  #define EF_ARM_MAVERICK_FLOAT	0x800
  2314  
  2315  #define EF_ARM_ABI_FLOAT_SOFT	0x200
  2316  #define EF_ARM_ABI_FLOAT_HARD	0x400
  2317  
  2318  
  2319  #define EF_ARM_SYMSARESORTED	0x04
  2320  #define EF_ARM_DYNSYMSUSESEGIDX	0x08
  2321  #define EF_ARM_MAPSYMSFIRST	0x10
  2322  #define EF_ARM_EABIMASK		0XFF000000
  2323  
  2324  
  2325  #define EF_ARM_BE8	    0x00800000
  2326  #define EF_ARM_LE8	    0x00400000
  2327  
  2328  #define EF_ARM_EABI_VERSION(flags)	((flags) & EF_ARM_EABIMASK)
  2329  #define EF_ARM_EABI_UNKNOWN	0x00000000
  2330  #define EF_ARM_EABI_VER1	0x01000000
  2331  #define EF_ARM_EABI_VER2	0x02000000
  2332  #define EF_ARM_EABI_VER3	0x03000000
  2333  #define EF_ARM_EABI_VER4	0x04000000
  2334  #define EF_ARM_EABI_VER5	0x05000000
  2335  
  2336  
  2337  #define STT_ARM_TFUNC		STT_LOPROC
  2338  #define STT_ARM_16BIT		STT_HIPROC
  2339  
  2340  
  2341  #define SHF_ARM_ENTRYSECT	0x10000000
  2342  #define SHF_ARM_COMDEF		0x80000000
  2343  
  2344  
  2345  
  2346  #define PF_ARM_SB		0x10000000
  2347  
  2348  #define PF_ARM_PI		0x20000000
  2349  #define PF_ARM_ABS		0x40000000
  2350  
  2351  
  2352  #define PT_ARM_EXIDX		(PT_LOPROC + 1)
  2353  
  2354  
  2355  #define SHT_ARM_EXIDX		(SHT_LOPROC + 1)
  2356  #define SHT_ARM_PREEMPTMAP	(SHT_LOPROC + 2)
  2357  #define SHT_ARM_ATTRIBUTES	(SHT_LOPROC + 3)
  2358  
  2359  #define R_AARCH64_NONE            0
  2360  #define R_AARCH64_P32_ABS32	1
  2361  #define R_AARCH64_P32_COPY	180
  2362  #define R_AARCH64_P32_GLOB_DAT	181
  2363  #define R_AARCH64_P32_JUMP_SLOT	182
  2364  #define R_AARCH64_P32_RELATIVE	183
  2365  #define R_AARCH64_P32_TLS_DTPMOD 184
  2366  #define R_AARCH64_P32_TLS_DTPREL 185
  2367  #define R_AARCH64_P32_TLS_TPREL	186
  2368  #define R_AARCH64_P32_TLSDESC	187
  2369  #define R_AARCH64_P32_IRELATIVE	188
  2370  #define R_AARCH64_ABS64         257
  2371  #define R_AARCH64_ABS32         258
  2372  #define R_AARCH64_ABS16		259
  2373  #define R_AARCH64_PREL64	260
  2374  #define R_AARCH64_PREL32	261
  2375  #define R_AARCH64_PREL16	262
  2376  #define R_AARCH64_MOVW_UABS_G0	263
  2377  #define R_AARCH64_MOVW_UABS_G0_NC 264
  2378  #define R_AARCH64_MOVW_UABS_G1	265
  2379  #define R_AARCH64_MOVW_UABS_G1_NC 266
  2380  #define R_AARCH64_MOVW_UABS_G2	267
  2381  #define R_AARCH64_MOVW_UABS_G2_NC 268
  2382  #define R_AARCH64_MOVW_UABS_G3	269
  2383  #define R_AARCH64_MOVW_SABS_G0	270
  2384  #define R_AARCH64_MOVW_SABS_G1	271
  2385  #define R_AARCH64_MOVW_SABS_G2	272
  2386  #define R_AARCH64_LD_PREL_LO19	273
  2387  #define R_AARCH64_ADR_PREL_LO21	274
  2388  #define R_AARCH64_ADR_PREL_PG_HI21 275
  2389  #define R_AARCH64_ADR_PREL_PG_HI21_NC 276
  2390  #define R_AARCH64_ADD_ABS_LO12_NC 277
  2391  #define R_AARCH64_LDST8_ABS_LO12_NC 278
  2392  #define R_AARCH64_TSTBR14	279
  2393  #define R_AARCH64_CONDBR19	280
  2394  #define R_AARCH64_JUMP26	282
  2395  #define R_AARCH64_CALL26	283
  2396  #define R_AARCH64_LDST16_ABS_LO12_NC 284
  2397  #define R_AARCH64_LDST32_ABS_LO12_NC 285
  2398  #define R_AARCH64_LDST64_ABS_LO12_NC 286
  2399  #define R_AARCH64_MOVW_PREL_G0	287
  2400  #define R_AARCH64_MOVW_PREL_G0_NC 288
  2401  #define R_AARCH64_MOVW_PREL_G1	289
  2402  #define R_AARCH64_MOVW_PREL_G1_NC 290
  2403  #define R_AARCH64_MOVW_PREL_G2	291
  2404  #define R_AARCH64_MOVW_PREL_G2_NC 292
  2405  #define R_AARCH64_MOVW_PREL_G3	293
  2406  #define R_AARCH64_LDST128_ABS_LO12_NC 299
  2407  #define R_AARCH64_MOVW_GOTOFF_G0 300
  2408  #define R_AARCH64_MOVW_GOTOFF_G0_NC 301
  2409  #define R_AARCH64_MOVW_GOTOFF_G1 302
  2410  #define R_AARCH64_MOVW_GOTOFF_G1_NC 303
  2411  #define R_AARCH64_MOVW_GOTOFF_G2 304
  2412  #define R_AARCH64_MOVW_GOTOFF_G2_NC 305
  2413  #define R_AARCH64_MOVW_GOTOFF_G3 306
  2414  #define R_AARCH64_GOTREL64	307
  2415  #define R_AARCH64_GOTREL32	308
  2416  #define R_AARCH64_GOT_LD_PREL19	309
  2417  #define R_AARCH64_LD64_GOTOFF_LO15 310
  2418  #define R_AARCH64_ADR_GOT_PAGE	311
  2419  #define R_AARCH64_LD64_GOT_LO12_NC 312
  2420  #define R_AARCH64_LD64_GOTPAGE_LO15 313
  2421  #define R_AARCH64_TLSGD_ADR_PREL21 512
  2422  #define R_AARCH64_TLSGD_ADR_PAGE21 513
  2423  #define R_AARCH64_TLSGD_ADD_LO12_NC 514
  2424  #define R_AARCH64_TLSGD_MOVW_G1	515
  2425  #define R_AARCH64_TLSGD_MOVW_G0_NC 516
  2426  #define R_AARCH64_TLSLD_ADR_PREL21 517
  2427  #define R_AARCH64_TLSLD_ADR_PAGE21 518
  2428  #define R_AARCH64_TLSLD_ADD_LO12_NC 519
  2429  #define R_AARCH64_TLSLD_MOVW_G1	520
  2430  #define R_AARCH64_TLSLD_MOVW_G0_NC 521
  2431  #define R_AARCH64_TLSLD_LD_PREL19 522
  2432  #define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523
  2433  #define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524
  2434  #define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525
  2435  #define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526
  2436  #define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527
  2437  #define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528
  2438  #define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529
  2439  #define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530
  2440  #define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531
  2441  #define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532
  2442  #define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533
  2443  #define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534
  2444  #define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535
  2445  #define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536
  2446  #define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537
  2447  #define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538
  2448  #define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539
  2449  #define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540
  2450  #define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541
  2451  #define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542
  2452  #define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543
  2453  #define R_AARCH64_TLSLE_MOVW_TPREL_G2 544
  2454  #define R_AARCH64_TLSLE_MOVW_TPREL_G1 545
  2455  #define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546
  2456  #define R_AARCH64_TLSLE_MOVW_TPREL_G0 547
  2457  #define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548
  2458  #define R_AARCH64_TLSLE_ADD_TPREL_HI12 549
  2459  #define R_AARCH64_TLSLE_ADD_TPREL_LO12 550
  2460  #define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551
  2461  #define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552
  2462  #define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553
  2463  #define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554
  2464  #define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555
  2465  #define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556
  2466  #define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557
  2467  #define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558
  2468  #define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559
  2469  #define R_AARCH64_TLSDESC_LD_PREL19 560
  2470  #define R_AARCH64_TLSDESC_ADR_PREL21 561
  2471  #define R_AARCH64_TLSDESC_ADR_PAGE21 562
  2472  #define R_AARCH64_TLSDESC_LD64_LO12 563
  2473  #define R_AARCH64_TLSDESC_ADD_LO12 564
  2474  #define R_AARCH64_TLSDESC_OFF_G1 565
  2475  #define R_AARCH64_TLSDESC_OFF_G0_NC 566
  2476  #define R_AARCH64_TLSDESC_LDR	567
  2477  #define R_AARCH64_TLSDESC_ADD	568
  2478  #define R_AARCH64_TLSDESC_CALL	569
  2479  #define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570
  2480  #define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571
  2481  #define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572
  2482  #define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573
  2483  #define R_AARCH64_COPY         1024
  2484  #define R_AARCH64_GLOB_DAT     1025
  2485  #define R_AARCH64_JUMP_SLOT    1026
  2486  #define R_AARCH64_RELATIVE     1027
  2487  #define R_AARCH64_TLS_DTPMOD   1028
  2488  #define R_AARCH64_TLS_DTPMOD64 1028
  2489  #define R_AARCH64_TLS_DTPREL   1029
  2490  #define R_AARCH64_TLS_DTPREL64 1029
  2491  #define R_AARCH64_TLS_TPREL    1030
  2492  #define R_AARCH64_TLS_TPREL64  1030
  2493  #define R_AARCH64_TLSDESC      1031
  2494  
  2495  
  2496  #define R_ARM_NONE		0
  2497  #define R_ARM_PC24		1
  2498  #define R_ARM_ABS32		2
  2499  #define R_ARM_REL32		3
  2500  #define R_ARM_PC13		4
  2501  #define R_ARM_ABS16		5
  2502  #define R_ARM_ABS12		6
  2503  #define R_ARM_THM_ABS5		7
  2504  #define R_ARM_ABS8		8
  2505  #define R_ARM_SBREL32		9
  2506  #define R_ARM_THM_PC22		10
  2507  #define R_ARM_THM_PC8		11
  2508  #define R_ARM_AMP_VCALL9	12
  2509  #define R_ARM_TLS_DESC		13
  2510  #define R_ARM_THM_SWI8		14
  2511  #define R_ARM_XPC25		15
  2512  #define R_ARM_THM_XPC22		16
  2513  #define R_ARM_TLS_DTPMOD32	17
  2514  #define R_ARM_TLS_DTPOFF32	18
  2515  #define R_ARM_TLS_TPOFF32	19
  2516  #define R_ARM_COPY		20
  2517  #define R_ARM_GLOB_DAT		21
  2518  #define R_ARM_JUMP_SLOT		22
  2519  #define R_ARM_RELATIVE		23
  2520  #define R_ARM_GOTOFF		24
  2521  #define R_ARM_GOTPC		25
  2522  #define R_ARM_GOT32		26
  2523  #define R_ARM_PLT32		27
  2524  #define R_ARM_CALL		28
  2525  #define R_ARM_JUMP24		29
  2526  #define R_ARM_THM_JUMP24	30
  2527  #define R_ARM_BASE_ABS		31
  2528  #define R_ARM_ALU_PCREL_7_0	32
  2529  #define R_ARM_ALU_PCREL_15_8	33
  2530  #define R_ARM_ALU_PCREL_23_15	34
  2531  #define R_ARM_LDR_SBREL_11_0	35
  2532  #define R_ARM_ALU_SBREL_19_12	36
  2533  #define R_ARM_ALU_SBREL_27_20	37
  2534  #define R_ARM_TARGET1		38
  2535  #define R_ARM_SBREL31		39
  2536  #define R_ARM_V4BX		40
  2537  #define R_ARM_TARGET2		41
  2538  #define R_ARM_PREL31		42
  2539  #define R_ARM_MOVW_ABS_NC	43
  2540  #define R_ARM_MOVT_ABS		44
  2541  #define R_ARM_MOVW_PREL_NC	45
  2542  #define R_ARM_MOVT_PREL		46
  2543  #define R_ARM_THM_MOVW_ABS_NC	47
  2544  #define R_ARM_THM_MOVT_ABS	48
  2545  #define R_ARM_THM_MOVW_PREL_NC	49
  2546  #define R_ARM_THM_MOVT_PREL	50
  2547  #define R_ARM_THM_JUMP19	51
  2548  #define R_ARM_THM_JUMP6		52
  2549  #define R_ARM_THM_ALU_PREL_11_0	53
  2550  #define R_ARM_THM_PC12		54
  2551  #define R_ARM_ABS32_NOI		55
  2552  #define R_ARM_REL32_NOI		56
  2553  #define R_ARM_ALU_PC_G0_NC	57
  2554  #define R_ARM_ALU_PC_G0		58
  2555  #define R_ARM_ALU_PC_G1_NC	59
  2556  #define R_ARM_ALU_PC_G1		60
  2557  #define R_ARM_ALU_PC_G2		61
  2558  #define R_ARM_LDR_PC_G1		62
  2559  #define R_ARM_LDR_PC_G2		63
  2560  #define R_ARM_LDRS_PC_G0	64
  2561  #define R_ARM_LDRS_PC_G1	65
  2562  #define R_ARM_LDRS_PC_G2	66
  2563  #define R_ARM_LDC_PC_G0		67
  2564  #define R_ARM_LDC_PC_G1		68
  2565  #define R_ARM_LDC_PC_G2		69
  2566  #define R_ARM_ALU_SB_G0_NC	70
  2567  #define R_ARM_ALU_SB_G0		71
  2568  #define R_ARM_ALU_SB_G1_NC	72
  2569  #define R_ARM_ALU_SB_G1		73
  2570  #define R_ARM_ALU_SB_G2		74
  2571  #define R_ARM_LDR_SB_G0		75
  2572  #define R_ARM_LDR_SB_G1		76
  2573  #define R_ARM_LDR_SB_G2		77
  2574  #define R_ARM_LDRS_SB_G0	78
  2575  #define R_ARM_LDRS_SB_G1	79
  2576  #define R_ARM_LDRS_SB_G2	80
  2577  #define R_ARM_LDC_SB_G0		81
  2578  #define R_ARM_LDC_SB_G1		82
  2579  #define R_ARM_LDC_SB_G2		83
  2580  #define R_ARM_MOVW_BREL_NC	84
  2581  #define R_ARM_MOVT_BREL		85
  2582  #define R_ARM_MOVW_BREL		86
  2583  #define R_ARM_THM_MOVW_BREL_NC	87
  2584  #define R_ARM_THM_MOVT_BREL	88
  2585  #define R_ARM_THM_MOVW_BREL	89
  2586  #define R_ARM_TLS_GOTDESC	90
  2587  #define R_ARM_TLS_CALL		91
  2588  #define R_ARM_TLS_DESCSEQ	92
  2589  #define R_ARM_THM_TLS_CALL	93
  2590  #define R_ARM_PLT32_ABS		94
  2591  #define R_ARM_GOT_ABS		95
  2592  #define R_ARM_GOT_PREL		96
  2593  #define R_ARM_GOT_BREL12	97
  2594  #define R_ARM_GOTOFF12		98
  2595  #define R_ARM_GOTRELAX		99
  2596  #define R_ARM_GNU_VTENTRY	100
  2597  #define R_ARM_GNU_VTINHERIT	101
  2598  #define R_ARM_THM_PC11		102
  2599  #define R_ARM_THM_PC9		103
  2600  #define R_ARM_TLS_GD32		104
  2601  
  2602  #define R_ARM_TLS_LDM32		105
  2603  
  2604  #define R_ARM_TLS_LDO32		106
  2605  
  2606  #define R_ARM_TLS_IE32		107
  2607  
  2608  #define R_ARM_TLS_LE32		108
  2609  #define R_ARM_TLS_LDO12		109
  2610  #define R_ARM_TLS_LE12		110
  2611  #define R_ARM_TLS_IE12GP	111
  2612  #define R_ARM_ME_TOO		128
  2613  #define R_ARM_THM_TLS_DESCSEQ	129
  2614  #define R_ARM_THM_TLS_DESCSEQ16	129
  2615  #define R_ARM_THM_TLS_DESCSEQ32	130
  2616  #define R_ARM_THM_GOT_BREL12	131
  2617  #define R_ARM_IRELATIVE		160
  2618  #define R_ARM_RXPC25		249
  2619  #define R_ARM_RSBREL32		250
  2620  #define R_ARM_THM_RPC22		251
  2621  #define R_ARM_RREL32		252
  2622  #define R_ARM_RABS22		253
  2623  #define R_ARM_RPC24		254
  2624  #define R_ARM_RBASE		255
  2625  
  2626  #define R_ARM_NUM		256
  2627  
  2628  
  2629  #define R_CKCORE_NONE               0
  2630  #define R_CKCORE_ADDR32             1
  2631  #define R_CKCORE_PCRELIMM8BY4       2
  2632  #define R_CKCORE_PCRELIMM11BY2      3
  2633  #define R_CKCORE_PCREL32            5
  2634  #define R_CKCORE_PCRELJSR_IMM11BY2  6
  2635  #define R_CKCORE_RELATIVE           9
  2636  #define R_CKCORE_COPY               10
  2637  #define R_CKCORE_GLOB_DAT           11
  2638  #define R_CKCORE_JUMP_SLOT          12
  2639  #define R_CKCORE_GOTOFF             13
  2640  #define R_CKCORE_GOTPC              14
  2641  #define R_CKCORE_GOT32              15
  2642  #define R_CKCORE_PLT32              16
  2643  #define R_CKCORE_ADDRGOT            17
  2644  #define R_CKCORE_ADDRPLT            18
  2645  #define R_CKCORE_PCREL_IMM26BY2     19
  2646  #define R_CKCORE_PCREL_IMM16BY2     20
  2647  #define R_CKCORE_PCREL_IMM16BY4     21
  2648  #define R_CKCORE_PCREL_IMM10BY2     22
  2649  #define R_CKCORE_PCREL_IMM10BY4     23
  2650  #define R_CKCORE_ADDR_HI16          24
  2651  #define R_CKCORE_ADDR_LO16          25
  2652  #define R_CKCORE_GOTPC_HI16         26
  2653  #define R_CKCORE_GOTPC_LO16         27
  2654  #define R_CKCORE_GOTOFF_HI16        28
  2655  #define R_CKCORE_GOTOFF_LO16        29
  2656  #define R_CKCORE_GOT12              30
  2657  #define R_CKCORE_GOT_HI16           31
  2658  #define R_CKCORE_GOT_LO16           32
  2659  #define R_CKCORE_PLT12              33
  2660  #define R_CKCORE_PLT_HI16           34
  2661  #define R_CKCORE_PLT_LO16           35
  2662  #define R_CKCORE_ADDRGOT_HI16       36
  2663  #define R_CKCORE_ADDRGOT_LO16       37
  2664  #define R_CKCORE_ADDRPLT_HI16       38
  2665  #define R_CKCORE_ADDRPLT_LO16       39
  2666  #define R_CKCORE_PCREL_JSR_IMM26BY2 40
  2667  #define R_CKCORE_TOFFSET_LO16       41
  2668  #define R_CKCORE_DOFFSET_LO16       42
  2669  #define R_CKCORE_PCREL_IMM18BY2     43
  2670  #define R_CKCORE_DOFFSET_IMM18      44
  2671  #define R_CKCORE_DOFFSET_IMM18BY2   45
  2672  #define R_CKCORE_DOFFSET_IMM18BY4   46
  2673  #define R_CKCORE_GOT_IMM18BY4       48
  2674  #define R_CKCORE_PLT_IMM18BY4       49
  2675  #define R_CKCORE_PCREL_IMM7BY4      50
  2676  #define R_CKCORE_TLS_LE32           51
  2677  #define R_CKCORE_TLS_IE32           52
  2678  #define R_CKCORE_TLS_GD32           53
  2679  #define R_CKCORE_TLS_LDM32          54
  2680  #define R_CKCORE_TLS_LDO32          55
  2681  #define R_CKCORE_TLS_DTPMOD32       56
  2682  #define R_CKCORE_TLS_DTPOFF32       57
  2683  #define R_CKCORE_TLS_TPOFF32        58
  2684  
  2685  
  2686  #define EF_IA_64_MASKOS		0x0000000f
  2687  #define EF_IA_64_ABI64		0x00000010
  2688  #define EF_IA_64_ARCH		0xff000000
  2689  
  2690  
  2691  #define PT_IA_64_ARCHEXT	(PT_LOPROC + 0)
  2692  #define PT_IA_64_UNWIND		(PT_LOPROC + 1)
  2693  #define PT_IA_64_HP_OPT_ANOT	(PT_LOOS + 0x12)
  2694  #define PT_IA_64_HP_HSL_ANOT	(PT_LOOS + 0x13)
  2695  #define PT_IA_64_HP_STACK	(PT_LOOS + 0x14)
  2696  
  2697  
  2698  #define PF_IA_64_NORECOV	0x80000000
  2699  
  2700  
  2701  #define SHT_IA_64_EXT		(SHT_LOPROC + 0)
  2702  #define SHT_IA_64_UNWIND	(SHT_LOPROC + 1)
  2703  
  2704  
  2705  #define SHF_IA_64_SHORT		0x10000000
  2706  #define SHF_IA_64_NORECOV	0x20000000
  2707  
  2708  
  2709  #define DT_IA_64_PLT_RESERVE	(DT_LOPROC + 0)
  2710  #define DT_IA_64_NUM		1
  2711  
  2712  
  2713  #define R_IA64_NONE		0x00
  2714  #define R_IA64_IMM14		0x21
  2715  #define R_IA64_IMM22		0x22
  2716  #define R_IA64_IMM64		0x23
  2717  #define R_IA64_DIR32MSB		0x24
  2718  #define R_IA64_DIR32LSB		0x25
  2719  #define R_IA64_DIR64MSB		0x26
  2720  #define R_IA64_DIR64LSB		0x27
  2721  #define R_IA64_GPREL22		0x2a
  2722  #define R_IA64_GPREL64I		0x2b
  2723  #define R_IA64_GPREL32MSB	0x2c
  2724  #define R_IA64_GPREL32LSB	0x2d
  2725  #define R_IA64_GPREL64MSB	0x2e
  2726  #define R_IA64_GPREL64LSB	0x2f
  2727  #define R_IA64_LTOFF22		0x32
  2728  #define R_IA64_LTOFF64I		0x33
  2729  #define R_IA64_PLTOFF22		0x3a
  2730  #define R_IA64_PLTOFF64I	0x3b
  2731  #define R_IA64_PLTOFF64MSB	0x3e
  2732  #define R_IA64_PLTOFF64LSB	0x3f
  2733  #define R_IA64_FPTR64I		0x43
  2734  #define R_IA64_FPTR32MSB	0x44
  2735  #define R_IA64_FPTR32LSB	0x45
  2736  #define R_IA64_FPTR64MSB	0x46
  2737  #define R_IA64_FPTR64LSB	0x47
  2738  #define R_IA64_PCREL60B		0x48
  2739  #define R_IA64_PCREL21B		0x49
  2740  #define R_IA64_PCREL21M		0x4a
  2741  #define R_IA64_PCREL21F		0x4b
  2742  #define R_IA64_PCREL32MSB	0x4c
  2743  #define R_IA64_PCREL32LSB	0x4d
  2744  #define R_IA64_PCREL64MSB	0x4e
  2745  #define R_IA64_PCREL64LSB	0x4f
  2746  #define R_IA64_LTOFF_FPTR22	0x52
  2747  #define R_IA64_LTOFF_FPTR64I	0x53
  2748  #define R_IA64_LTOFF_FPTR32MSB	0x54
  2749  #define R_IA64_LTOFF_FPTR32LSB	0x55
  2750  #define R_IA64_LTOFF_FPTR64MSB	0x56
  2751  #define R_IA64_LTOFF_FPTR64LSB	0x57
  2752  #define R_IA64_SEGREL32MSB	0x5c
  2753  #define R_IA64_SEGREL32LSB	0x5d
  2754  #define R_IA64_SEGREL64MSB	0x5e
  2755  #define R_IA64_SEGREL64LSB	0x5f
  2756  #define R_IA64_SECREL32MSB	0x64
  2757  #define R_IA64_SECREL32LSB	0x65
  2758  #define R_IA64_SECREL64MSB	0x66
  2759  #define R_IA64_SECREL64LSB	0x67
  2760  #define R_IA64_REL32MSB		0x6c
  2761  #define R_IA64_REL32LSB		0x6d
  2762  #define R_IA64_REL64MSB		0x6e
  2763  #define R_IA64_REL64LSB		0x6f
  2764  #define R_IA64_LTV32MSB		0x74
  2765  #define R_IA64_LTV32LSB		0x75
  2766  #define R_IA64_LTV64MSB		0x76
  2767  #define R_IA64_LTV64LSB		0x77
  2768  #define R_IA64_PCREL21BI	0x79
  2769  #define R_IA64_PCREL22		0x7a
  2770  #define R_IA64_PCREL64I		0x7b
  2771  #define R_IA64_IPLTMSB		0x80
  2772  #define R_IA64_IPLTLSB		0x81
  2773  #define R_IA64_COPY		0x84
  2774  #define R_IA64_SUB		0x85
  2775  #define R_IA64_LTOFF22X		0x86
  2776  #define R_IA64_LDXMOV		0x87
  2777  #define R_IA64_TPREL14		0x91
  2778  #define R_IA64_TPREL22		0x92
  2779  #define R_IA64_TPREL64I		0x93
  2780  #define R_IA64_TPREL64MSB	0x96
  2781  #define R_IA64_TPREL64LSB	0x97
  2782  #define R_IA64_LTOFF_TPREL22	0x9a
  2783  #define R_IA64_DTPMOD64MSB	0xa6
  2784  #define R_IA64_DTPMOD64LSB	0xa7
  2785  #define R_IA64_LTOFF_DTPMOD22	0xaa
  2786  #define R_IA64_DTPREL14		0xb1
  2787  #define R_IA64_DTPREL22		0xb2
  2788  #define R_IA64_DTPREL64I	0xb3
  2789  #define R_IA64_DTPREL32MSB	0xb4
  2790  #define R_IA64_DTPREL32LSB	0xb5
  2791  #define R_IA64_DTPREL64MSB	0xb6
  2792  #define R_IA64_DTPREL64LSB	0xb7
  2793  #define R_IA64_LTOFF_DTPREL22	0xba
  2794  
  2795  
  2796  #define EF_SH_MACH_MASK		0x1f
  2797  #define EF_SH_UNKNOWN		0x0
  2798  #define EF_SH1			0x1
  2799  #define EF_SH2			0x2
  2800  #define EF_SH3			0x3
  2801  #define EF_SH_DSP		0x4
  2802  #define EF_SH3_DSP		0x5
  2803  #define EF_SH4AL_DSP		0x6
  2804  #define EF_SH3E			0x8
  2805  #define EF_SH4			0x9
  2806  #define EF_SH2E			0xb
  2807  #define EF_SH4A			0xc
  2808  #define EF_SH2A			0xd
  2809  #define EF_SH4_NOFPU		0x10
  2810  #define EF_SH4A_NOFPU		0x11
  2811  #define EF_SH4_NOMMU_NOFPU	0x12
  2812  #define EF_SH2A_NOFPU		0x13
  2813  #define EF_SH3_NOMMU		0x14
  2814  #define EF_SH2A_SH4_NOFPU	0x15
  2815  #define EF_SH2A_SH3_NOFPU	0x16
  2816  #define EF_SH2A_SH4		0x17
  2817  #define EF_SH2A_SH3E		0x18
  2818  
  2819  #define	R_SH_NONE		0
  2820  #define	R_SH_DIR32		1
  2821  #define	R_SH_REL32		2
  2822  #define	R_SH_DIR8WPN		3
  2823  #define	R_SH_IND12W		4
  2824  #define	R_SH_DIR8WPL		5
  2825  #define	R_SH_DIR8WPZ		6
  2826  #define	R_SH_DIR8BP		7
  2827  #define	R_SH_DIR8W		8
  2828  #define	R_SH_DIR8L		9
  2829  #define	R_SH_SWITCH16		25
  2830  #define	R_SH_SWITCH32		26
  2831  #define	R_SH_USES		27
  2832  #define	R_SH_COUNT		28
  2833  #define	R_SH_ALIGN		29
  2834  #define	R_SH_CODE		30
  2835  #define	R_SH_DATA		31
  2836  #define	R_SH_LABEL		32
  2837  #define	R_SH_SWITCH8		33
  2838  #define	R_SH_GNU_VTINHERIT	34
  2839  #define	R_SH_GNU_VTENTRY	35
  2840  #define	R_SH_TLS_GD_32		144
  2841  #define	R_SH_TLS_LD_32		145
  2842  #define	R_SH_TLS_LDO_32		146
  2843  #define	R_SH_TLS_IE_32		147
  2844  #define	R_SH_TLS_LE_32		148
  2845  #define	R_SH_TLS_DTPMOD32	149
  2846  #define	R_SH_TLS_DTPOFF32	150
  2847  #define	R_SH_TLS_TPOFF32	151
  2848  #define	R_SH_GOT32		160
  2849  #define	R_SH_PLT32		161
  2850  #define	R_SH_COPY		162
  2851  #define	R_SH_GLOB_DAT		163
  2852  #define	R_SH_JMP_SLOT		164
  2853  #define	R_SH_RELATIVE		165
  2854  #define	R_SH_GOTOFF		166
  2855  #define	R_SH_GOTPC		167
  2856  #define	R_SH_GOT20		201
  2857  #define	R_SH_GOTOFF20		202
  2858  #define	R_SH_GOTFUNCDESC	203
  2859  #define	R_SH_GOTFUNCDEST20	204
  2860  #define	R_SH_GOTOFFFUNCDESC	205
  2861  #define	R_SH_GOTOFFFUNCDEST20	206
  2862  #define	R_SH_FUNCDESC		207
  2863  #define	R_SH_FUNCDESC_VALUE	208
  2864  
  2865  #define	R_SH_NUM		256
  2866  
  2867  
  2868  
  2869  #define R_390_NONE		0
  2870  #define R_390_8			1
  2871  #define R_390_12		2
  2872  #define R_390_16		3
  2873  #define R_390_32		4
  2874  #define R_390_PC32		5
  2875  #define R_390_GOT12		6
  2876  #define R_390_GOT32		7
  2877  #define R_390_PLT32		8
  2878  #define R_390_COPY		9
  2879  #define R_390_GLOB_DAT		10
  2880  #define R_390_JMP_SLOT		11
  2881  #define R_390_RELATIVE		12
  2882  #define R_390_GOTOFF32		13
  2883  #define R_390_GOTPC		14
  2884  #define R_390_GOT16		15
  2885  #define R_390_PC16		16
  2886  #define R_390_PC16DBL		17
  2887  #define R_390_PLT16DBL		18
  2888  #define R_390_PC32DBL		19
  2889  #define R_390_PLT32DBL		20
  2890  #define R_390_GOTPCDBL		21
  2891  #define R_390_64		22
  2892  #define R_390_PC64		23
  2893  #define R_390_GOT64		24
  2894  #define R_390_PLT64		25
  2895  #define R_390_GOTENT		26
  2896  #define R_390_GOTOFF16		27
  2897  #define R_390_GOTOFF64		28
  2898  #define R_390_GOTPLT12		29
  2899  #define R_390_GOTPLT16		30
  2900  #define R_390_GOTPLT32		31
  2901  #define R_390_GOTPLT64		32
  2902  #define R_390_GOTPLTENT		33
  2903  #define R_390_PLTOFF16		34
  2904  #define R_390_PLTOFF32		35
  2905  #define R_390_PLTOFF64		36
  2906  #define R_390_TLS_LOAD		37
  2907  #define R_390_TLS_GDCALL	38
  2908  
  2909  #define R_390_TLS_LDCALL	39
  2910  
  2911  #define R_390_TLS_GD32		40
  2912  
  2913  #define R_390_TLS_GD64		41
  2914  
  2915  #define R_390_TLS_GOTIE12	42
  2916  
  2917  #define R_390_TLS_GOTIE32	43
  2918  
  2919  #define R_390_TLS_GOTIE64	44
  2920  
  2921  #define R_390_TLS_LDM32		45
  2922  
  2923  #define R_390_TLS_LDM64		46
  2924  
  2925  #define R_390_TLS_IE32		47
  2926  
  2927  #define R_390_TLS_IE64		48
  2928  
  2929  #define R_390_TLS_IEENT		49
  2930  
  2931  #define R_390_TLS_LE32		50
  2932  
  2933  #define R_390_TLS_LE64		51
  2934  
  2935  #define R_390_TLS_LDO32		52
  2936  
  2937  #define R_390_TLS_LDO64		53
  2938  
  2939  #define R_390_TLS_DTPMOD	54
  2940  #define R_390_TLS_DTPOFF	55
  2941  #define R_390_TLS_TPOFF		56
  2942  
  2943  #define R_390_20		57
  2944  #define R_390_GOT20		58
  2945  #define R_390_GOTPLT20		59
  2946  #define R_390_TLS_GOTIE20	60
  2947  
  2948  
  2949  #define R_390_NUM		61
  2950  
  2951  
  2952  
  2953  #define R_CRIS_NONE		0
  2954  #define R_CRIS_8		1
  2955  #define R_CRIS_16		2
  2956  #define R_CRIS_32		3
  2957  #define R_CRIS_8_PCREL		4
  2958  #define R_CRIS_16_PCREL		5
  2959  #define R_CRIS_32_PCREL		6
  2960  #define R_CRIS_GNU_VTINHERIT	7
  2961  #define R_CRIS_GNU_VTENTRY	8
  2962  #define R_CRIS_COPY		9
  2963  #define R_CRIS_GLOB_DAT		10
  2964  #define R_CRIS_JUMP_SLOT	11
  2965  #define R_CRIS_RELATIVE		12
  2966  #define R_CRIS_16_GOT		13
  2967  #define R_CRIS_32_GOT		14
  2968  #define R_CRIS_16_GOTPLT	15
  2969  #define R_CRIS_32_GOTPLT	16
  2970  #define R_CRIS_32_GOTREL	17
  2971  #define R_CRIS_32_PLT_GOTREL	18
  2972  #define R_CRIS_32_PLT_PCREL	19
  2973  
  2974  #define R_CRIS_NUM		20
  2975  
  2976  
  2977  
  2978  #define R_X86_64_NONE		0
  2979  #define R_X86_64_64		1
  2980  #define R_X86_64_PC32		2
  2981  #define R_X86_64_GOT32		3
  2982  #define R_X86_64_PLT32		4
  2983  #define R_X86_64_COPY		5
  2984  #define R_X86_64_GLOB_DAT	6
  2985  #define R_X86_64_JUMP_SLOT	7
  2986  #define R_X86_64_RELATIVE	8
  2987  #define R_X86_64_GOTPCREL	9
  2988  
  2989  #define R_X86_64_32		10
  2990  #define R_X86_64_32S		11
  2991  #define R_X86_64_16		12
  2992  #define R_X86_64_PC16		13
  2993  #define R_X86_64_8		14
  2994  #define R_X86_64_PC8		15
  2995  #define R_X86_64_DTPMOD64	16
  2996  #define R_X86_64_DTPOFF64	17
  2997  #define R_X86_64_TPOFF64	18
  2998  #define R_X86_64_TLSGD		19
  2999  
  3000  #define R_X86_64_TLSLD		20
  3001  
  3002  #define R_X86_64_DTPOFF32	21
  3003  #define R_X86_64_GOTTPOFF	22
  3004  
  3005  #define R_X86_64_TPOFF32	23
  3006  #define R_X86_64_PC64		24
  3007  #define R_X86_64_GOTOFF64	25
  3008  #define R_X86_64_GOTPC32	26
  3009  #define R_X86_64_GOT64		27
  3010  #define R_X86_64_GOTPCREL64	28
  3011  #define R_X86_64_GOTPC64	29
  3012  #define R_X86_64_GOTPLT64	30
  3013  #define R_X86_64_PLTOFF64	31
  3014  #define R_X86_64_SIZE32		32
  3015  #define R_X86_64_SIZE64		33
  3016  
  3017  #define R_X86_64_GOTPC32_TLSDESC 34
  3018  #define R_X86_64_TLSDESC_CALL   35
  3019  
  3020  #define R_X86_64_TLSDESC        36
  3021  #define R_X86_64_IRELATIVE	37
  3022  #define R_X86_64_RELATIVE64	38
  3023  #define R_X86_64_GOTPCRELX	41
  3024  #define R_X86_64_REX_GOTPCRELX	42
  3025  #define R_X86_64_NUM		43
  3026  
  3027  
  3028  
  3029  #define R_MN10300_NONE		0
  3030  #define R_MN10300_32		1
  3031  #define R_MN10300_16		2
  3032  #define R_MN10300_8		3
  3033  #define R_MN10300_PCREL32	4
  3034  #define R_MN10300_PCREL16	5
  3035  #define R_MN10300_PCREL8	6
  3036  #define R_MN10300_GNU_VTINHERIT	7
  3037  #define R_MN10300_GNU_VTENTRY	8
  3038  #define R_MN10300_24		9
  3039  #define R_MN10300_GOTPC32	10
  3040  #define R_MN10300_GOTPC16	11
  3041  #define R_MN10300_GOTOFF32	12
  3042  #define R_MN10300_GOTOFF24	13
  3043  #define R_MN10300_GOTOFF16	14
  3044  #define R_MN10300_PLT32		15
  3045  #define R_MN10300_PLT16		16
  3046  #define R_MN10300_GOT32		17
  3047  #define R_MN10300_GOT24		18
  3048  #define R_MN10300_GOT16		19
  3049  #define R_MN10300_COPY		20
  3050  #define R_MN10300_GLOB_DAT	21
  3051  #define R_MN10300_JMP_SLOT	22
  3052  #define R_MN10300_RELATIVE	23
  3053  
  3054  #define R_MN10300_NUM		24
  3055  
  3056  
  3057  
  3058  #define R_M32R_NONE		0
  3059  #define R_M32R_16		1
  3060  #define R_M32R_32		2
  3061  #define R_M32R_24		3
  3062  #define R_M32R_10_PCREL		4
  3063  #define R_M32R_18_PCREL		5
  3064  #define R_M32R_26_PCREL		6
  3065  #define R_M32R_HI16_ULO		7
  3066  #define R_M32R_HI16_SLO		8
  3067  #define R_M32R_LO16		9
  3068  #define R_M32R_SDA16		10
  3069  #define R_M32R_GNU_VTINHERIT	11
  3070  #define R_M32R_GNU_VTENTRY	12
  3071  
  3072  #define R_M32R_16_RELA		33
  3073  #define R_M32R_32_RELA		34
  3074  #define R_M32R_24_RELA		35
  3075  #define R_M32R_10_PCREL_RELA	36
  3076  #define R_M32R_18_PCREL_RELA	37
  3077  #define R_M32R_26_PCREL_RELA	38
  3078  #define R_M32R_HI16_ULO_RELA	39
  3079  #define R_M32R_HI16_SLO_RELA	40
  3080  #define R_M32R_LO16_RELA	41
  3081  #define R_M32R_SDA16_RELA	42
  3082  #define R_M32R_RELA_GNU_VTINHERIT	43
  3083  #define R_M32R_RELA_GNU_VTENTRY	44
  3084  #define R_M32R_REL32		45
  3085  
  3086  #define R_M32R_GOT24		48
  3087  #define R_M32R_26_PLTREL	49
  3088  #define R_M32R_COPY		50
  3089  #define R_M32R_GLOB_DAT		51
  3090  #define R_M32R_JMP_SLOT		52
  3091  #define R_M32R_RELATIVE		53
  3092  #define R_M32R_GOTOFF		54
  3093  #define R_M32R_GOTPC24		55
  3094  #define R_M32R_GOT16_HI_ULO	56
  3095  
  3096  #define R_M32R_GOT16_HI_SLO	57
  3097  
  3098  #define R_M32R_GOT16_LO		58
  3099  #define R_M32R_GOTPC_HI_ULO	59
  3100  
  3101  #define R_M32R_GOTPC_HI_SLO	60
  3102  
  3103  #define R_M32R_GOTPC_LO		61
  3104  
  3105  #define R_M32R_GOTOFF_HI_ULO	62
  3106  
  3107  #define R_M32R_GOTOFF_HI_SLO	63
  3108  
  3109  #define R_M32R_GOTOFF_LO	64
  3110  #define R_M32R_NUM		256
  3111  
  3112  #define R_MICROBLAZE_NONE 0
  3113  #define R_MICROBLAZE_32 1
  3114  #define R_MICROBLAZE_32_PCREL 2
  3115  #define R_MICROBLAZE_64_PCREL 3
  3116  #define R_MICROBLAZE_32_PCREL_LO 4
  3117  #define R_MICROBLAZE_64 5
  3118  #define R_MICROBLAZE_32_LO 6
  3119  #define R_MICROBLAZE_SRO32 7
  3120  #define R_MICROBLAZE_SRW32 8
  3121  #define R_MICROBLAZE_64_NONE 9
  3122  #define R_MICROBLAZE_32_SYM_OP_SYM 10
  3123  #define R_MICROBLAZE_GNU_VTINHERIT 11
  3124  #define R_MICROBLAZE_GNU_VTENTRY 12
  3125  #define R_MICROBLAZE_GOTPC_64 13
  3126  #define R_MICROBLAZE_GOT_64 14
  3127  #define R_MICROBLAZE_PLT_64 15
  3128  #define R_MICROBLAZE_REL 16
  3129  #define R_MICROBLAZE_JUMP_SLOT 17
  3130  #define R_MICROBLAZE_GLOB_DAT 18
  3131  #define R_MICROBLAZE_GOTOFF_64 19
  3132  #define R_MICROBLAZE_GOTOFF_32 20
  3133  #define R_MICROBLAZE_COPY 21
  3134  #define R_MICROBLAZE_TLS 22
  3135  #define R_MICROBLAZE_TLSGD 23
  3136  #define R_MICROBLAZE_TLSLD 24
  3137  #define R_MICROBLAZE_TLSDTPMOD32 25
  3138  #define R_MICROBLAZE_TLSDTPREL32 26
  3139  #define R_MICROBLAZE_TLSDTPREL64 27
  3140  #define R_MICROBLAZE_TLSGOTTPREL32 28
  3141  #define R_MICROBLAZE_TLSTPREL32	 29
  3142  
  3143  #define DT_NIOS2_GP             0x70000002
  3144  
  3145  #define R_NIOS2_NONE		0
  3146  #define R_NIOS2_S16		1
  3147  #define R_NIOS2_U16		2
  3148  #define R_NIOS2_PCREL16		3
  3149  #define R_NIOS2_CALL26		4
  3150  #define R_NIOS2_IMM5		5
  3151  #define R_NIOS2_CACHE_OPX	6
  3152  #define R_NIOS2_IMM6		7
  3153  #define R_NIOS2_IMM8		8
  3154  #define R_NIOS2_HI16		9
  3155  #define R_NIOS2_LO16		10
  3156  #define R_NIOS2_HIADJ16		11
  3157  #define R_NIOS2_BFD_RELOC_32	12
  3158  #define R_NIOS2_BFD_RELOC_16	13
  3159  #define R_NIOS2_BFD_RELOC_8	14
  3160  #define R_NIOS2_GPREL		15
  3161  #define R_NIOS2_GNU_VTINHERIT	16
  3162  #define R_NIOS2_GNU_VTENTRY	17
  3163  #define R_NIOS2_UJMP		18
  3164  #define R_NIOS2_CJMP		19
  3165  #define R_NIOS2_CALLR		20
  3166  #define R_NIOS2_ALIGN		21
  3167  #define R_NIOS2_GOT16		22
  3168  #define R_NIOS2_CALL16		23
  3169  #define R_NIOS2_GOTOFF_LO	24
  3170  #define R_NIOS2_GOTOFF_HA	25
  3171  #define R_NIOS2_PCREL_LO	26
  3172  #define R_NIOS2_PCREL_HA	27
  3173  #define R_NIOS2_TLS_GD16	28
  3174  #define R_NIOS2_TLS_LDM16	29
  3175  #define R_NIOS2_TLS_LDO16	30
  3176  #define R_NIOS2_TLS_IE16	31
  3177  #define R_NIOS2_TLS_LE16	32
  3178  #define R_NIOS2_TLS_DTPMOD	33
  3179  #define R_NIOS2_TLS_DTPREL	34
  3180  #define R_NIOS2_TLS_TPREL	35
  3181  #define R_NIOS2_COPY		36
  3182  #define R_NIOS2_GLOB_DAT	37
  3183  #define R_NIOS2_JUMP_SLOT	38
  3184  #define R_NIOS2_RELATIVE	39
  3185  #define R_NIOS2_GOTOFF		40
  3186  #define R_NIOS2_CALL26_NOAT	41
  3187  #define R_NIOS2_GOT_LO		42
  3188  #define R_NIOS2_GOT_HA		43
  3189  #define R_NIOS2_CALL_LO		44
  3190  #define R_NIOS2_CALL_HA		45
  3191  
  3192  #define R_OR1K_NONE		0
  3193  #define R_OR1K_32		1
  3194  #define R_OR1K_16		2
  3195  #define R_OR1K_8		3
  3196  #define R_OR1K_LO_16_IN_INSN	4
  3197  #define R_OR1K_HI_16_IN_INSN	5
  3198  #define R_OR1K_INSN_REL_26	6
  3199  #define R_OR1K_GNU_VTENTRY	7
  3200  #define R_OR1K_GNU_VTINHERIT	8
  3201  #define R_OR1K_32_PCREL		9
  3202  #define R_OR1K_16_PCREL		10
  3203  #define R_OR1K_8_PCREL		11
  3204  #define R_OR1K_GOTPC_HI16	12
  3205  #define R_OR1K_GOTPC_LO16	13
  3206  #define R_OR1K_GOT16		14
  3207  #define R_OR1K_PLT26		15
  3208  #define R_OR1K_GOTOFF_HI16	16
  3209  #define R_OR1K_GOTOFF_LO16	17
  3210  #define R_OR1K_COPY		18
  3211  #define R_OR1K_GLOB_DAT		19
  3212  #define R_OR1K_JMP_SLOT		20
  3213  #define R_OR1K_RELATIVE		21
  3214  #define R_OR1K_TLS_GD_HI16	22
  3215  #define R_OR1K_TLS_GD_LO16	23
  3216  #define R_OR1K_TLS_LDM_HI16	24
  3217  #define R_OR1K_TLS_LDM_LO16	25
  3218  #define R_OR1K_TLS_LDO_HI16	26
  3219  #define R_OR1K_TLS_LDO_LO16	27
  3220  #define R_OR1K_TLS_IE_HI16	28
  3221  #define R_OR1K_TLS_IE_LO16	29
  3222  #define R_OR1K_TLS_LE_HI16	30
  3223  #define R_OR1K_TLS_LE_LO16	31
  3224  #define R_OR1K_TLS_TPOFF	32
  3225  #define R_OR1K_TLS_DTPOFF	33
  3226  #define R_OR1K_TLS_DTPMOD	34
  3227  
  3228  #define R_BPF_NONE		0
  3229  #define R_BPF_MAP_FD		1
  3230  
  3231  #define R_RISCV_NONE            0
  3232  #define R_RISCV_32              1
  3233  #define R_RISCV_64              2
  3234  #define R_RISCV_RELATIVE        3
  3235  #define R_RISCV_COPY            4
  3236  #define R_RISCV_JUMP_SLOT       5
  3237  #define R_RISCV_TLS_DTPMOD32    6
  3238  #define R_RISCV_TLS_DTPMOD64    7
  3239  #define R_RISCV_TLS_DTPREL32    8
  3240  #define R_RISCV_TLS_DTPREL64    9
  3241  #define R_RISCV_TLS_TPREL32     10
  3242  #define R_RISCV_TLS_TPREL64     11
  3243  
  3244  #define R_RISCV_BRANCH          16
  3245  #define R_RISCV_JAL             17
  3246  #define R_RISCV_CALL            18
  3247  #define R_RISCV_CALL_PLT        19
  3248  #define R_RISCV_GOT_HI20        20
  3249  #define R_RISCV_TLS_GOT_HI20    21
  3250  #define R_RISCV_TLS_GD_HI20     22
  3251  #define R_RISCV_PCREL_HI20      23
  3252  #define R_RISCV_PCREL_LO12_I    24
  3253  #define R_RISCV_PCREL_LO12_S    25
  3254  #define R_RISCV_HI20            26
  3255  #define R_RISCV_LO12_I          27
  3256  #define R_RISCV_LO12_S          28
  3257  #define R_RISCV_TPREL_HI20      29
  3258  #define R_RISCV_TPREL_LO12_I    30
  3259  #define R_RISCV_TPREL_LO12_S    31
  3260  #define R_RISCV_TPREL_ADD       32
  3261  #define R_RISCV_ADD8            33
  3262  #define R_RISCV_ADD16           34
  3263  #define R_RISCV_ADD32           35
  3264  #define R_RISCV_ADD64           36
  3265  #define R_RISCV_SUB8            37
  3266  #define R_RISCV_SUB16           38
  3267  #define R_RISCV_SUB32           39
  3268  #define R_RISCV_SUB64           40
  3269  #define R_RISCV_GNU_VTINHERIT   41
  3270  #define R_RISCV_GNU_VTENTRY     42
  3271  #define R_RISCV_ALIGN           43
  3272  #define R_RISCV_RVC_BRANCH      44
  3273  #define R_RISCV_RVC_JUMP        45
  3274  #define R_RISCV_RVC_LUI         46
  3275  #define R_RISCV_GPREL_I         47
  3276  #define R_RISCV_GPREL_S         48
  3277  #define R_RISCV_TPREL_I         49
  3278  #define R_RISCV_TPREL_S         50
  3279  #define R_RISCV_RELAX           51
  3280  #define R_RISCV_SUB6            52
  3281  #define R_RISCV_SET6            53
  3282  #define R_RISCV_SET8            54
  3283  #define R_RISCV_SET16           55
  3284  #define R_RISCV_SET32           56
  3285  #define R_RISCV_32_PCREL        57
  3286  
  3287  #ifdef __cplusplus
  3288  }
  3289  #endif
  3290  
  3291  
  3292  #endif