elfconstants.m4 revision 1.1
1# Copyright (c) 2010,2021 Joseph Koshy 2# All rights reserved. 3 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions 6# are met: 7# 1. Redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer. 9# 2. Redistributions in binary form must reproduce the above copyright 10# notice, this list of conditions and the following disclaimer in the 11# documentation and/or other materials provided with the distribution. 12 13# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23# SUCH DAMAGE. 24 25# These definitions are based on: 26# - The public specification of the ELF format as defined in the 27# October 2009 draft of System V ABI. 28# See: http://www.sco.com/developers/gabi/latest/ch4.intro.html 29# - The May 1998 (version 1.5) draft of "The ELF-64 object format". 30# - Processor-specific ELF ABI definitions for sparc, i386, amd64, mips, 31# ia64, powerpc, and RISC-V processors. 32# - The "Linkers and Libraries Guide", from Sun Microsystems. 33 34define(`VCSID_ELFCONSTANTS_M4', 35 `Id: elfconstants.m4 3939 2021-04-04 20:15:13Z jkoshy') 36 37# 38# Types of capabilities. 39# 40define(`DEFINE_CAPABILITIES',` 41DEFINE_CAPABILITY(`CA_SUNW_NULL', 0, `ignored') 42DEFINE_CAPABILITY(`CA_SUNW_HW_1', 1, `hardware capability') 43DEFINE_CAPABILITY(`CA_SUNW_SW_1', 2, `software capability')') 44 45# 46# Flags used with dynamic linking entries. 47# 48define(`DEFINE_DYN_FLAGS',` 49DEFINE_DYN_FLAG(`DF_ORIGIN', 0x1, 50 `object being loaded may refer to `$ORIGIN'') 51DEFINE_DYN_FLAG(`DF_SYMBOLIC', 0x2, 52 `search library for references before executable') 53DEFINE_DYN_FLAG(`DF_TEXTREL', 0x4, 54 `relocation entries may modify text segment') 55DEFINE_DYN_FLAG(`DF_BIND_NOW', 0x8, 56 `process relocation entries at load time') 57DEFINE_DYN_FLAG(`DF_STATIC_TLS', 0x10, 58 `uses static thread-local storage') 59DEFINE_DYN_FLAG(`DF_1_BIND_NOW', 0x1, 60 `process relocation entries at load time') 61DEFINE_DYN_FLAG(`DF_1_GLOBAL', 0x2, 62 `unused') 63DEFINE_DYN_FLAG(`DF_1_GROUP', 0x4, 64 `object is a member of a group') 65DEFINE_DYN_FLAG(`DF_1_NODELETE', 0x8, 66 `object cannot be deleted from a process') 67DEFINE_DYN_FLAG(`DF_1_LOADFLTR', 0x10, 68 `immediate load filtees') 69DEFINE_DYN_FLAG(`DF_1_INITFIRST', 0x20, 70 `initialize object first') 71DEFINE_DYN_FLAG(`DF_1_NOOPEN', 0x40, 72 `disallow dlopen()') 73DEFINE_DYN_FLAG(`DF_1_ORIGIN', 0x80, 74 `object being loaded may refer to $ORIGIN') 75DEFINE_DYN_FLAG(`DF_1_DIRECT', 0x100, 76 `direct bindings enabled') 77DEFINE_DYN_FLAG(`DF_1_INTERPOSE', 0x400, 78 `object is interposer') 79DEFINE_DYN_FLAG(`DF_1_NODEFLIB', 0x800, 80 `ignore default library search path') 81DEFINE_DYN_FLAG(`DF_1_NODUMP', 0x1000, 82 `disallow dldump()') 83DEFINE_DYN_FLAG(`DF_1_CONFALT', 0x2000, 84 `object is a configuration alternative') 85DEFINE_DYN_FLAG(`DF_1_ENDFILTEE', 0x4000, 86 `filtee terminates filter search') 87DEFINE_DYN_FLAG(`DF_1_DISPRELDNE', 0x8000, 88 `displacement relocation done') 89DEFINE_DYN_FLAG(`DF_1_DISPRELPND', 0x10000, 90 `displacement relocation pending')') 91 92# 93# Dynamic linking entry types. 94# 95define(`DEFINE_DYN_TYPES',` 96DEFINE_DYN_TYPE(`DT_NULL', 0, 97 `end of array') 98DEFINE_DYN_TYPE(`DT_NEEDED', 1, 99 `names a needed library') 100DEFINE_DYN_TYPE(`DT_PLTRELSZ', 2, 101 `size in bytes of associated relocation entries') 102DEFINE_DYN_TYPE(`DT_PLTGOT', 3, 103 `address associated with the procedure linkage table') 104DEFINE_DYN_TYPE(`DT_HASH', 4, 105 `address of the symbol hash table') 106DEFINE_DYN_TYPE(`DT_STRTAB', 5, 107 `address of the string table') 108DEFINE_DYN_TYPE(`DT_SYMTAB', 6, 109 `address of the symbol table') 110DEFINE_DYN_TYPE(`DT_RELA', 7, 111 `address of the relocation table') 112DEFINE_DYN_TYPE(`DT_RELASZ', 8, 113 `size of the DT_RELA table') 114DEFINE_DYN_TYPE(`DT_RELAENT', 9, 115 `size of each DT_RELA entry') 116DEFINE_DYN_TYPE(`DT_STRSZ', 10, 117 `size of the string table') 118DEFINE_DYN_TYPE(`DT_SYMENT', 11, 119 `size of a symbol table entry') 120DEFINE_DYN_TYPE(`DT_INIT', 12, 121 `address of the initialization function') 122DEFINE_DYN_TYPE(`DT_FINI', 13, 123 `address of the finalization function') 124DEFINE_DYN_TYPE(`DT_SONAME', 14, 125 `names the shared object') 126DEFINE_DYN_TYPE(`DT_RPATH', 15, 127 `runtime library search path') 128DEFINE_DYN_TYPE(`DT_SYMBOLIC', 16, 129 `alter symbol resolution algorithm') 130DEFINE_DYN_TYPE(`DT_REL', 17, 131 `address of the DT_REL table') 132DEFINE_DYN_TYPE(`DT_RELSZ', 18, 133 `size of the DT_REL table') 134DEFINE_DYN_TYPE(`DT_RELENT', 19, 135 `size of each DT_REL entry') 136DEFINE_DYN_TYPE(`DT_PLTREL', 20, 137 `type of relocation entry in the procedure linkage table') 138DEFINE_DYN_TYPE(`DT_DEBUG', 21, 139 `used for debugging') 140DEFINE_DYN_TYPE(`DT_TEXTREL', 22, 141 `text segment may be written to during relocation') 142DEFINE_DYN_TYPE(`DT_JMPREL', 23, 143 `address of relocation entries associated with the procedure linkage table') 144DEFINE_DYN_TYPE(`DT_BIND_NOW', 24, 145 `bind symbols at loading time') 146DEFINE_DYN_TYPE(`DT_INIT_ARRAY', 25, 147 `pointers to initialization functions') 148DEFINE_DYN_TYPE(`DT_FINI_ARRAY', 26, 149 `pointers to termination functions') 150DEFINE_DYN_TYPE(`DT_INIT_ARRAYSZ', 27, 151 `size of the DT_INIT_ARRAY') 152DEFINE_DYN_TYPE(`DT_FINI_ARRAYSZ', 28, 153 `size of the DT_FINI_ARRAY') 154DEFINE_DYN_TYPE(`DT_RUNPATH', 29, 155 `index of library search path string') 156DEFINE_DYN_TYPE(`DT_FLAGS', 30, 157 `flags specific to the object being loaded') 158DEFINE_DYN_TYPE(`DT_ENCODING', 32, 159 `standard semantics') 160DEFINE_DYN_TYPE(`DT_PREINIT_ARRAY', 32, 161 `pointers to pre-initialization functions') 162DEFINE_DYN_TYPE(`DT_PREINIT_ARRAYSZ', 33, 163 `size of pre-initialization array') 164DEFINE_DYN_TYPE(`DT_MAXPOSTAGS', 34, 165 `the number of positive tags') 166DEFINE_DYN_TYPE(`DT_LOOS', 0x6000000DUL, 167 `start of OS-specific types') 168DEFINE_DYN_TYPE(`DT_SUNW_AUXILIARY', 0x6000000DUL, 169 `offset of string naming auxiliary filtees') 170DEFINE_DYN_TYPE(`DT_SUNW_RTLDINF', 0x6000000EUL, 171 `rtld internal use') 172DEFINE_DYN_TYPE(`DT_SUNW_FILTER', 0x6000000FUL, 173 `offset of string naming standard filtees') 174DEFINE_DYN_TYPE(`DT_SUNW_CAP', 0x60000010UL, 175 `address of hardware capabilities section') 176DEFINE_DYN_TYPE(`DT_SUNW_ASLR', 0x60000023UL, 177 `Address Space Layout Randomization flag') 178DEFINE_DYN_TYPE(`DT_HIOS', 0x6FFFF000UL, 179 `end of OS-specific types') 180DEFINE_DYN_TYPE(`DT_VALRNGLO', 0x6FFFFD00UL, 181 `start of range using the d_val field') 182DEFINE_DYN_TYPE(`DT_GNU_PRELINKED', 0x6FFFFDF5UL, 183 `prelinking timestamp') 184DEFINE_DYN_TYPE(`DT_GNU_CONFLICTSZ', 0x6FFFFDF6UL, 185 `size of conflict section') 186DEFINE_DYN_TYPE(`DT_GNU_LIBLISTSZ', 0x6FFFFDF7UL, 187 `size of library list') 188DEFINE_DYN_TYPE(`DT_CHECKSUM', 0x6FFFFDF8UL, 189 `checksum for the object') 190DEFINE_DYN_TYPE(`DT_PLTPADSZ', 0x6FFFFDF9UL, 191 `size of PLT padding') 192DEFINE_DYN_TYPE(`DT_MOVEENT', 0x6FFFFDFAUL, 193 `size of DT_MOVETAB entries') 194DEFINE_DYN_TYPE(`DT_MOVESZ', 0x6FFFFDFBUL, 195 `total size of the MOVETAB table') 196DEFINE_DYN_TYPE(`DT_FEATURE', 0x6FFFFDFCUL, 197 `feature values') 198DEFINE_DYN_TYPE(`DT_POSFLAG_1', 0x6FFFFDFDUL, 199 `dynamic position flags') 200DEFINE_DYN_TYPE(`DT_SYMINSZ', 0x6FFFFDFEUL, 201 `size of the DT_SYMINFO table') 202DEFINE_DYN_TYPE(`DT_SYMINENT', 0x6FFFFDFFUL, 203 `size of a DT_SYMINFO entry') 204DEFINE_DYN_TYPE(`DT_VALRNGHI', 0x6FFFFDFFUL, 205 `end of range using the d_val field') 206DEFINE_DYN_TYPE(`DT_ADDRRNGLO', 0x6FFFFE00UL, 207 `start of range using the d_ptr field') 208DEFINE_DYN_TYPE(`DT_GNU_HASH', 0x6FFFFEF5UL, 209 `GNU style hash tables') 210DEFINE_DYN_TYPE(`DT_TLSDESC_PLT', 0x6FFFFEF6UL, 211 `location of PLT entry for TLS descriptor resolver calls') 212DEFINE_DYN_TYPE(`DT_TLSDESC_GOT', 0x6FFFFEF7UL, 213 `location of GOT entry used by TLS descriptor resolver PLT entry') 214DEFINE_DYN_TYPE(`DT_GNU_CONFLICT', 0x6FFFFEF8UL, 215 `address of conflict section') 216DEFINE_DYN_TYPE(`DT_GNU_LIBLIST', 0x6FFFFEF9UL, 217 `address of conflict section') 218DEFINE_DYN_TYPE(`DT_CONFIG', 0x6FFFFEFAUL, 219 `configuration file') 220DEFINE_DYN_TYPE(`DT_DEPAUDIT', 0x6FFFFEFBUL, 221 `string defining audit libraries') 222DEFINE_DYN_TYPE(`DT_AUDIT', 0x6FFFFEFCUL, 223 `string defining audit libraries') 224DEFINE_DYN_TYPE(`DT_PLTPAD', 0x6FFFFEFDUL, 225 `PLT padding') 226DEFINE_DYN_TYPE(`DT_MOVETAB', 0x6FFFFEFEUL, 227 `address of a move table') 228DEFINE_DYN_TYPE(`DT_SYMINFO', 0x6FFFFEFFUL, 229 `address of the symbol information table') 230DEFINE_DYN_TYPE(`DT_ADDRRNGHI', 0x6FFFFEFFUL, 231 `end of range using the d_ptr field') 232DEFINE_DYN_TYPE(`DT_VERSYM', 0x6FFFFFF0UL, 233 `address of the version section') 234DEFINE_DYN_TYPE(`DT_RELACOUNT', 0x6FFFFFF9UL, 235 `count of RELA relocations') 236DEFINE_DYN_TYPE(`DT_RELCOUNT', 0x6FFFFFFAUL, 237 `count of REL relocations') 238DEFINE_DYN_TYPE(`DT_FLAGS_1', 0x6FFFFFFBUL, 239 `flag values') 240DEFINE_DYN_TYPE(`DT_VERDEF', 0x6FFFFFFCUL, 241 `address of the version definition segment') 242DEFINE_DYN_TYPE(`DT_VERDEFNUM', 0x6FFFFFFDUL, 243 `the number of version definition entries') 244DEFINE_DYN_TYPE(`DT_VERNEED', 0x6FFFFFFEUL, 245 `address of section with needed versions') 246DEFINE_DYN_TYPE(`DT_VERNEEDNUM', 0x6FFFFFFFUL, 247 `the number of version needed entries') 248DEFINE_DYN_TYPE(`DT_LOPROC', 0x70000000UL, 249 `start of processor-specific types') 250DEFINE_DYN_TYPE(`DT_ARM_SYMTABSZ', 0x70000001UL, 251 `number of entries in the dynamic symbol table') 252DEFINE_DYN_TYPE(`DT_SPARC_REGISTER', 0x70000001UL, 253 `index of an STT_SPARC_REGISTER symbol') 254DEFINE_DYN_TYPE(`DT_ARM_PREEMPTMAP', 0x70000002UL, 255 `address of the preemption map') 256DEFINE_DYN_TYPE(`DT_MIPS_RLD_VERSION', 0x70000001UL, 257 `version ID for runtime linker interface') 258DEFINE_DYN_TYPE(`DT_MIPS_TIME_STAMP', 0x70000002UL, 259 `timestamp') 260DEFINE_DYN_TYPE(`DT_MIPS_ICHECKSUM', 0x70000003UL, 261 `checksum of all external strings and common sizes') 262DEFINE_DYN_TYPE(`DT_MIPS_IVERSION', 0x70000004UL, 263 `string table index of a version string') 264DEFINE_DYN_TYPE(`DT_MIPS_FLAGS', 0x70000005UL, 265 `MIPS-specific flags') 266DEFINE_DYN_TYPE(`DT_MIPS_BASE_ADDRESS', 0x70000006UL, 267 `base address for the executable/DSO') 268DEFINE_DYN_TYPE(`DT_MIPS_CONFLICT', 0x70000008UL, 269 `address of .conflict section') 270DEFINE_DYN_TYPE(`DT_MIPS_LIBLIST', 0x70000009UL, 271 `address of .liblist section') 272DEFINE_DYN_TYPE(`DT_MIPS_LOCAL_GOTNO', 0x7000000AUL, 273 `number of local GOT entries') 274DEFINE_DYN_TYPE(`DT_MIPS_CONFLICTNO', 0x7000000BUL, 275 `number of entries in the .conflict section') 276DEFINE_DYN_TYPE(`DT_MIPS_LIBLISTNO', 0x70000010UL, 277 `number of entries in the .liblist section') 278DEFINE_DYN_TYPE(`DT_MIPS_SYMTABNO', 0x70000011UL, 279 `number of entries in the .dynsym section') 280DEFINE_DYN_TYPE(`DT_MIPS_UNREFEXTNO', 0x70000012UL, 281 `index of first external dynamic symbol not referenced locally') 282DEFINE_DYN_TYPE(`DT_MIPS_GOTSYM', 0x70000013UL, 283 `index of first dynamic symbol corresponds to a GOT entry') 284DEFINE_DYN_TYPE(`DT_MIPS_HIPAGENO', 0x70000014UL, 285 `number of page table entries in GOT') 286DEFINE_DYN_TYPE(`DT_MIPS_RLD_MAP', 0x70000016UL, 287 `address of runtime linker map') 288DEFINE_DYN_TYPE(`DT_MIPS_DELTA_CLASS', 0x70000017UL, 289 `Delta C++ class definition') 290DEFINE_DYN_TYPE(`DT_MIPS_DELTA_CLASS_NO', 0x70000018UL, 291 `number of entries in DT_MIPS_DELTA_CLASS') 292DEFINE_DYN_TYPE(`DT_MIPS_DELTA_INSTANCE', 0x70000019UL, 293 `Delta C++ class instances') 294DEFINE_DYN_TYPE(`DT_MIPS_DELTA_INSTANCE_NO', 0x7000001AUL, 295 `number of entries in DT_MIPS_DELTA_INSTANCE') 296DEFINE_DYN_TYPE(`DT_MIPS_DELTA_RELOC', 0x7000001BUL, 297 `Delta relocations') 298DEFINE_DYN_TYPE(`DT_MIPS_DELTA_RELOC_NO', 0x7000001CUL, 299 `number of entries in DT_MIPS_DELTA_RELOC') 300DEFINE_DYN_TYPE(`DT_MIPS_DELTA_SYM', 0x7000001DUL, 301 `Delta symbols referred by Delta relocations') 302DEFINE_DYN_TYPE(`DT_MIPS_DELTA_SYM_NO', 0x7000001EUL, 303 `number of entries in DT_MIPS_DELTA_SYM') 304DEFINE_DYN_TYPE(`DT_MIPS_DELTA_CLASSSYM', 0x70000020UL, 305 `Delta symbols for class declarations') 306DEFINE_DYN_TYPE(`DT_MIPS_DELTA_CLASSSYM_NO', 0x70000021UL, 307 `number of entries in DT_MIPS_DELTA_CLASSSYM') 308DEFINE_DYN_TYPE(`DT_MIPS_CXX_FLAGS', 0x70000022UL, 309 `C++ flavor flags') 310DEFINE_DYN_TYPE(`DT_MIPS_PIXIE_INIT', 0x70000023UL, 311 `address of an initialization routine created by pixie') 312DEFINE_DYN_TYPE(`DT_MIPS_SYMBOL_LIB', 0x70000024UL, 313 `address of .MIPS.symlib section') 314DEFINE_DYN_TYPE(`DT_MIPS_LOCALPAGE_GOTIDX', 0x70000025UL, 315 `GOT index of first page table entry for a segment') 316DEFINE_DYN_TYPE(`DT_MIPS_LOCAL_GOTIDX', 0x70000026UL, 317 `GOT index of first page table entry for a local symbol') 318DEFINE_DYN_TYPE(`DT_MIPS_HIDDEN_GOTIDX', 0x70000027UL, 319 `GOT index of first page table entry for a hidden symbol') 320DEFINE_DYN_TYPE(`DT_MIPS_PROTECTED_GOTIDX', 0x70000028UL, 321 `GOT index of first page table entry for a protected symbol') 322DEFINE_DYN_TYPE(`DT_MIPS_OPTIONS', 0x70000029UL, 323 `address of .MIPS.options section') 324DEFINE_DYN_TYPE(`DT_MIPS_INTERFACE', 0x7000002AUL, 325 `address of .MIPS.interface section') 326DEFINE_DYN_TYPE(`DT_MIPS_DYNSTR_ALIGN', 0x7000002BUL, 327 `???') 328DEFINE_DYN_TYPE(`DT_MIPS_INTERFACE_SIZE', 0x7000002CUL, 329 `size of .MIPS.interface section') 330DEFINE_DYN_TYPE(`DT_MIPS_RLD_TEXT_RESOLVE_ADDR', 0x7000002DUL, 331 `address of _rld_text_resolve in GOT') 332DEFINE_DYN_TYPE(`DT_MIPS_PERF_SUFFIX', 0x7000002EUL, 333 `default suffix of DSO to be appended by dlopen') 334DEFINE_DYN_TYPE(`DT_MIPS_COMPACT_SIZE', 0x7000002FUL, 335 `size of a ucode compact relocation record (o32)') 336DEFINE_DYN_TYPE(`DT_MIPS_GP_VALUE', 0x70000030UL, 337 `GP value of a specified GP relative range') 338DEFINE_DYN_TYPE(`DT_MIPS_AUX_DYNAMIC', 0x70000031UL, 339 `address of an auxiliary dynamic table') 340DEFINE_DYN_TYPE(`DT_MIPS_PLTGOT', 0x70000032UL, 341 `address of the PLTGOT') 342DEFINE_DYN_TYPE(`DT_MIPS_RLD_OBJ_UPDATE', 0x70000033UL, 343 `object list update callback') 344DEFINE_DYN_TYPE(`DT_MIPS_RWPLT', 0x70000034UL, 345 `address of a writable PLT') 346DEFINE_DYN_TYPE(`DT_PPC_GOT', 0x70000000UL, 347 `value of _GLOBAL_OFFSET_TABLE_') 348DEFINE_DYN_TYPE(`DT_PPC_TLSOPT', 0x70000001UL, 349 `TLS descriptor should be optimized') 350DEFINE_DYN_TYPE(`DT_PPC64_GLINK', 0x70000000UL, 351 `address of .glink section') 352DEFINE_DYN_TYPE(`DT_PPC64_OPD', 0x70000001UL, 353 `address of .opd section') 354DEFINE_DYN_TYPE(`DT_PPC64_OPDSZ', 0x70000002UL, 355 `size of .opd section') 356DEFINE_DYN_TYPE(`DT_PPC64_TLSOPT', 0x70000003UL, 357 `TLS descriptor should be optimized') 358DEFINE_DYN_TYPE(`DT_AUXILIARY', 0x7FFFFFFDUL, 359 `offset of string naming auxiliary filtees') 360DEFINE_DYN_TYPE(`DT_USED', 0x7FFFFFFEUL, 361 `ignored') 362DEFINE_DYN_TYPE(`DT_FILTER', 0x7FFFFFFFUL, 363 `index of string naming filtees') 364DEFINE_DYN_TYPE(`DT_HIPROC', 0x7FFFFFFFUL, 365 `end of processor-specific types') 366') 367 368define(`DEFINE_DYN_TYPE_ALIASES',` 369DEFINE_DYN_TYPE_ALIAS(`DT_DEPRECATED_SPARC_REGISTER', `DT_SPARC_REGISTER') 370') 371 372# 373# Flags used in the executable header (field: e_flags). 374# 375define(`DEFINE_EHDR_FLAGS',` 376DEFINE_EHDR_FLAG(EF_ARM_RELEXEC, 0x00000001UL, 377 `dynamic segment describes only how to relocate segments') 378DEFINE_EHDR_FLAG(EF_ARM_HASENTRY, 0x00000002UL, 379 `e_entry contains a program entry point') 380DEFINE_EHDR_FLAG(EF_ARM_SYMSARESORTED, 0x00000004UL, 381 `subsection of symbol table is sorted by symbol value') 382DEFINE_EHDR_FLAG(EF_ARM_DYNSYMSUSESEGIDX, 0x00000008UL, 383 `dynamic symbol st_shndx = containing segment index + 1') 384DEFINE_EHDR_FLAG(EF_ARM_MAPSYMSFIRST, 0x00000010UL, 385 `mapping symbols precede other local symbols in symtab') 386DEFINE_EHDR_FLAG(EF_ARM_BE8, 0x00800000UL, 387 `file contains BE-8 code') 388DEFINE_EHDR_FLAG(EF_ARM_LE8, 0x00400000UL, 389 `file contains LE-8 code') 390DEFINE_EHDR_FLAG(EF_ARM_EABIMASK, 0xFF000000UL, 391 `mask for ARM EABI version number (0 denotes GNU or unknown)') 392DEFINE_EHDR_FLAG(EF_ARM_EABI_UNKNOWN, 0x00000000UL, 393 `Unknown or GNU ARM EABI version number') 394DEFINE_EHDR_FLAG(EF_ARM_EABI_VER1, 0x01000000UL, 395 `ARM EABI version 1') 396DEFINE_EHDR_FLAG(EF_ARM_EABI_VER2, 0x02000000UL, 397 `ARM EABI version 2') 398DEFINE_EHDR_FLAG(EF_ARM_EABI_VER3, 0x03000000UL, 399 `ARM EABI version 3') 400DEFINE_EHDR_FLAG(EF_ARM_EABI_VER4, 0x04000000UL, 401 `ARM EABI version 4') 402DEFINE_EHDR_FLAG(EF_ARM_EABI_VER5, 0x05000000UL, 403 `ARM EABI version 5') 404DEFINE_EHDR_FLAG(EF_ARM_INTERWORK, 0x00000004UL, 405 `GNU EABI extension') 406DEFINE_EHDR_FLAG(EF_ARM_APCS_26, 0x00000008UL, 407 `GNU EABI extension') 408DEFINE_EHDR_FLAG(EF_ARM_APCS_FLOAT, 0x00000010UL, 409 `GNU EABI extension') 410DEFINE_EHDR_FLAG(EF_ARM_PIC, 0x00000020UL, 411 `GNU EABI extension') 412DEFINE_EHDR_FLAG(EF_ARM_ALIGN8, 0x00000040UL, 413 `GNU EABI extension') 414DEFINE_EHDR_FLAG(EF_ARM_NEW_ABI, 0x00000080UL, 415 `GNU EABI extension') 416DEFINE_EHDR_FLAG(EF_ARM_OLD_ABI, 0x00000100UL, 417 `GNU EABI extension') 418DEFINE_EHDR_FLAG(EF_ARM_SOFT_FLOAT, 0x00000200UL, 419 `GNU EABI extension') 420DEFINE_EHDR_FLAG(EF_ARM_VFP_FLOAT, 0x00000400UL, 421 `GNU EABI extension') 422DEFINE_EHDR_FLAG(EF_ARM_MAVERICK_FLOAT, 0x00000800UL, 423 `GNU EABI extension') 424DEFINE_EHDR_FLAG(EF_MIPS_NOREORDER, 0x00000001UL, 425 `at least one .noreorder directive appeared in the source') 426DEFINE_EHDR_FLAG(EF_MIPS_PIC, 0x00000002UL, 427 `file contains position independent code') 428DEFINE_EHDR_FLAG(EF_MIPS_CPIC, 0x00000004UL, 429 `file code uses standard conventions for calling PIC') 430DEFINE_EHDR_FLAG(EF_MIPS_UCODE, 0x00000010UL, 431 `file contains UCODE (obsolete)') 432DEFINE_EHDR_FLAG(EF_MIPS_ABI, 0x00007000UL, 433 `Application binary interface, see E_MIPS_* values') 434DEFINE_EHDR_FLAG(EF_MIPS_ABI2, 0x00000020UL, 435 `file follows MIPS III 32-bit ABI') 436DEFINE_EHDR_FLAG(EF_MIPS_OPTIONS_FIRST, 0x00000080UL, 437 `ld(1) should process .MIPS.options section first') 438DEFINE_EHDR_FLAG(EF_MIPS_ARCH_ASE, 0x0F000000UL, 439 `file uses application-specific architectural extensions') 440DEFINE_EHDR_FLAG(EF_MIPS_ARCH_ASE_MDMX, 0x08000000UL, 441 `file uses MDMX multimedia extensions') 442DEFINE_EHDR_FLAG(EF_MIPS_ARCH_ASE_M16, 0x04000000UL, 443 `file uses MIPS-16 ISA extensions') 444DEFINE_EHDR_FLAG(EF_MIPS_ARCH_ASE_MICROMIPS, 0x02000000UL, 445 `MicroMIPS architecture') 446DEFINE_EHDR_FLAG(EF_MIPS_ARCH, 0xF0000000UL, 447 `4-bit MIPS architecture field') 448DEFINE_EHDR_FLAG(EF_MIPS_ARCH_1, 0x00000000UL, 449 `MIPS I instruction set') 450DEFINE_EHDR_FLAG(EF_MIPS_ARCH_2, 0x10000000UL, 451 `MIPS II instruction set') 452DEFINE_EHDR_FLAG(EF_MIPS_ARCH_3, 0x20000000UL, 453 `MIPS III instruction set') 454DEFINE_EHDR_FLAG(EF_MIPS_ARCH_4, 0x30000000UL, 455 `MIPS IV instruction set') 456DEFINE_EHDR_FLAG(EF_MIPS_ARCH_5, 0x40000000UL, 457 `Never introduced') 458DEFINE_EHDR_FLAG(EF_MIPS_ARCH_32, 0x50000000UL, 459 `Mips32 Revision 1') 460DEFINE_EHDR_FLAG(EF_MIPS_ARCH_64, 0x60000000UL, 461 `Mips64 Revision 1') 462DEFINE_EHDR_FLAG(EF_MIPS_ARCH_32R2, 0x70000000UL, 463 `Mips32 Revision 2') 464DEFINE_EHDR_FLAG(EF_MIPS_ARCH_64R2, 0x80000000UL, 465 `Mips64 Revision 2') 466DEFINE_EHDR_FLAG(EF_PPC_EMB, 0x80000000UL, 467 `Embedded PowerPC flag') 468DEFINE_EHDR_FLAG(EF_PPC_RELOCATABLE, 0x00010000UL, 469 `-mrelocatable flag') 470DEFINE_EHDR_FLAG(EF_PPC_RELOCATABLE_LIB, 0x00008000UL, 471 `-mrelocatable-lib flag') 472DEFINE_EHDR_FLAG(EF_RISCV_RVC, 0x00000001UL, 473 `Compressed instruction extension') 474DEFINE_EHDR_FLAG(EF_RISCV_FLOAT_ABI_MASK, 0x00000006UL, 475 `Floating point ABI') 476DEFINE_EHDR_FLAG(EF_RISCV_FLOAT_ABI_SOFT, 0x00000000UL, 477 `Software emulated floating point') 478DEFINE_EHDR_FLAG(EF_RISCV_FLOAT_ABI_SINGLE, 0x00000002UL, 479 `Single precision floating point') 480DEFINE_EHDR_FLAG(EF_RISCV_FLOAT_ABI_DOUBLE, 0x00000004UL, 481 `Double precision floating point') 482DEFINE_EHDR_FLAG(EF_RISCV_FLOAT_ABI_QUAD, 0x00000006UL, 483 `Quad precision floating point') 484DEFINE_EHDR_FLAG(EF_RISCV_RVE, 0x00000008UL, 485 `Compressed instruction ABI') 486DEFINE_EHDR_FLAG(EF_RISCV_TSO, 0x00000010UL, 487 `RVTSO memory consistency model') 488DEFINE_EHDR_FLAG(EF_SPARC_EXT_MASK, 0x00ffff00UL, 489 `Vendor Extension mask') 490DEFINE_EHDR_FLAG(EF_SPARC_32PLUS, 0x00000100UL, 491 `Generic V8+ features') 492DEFINE_EHDR_FLAG(EF_SPARC_SUN_US1, 0x00000200UL, 493 `Sun UltraSPARCTM 1 Extensions') 494DEFINE_EHDR_FLAG(EF_SPARC_HAL_R1, 0x00000400UL, 495 `HAL R1 Extensions') 496DEFINE_EHDR_FLAG(EF_SPARC_SUN_US3, 0x00000800UL, 497 `Sun UltraSPARC 3 Extensions') 498DEFINE_EHDR_FLAG(EF_SPARCV9_MM, 0x00000003UL, 499 `Mask for Memory Model') 500DEFINE_EHDR_FLAG(EF_SPARCV9_TSO, 0x00000000UL, 501 `Total Store Ordering') 502DEFINE_EHDR_FLAG(EF_SPARCV9_PSO, 0x00000001UL, 503 `Partial Store Ordering') 504DEFINE_EHDR_FLAG(EF_SPARCV9_RMO, 0x00000002UL, 505 `Relaxed Memory Ordering') 506') 507 508# 509# Offsets in the `ei_ident[]` field of an ELF executable header. 510# 511define(`DEFINE_EI_OFFSETS',` 512DEFINE_EI_OFFSET(EI_MAG0, 0, 513 `magic number') 514DEFINE_EI_OFFSET(EI_MAG1, 1, 515 `magic number') 516DEFINE_EI_OFFSET(EI_MAG2, 2, 517 `magic number') 518DEFINE_EI_OFFSET(EI_MAG3, 3, 519 `magic number') 520DEFINE_EI_OFFSET(EI_CLASS, 4, 521 `file class') 522DEFINE_EI_OFFSET(EI_DATA, 5, 523 `data encoding') 524DEFINE_EI_OFFSET(EI_VERSION, 6, 525 `file version') 526DEFINE_EI_OFFSET(EI_OSABI, 7, 527 `OS ABI kind') 528DEFINE_EI_OFFSET(EI_ABIVERSION, 8, 529 `OS ABI version') 530DEFINE_EI_OFFSET(EI_PAD, 9, 531 `padding start') 532DEFINE_EI_OFFSET(EI_NIDENT, 16, 533 `total size') 534') 535 536# 537# The ELF class of an object. 538# 539define(`DEFINE_ELF_CLASSES',` 540DEFINE_ELF_CLASS(ELFCLASSNONE, 0, 541 `Unknown ELF class') 542DEFINE_ELF_CLASS(ELFCLASS32, 1, 543 `32 bit objects') 544DEFINE_ELF_CLASS(ELFCLASS64, 2, 545 `64 bit objects') 546') 547 548# 549# Endianness of data in an ELF object. 550# 551define(`DEFINE_ELF_DATA_ENDIANNESSES',` 552DEFINE_ELF_DATA_ENDIANNESS(ELFDATANONE, 0, 553 `Unknown data endianness') 554DEFINE_ELF_DATA_ENDIANNESS(ELFDATA2LSB, 1, 555 `little endian') 556DEFINE_ELF_DATA_ENDIANNESS(ELFDATA2MSB, 2, 557 `big endian') 558') 559 560 561# 562# Values of the magic numbers used in identification array. 563# 564changequote({,}) 565define({DEFINE_ELF_MAGIC_VALUES},{ 566DEFINE_ELF_MAGIC_VALUE(ELFMAG0, 0x7FU) 567DEFINE_ELF_MAGIC_VALUE(ELFMAG1, 'E') 568DEFINE_ELF_MAGIC_VALUE(ELFMAG2, 'L') 569DEFINE_ELF_MAGIC_VALUE(ELFMAG3, 'F') 570}) 571changequote 572 573# 574# ELF OS ABI field. 575# 576define(`DEFINE_ELF_OSABIS',` 577DEFINE_ELF_OSABI(ELFOSABI_NONE, 0, 578 `No extensions or unspecified') 579DEFINE_ELF_OSABI(ELFOSABI_SYSV, 0, 580 `SYSV') 581DEFINE_ELF_OSABI(ELFOSABI_HPUX, 1, 582 `Hewlett-Packard HP-UX') 583DEFINE_ELF_OSABI(ELFOSABI_NETBSD, 2, 584 `NetBSD') 585DEFINE_ELF_OSABI(ELFOSABI_GNU, 3, 586 `GNU') 587DEFINE_ELF_OSABI(ELFOSABI_HURD, 4, 588 `GNU/HURD') 589DEFINE_ELF_OSABI(ELFOSABI_86OPEN, 5, 590 `86Open Common ABI') 591DEFINE_ELF_OSABI(ELFOSABI_SOLARIS, 6, 592 `Sun Solaris') 593DEFINE_ELF_OSABI(ELFOSABI_AIX, 7, 594 `AIX') 595DEFINE_ELF_OSABI(ELFOSABI_IRIX, 8, 596 `IRIX') 597DEFINE_ELF_OSABI(ELFOSABI_FREEBSD, 9, 598 `FreeBSD') 599DEFINE_ELF_OSABI(ELFOSABI_TRU64, 10, 600 `Compaq TRU64 UNIX') 601DEFINE_ELF_OSABI(ELFOSABI_MODESTO, 11, 602 `Novell Modesto') 603DEFINE_ELF_OSABI(ELFOSABI_OPENBSD, 12, 604 `Open BSD') 605DEFINE_ELF_OSABI(ELFOSABI_OPENVMS, 13, 606 `Open VMS') 607DEFINE_ELF_OSABI(ELFOSABI_NSK, 14, 608 `Hewlett-Packard Non-Stop Kernel') 609DEFINE_ELF_OSABI(ELFOSABI_AROS, 15, 610 `Amiga Research OS') 611DEFINE_ELF_OSABI(ELFOSABI_FENIXOS, 16, 612 `The FenixOS highly scalable multi-core OS') 613DEFINE_ELF_OSABI(ELFOSABI_CLOUDABI, 17, 614 `Nuxi CloudABI') 615DEFINE_ELF_OSABI(ELFOSABI_OPENVOS, 18, 616 `Stratus Technologies OpenVOS') 617DEFINE_ELF_OSABI(ELFOSABI_ARM_AEABI, 64, 618 `ARM specific symbol versioning extensions') 619DEFINE_ELF_OSABI(ELFOSABI_ARM, 97, 620 `ARM ABI') 621DEFINE_ELF_OSABI(ELFOSABI_STANDALONE, 255, 622 `Standalone (embedded) application') 623') 624 625# OS ABI aliases. 626define(`DEFINE_ELF_OSABI_ALIASES',` 627DEFINE_ELF_OSABI_ALIAS(ELFOSABI_LINUX, ELFOSABI_GNU) 628') 629 630# 631# ELF Machine types: (EM_*). 632# 633define(`DEFINE_ELF_MACHINE_TYPES',` 634DEFINE_ELF_MACHINE_TYPE(EM_NONE, 0, 635 `No machine') 636DEFINE_ELF_MACHINE_TYPE(EM_M32, 1, 637 `AT&T WE 32100') 638DEFINE_ELF_MACHINE_TYPE(EM_SPARC, 2, 639 `SPARC') 640DEFINE_ELF_MACHINE_TYPE(EM_386, 3, 641 `Intel 80386') 642DEFINE_ELF_MACHINE_TYPE(EM_68K, 4, 643 `Motorola 68000') 644DEFINE_ELF_MACHINE_TYPE(EM_88K, 5, 645 `Motorola 88000') 646DEFINE_ELF_MACHINE_TYPE(EM_IAMCU, 6, 647 `Intel MCU') 648DEFINE_ELF_MACHINE_TYPE(EM_860, 7, 649 `Intel 80860') 650DEFINE_ELF_MACHINE_TYPE(EM_MIPS, 8, 651 `MIPS I Architecture') 652DEFINE_ELF_MACHINE_TYPE(EM_S370, 9, 653 `IBM System/370 Processor') 654DEFINE_ELF_MACHINE_TYPE(EM_MIPS_RS3_LE, 10, 655 `MIPS RS3000 Little-endian') 656DEFINE_ELF_MACHINE_TYPE(EM_PARISC, 15, 657 `Hewlett-Packard PA-RISC') 658DEFINE_ELF_MACHINE_TYPE(EM_VPP500, 17, 659 `Fujitsu VPP500') 660DEFINE_ELF_MACHINE_TYPE(EM_SPARC32PLUS, 18, 661 `Enhanced instruction set SPARC') 662DEFINE_ELF_MACHINE_TYPE(EM_960, 19, 663 `Intel 80960') 664DEFINE_ELF_MACHINE_TYPE(EM_PPC, 20, 665 `PowerPC') 666DEFINE_ELF_MACHINE_TYPE(EM_PPC64, 21, 667 `64-bit PowerPC') 668DEFINE_ELF_MACHINE_TYPE(EM_S390, 22, 669 `IBM System/390 Processor') 670DEFINE_ELF_MACHINE_TYPE(EM_SPU, 23, 671 `IBM SPU/SPC') 672DEFINE_ELF_MACHINE_TYPE(EM_V800, 36, 673 `NEC V800') 674DEFINE_ELF_MACHINE_TYPE(EM_FR20, 37, 675 `Fujitsu FR20') 676DEFINE_ELF_MACHINE_TYPE(EM_RH32, 38, 677 `TRW RH-32') 678DEFINE_ELF_MACHINE_TYPE(EM_RCE, 39, 679 `Motorola RCE') 680DEFINE_ELF_MACHINE_TYPE(EM_ARM, 40, 681 `Advanced RISC Machines ARM') 682DEFINE_ELF_MACHINE_TYPE(EM_ALPHA, 41, 683 `Digital Alpha') 684DEFINE_ELF_MACHINE_TYPE(EM_SH, 42, 685 `Hitachi SH') 686DEFINE_ELF_MACHINE_TYPE(EM_SPARCV9, 43, 687 `SPARC Version 9') 688DEFINE_ELF_MACHINE_TYPE(EM_TRICORE, 44, 689 `Siemens TriCore embedded processor') 690DEFINE_ELF_MACHINE_TYPE(EM_ARC, 45, 691 `Argonaut RISC Core, Argonaut Technologies Inc.') 692DEFINE_ELF_MACHINE_TYPE(EM_H8_300, 46, 693 `Hitachi H8/300') 694DEFINE_ELF_MACHINE_TYPE(EM_H8_300H, 47, 695 `Hitachi H8/300H') 696DEFINE_ELF_MACHINE_TYPE(EM_H8S, 48, 697 `Hitachi H8S') 698DEFINE_ELF_MACHINE_TYPE(EM_H8_500, 49, 699 `Hitachi H8/500') 700DEFINE_ELF_MACHINE_TYPE(EM_IA_64, 50, 701 `Intel IA-64 processor architecture') 702DEFINE_ELF_MACHINE_TYPE(EM_MIPS_X, 51, 703 `Stanford MIPS-X') 704DEFINE_ELF_MACHINE_TYPE(EM_COLDFIRE, 52, 705 `Motorola ColdFire') 706DEFINE_ELF_MACHINE_TYPE(EM_68HC12, 53, 707 `Motorola M68HC12') 708DEFINE_ELF_MACHINE_TYPE(EM_MMA, 54, 709 `Fujitsu MMA Multimedia Accelerator') 710DEFINE_ELF_MACHINE_TYPE(EM_PCP, 55, 711 `Siemens PCP') 712DEFINE_ELF_MACHINE_TYPE(EM_NCPU, 56, 713 `Sony nCPU embedded RISC processor') 714DEFINE_ELF_MACHINE_TYPE(EM_NDR1, 57, 715 `Denso NDR1 microprocessor') 716DEFINE_ELF_MACHINE_TYPE(EM_STARCORE, 58, 717 `Motorola Star*Core processor') 718DEFINE_ELF_MACHINE_TYPE(EM_ME16, 59, 719 `Toyota ME16 processor') 720DEFINE_ELF_MACHINE_TYPE(EM_ST100, 60, 721 `STMicroelectronics ST100 processor') 722DEFINE_ELF_MACHINE_TYPE(EM_TINYJ, 61, 723 `Advanced Logic Corp. TinyJ embedded processor family') 724DEFINE_ELF_MACHINE_TYPE(EM_X86_64, 62, 725 `AMD x86-64 architecture') 726DEFINE_ELF_MACHINE_TYPE(EM_PDSP, 63, 727 `Sony DSP Processor') 728DEFINE_ELF_MACHINE_TYPE(EM_PDP10, 64, 729 `Digital Equipment Corp. PDP-10') 730DEFINE_ELF_MACHINE_TYPE(EM_PDP11, 65, 731 `Digital Equipment Corp. PDP-11') 732DEFINE_ELF_MACHINE_TYPE(EM_FX66, 66, 733 `Siemens FX66 microcontroller') 734DEFINE_ELF_MACHINE_TYPE(EM_ST9PLUS, 67, 735 `STMicroelectronics ST9+ 8/16 bit microcontroller') 736DEFINE_ELF_MACHINE_TYPE(EM_ST7, 68, 737 `STMicroelectronics ST7 8-bit microcontroller') 738DEFINE_ELF_MACHINE_TYPE(EM_68HC16, 69, 739 `Motorola MC68HC16 Microcontroller') 740DEFINE_ELF_MACHINE_TYPE(EM_68HC11, 70, 741 `Motorola MC68HC11 Microcontroller') 742DEFINE_ELF_MACHINE_TYPE(EM_68HC08, 71, 743 `Motorola MC68HC08 Microcontroller') 744DEFINE_ELF_MACHINE_TYPE(EM_68HC05, 72, 745 `Motorola MC68HC05 Microcontroller') 746DEFINE_ELF_MACHINE_TYPE(EM_SVX, 73, 747 `Silicon Graphics SVx') 748DEFINE_ELF_MACHINE_TYPE(EM_ST19, 74, 749 `STMicroelectronics ST19 8-bit microcontroller') 750DEFINE_ELF_MACHINE_TYPE(EM_VAX, 75, 751 `Digital VAX') 752DEFINE_ELF_MACHINE_TYPE(EM_CRIS, 76, 753 `Axis Communications 32-bit embedded processor') 754DEFINE_ELF_MACHINE_TYPE(EM_JAVELIN, 77, 755 `Infineon Technologies 32-bit embedded processor') 756DEFINE_ELF_MACHINE_TYPE(EM_FIREPATH, 78, 757 `Element 14 64-bit DSP Processor') 758DEFINE_ELF_MACHINE_TYPE(EM_ZSP, 79, 759 `LSI Logic 16-bit DSP Processor') 760DEFINE_ELF_MACHINE_TYPE(EM_MMIX, 80, 761 `Educational 64-bit processor by Donald Knuth') 762DEFINE_ELF_MACHINE_TYPE(EM_HUANY, 81, 763 `Harvard University machine-independent object files') 764DEFINE_ELF_MACHINE_TYPE(EM_PRISM, 82, 765 `SiTera Prism') 766DEFINE_ELF_MACHINE_TYPE(EM_AVR, 83, 767 `Atmel AVR 8-bit microcontroller') 768DEFINE_ELF_MACHINE_TYPE(EM_FR30, 84, 769 `Fujitsu FR30') 770DEFINE_ELF_MACHINE_TYPE(EM_D10V, 85, 771 `Mitsubishi D10V') 772DEFINE_ELF_MACHINE_TYPE(EM_D30V, 86, 773 `Mitsubishi D30V') 774DEFINE_ELF_MACHINE_TYPE(EM_V850, 87, 775 `NEC v850') 776DEFINE_ELF_MACHINE_TYPE(EM_M32R, 88, 777 `Mitsubishi M32R') 778DEFINE_ELF_MACHINE_TYPE(EM_MN10300, 89, 779 `Matsushita MN10300') 780DEFINE_ELF_MACHINE_TYPE(EM_MN10200, 90, 781 `Matsushita MN10200') 782DEFINE_ELF_MACHINE_TYPE(EM_PJ, 91, 783 `picoJava') 784DEFINE_ELF_MACHINE_TYPE(EM_OPENRISC, 92, 785 `OpenRISC 32-bit embedded processor') 786DEFINE_ELF_MACHINE_TYPE(EM_ARC_COMPACT, 93, 787 `ARC International ARCompact processor') 788DEFINE_ELF_MACHINE_TYPE(EM_XTENSA, 94, 789 `Tensilica Xtensa Architecture') 790DEFINE_ELF_MACHINE_TYPE(EM_VIDEOCORE, 95, 791 `Alphamosaic VideoCore processor') 792DEFINE_ELF_MACHINE_TYPE(EM_TMM_GPP, 96, 793 `Thompson Multimedia General Purpose Processor') 794DEFINE_ELF_MACHINE_TYPE(EM_NS32K, 97, 795 `National Semiconductor 32000 series') 796DEFINE_ELF_MACHINE_TYPE(EM_TPC, 98, 797 `Tenor Network TPC processor') 798DEFINE_ELF_MACHINE_TYPE(EM_SNP1K, 99, 799 `Trebia SNP 1000 processor') 800DEFINE_ELF_MACHINE_TYPE(EM_ST200, 100, 801 `STMicroelectronics (www.st.com) ST200 microcontroller') 802DEFINE_ELF_MACHINE_TYPE(EM_IP2K, 101, 803 `Ubicom IP2xxx microcontroller family') 804DEFINE_ELF_MACHINE_TYPE(EM_MAX, 102, 805 `MAX Processor') 806DEFINE_ELF_MACHINE_TYPE(EM_CR, 103, 807 `National Semiconductor CompactRISC microprocessor') 808DEFINE_ELF_MACHINE_TYPE(EM_F2MC16, 104, 809 `Fujitsu F2MC16') 810DEFINE_ELF_MACHINE_TYPE(EM_MSP430, 105, 811 `Texas Instruments embedded microcontroller msp430') 812DEFINE_ELF_MACHINE_TYPE(EM_BLACKFIN, 106, 813 `Analog Devices Blackfin (DSP) processor') 814DEFINE_ELF_MACHINE_TYPE(EM_SE_C33, 107, 815 `S1C33 Family of Seiko Epson processors') 816DEFINE_ELF_MACHINE_TYPE(EM_SEP, 108, 817 `Sharp embedded microprocessor') 818DEFINE_ELF_MACHINE_TYPE(EM_ARCA, 109, 819 `Arca RISC Microprocessor') 820DEFINE_ELF_MACHINE_TYPE(EM_UNICORE, 110, 821 `Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University') 822DEFINE_ELF_MACHINE_TYPE(EM_EXCESS, 111, 823 `eXcess: 16/32/64-bit configurable embedded CPU') 824DEFINE_ELF_MACHINE_TYPE(EM_DXP, 112, 825 `Icera Semiconductor Inc. Deep Execution Processor') 826DEFINE_ELF_MACHINE_TYPE(EM_ALTERA_NIOS2, 113, 827 `Altera Nios II soft-core processor') 828DEFINE_ELF_MACHINE_TYPE(EM_CRX, 114, 829 `National Semiconductor CompactRISC CRX microprocessor') 830DEFINE_ELF_MACHINE_TYPE(EM_XGATE, 115, 831 `Motorola XGATE embedded processor') 832DEFINE_ELF_MACHINE_TYPE(EM_C166, 116, 833 `Infineon C16x/XC16x processor') 834DEFINE_ELF_MACHINE_TYPE(EM_M16C, 117, 835 `Renesas M16C series microprocessors') 836DEFINE_ELF_MACHINE_TYPE(EM_DSPIC30F, 118, 837 `Microchip Technology dsPIC30F Digital Signal Controller') 838DEFINE_ELF_MACHINE_TYPE(EM_CE, 119, 839 `Freescale Communication Engine RISC core') 840DEFINE_ELF_MACHINE_TYPE(EM_M32C, 120, 841 `Renesas M32C series microprocessors') 842DEFINE_ELF_MACHINE_TYPE(EM_TSK3000, 131, 843 `Altium TSK3000 core') 844DEFINE_ELF_MACHINE_TYPE(EM_RS08, 132, 845 `Freescale RS08 embedded processor') 846DEFINE_ELF_MACHINE_TYPE(EM_SHARC, 133, 847 `Analog Devices SHARC family of 32-bit DSP processors') 848DEFINE_ELF_MACHINE_TYPE(EM_ECOG2, 134, 849 `Cyan Technology eCOG2 microprocessor') 850DEFINE_ELF_MACHINE_TYPE(EM_SCORE7, 135, 851 `Sunplus S+core7 RISC processor') 852DEFINE_ELF_MACHINE_TYPE(EM_DSP24, 136, 853 `New Japan Radio (NJR) 24-bit DSP Processor') 854DEFINE_ELF_MACHINE_TYPE(EM_VIDEOCORE3, 137, 855 `Broadcom VideoCore III processor') 856DEFINE_ELF_MACHINE_TYPE(EM_LATTICEMICO32, 138, 857 `RISC processor for Lattice FPGA architecture') 858DEFINE_ELF_MACHINE_TYPE(EM_SE_C17, 139, 859 `Seiko Epson C17 family') 860DEFINE_ELF_MACHINE_TYPE(EM_TI_C6000, 140, 861 `The Texas Instruments TMS320C6000 DSP family') 862DEFINE_ELF_MACHINE_TYPE(EM_TI_C2000, 141, 863 `The Texas Instruments TMS320C2000 DSP family') 864DEFINE_ELF_MACHINE_TYPE(EM_TI_C5500, 142, 865 `The Texas Instruments TMS320C55x DSP family') 866DEFINE_ELF_MACHINE_TYPE(EM_MMDSP_PLUS, 160, 867 `STMicroelectronics 64bit VLIW Data Signal Processor') 868DEFINE_ELF_MACHINE_TYPE(EM_CYPRESS_M8C, 161, 869 `Cypress M8C microprocessor') 870DEFINE_ELF_MACHINE_TYPE(EM_R32C, 162, 871 `Renesas R32C series microprocessors') 872DEFINE_ELF_MACHINE_TYPE(EM_TRIMEDIA, 163, 873 `NXP Semiconductors TriMedia architecture family') 874DEFINE_ELF_MACHINE_TYPE(EM_QDSP6, 164, 875 `QUALCOMM DSP6 Processor') 876DEFINE_ELF_MACHINE_TYPE(EM_8051, 165, 877 `Intel 8051 and variants') 878DEFINE_ELF_MACHINE_TYPE(EM_STXP7X, 166, 879 `STMicroelectronics STxP7x family of configurable and extensible RISC processors') 880DEFINE_ELF_MACHINE_TYPE(EM_NDS32, 167, 881 `Andes Technology compact code size embedded RISC processor family') 882DEFINE_ELF_MACHINE_TYPE(EM_ECOG1, 168, 883 `Cyan Technology eCOG1X family') 884DEFINE_ELF_MACHINE_TYPE(EM_ECOG1X, 168, 885 `Cyan Technology eCOG1X family') 886DEFINE_ELF_MACHINE_TYPE(EM_MAXQ30, 169, 887 `Dallas Semiconductor MAXQ30 Core Micro-controllers') 888DEFINE_ELF_MACHINE_TYPE(EM_XIMO16, 170, 889 `New Japan Radio (NJR) 16-bit DSP Processor') 890DEFINE_ELF_MACHINE_TYPE(EM_MANIK, 171, 891 `M2000 Reconfigurable RISC Microprocessor') 892DEFINE_ELF_MACHINE_TYPE(EM_CRAYNV2, 172, 893 `Cray Inc. NV2 vector architecture') 894DEFINE_ELF_MACHINE_TYPE(EM_RX, 173, 895 `Renesas RX family') 896DEFINE_ELF_MACHINE_TYPE(EM_METAG, 174, 897 `Imagination Technologies META processor architecture') 898DEFINE_ELF_MACHINE_TYPE(EM_MCST_ELBRUS, 175, 899 `MCST Elbrus general purpose hardware architecture') 900DEFINE_ELF_MACHINE_TYPE(EM_ECOG16, 176, 901 `Cyan Technology eCOG16 family') 902DEFINE_ELF_MACHINE_TYPE(EM_CR16, 177, 903 `National Semiconductor CompactRISC CR16 16-bit microprocessor') 904DEFINE_ELF_MACHINE_TYPE(EM_ETPU, 178, 905 `Freescale Extended Time Processing Unit') 906DEFINE_ELF_MACHINE_TYPE(EM_SLE9X, 179, 907 `Infineon Technologies SLE9X core') 908DEFINE_ELF_MACHINE_TYPE(EM_AARCH64, 183, 909 `AArch64 (64-bit ARM)') 910DEFINE_ELF_MACHINE_TYPE(EM_AVR32, 185, 911 `Atmel Corporation 32-bit microprocessor family') 912DEFINE_ELF_MACHINE_TYPE(EM_STM8, 186, 913 `STMicroeletronics STM8 8-bit microcontroller') 914DEFINE_ELF_MACHINE_TYPE(EM_TILE64, 187, 915 `Tilera TILE64 multicore architecture family') 916DEFINE_ELF_MACHINE_TYPE(EM_TILEPRO, 188, 917 `Tilera TILEPro multicore architecture family') 918DEFINE_ELF_MACHINE_TYPE(EM_MICROBLAZE, 189, 919 `Xilinx MicroBlaze 32-bit RISC soft processor core') 920DEFINE_ELF_MACHINE_TYPE(EM_CUDA, 190, 921 `NVIDIA CUDA architecture') 922DEFINE_ELF_MACHINE_TYPE(EM_TILEGX, 191, 923 `Tilera TILE-Gx multicore architecture family') 924DEFINE_ELF_MACHINE_TYPE(EM_CLOUDSHIELD, 192, 925 `CloudShield architecture family') 926DEFINE_ELF_MACHINE_TYPE(EM_COREA_1ST, 193, 927 `KIPO-KAIST Core-A 1st generation processor family') 928DEFINE_ELF_MACHINE_TYPE(EM_COREA_2ND, 194, 929 `KIPO-KAIST Core-A 2nd generation processor family') 930DEFINE_ELF_MACHINE_TYPE(EM_ARC_COMPACT2, 195, 931 `Synopsys ARCompact V2') 932DEFINE_ELF_MACHINE_TYPE(EM_OPEN8, 196, 933 `Open8 8-bit RISC soft processor core') 934DEFINE_ELF_MACHINE_TYPE(EM_RL78, 197, 935 `Renesas RL78 family') 936DEFINE_ELF_MACHINE_TYPE(EM_VIDEOCORE5, 198, 937 `Broadcom VideoCore V processor') 938DEFINE_ELF_MACHINE_TYPE(EM_78KOR, 199, 939 `Renesas 78KOR family') 940DEFINE_ELF_MACHINE_TYPE(EM_56800EX, 200, 941 `Freescale 56800EX Digital Signal Controller') 942DEFINE_ELF_MACHINE_TYPE(EM_BA1, 201, 943 `Beyond BA1 CPU architecture') 944DEFINE_ELF_MACHINE_TYPE(EM_BA2, 202, 945 `Beyond BA2 CPU architecture') 946DEFINE_ELF_MACHINE_TYPE(EM_XCORE, 203, 947 `XMOS xCORE processor family') 948DEFINE_ELF_MACHINE_TYPE(EM_MCHP_PIC, 204, 949 `Microchip 8-bit PIC(r) family') 950DEFINE_ELF_MACHINE_TYPE(EM_INTELGT, 205, 951 `Intel Graphics Technology') 952DEFINE_ELF_MACHINE_TYPE(EM_INTEL206, 206, 953 `Reserved by Intel') 954DEFINE_ELF_MACHINE_TYPE(EM_INTEL207, 207, 955 `Reserved by Intel') 956DEFINE_ELF_MACHINE_TYPE(EM_INTEL208, 208, 957 `Reserved by Intel') 958DEFINE_ELF_MACHINE_TYPE(EM_INTEL209, 209, 959 `Reserved by Intel') 960DEFINE_ELF_MACHINE_TYPE(EM_KM32, 210, 961 `KM211 KM32 32-bit processor') 962DEFINE_ELF_MACHINE_TYPE(EM_KMX32, 211, 963 `KM211 KMX32 32-bit processor') 964DEFINE_ELF_MACHINE_TYPE(EM_KMX16, 212, 965 `KM211 KMX16 16-bit processor') 966DEFINE_ELF_MACHINE_TYPE(EM_KMX8, 213, 967 `KM211 KMX8 8-bit processor') 968DEFINE_ELF_MACHINE_TYPE(EM_KVARC, 214, 969 `KM211 KMX32 KVARC processor') 970DEFINE_ELF_MACHINE_TYPE(EM_CDP, 215, 971 `Paneve CDP architecture family') 972DEFINE_ELF_MACHINE_TYPE(EM_COGE, 216, 973 `Cognitive Smart Memory Processor') 974DEFINE_ELF_MACHINE_TYPE(EM_COOL, 217, 975 `Bluechip Systems CoolEngine') 976DEFINE_ELF_MACHINE_TYPE(EM_NORC, 218, 977 `Nanoradio Optimized RISC') 978DEFINE_ELF_MACHINE_TYPE(EM_CSR_KALIMBA, 219, 979 `CSR Kalimba architecture family') 980DEFINE_ELF_MACHINE_TYPE(EM_Z80, 220, 981 `Zilog Z80') 982DEFINE_ELF_MACHINE_TYPE(EM_VISIUM, 221, 983 `Controls and Data Services VISIUMcore processor') 984DEFINE_ELF_MACHINE_TYPE(EM_FT32, 222, 985 `FTDI Chip FT32 high performance 32-bit RISC architecture') 986DEFINE_ELF_MACHINE_TYPE(EM_MOXIE, 223, 987 `Moxie processor family') 988DEFINE_ELF_MACHINE_TYPE(EM_AMDGPU, 224, 989 `AMD GPU architecture') 990DEFINE_ELF_MACHINE_TYPE(EM_RISCV, 243, 991 `RISC-V') 992DEFINE_ELF_MACHINE_TYPE(EM_LANAI, 244, 993 `Lanai processor') 994DEFINE_ELF_MACHINE_TYPE(EM_CEVA, 245, 995 `CEVA Processor Architecture Family') 996DEFINE_ELF_MACHINE_TYPE(EM_CEVA_X2, 246, 997 `CEVA X2 Processor Family') 998DEFINE_ELF_MACHINE_TYPE(EM_BPF, 247, 999 `Linux BPF ��� in-kernel virtual machine') 1000DEFINE_ELF_MACHINE_TYPE(EM_GRAPHCORE_IPU, 248, 1001 `Graphcore Intelligent Processing Unit') 1002DEFINE_ELF_MACHINE_TYPE(EM_IMG1, 249, 1003 `Imagination Technologies') 1004DEFINE_ELF_MACHINE_TYPE(EM_NFP, 250, 1005 `Netronome Flow Processor (NFP)') 1006DEFINE_ELF_MACHINE_TYPE(EM_CSKY, 252, 1007 `C-SKY processor family') 1008DEFINE_ELF_MACHINE_TYPE(EM_65816, 257, 1009 `WDC 65816/65C816') 1010DEFINE_ELF_MACHINE_TYPE(EM_KF32, 259, 1011 `ChipON KungFu 32') 1012') 1013 1014define(`DEFINE_ELF_MACHINE_TYPE_SYNONYMS',` 1015DEFINE_ELF_MACHINE_TYPE_SYNONYM(EM_AMD64, EM_X86_64) 1016DEFINE_ELF_MACHINE_TYPE_SYNONYM(EM_ARC_A5, EM_ARC_COMPACT) 1017') 1018 1019# 1020# ELF file types: (ET_*). 1021# 1022define(`DEFINE_ELF_TYPES',` 1023DEFINE_ELF_TYPE(ET_NONE, 0, 1024 `No file type') 1025DEFINE_ELF_TYPE(ET_REL, 1, 1026 `Relocatable object') 1027DEFINE_ELF_TYPE(ET_EXEC, 2, 1028 `Executable') 1029DEFINE_ELF_TYPE(ET_DYN, 3, 1030 `Shared object') 1031DEFINE_ELF_TYPE(ET_CORE, 4, 1032 `Core file') 1033DEFINE_ELF_TYPE(ET_LOOS, 0xFE00U, 1034 `Begin OS-specific range') 1035DEFINE_ELF_TYPE(ET_HIOS, 0xFEFFU, 1036 `End OS-specific range') 1037DEFINE_ELF_TYPE(ET_LOPROC, 0xFF00U, 1038 `Begin processor-specific range') 1039DEFINE_ELF_TYPE(ET_HIPROC, 0xFFFFU, 1040 `End processor-specific range') 1041') 1042 1043# ELF file format version numbers. 1044define(`DEFINE_ELF_FILE_VERSIONS',` 1045DEFINE_ELF_FILE_VERSION(EV_NONE, 0) 1046DEFINE_ELF_FILE_VERSION(EV_CURRENT, 1) 1047') 1048 1049# 1050# Flags for section groups. 1051# 1052define(`DEFINE_GRP_FLAGS',` 1053DEFINE_GRP_FLAG(GRP_COMDAT, 0x1, 1054 `COMDAT semantics') 1055DEFINE_GRP_FLAG(GRP_MASKOS, 0x0ff00000, 1056 `OS-specific flags') 1057DEFINE_GRP_FLAG(GRP_MASKPROC, 0xf0000000, 1058 `processor-specific flags') 1059') 1060 1061# 1062# Flags / mask for .gnu.versym sections. 1063# 1064define(`DEFINE_VERSYMS',` 1065DEFINE_VERSYM(VERSYM_VERSION, 0x7fff) 1066DEFINE_VERSYM(VERSYM_HIDDEN, 0x8000) 1067') 1068 1069# 1070# Flags used by program header table entries. 1071# 1072define(`DEFINE_PHDR_FLAGS',` 1073DEFINE_PHDR_FLAG(PF_X, 0x1, 1074 `Execute') 1075DEFINE_PHDR_FLAG(PF_W, 0x2, 1076 `Write') 1077DEFINE_PHDR_FLAG(PF_R, 0x4, 1078 `Read') 1079DEFINE_PHDR_FLAG(PF_MASKOS, 0x0ff00000, 1080 `OS-specific flags') 1081DEFINE_PHDR_FLAG(PF_MASKPROC, 0xf0000000, 1082 `Processor-specific flags') 1083DEFINE_PHDR_FLAG(PF_ARM_SB, 0x10000000, 1084 `segment contains the location addressed by the static base') 1085DEFINE_PHDR_FLAG(PF_ARM_PI, 0x20000000, 1086 `segment is position-independent') 1087DEFINE_PHDR_FLAG(PF_ARM_ABS, 0x40000000, 1088 `segment must be loaded at its base address') 1089') 1090 1091# 1092# Types of program header table entries. 1093# 1094define(`DEFINE_PHDR_TYPES',` 1095DEFINE_PHDR_TYPE(PT_NULL, 0UL, 1096 `ignored entry') 1097DEFINE_PHDR_TYPE(PT_LOAD, 1UL, 1098 `loadable segment') 1099DEFINE_PHDR_TYPE(PT_DYNAMIC, 2UL, 1100 `contains dynamic linking information') 1101DEFINE_PHDR_TYPE(PT_INTERP, 3UL, 1102 `names an interpreter') 1103DEFINE_PHDR_TYPE(PT_NOTE, 4UL, 1104 `auxiliary information') 1105DEFINE_PHDR_TYPE(PT_SHLIB, 5UL, 1106 `reserved') 1107DEFINE_PHDR_TYPE(PT_PHDR, 6UL, 1108 `describes the program header itself') 1109DEFINE_PHDR_TYPE(PT_TLS, 7UL, 1110 `thread local storage') 1111DEFINE_PHDR_TYPE(PT_LOOS, 0x60000000UL, 1112 `start of OS-specific range') 1113DEFINE_PHDR_TYPE(PT_SUNW_UNWIND, 0x6464E550UL, 1114 `Solaris/amd64 stack unwind tables') 1115DEFINE_PHDR_TYPE(PT_GNU_EH_FRAME, 0x6474E550UL, 1116 `GCC generated .eh_frame_hdr segment') 1117DEFINE_PHDR_TYPE(PT_GNU_STACK, 0x6474E551UL, 1118 `Stack flags') 1119DEFINE_PHDR_TYPE(PT_GNU_RELRO, 0x6474E552UL, 1120 `Segment becomes read-only after relocation') 1121DEFINE_PHDR_TYPE(PT_OPENBSD_RANDOMIZE,0x65A3DBE6UL, 1122 `Segment filled with random data') 1123DEFINE_PHDR_TYPE(PT_OPENBSD_WXNEEDED, 0x65A3DBE7UL, 1124 `Program violates W^X') 1125DEFINE_PHDR_TYPE(PT_OPENBSD_BOOTDATA, 0x65A41BE6UL, 1126 `Boot data') 1127DEFINE_PHDR_TYPE(PT_SUNWBSS, 0x6FFFFFFAUL, 1128 `A Solaris .SUNW_bss section') 1129DEFINE_PHDR_TYPE(PT_SUNWSTACK, 0x6FFFFFFBUL, 1130 `A Solaris process stack') 1131DEFINE_PHDR_TYPE(PT_SUNWDTRACE, 0x6FFFFFFCUL, 1132 `Used by dtrace(1)') 1133DEFINE_PHDR_TYPE(PT_SUNWCAP, 0x6FFFFFFDUL, 1134 `Special hardware capability requirements') 1135DEFINE_PHDR_TYPE(PT_HIOS, 0x6FFFFFFFUL, 1136 `end of OS-specific range') 1137DEFINE_PHDR_TYPE(PT_LOPROC, 0x70000000UL, 1138 `start of processor-specific range') 1139DEFINE_PHDR_TYPE(PT_ARM_ARCHEXT, 0x70000000UL, 1140 `platform architecture compatibility information') 1141DEFINE_PHDR_TYPE(PT_ARM_EXIDX, 0x70000001UL, 1142 `exception unwind tables') 1143DEFINE_PHDR_TYPE(PT_MIPS_REGINFO, 0x70000000UL, 1144 `register usage information') 1145DEFINE_PHDR_TYPE(PT_MIPS_RTPROC, 0x70000001UL, 1146 `runtime procedure table') 1147DEFINE_PHDR_TYPE(PT_MIPS_OPTIONS, 0x70000002UL, 1148 `options segment') 1149DEFINE_PHDR_TYPE(PT_HIPROC, 0x7FFFFFFFUL, 1150 `end of processor-specific range') 1151') 1152 1153define(`DEFINE_PHDR_TYPE_SYNONYMS',` 1154DEFINE_PHDR_TYPE_SYNONYM(PT_ARM_UNWIND, PT_ARM_EXIDX) 1155DEFINE_PHDR_TYPE_SYNONYM(PT_HISUNW, PT_HIOS) 1156DEFINE_PHDR_TYPE_SYNONYM(PT_LOSUNW, PT_SUNWBSS) 1157') 1158 1159# 1160# Section flags. 1161# 1162define(`DEFINE_SECTION_FLAGS',` 1163DEFINE_SECTION_FLAG(SHF_WRITE, 0x1, 1164 `writable during program execution') 1165DEFINE_SECTION_FLAG(SHF_ALLOC, 0x2, 1166 `occupies memory during program execution') 1167DEFINE_SECTION_FLAG(SHF_EXECINSTR, 0x4, 1168 `executable instructions') 1169DEFINE_SECTION_FLAG(SHF_MERGE, 0x10, 1170 `may be merged to prevent duplication') 1171DEFINE_SECTION_FLAG(SHF_STRINGS, 0x20, 1172 `NUL-terminated character strings') 1173DEFINE_SECTION_FLAG(SHF_INFO_LINK, 0x40, 1174 `the sh_info field holds a link') 1175DEFINE_SECTION_FLAG(SHF_LINK_ORDER, 0x80, 1176 `special ordering requirements during linking') 1177DEFINE_SECTION_FLAG(SHF_OS_NONCONFORMING, 0x100, 1178 `requires OS-specific processing during linking') 1179DEFINE_SECTION_FLAG(SHF_GROUP, 0x200, 1180 `member of a section group') 1181DEFINE_SECTION_FLAG(SHF_TLS, 0x400, 1182 `holds thread-local storage') 1183DEFINE_SECTION_FLAG(SHF_COMPRESSED, 0x800, 1184 `holds compressed data') 1185DEFINE_SECTION_FLAG(SHF_MASKOS, 0x0FF00000UL, 1186 `bits reserved for OS-specific semantics') 1187DEFINE_SECTION_FLAG(SHF_AMD64_LARGE, 0x10000000UL, 1188 `section uses large code model') 1189DEFINE_SECTION_FLAG(SHF_ENTRYSECT, 0x10000000UL, 1190 `section contains an entry point (ARM)') 1191DEFINE_SECTION_FLAG(SHF_COMDEF, 0x80000000UL, 1192 `section may be multiply defined in input to link step (ARM)') 1193DEFINE_SECTION_FLAG(SHF_MIPS_GPREL, 0x10000000UL, 1194 `section must be part of global data area') 1195DEFINE_SECTION_FLAG(SHF_MIPS_MERGE, 0x20000000UL, 1196 `section data should be merged to eliminate duplication') 1197DEFINE_SECTION_FLAG(SHF_MIPS_ADDR, 0x40000000UL, 1198 `section data is addressed by default') 1199DEFINE_SECTION_FLAG(SHF_MIPS_STRING, 0x80000000UL, 1200 `section data is string data by default') 1201DEFINE_SECTION_FLAG(SHF_MIPS_NOSTRIP, 0x08000000UL, 1202 `section data may not be stripped') 1203DEFINE_SECTION_FLAG(SHF_MIPS_LOCAL, 0x04000000UL, 1204 `section data local to process') 1205DEFINE_SECTION_FLAG(SHF_MIPS_NAMES, 0x02000000UL, 1206 `linker must generate implicit hidden weak names') 1207DEFINE_SECTION_FLAG(SHF_MIPS_NODUPE, 0x01000000UL, 1208 `linker must retain only one copy') 1209DEFINE_SECTION_FLAG(SHF_ORDERED, 0x40000000UL, 1210 `section is ordered with respect to other sections') 1211DEFINE_SECTION_FLAG(SHF_EXCLUDE, 0x80000000UL, 1212 `section is excluded from executables and shared objects') 1213DEFINE_SECTION_FLAG(SHF_MASKPROC, 0xF0000000UL, 1214 `bits reserved for processor-specific semantics') 1215') 1216 1217# 1218# Special section indices. 1219# 1220define(`DEFINE_SECTION_INDICES',` 1221DEFINE_SECTION_INDEX(SHN_UNDEF, 0, 1222 `undefined section') 1223DEFINE_SECTION_INDEX(SHN_LORESERVE, 0xFF00U, 1224 `start of reserved area') 1225DEFINE_SECTION_INDEX(SHN_LOPROC, 0xFF00U, 1226 `start of processor-specific range') 1227DEFINE_SECTION_INDEX(SHN_BEFORE, 0xFF00U, 1228 `used for section ordering') 1229DEFINE_SECTION_INDEX(SHN_AFTER, 0xFF01U, 1230 `used for section ordering') 1231DEFINE_SECTION_INDEX(SHN_AMD64_LCOMMON, 0xFF02U, 1232 `large common block label') 1233DEFINE_SECTION_INDEX(SHN_MIPS_ACOMMON, 0xFF00U, 1234 `allocated common symbols in a DSO') 1235DEFINE_SECTION_INDEX(SHN_MIPS_TEXT, 0xFF01U, 1236 `Reserved (obsolete)') 1237DEFINE_SECTION_INDEX(SHN_MIPS_DATA, 0xFF02U, 1238 `Reserved (obsolete)') 1239DEFINE_SECTION_INDEX(SHN_MIPS_SCOMMON, 0xFF03U, 1240 `gp-addressable common symbols') 1241DEFINE_SECTION_INDEX(SHN_MIPS_SUNDEFINED, 0xFF04U, 1242 `gp-addressable undefined symbols') 1243DEFINE_SECTION_INDEX(SHN_MIPS_LCOMMON, 0xFF05U, 1244 `local common symbols') 1245DEFINE_SECTION_INDEX(SHN_MIPS_LUNDEFINED, 0xFF06U, 1246 `local undefined symbols') 1247DEFINE_SECTION_INDEX(SHN_HIPROC, 0xFF1FU, 1248 `end of processor-specific range') 1249DEFINE_SECTION_INDEX(SHN_LOOS, 0xFF20U, 1250 `start of OS-specific range') 1251DEFINE_SECTION_INDEX(SHN_SUNW_IGNORE, 0xFF3FU, 1252 `used by dtrace') 1253DEFINE_SECTION_INDEX(SHN_HIOS, 0xFF3FU, 1254 `end of OS-specific range') 1255DEFINE_SECTION_INDEX(SHN_ABS, 0xFFF1U, 1256 `absolute references') 1257DEFINE_SECTION_INDEX(SHN_COMMON, 0xFFF2U, 1258 `references to COMMON areas') 1259DEFINE_SECTION_INDEX(SHN_XINDEX, 0xFFFFU, 1260 `extended index') 1261DEFINE_SECTION_INDEX(SHN_HIRESERVE, 0xFFFFU, 1262 `end of reserved area') 1263') 1264 1265# 1266# Section types. 1267# 1268define(`DEFINE_SECTION_TYPES',` 1269DEFINE_SECTION_TYPE(SHT_NULL, 0, `inactive header') 1270DEFINE_SECTION_TYPE(SHT_PROGBITS, 1, `program defined information') 1271DEFINE_SECTION_TYPE(SHT_SYMTAB, 2, `symbol table') 1272DEFINE_SECTION_TYPE(SHT_STRTAB, 3, `string table') 1273DEFINE_SECTION_TYPE(SHT_RELA, 4, 1274 `relocation entries with addends') 1275DEFINE_SECTION_TYPE(SHT_HASH, 5, `symbol hash table') 1276DEFINE_SECTION_TYPE(SHT_DYNAMIC, 6, 1277 `information for dynamic linking') 1278DEFINE_SECTION_TYPE(SHT_NOTE, 7, `additional notes') 1279DEFINE_SECTION_TYPE(SHT_NOBITS, 8, `section occupying no space') 1280DEFINE_SECTION_TYPE(SHT_REL, 9, 1281 `relocation entries without addends') 1282DEFINE_SECTION_TYPE(SHT_SHLIB, 10, `reserved') 1283DEFINE_SECTION_TYPE(SHT_DYNSYM, 11, `symbol table') 1284DEFINE_SECTION_TYPE(SHT_INIT_ARRAY, 14, 1285 `pointers to initialization functions') 1286DEFINE_SECTION_TYPE(SHT_FINI_ARRAY, 15, 1287 `pointers to termination functions') 1288DEFINE_SECTION_TYPE(SHT_PREINIT_ARRAY, 16, 1289 `pointers to functions called before initialization') 1290DEFINE_SECTION_TYPE(SHT_GROUP, 17, `defines a section group') 1291DEFINE_SECTION_TYPE(SHT_SYMTAB_SHNDX, 18, 1292 `used for extended section numbering') 1293DEFINE_SECTION_TYPE(SHT_LOOS, 0x60000000UL, 1294 `start of OS-specific range') 1295DEFINE_SECTION_TYPE(SHT_SUNW_dof, 0x6FFFFFF4UL, 1296 `used by dtrace') 1297DEFINE_SECTION_TYPE(SHT_SUNW_cap, 0x6FFFFFF5UL, 1298 `capability requirements') 1299DEFINE_SECTION_TYPE(SHT_GNU_ATTRIBUTES, 0x6FFFFFF5UL, 1300 `object attributes') 1301DEFINE_SECTION_TYPE(SHT_SUNW_SIGNATURE, 0x6FFFFFF6UL, 1302 `module verification signature') 1303DEFINE_SECTION_TYPE(SHT_GNU_HASH, 0x6FFFFFF6UL, 1304 `GNU Hash sections') 1305DEFINE_SECTION_TYPE(SHT_GNU_LIBLIST, 0x6FFFFFF7UL, 1306 `List of libraries to be prelinked') 1307DEFINE_SECTION_TYPE(SHT_SUNW_ANNOTATE, 0x6FFFFFF7UL, 1308 `special section where unresolved references are allowed') 1309DEFINE_SECTION_TYPE(SHT_SUNW_DEBUGSTR, 0x6FFFFFF8UL, 1310 `debugging information') 1311DEFINE_SECTION_TYPE(SHT_CHECKSUM, 0x6FFFFFF8UL, 1312 `checksum for dynamic shared objects') 1313DEFINE_SECTION_TYPE(SHT_SUNW_DEBUG, 0x6FFFFFF9UL, 1314 `debugging information') 1315DEFINE_SECTION_TYPE(SHT_SUNW_move, 0x6FFFFFFAUL, 1316 `information to handle partially initialized symbols') 1317DEFINE_SECTION_TYPE(SHT_SUNW_COMDAT, 0x6FFFFFFBUL, 1318 `section supporting merging of multiple copies of data') 1319DEFINE_SECTION_TYPE(SHT_SUNW_syminfo, 0x6FFFFFFCUL, 1320 `additional symbol information') 1321DEFINE_SECTION_TYPE(SHT_SUNW_verdef, 0x6FFFFFFDUL, 1322 `symbol versioning information') 1323DEFINE_SECTION_TYPE(SHT_SUNW_verneed, 0x6FFFFFFEUL, 1324 `symbol versioning requirements') 1325DEFINE_SECTION_TYPE(SHT_SUNW_versym, 0x6FFFFFFFUL, 1326 `symbol versioning table') 1327DEFINE_SECTION_TYPE(SHT_HIOS, 0x6FFFFFFFUL, 1328 `end of OS-specific range') 1329DEFINE_SECTION_TYPE(SHT_LOPROC, 0x70000000UL, 1330 `start of processor-specific range') 1331DEFINE_SECTION_TYPE(SHT_ARM_EXIDX, 0x70000001UL, 1332 `exception index table') 1333DEFINE_SECTION_TYPE(SHT_ARM_PREEMPTMAP, 0x70000002UL, 1334 `BPABI DLL dynamic linking preemption map') 1335DEFINE_SECTION_TYPE(SHT_ARM_ATTRIBUTES, 0x70000003UL, 1336 `object file compatibility attributes') 1337DEFINE_SECTION_TYPE(SHT_ARM_DEBUGOVERLAY, 0x70000004UL, 1338 `overlay debug information') 1339DEFINE_SECTION_TYPE(SHT_ARM_OVERLAYSECTION, 0x70000005UL, 1340 `overlay debug information') 1341DEFINE_SECTION_TYPE(SHT_MIPS_LIBLIST, 0x70000000UL, 1342 `DSO library information used in link') 1343DEFINE_SECTION_TYPE(SHT_MIPS_MSYM, 0x70000001UL, 1344 `MIPS symbol table extension') 1345DEFINE_SECTION_TYPE(SHT_MIPS_CONFLICT, 0x70000002UL, 1346 `symbol conflicting with DSO-defined symbols ') 1347DEFINE_SECTION_TYPE(SHT_MIPS_GPTAB, 0x70000003UL, 1348 `global pointer table') 1349DEFINE_SECTION_TYPE(SHT_MIPS_UCODE, 0x70000004UL, 1350 `reserved') 1351DEFINE_SECTION_TYPE(SHT_MIPS_DEBUG, 0x70000005UL, 1352 `reserved (obsolete debug information)') 1353DEFINE_SECTION_TYPE(SHT_MIPS_REGINFO, 0x70000006UL, 1354 `register usage information') 1355DEFINE_SECTION_TYPE(SHT_MIPS_PACKAGE, 0x70000007UL, 1356 `OSF reserved') 1357DEFINE_SECTION_TYPE(SHT_MIPS_PACKSYM, 0x70000008UL, 1358 `OSF reserved') 1359DEFINE_SECTION_TYPE(SHT_MIPS_RELD, 0x70000009UL, 1360 `dynamic relocation') 1361DEFINE_SECTION_TYPE(SHT_MIPS_IFACE, 0x7000000BUL, 1362 `subprogram interface information') 1363DEFINE_SECTION_TYPE(SHT_MIPS_CONTENT, 0x7000000CUL, 1364 `section content classification') 1365DEFINE_SECTION_TYPE(SHT_MIPS_OPTIONS, 0x7000000DUL, 1366 `general options') 1367DEFINE_SECTION_TYPE(SHT_MIPS_DELTASYM, 0x7000001BUL, 1368 `Delta C++: symbol table') 1369DEFINE_SECTION_TYPE(SHT_MIPS_DELTAINST, 0x7000001CUL, 1370 `Delta C++: instance table') 1371DEFINE_SECTION_TYPE(SHT_MIPS_DELTACLASS, 0x7000001DUL, 1372 `Delta C++: class table') 1373DEFINE_SECTION_TYPE(SHT_MIPS_DWARF, 0x7000001EUL, 1374 `DWARF debug information') 1375DEFINE_SECTION_TYPE(SHT_MIPS_DELTADECL, 0x7000001FUL, 1376 `Delta C++: declarations') 1377DEFINE_SECTION_TYPE(SHT_MIPS_SYMBOL_LIB, 0x70000020UL, 1378 `symbol-to-library mapping') 1379DEFINE_SECTION_TYPE(SHT_MIPS_EVENTS, 0x70000021UL, 1380 `event locations') 1381DEFINE_SECTION_TYPE(SHT_MIPS_TRANSLATE, 0x70000022UL, 1382 `???') 1383DEFINE_SECTION_TYPE(SHT_MIPS_PIXIE, 0x70000023UL, 1384 `special pixie sections') 1385DEFINE_SECTION_TYPE(SHT_MIPS_XLATE, 0x70000024UL, 1386 `address translation table') 1387DEFINE_SECTION_TYPE(SHT_MIPS_XLATE_DEBUG, 0x70000025UL, 1388 `SGI internal address translation table') 1389DEFINE_SECTION_TYPE(SHT_MIPS_WHIRL, 0x70000026UL, 1390 `intermediate code') 1391DEFINE_SECTION_TYPE(SHT_MIPS_EH_REGION, 0x70000027UL, 1392 `C++ exception handling region info') 1393DEFINE_SECTION_TYPE(SHT_MIPS_XLATE_OLD, 0x70000028UL, 1394 `obsolete') 1395DEFINE_SECTION_TYPE(SHT_MIPS_PDR_EXCEPTION, 0x70000029UL, 1396 `runtime procedure descriptor table exception information') 1397DEFINE_SECTION_TYPE(SHT_MIPS_ABIFLAGS, 0x7000002AUL, 1398 `ABI flags') 1399DEFINE_SECTION_TYPE(SHT_SPARC_GOTDATA, 0x70000000UL, 1400 `SPARC-specific data') 1401DEFINE_SECTION_TYPE(SHT_X86_64_UNWIND, 0x70000001UL, 1402 `unwind tables for the AMD64') 1403DEFINE_SECTION_TYPE(SHT_ORDERED, 0x7FFFFFFFUL, 1404 `sort entries in the section') 1405DEFINE_SECTION_TYPE(SHT_HIPROC, 0x7FFFFFFFUL, 1406 `end of processor-specific range') 1407DEFINE_SECTION_TYPE(SHT_LOUSER, 0x80000000UL, 1408 `start of application-specific range') 1409DEFINE_SECTION_TYPE(SHT_HIUSER, 0xFFFFFFFFUL, 1410 `end of application-specific range') 1411') 1412 1413# Aliases for section types. 1414define(`DEFINE_SECTION_TYPE_ALIASES',` 1415DEFINE_SECTION_TYPE_ALIAS(SHT_AMD64_UNWIND, SHT_X86_64_UNWIND) 1416DEFINE_SECTION_TYPE_ALIAS(SHT_GNU_verdef, SHT_SUNW_verdef) 1417DEFINE_SECTION_TYPE_ALIAS(SHT_GNU_verneed, SHT_SUNW_verneed) 1418DEFINE_SECTION_TYPE_ALIAS(SHT_GNU_versym, SHT_SUNW_versym) 1419') 1420 1421# 1422# Symbol binding information. 1423# 1424define(`DEFINE_SYMBOL_BINDINGS',` 1425DEFINE_SYMBOL_BINDING(STB_LOCAL, 0, 1426 `not visible outside defining object file') 1427DEFINE_SYMBOL_BINDING(STB_GLOBAL, 1, 1428 `visible across all object files being combined') 1429DEFINE_SYMBOL_BINDING(STB_WEAK, 2, 1430 `visible across all object files but with low precedence') 1431DEFINE_SYMBOL_BINDING(STB_LOOS, 10, 1432 `start of OS-specific range') 1433DEFINE_SYMBOL_BINDING(STB_GNU_UNIQUE, 10, 1434 `unique symbol (GNU)') 1435DEFINE_SYMBOL_BINDING(STB_HIOS, 12, 1436 `end of OS-specific range') 1437DEFINE_SYMBOL_BINDING(STB_LOPROC, 13, 1438 `start of processor-specific range') 1439DEFINE_SYMBOL_BINDING(STB_HIPROC, 15, 1440 `end of processor-specific range') 1441') 1442 1443# 1444# Symbol types 1445# 1446define(`DEFINE_SYMBOL_TYPES',` 1447DEFINE_SYMBOL_TYPE(STT_NOTYPE, 0, 1448 `unspecified type') 1449DEFINE_SYMBOL_TYPE(STT_OBJECT, 1, 1450 `data object') 1451DEFINE_SYMBOL_TYPE(STT_FUNC, 2, 1452 `executable code') 1453DEFINE_SYMBOL_TYPE(STT_SECTION, 3, 1454 `section') 1455DEFINE_SYMBOL_TYPE(STT_FILE, 4, 1456 `source file') 1457DEFINE_SYMBOL_TYPE(STT_COMMON, 5, 1458 `uninitialized common block') 1459DEFINE_SYMBOL_TYPE(STT_TLS, 6, 1460 `thread local storage') 1461DEFINE_SYMBOL_TYPE(STT_LOOS, 10, 1462 `start of OS-specific types') 1463DEFINE_SYMBOL_TYPE(STT_GNU_IFUNC, 10, 1464 `indirect function') 1465DEFINE_SYMBOL_TYPE(STT_HIOS, 12, 1466 `end of OS-specific types') 1467DEFINE_SYMBOL_TYPE(STT_LOPROC, 13, 1468 `start of processor-specific types') 1469DEFINE_SYMBOL_TYPE(STT_ARM_TFUNC, 13, 1470 `Thumb function (GNU)') 1471DEFINE_SYMBOL_TYPE(STT_ARM_16BIT, 15, 1472 `Thumb label (GNU)') 1473DEFINE_SYMBOL_TYPE(STT_SPARC_REGISTER, 13, 1474 `SPARC register information') 1475DEFINE_SYMBOL_TYPE(STT_HIPROC, 15, 1476 `end of processor-specific types') 1477') 1478 1479# 1480# Symbol binding. 1481# 1482define(`DEFINE_SYMBOL_BINDING_KINDS',` 1483DEFINE_SYMBOL_BINDING_KIND(SYMINFO_BT_SELF, 0xFFFFU, 1484 `bound to self') 1485DEFINE_SYMBOL_BINDING_KIND(SYMINFO_BT_PARENT, 0xFFFEU, 1486 `bound to parent') 1487DEFINE_SYMBOL_BINDING_KIND(SYMINFO_BT_NONE, 0xFFFDU, 1488 `no special binding') 1489') 1490 1491# 1492# Symbol visibility. 1493# 1494define(`DEFINE_SYMBOL_VISIBILITIES',` 1495DEFINE_SYMBOL_VISIBILITY(STV_DEFAULT, 0, 1496 `as specified by symbol type') 1497DEFINE_SYMBOL_VISIBILITY(STV_INTERNAL, 1, 1498 `as defined by processor semantics') 1499DEFINE_SYMBOL_VISIBILITY(STV_HIDDEN, 2, 1500 `hidden from other components') 1501DEFINE_SYMBOL_VISIBILITY(STV_PROTECTED, 3, 1502 `local references are not preemptable') 1503') 1504 1505# 1506# Symbol flags. 1507# 1508define(`DEFINE_SYMBOL_FLAGS',` 1509DEFINE_SYMBOL_FLAG(SYMINFO_FLG_DIRECT, 0x01, 1510 `directly assocated reference') 1511DEFINE_SYMBOL_FLAG(SYMINFO_FLG_COPY, 0x04, 1512 `definition by copy-relocation') 1513DEFINE_SYMBOL_FLAG(SYMINFO_FLG_LAZYLOAD, 0x08, 1514 `object should be lazily loaded') 1515DEFINE_SYMBOL_FLAG(SYMINFO_FLG_DIRECTBIND, 0x10, 1516 `reference should be directly bound') 1517DEFINE_SYMBOL_FLAG(SYMINFO_FLG_NOEXTDIRECT, 0x20, 1518 `external references not allowed to bind to definition') 1519') 1520 1521# 1522# Version dependencies. 1523# 1524define(`DEFINE_VERSIONING_DEPENDENCIES',` 1525DEFINE_VERSIONING_DEPENDENCY(VER_NDX_LOCAL, 0, 1526 `local scope') 1527DEFINE_VERSIONING_DEPENDENCY(VER_NDX_GLOBAL, 1, 1528 `global scope') 1529') 1530 1531# 1532# Version flags. 1533# 1534define(`DEFINE_VERSIONING_FLAGS',` 1535DEFINE_VERSIONING_FLAG(VER_FLG_BASE, 0x1, 1536 `file version') 1537DEFINE_VERSIONING_FLAG(VER_FLG_WEAK, 0x2, 1538 `weak version') 1539') 1540 1541# 1542# Version needs 1543# 1544define(`DEFINE_VERSIONING_NEEDS',` 1545DEFINE_VERSIONING_NEED(VER_NEED_NONE, 0, 1546 `invalid version') 1547DEFINE_VERSIONING_NEED(VER_NEED_CURRENT, 1, 1548 `current version') 1549') 1550 1551# 1552# Versioning numbers. 1553# 1554define(`DEFINE_VERSIONING_NUMBERS',` 1555DEFINE_VERSIONING_NUMBER(VER_DEF_NONE, 0, 1556 `invalid version') 1557DEFINE_VERSIONING_NUMBER(VER_DEF_CURRENT, 1, 1558 `current version') 1559') 1560 1561# 1562# Relocation types. 1563# 1564define(`DEFINE_386_RELOCATIONS',` 1565DEFINE_RELOCATION(R_386_NONE, 0) 1566DEFINE_RELOCATION(R_386_32, 1) 1567DEFINE_RELOCATION(R_386_PC32, 2) 1568DEFINE_RELOCATION(R_386_GOT32, 3) 1569DEFINE_RELOCATION(R_386_PLT32, 4) 1570DEFINE_RELOCATION(R_386_COPY, 5) 1571DEFINE_RELOCATION(R_386_GLOB_DAT, 6) 1572DEFINE_RELOCATION(R_386_JUMP_SLOT, 7) 1573DEFINE_RELOCATION(R_386_RELATIVE, 8) 1574DEFINE_RELOCATION(R_386_GOTOFF, 9) 1575DEFINE_RELOCATION(R_386_GOTPC, 10) 1576DEFINE_RELOCATION(R_386_32PLT, 11) 1577DEFINE_RELOCATION(R_386_TLS_TPOFF, 14) 1578DEFINE_RELOCATION(R_386_TLS_IE, 15) 1579DEFINE_RELOCATION(R_386_TLS_GOTIE, 16) 1580DEFINE_RELOCATION(R_386_TLS_LE, 17) 1581DEFINE_RELOCATION(R_386_TLS_GD, 18) 1582DEFINE_RELOCATION(R_386_TLS_LDM, 19) 1583DEFINE_RELOCATION(R_386_16, 20) 1584DEFINE_RELOCATION(R_386_PC16, 21) 1585DEFINE_RELOCATION(R_386_8, 22) 1586DEFINE_RELOCATION(R_386_PC8, 23) 1587DEFINE_RELOCATION(R_386_TLS_GD_32, 24) 1588DEFINE_RELOCATION(R_386_TLS_GD_PUSH, 25) 1589DEFINE_RELOCATION(R_386_TLS_GD_CALL, 26) 1590DEFINE_RELOCATION(R_386_TLS_GD_POP, 27) 1591DEFINE_RELOCATION(R_386_TLS_LDM_32, 28) 1592DEFINE_RELOCATION(R_386_TLS_LDM_PUSH, 29) 1593DEFINE_RELOCATION(R_386_TLS_LDM_CALL, 30) 1594DEFINE_RELOCATION(R_386_TLS_LDM_POP, 31) 1595DEFINE_RELOCATION(R_386_TLS_LDO_32, 32) 1596DEFINE_RELOCATION(R_386_TLS_IE_32, 33) 1597DEFINE_RELOCATION(R_386_TLS_LE_32, 34) 1598DEFINE_RELOCATION(R_386_TLS_DTPMOD32, 35) 1599DEFINE_RELOCATION(R_386_TLS_DTPOFF32, 36) 1600DEFINE_RELOCATION(R_386_TLS_TPOFF32, 37) 1601DEFINE_RELOCATION(R_386_SIZE32, 38) 1602DEFINE_RELOCATION(R_386_TLS_GOTDESC, 39) 1603DEFINE_RELOCATION(R_386_TLS_DESC_CALL, 40) 1604DEFINE_RELOCATION(R_386_TLS_DESC, 41) 1605DEFINE_RELOCATION(R_386_IRELATIVE, 42) 1606DEFINE_RELOCATION(R_386_GOT32X, 43) 1607') 1608 1609define(`DEFINE_AARCH64_RELOCATIONS',` 1610DEFINE_RELOCATION(R_AARCH64_NONE, 0) 1611DEFINE_RELOCATION(R_AARCH64_ABS64, 257) 1612DEFINE_RELOCATION(R_AARCH64_ABS32, 258) 1613DEFINE_RELOCATION(R_AARCH64_ABS16, 259) 1614DEFINE_RELOCATION(R_AARCH64_PREL64, 260) 1615DEFINE_RELOCATION(R_AARCH64_PREL32, 261) 1616DEFINE_RELOCATION(R_AARCH64_PREL16, 262) 1617DEFINE_RELOCATION(R_AARCH64_MOVW_UABS_G0, 263) 1618DEFINE_RELOCATION(R_AARCH64_MOVW_UABS_G0_NC, 264) 1619DEFINE_RELOCATION(R_AARCH64_MOVW_UABS_G1, 265) 1620DEFINE_RELOCATION(R_AARCH64_MOVW_UABS_G1_NC, 266) 1621DEFINE_RELOCATION(R_AARCH64_MOVW_UABS_G2, 267) 1622DEFINE_RELOCATION(R_AARCH64_MOVW_UABS_G2_NC, 268) 1623DEFINE_RELOCATION(R_AARCH64_MOVW_UABS_G3, 269) 1624DEFINE_RELOCATION(R_AARCH64_MOVW_SABS_G0, 270) 1625DEFINE_RELOCATION(R_AARCH64_MOVW_SABS_G1, 271) 1626DEFINE_RELOCATION(R_AARCH64_MOVW_SABS_G2, 272) 1627DEFINE_RELOCATION(R_AARCH64_LD_PREL_LO19, 273) 1628DEFINE_RELOCATION(R_AARCH64_ADR_PREL_LO21, 274) 1629DEFINE_RELOCATION(R_AARCH64_ADR_PREL_PG_HI21, 275) 1630DEFINE_RELOCATION(R_AARCH64_ADR_PREL_PG_HI21_NC, 276) 1631DEFINE_RELOCATION(R_AARCH64_ADD_ABS_LO12_NC, 277) 1632DEFINE_RELOCATION(R_AARCH64_LDST8_ABS_LO12_NC, 278) 1633DEFINE_RELOCATION(R_AARCH64_TSTBR14, 279) 1634DEFINE_RELOCATION(R_AARCH64_CONDBR19, 280) 1635DEFINE_RELOCATION(R_AARCH64_JUMP26, 282) 1636DEFINE_RELOCATION(R_AARCH64_CALL26, 283) 1637DEFINE_RELOCATION(R_AARCH64_LDST16_ABS_LO12_NC, 284) 1638DEFINE_RELOCATION(R_AARCH64_LDST32_ABS_LO12_NC, 285) 1639DEFINE_RELOCATION(R_AARCH64_LDST64_ABS_LO12_NC, 286) 1640DEFINE_RELOCATION(R_AARCH64_MOVW_PREL_G0, 287) 1641DEFINE_RELOCATION(R_AARCH64_MOVW_PREL_G0_NC, 288) 1642DEFINE_RELOCATION(R_AARCH64_MOVW_PREL_G1, 289) 1643DEFINE_RELOCATION(R_AARCH64_MOVW_PREL_G1_NC, 290) 1644DEFINE_RELOCATION(R_AARCH64_MOVW_PREL_G2, 291) 1645DEFINE_RELOCATION(R_AARCH64_MOVW_PREL_G2_NC, 292) 1646DEFINE_RELOCATION(R_AARCH64_MOVW_PREL_G3, 293) 1647DEFINE_RELOCATION(R_AARCH64_LDST128_ABS_LO12_NC, 299) 1648DEFINE_RELOCATION(R_AARCH64_MOVW_GOTOFF_G0, 300) 1649DEFINE_RELOCATION(R_AARCH64_MOVW_GOTOFF_G0_NC, 301) 1650DEFINE_RELOCATION(R_AARCH64_MOVW_GOTOFF_G1, 302) 1651DEFINE_RELOCATION(R_AARCH64_MOVW_GOTOFF_G1_NC, 303) 1652DEFINE_RELOCATION(R_AARCH64_MOVW_GOTOFF_G2, 304) 1653DEFINE_RELOCATION(R_AARCH64_MOVW_GOTOFF_G2_NC, 305) 1654DEFINE_RELOCATION(R_AARCH64_MOVW_GOTOFF_G3, 306) 1655DEFINE_RELOCATION(R_AARCH64_GOTREL64, 307) 1656DEFINE_RELOCATION(R_AARCH64_GOTREL32, 308) 1657DEFINE_RELOCATION(R_AARCH64_GOT_LD_PREL19, 309) 1658DEFINE_RELOCATION(R_AARCH64_LD64_GOTOFF_LO15, 310) 1659DEFINE_RELOCATION(R_AARCH64_ADR_GOT_PAGE, 311) 1660DEFINE_RELOCATION(R_AARCH64_LD64_GOT_LO12_NC, 312) 1661DEFINE_RELOCATION(R_AARCH64_LD64_GOTPAGE_LO15, 313) 1662DEFINE_RELOCATION(R_AARCH64_TLSGD_ADR_PREL21, 512) 1663DEFINE_RELOCATION(R_AARCH64_TLSGD_ADR_PAGE21, 513) 1664DEFINE_RELOCATION(R_AARCH64_TLSGD_ADD_LO12_NC, 514) 1665DEFINE_RELOCATION(R_AARCH64_TLSGD_MOVW_G1, 515) 1666DEFINE_RELOCATION(R_AARCH64_TLSGD_MOVW_G0_NC, 516) 1667DEFINE_RELOCATION(R_AARCH64_TLSLD_ADR_PREL21, 517) 1668DEFINE_RELOCATION(R_AARCH64_TLSLD_ADR_PAGE21, 518) 1669DEFINE_RELOCATION(R_AARCH64_TLSLD_ADD_LO12_NC, 519) 1670DEFINE_RELOCATION(R_AARCH64_TLSLD_MOVW_G1, 520) 1671DEFINE_RELOCATION(R_AARCH64_TLSLD_MOVW_G0_NC, 521) 1672DEFINE_RELOCATION(R_AARCH64_TLSLD_LD_PREL19, 522) 1673DEFINE_RELOCATION(R_AARCH64_TLSLD_MOVW_DTPREL_G2, 523) 1674DEFINE_RELOCATION(R_AARCH64_TLSLD_MOVW_DTPREL_G1, 524) 1675DEFINE_RELOCATION(R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC, 525) 1676DEFINE_RELOCATION(R_AARCH64_TLSLD_MOVW_DTPREL_G0, 526) 1677DEFINE_RELOCATION(R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC, 527) 1678DEFINE_RELOCATION(R_AARCH64_TLSLD_ADD_DTPREL_HI12, 529) 1679DEFINE_RELOCATION(R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC, 530) 1680DEFINE_RELOCATION(R_AARCH64_TLSLD_LDST8_DTPREL_LO12, 531) 1681DEFINE_RELOCATION(R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC, 532) 1682DEFINE_RELOCATION(R_AARCH64_TLSLD_LDST16_DTPREL_LO12, 533) 1683DEFINE_RELOCATION(R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC, 534) 1684DEFINE_RELOCATION(R_AARCH64_TLSLD_LDST32_DTPREL_LO12, 535) 1685DEFINE_RELOCATION(R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC, 536) 1686DEFINE_RELOCATION(R_AARCH64_TLSLD_LDST64_DTPREL_LO12, 537) 1687DEFINE_RELOCATION(R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC, 538) 1688DEFINE_RELOCATION(R_AARCH64_TLSIE_MOVW_GOTTPREL_G1, 539) 1689DEFINE_RELOCATION(R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC, 540) 1690DEFINE_RELOCATION(R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21, 541) 1691DEFINE_RELOCATION(R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC, 542) 1692DEFINE_RELOCATION(R_AARCH64_TLSIE_LD_GOTTPREL_PREL19, 543) 1693DEFINE_RELOCATION(R_AARCH64_TLSLE_MOVW_TPREL_G2, 544) 1694DEFINE_RELOCATION(R_AARCH64_TLSLE_MOVW_TPREL_G1, 545) 1695DEFINE_RELOCATION(R_AARCH64_TLSLE_MOVW_TPREL_G1_NC, 546) 1696DEFINE_RELOCATION(R_AARCH64_TLSLE_MOVW_TPREL_G0, 547) 1697DEFINE_RELOCATION(R_AARCH64_TLSLE_MOVW_TPREL_G0_NC, 548) 1698DEFINE_RELOCATION(R_AARCH64_TLSLE_ADD_TPREL_HI12, 549) 1699DEFINE_RELOCATION(R_AARCH64_TLSLE_ADD_TPREL_LO12, 550) 1700DEFINE_RELOCATION(R_AARCH64_TLSLE_ADD_TPREL_LO12_NC, 551) 1701DEFINE_RELOCATION(R_AARCH64_TLSLE_LDST8_TPREL_LO12, 552) 1702DEFINE_RELOCATION(R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC, 553) 1703DEFINE_RELOCATION(R_AARCH64_TLSLE_LDST16_TPREL_LO12, 554) 1704DEFINE_RELOCATION(R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC, 555) 1705DEFINE_RELOCATION(R_AARCH64_TLSLE_LDST32_TPREL_LO12, 556) 1706DEFINE_RELOCATION(R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC, 557) 1707DEFINE_RELOCATION(R_AARCH64_TLSLE_LDST64_TPREL_LO12, 558) 1708DEFINE_RELOCATION(R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC, 559) 1709DEFINE_RELOCATION(R_AARCH64_TLSDESC_LD_PREL19, 560) 1710DEFINE_RELOCATION(R_AARCH64_TLSDESC_ADR_PREL21, 561) 1711DEFINE_RELOCATION(R_AARCH64_TLSDESC_ADR_PAGE21, 562) 1712DEFINE_RELOCATION(R_AARCH64_TLSDESC_LD64_LO12, 563) 1713DEFINE_RELOCATION(R_AARCH64_TLSDESC_ADD_LO12, 564) 1714DEFINE_RELOCATION(R_AARCH64_TLSDESC_OFF_G1, 565) 1715DEFINE_RELOCATION(R_AARCH64_TLSDESC_OFF_G0_NC, 566) 1716DEFINE_RELOCATION(R_AARCH64_TLSDESC_LDR, 567) 1717DEFINE_RELOCATION(R_AARCH64_TLSDESC_ADD, 568) 1718DEFINE_RELOCATION(R_AARCH64_TLSDESC_CALL, 569) 1719DEFINE_RELOCATION(R_AARCH64_TLSLE_LDST128_TPREL_LO12, 570) 1720DEFINE_RELOCATION(R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC, 571) 1721DEFINE_RELOCATION(R_AARCH64_TLSLD_LDST128_DTPREL_LO12, 572) 1722DEFINE_RELOCATION(R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC, 573) 1723DEFINE_RELOCATION(R_AARCH64_COPY, 1024) 1724DEFINE_RELOCATION(R_AARCH64_GLOB_DAT, 1025) 1725DEFINE_RELOCATION(R_AARCH64_JUMP_SLOT, 1026) 1726DEFINE_RELOCATION(R_AARCH64_RELATIVE, 1027) 1727DEFINE_RELOCATION(R_AARCH64_TLS_DTPREL64, 1028) 1728DEFINE_RELOCATION(R_AARCH64_TLS_DTPMOD64, 1029) 1729DEFINE_RELOCATION(R_AARCH64_TLS_TPREL64, 1030) 1730DEFINE_RELOCATION(R_AARCH64_TLSDESC, 1031) 1731DEFINE_RELOCATION(R_AARCH64_IRELATIVE, 1032) 1732') 1733 1734# 1735# These are the symbols used in the Sun ``Linkers and Loaders 1736# Guide'', Document No: 817-1984-17. See the X86_64 relocations list 1737# below for the spellings used in the ELF specification. 1738# 1739define(`DEFINE_AMD64_RELOCATIONS',` 1740DEFINE_RELOCATION(R_AMD64_NONE, 0) 1741DEFINE_RELOCATION(R_AMD64_64, 1) 1742DEFINE_RELOCATION(R_AMD64_PC32, 2) 1743DEFINE_RELOCATION(R_AMD64_GOT32, 3) 1744DEFINE_RELOCATION(R_AMD64_PLT32, 4) 1745DEFINE_RELOCATION(R_AMD64_COPY, 5) 1746DEFINE_RELOCATION(R_AMD64_GLOB_DAT, 6) 1747DEFINE_RELOCATION(R_AMD64_JUMP_SLOT, 7) 1748DEFINE_RELOCATION(R_AMD64_RELATIVE, 8) 1749DEFINE_RELOCATION(R_AMD64_GOTPCREL, 9) 1750DEFINE_RELOCATION(R_AMD64_32, 10) 1751DEFINE_RELOCATION(R_AMD64_32S, 11) 1752DEFINE_RELOCATION(R_AMD64_16, 12) 1753DEFINE_RELOCATION(R_AMD64_PC16, 13) 1754DEFINE_RELOCATION(R_AMD64_8, 14) 1755DEFINE_RELOCATION(R_AMD64_PC8, 15) 1756DEFINE_RELOCATION(R_AMD64_PC64, 24) 1757DEFINE_RELOCATION(R_AMD64_GOTOFF64, 25) 1758DEFINE_RELOCATION(R_AMD64_GOTPC32, 26) 1759') 1760 1761# 1762# Relocation definitions from the ARM ELF ABI, version "ARM IHI 1763# 0044E" released on 30th November 2012. 1764# 1765define(`DEFINE_ARM_RELOCATIONS',` 1766DEFINE_RELOCATION(R_ARM_NONE, 0) 1767DEFINE_RELOCATION(R_ARM_PC24, 1) 1768DEFINE_RELOCATION(R_ARM_ABS32, 2) 1769DEFINE_RELOCATION(R_ARM_REL32, 3) 1770DEFINE_RELOCATION(R_ARM_LDR_PC_G0, 4) 1771DEFINE_RELOCATION(R_ARM_ABS16, 5) 1772DEFINE_RELOCATION(R_ARM_ABS12, 6) 1773DEFINE_RELOCATION(R_ARM_THM_ABS5, 7) 1774DEFINE_RELOCATION(R_ARM_ABS8, 8) 1775DEFINE_RELOCATION(R_ARM_SBREL32, 9) 1776DEFINE_RELOCATION(R_ARM_THM_CALL, 10) 1777DEFINE_RELOCATION(R_ARM_THM_PC8, 11) 1778DEFINE_RELOCATION(R_ARM_BREL_ADJ, 12) 1779DEFINE_RELOCATION(R_ARM_SWI24, 13) 1780DEFINE_RELOCATION(R_ARM_TLS_DESC, 13) 1781DEFINE_RELOCATION(R_ARM_THM_SWI8, 14) 1782DEFINE_RELOCATION(R_ARM_XPC25, 15) 1783DEFINE_RELOCATION(R_ARM_THM_XPC22, 16) 1784DEFINE_RELOCATION(R_ARM_TLS_DTPMOD32, 17) 1785DEFINE_RELOCATION(R_ARM_TLS_DTPOFF32, 18) 1786DEFINE_RELOCATION(R_ARM_TLS_TPOFF32, 19) 1787DEFINE_RELOCATION(R_ARM_COPY, 20) 1788DEFINE_RELOCATION(R_ARM_GLOB_DAT, 21) 1789DEFINE_RELOCATION(R_ARM_JUMP_SLOT, 22) 1790DEFINE_RELOCATION(R_ARM_RELATIVE, 23) 1791DEFINE_RELOCATION(R_ARM_GOTOFF32, 24) 1792DEFINE_RELOCATION(R_ARM_BASE_PREL, 25) 1793DEFINE_RELOCATION(R_ARM_GOT_BREL, 26) 1794DEFINE_RELOCATION(R_ARM_PLT32, 27) 1795DEFINE_RELOCATION(R_ARM_CALL, 28) 1796DEFINE_RELOCATION(R_ARM_JUMP24, 29) 1797DEFINE_RELOCATION(R_ARM_THM_JUMP24, 30) 1798DEFINE_RELOCATION(R_ARM_BASE_ABS, 31) 1799DEFINE_RELOCATION(R_ARM_ALU_PCREL_7_0, 32) 1800DEFINE_RELOCATION(R_ARM_ALU_PCREL_15_8, 33) 1801DEFINE_RELOCATION(R_ARM_ALU_PCREL_23_15, 34) 1802DEFINE_RELOCATION(R_ARM_LDR_SBREL_11_0_NC, 35) 1803DEFINE_RELOCATION(R_ARM_ALU_SBREL_19_12_NC, 36) 1804DEFINE_RELOCATION(R_ARM_ALU_SBREL_27_20_CK, 37) 1805DEFINE_RELOCATION(R_ARM_TARGET1, 38) 1806DEFINE_RELOCATION(R_ARM_SBREL31, 39) 1807DEFINE_RELOCATION(R_ARM_V4BX, 40) 1808DEFINE_RELOCATION(R_ARM_TARGET2, 41) 1809DEFINE_RELOCATION(R_ARM_PREL31, 42) 1810DEFINE_RELOCATION(R_ARM_MOVW_ABS_NC, 43) 1811DEFINE_RELOCATION(R_ARM_MOVT_ABS, 44) 1812DEFINE_RELOCATION(R_ARM_MOVW_PREL_NC, 45) 1813DEFINE_RELOCATION(R_ARM_MOVT_PREL, 46) 1814DEFINE_RELOCATION(R_ARM_THM_MOVW_ABS_NC, 47) 1815DEFINE_RELOCATION(R_ARM_THM_MOVT_ABS, 48) 1816DEFINE_RELOCATION(R_ARM_THM_MOVW_PREL_NC, 49) 1817DEFINE_RELOCATION(R_ARM_THM_MOVT_PREL, 50) 1818DEFINE_RELOCATION(R_ARM_THM_JUMP19, 51) 1819DEFINE_RELOCATION(R_ARM_THM_JUMP6, 52) 1820DEFINE_RELOCATION(R_ARM_THM_ALU_PREL_11_0, 53) 1821DEFINE_RELOCATION(R_ARM_THM_PC12, 54) 1822DEFINE_RELOCATION(R_ARM_ABS32_NOI, 55) 1823DEFINE_RELOCATION(R_ARM_REL32_NOI, 56) 1824DEFINE_RELOCATION(R_ARM_ALU_PC_G0_NC, 57) 1825DEFINE_RELOCATION(R_ARM_ALU_PC_G0, 58) 1826DEFINE_RELOCATION(R_ARM_ALU_PC_G1_NC, 59) 1827DEFINE_RELOCATION(R_ARM_ALU_PC_G1, 60) 1828DEFINE_RELOCATION(R_ARM_ALU_PC_G2, 61) 1829DEFINE_RELOCATION(R_ARM_LDR_PC_G1, 62) 1830DEFINE_RELOCATION(R_ARM_LDR_PC_G2, 63) 1831DEFINE_RELOCATION(R_ARM_LDRS_PC_G0, 64) 1832DEFINE_RELOCATION(R_ARM_LDRS_PC_G1, 65) 1833DEFINE_RELOCATION(R_ARM_LDRS_PC_G2, 66) 1834DEFINE_RELOCATION(R_ARM_LDC_PC_G0, 67) 1835DEFINE_RELOCATION(R_ARM_LDC_PC_G1, 68) 1836DEFINE_RELOCATION(R_ARM_LDC_PC_G2, 69) 1837DEFINE_RELOCATION(R_ARM_ALU_SB_G0_NC, 70) 1838DEFINE_RELOCATION(R_ARM_ALU_SB_G0, 71) 1839DEFINE_RELOCATION(R_ARM_ALU_SB_G1_NC, 72) 1840DEFINE_RELOCATION(R_ARM_ALU_SB_G1, 73) 1841DEFINE_RELOCATION(R_ARM_ALU_SB_G2, 74) 1842DEFINE_RELOCATION(R_ARM_LDR_SB_G0, 75) 1843DEFINE_RELOCATION(R_ARM_LDR_SB_G1, 76) 1844DEFINE_RELOCATION(R_ARM_LDR_SB_G2, 77) 1845DEFINE_RELOCATION(R_ARM_LDRS_SB_G0, 78) 1846DEFINE_RELOCATION(R_ARM_LDRS_SB_G1, 79) 1847DEFINE_RELOCATION(R_ARM_LDRS_SB_G2, 80) 1848DEFINE_RELOCATION(R_ARM_LDC_SB_G0, 81) 1849DEFINE_RELOCATION(R_ARM_LDC_SB_G1, 82) 1850DEFINE_RELOCATION(R_ARM_LDC_SB_G2, 83) 1851DEFINE_RELOCATION(R_ARM_MOVW_BREL_NC, 84) 1852DEFINE_RELOCATION(R_ARM_MOVT_BREL, 85) 1853DEFINE_RELOCATION(R_ARM_MOVW_BREL, 86) 1854DEFINE_RELOCATION(R_ARM_THM_MOVW_BREL_NC, 87) 1855DEFINE_RELOCATION(R_ARM_THM_MOVT_BREL, 88) 1856DEFINE_RELOCATION(R_ARM_THM_MOVW_BREL, 89) 1857DEFINE_RELOCATION(R_ARM_TLS_GOTDESC, 90) 1858DEFINE_RELOCATION(R_ARM_TLS_CALL, 91) 1859DEFINE_RELOCATION(R_ARM_TLS_DESCSEQ, 92) 1860DEFINE_RELOCATION(R_ARM_THM_TLS_CALL, 93) 1861DEFINE_RELOCATION(R_ARM_PLT32_ABS, 94) 1862DEFINE_RELOCATION(R_ARM_GOT_ABS, 95) 1863DEFINE_RELOCATION(R_ARM_GOT_PREL, 96) 1864DEFINE_RELOCATION(R_ARM_GOT_BREL12, 97) 1865DEFINE_RELOCATION(R_ARM_GOTOFF12, 98) 1866DEFINE_RELOCATION(R_ARM_GOTRELAX, 99) 1867DEFINE_RELOCATION(R_ARM_GNU_VTENTRY, 100) 1868DEFINE_RELOCATION(R_ARM_GNU_VTINHERIT, 101) 1869DEFINE_RELOCATION(R_ARM_THM_JUMP11, 102) 1870DEFINE_RELOCATION(R_ARM_THM_JUMP8, 103) 1871DEFINE_RELOCATION(R_ARM_TLS_GD32, 104) 1872DEFINE_RELOCATION(R_ARM_TLS_LDM32, 105) 1873DEFINE_RELOCATION(R_ARM_TLS_LDO32, 106) 1874DEFINE_RELOCATION(R_ARM_TLS_IE32, 107) 1875DEFINE_RELOCATION(R_ARM_TLS_LE32, 108) 1876DEFINE_RELOCATION(R_ARM_TLS_LDO12, 109) 1877DEFINE_RELOCATION(R_ARM_TLS_LE12, 110) 1878DEFINE_RELOCATION(R_ARM_TLS_IE12GP, 111) 1879DEFINE_RELOCATION(R_ARM_PRIVATE_0, 112) 1880DEFINE_RELOCATION(R_ARM_PRIVATE_1, 113) 1881DEFINE_RELOCATION(R_ARM_PRIVATE_2, 114) 1882DEFINE_RELOCATION(R_ARM_PRIVATE_3, 115) 1883DEFINE_RELOCATION(R_ARM_PRIVATE_4, 116) 1884DEFINE_RELOCATION(R_ARM_PRIVATE_5, 117) 1885DEFINE_RELOCATION(R_ARM_PRIVATE_6, 118) 1886DEFINE_RELOCATION(R_ARM_PRIVATE_7, 119) 1887DEFINE_RELOCATION(R_ARM_PRIVATE_8, 120) 1888DEFINE_RELOCATION(R_ARM_PRIVATE_9, 121) 1889DEFINE_RELOCATION(R_ARM_PRIVATE_10, 122) 1890DEFINE_RELOCATION(R_ARM_PRIVATE_11, 123) 1891DEFINE_RELOCATION(R_ARM_PRIVATE_12, 124) 1892DEFINE_RELOCATION(R_ARM_PRIVATE_13, 125) 1893DEFINE_RELOCATION(R_ARM_PRIVATE_14, 126) 1894DEFINE_RELOCATION(R_ARM_PRIVATE_15, 127) 1895DEFINE_RELOCATION(R_ARM_ME_TOO, 128) 1896DEFINE_RELOCATION(R_ARM_THM_TLS_DESCSEQ16, 129) 1897DEFINE_RELOCATION(R_ARM_THM_TLS_DESCSEQ32, 130) 1898DEFINE_RELOCATION(R_ARM_THM_GOT_BREL12, 131) 1899DEFINE_RELOCATION(R_ARM_IRELATIVE, 140) 1900') 1901 1902define(`DEFINE_IA64_RELOCATIONS',` 1903DEFINE_RELOCATION(R_IA_64_NONE, 0) 1904DEFINE_RELOCATION(R_IA_64_IMM14, 0x21) 1905DEFINE_RELOCATION(R_IA_64_IMM22, 0x22) 1906DEFINE_RELOCATION(R_IA_64_IMM64, 0x23) 1907DEFINE_RELOCATION(R_IA_64_DIR32MSB, 0x24) 1908DEFINE_RELOCATION(R_IA_64_DIR32LSB, 0x25) 1909DEFINE_RELOCATION(R_IA_64_DIR64MSB, 0x26) 1910DEFINE_RELOCATION(R_IA_64_DIR64LSB, 0x27) 1911DEFINE_RELOCATION(R_IA_64_GPREL22, 0x2a) 1912DEFINE_RELOCATION(R_IA_64_GPREL64I, 0x2b) 1913DEFINE_RELOCATION(R_IA_64_GPREL32MSB, 0x2c) 1914DEFINE_RELOCATION(R_IA_64_GPREL32LSB, 0x2d) 1915DEFINE_RELOCATION(R_IA_64_GPREL64MSB, 0x2e) 1916DEFINE_RELOCATION(R_IA_64_GPREL64LSB, 0x2f) 1917DEFINE_RELOCATION(R_IA_64_LTOFF22, 0x32) 1918DEFINE_RELOCATION(R_IA_64_LTOFF64I, 0x33) 1919DEFINE_RELOCATION(R_IA_64_PLTOFF22, 0x3a) 1920DEFINE_RELOCATION(R_IA_64_PLTOFF64I, 0x3b) 1921DEFINE_RELOCATION(R_IA_64_PLTOFF64MSB, 0x3e) 1922DEFINE_RELOCATION(R_IA_64_PLTOFF64LSB, 0x3f) 1923DEFINE_RELOCATION(R_IA_64_FPTR64I, 0x43) 1924DEFINE_RELOCATION(R_IA_64_FPTR32MSB, 0x44) 1925DEFINE_RELOCATION(R_IA_64_FPTR32LSB, 0x45) 1926DEFINE_RELOCATION(R_IA_64_FPTR64MSB, 0x46) 1927DEFINE_RELOCATION(R_IA_64_FPTR64LSB, 0x47) 1928DEFINE_RELOCATION(R_IA_64_PCREL60B, 0x48) 1929DEFINE_RELOCATION(R_IA_64_PCREL21B, 0x49) 1930DEFINE_RELOCATION(R_IA_64_PCREL21M, 0x4a) 1931DEFINE_RELOCATION(R_IA_64_PCREL21F, 0x4b) 1932DEFINE_RELOCATION(R_IA_64_PCREL32MSB, 0x4c) 1933DEFINE_RELOCATION(R_IA_64_PCREL32LSB, 0x4d) 1934DEFINE_RELOCATION(R_IA_64_PCREL64MSB, 0x4e) 1935DEFINE_RELOCATION(R_IA_64_PCREL64LSB, 0x4f) 1936DEFINE_RELOCATION(R_IA_64_LTOFF_FPTR22, 0x52) 1937DEFINE_RELOCATION(R_IA_64_LTOFF_FPTR64I, 0x53) 1938DEFINE_RELOCATION(R_IA_64_LTOFF_FPTR32MSB, 0x54) 1939DEFINE_RELOCATION(R_IA_64_LTOFF_FPTR32LSB, 0x55) 1940DEFINE_RELOCATION(R_IA_64_LTOFF_FPTR64MSB, 0x56) 1941DEFINE_RELOCATION(R_IA_64_LTOFF_FPTR64LSB, 0x57) 1942DEFINE_RELOCATION(R_IA_64_SEGREL32MSB, 0x5c) 1943DEFINE_RELOCATION(R_IA_64_SEGREL32LSB, 0x5d) 1944DEFINE_RELOCATION(R_IA_64_SEGREL64MSB, 0x5e) 1945DEFINE_RELOCATION(R_IA_64_SEGREL64LSB, 0x5f) 1946DEFINE_RELOCATION(R_IA_64_SECREL32MSB, 0x64) 1947DEFINE_RELOCATION(R_IA_64_SECREL32LSB, 0x65) 1948DEFINE_RELOCATION(R_IA_64_SECREL64MSB, 0x66) 1949DEFINE_RELOCATION(R_IA_64_SECREL64LSB, 0x67) 1950DEFINE_RELOCATION(R_IA_64_REL32MSB, 0x6c) 1951DEFINE_RELOCATION(R_IA_64_REL32LSB, 0x6d) 1952DEFINE_RELOCATION(R_IA_64_REL64MSB, 0x6e) 1953DEFINE_RELOCATION(R_IA_64_REL64LSB, 0x6f) 1954DEFINE_RELOCATION(R_IA_64_LTV32MSB, 0x74) 1955DEFINE_RELOCATION(R_IA_64_LTV32LSB, 0x75) 1956DEFINE_RELOCATION(R_IA_64_LTV64MSB, 0x76) 1957DEFINE_RELOCATION(R_IA_64_LTV64LSB, 0x77) 1958DEFINE_RELOCATION(R_IA_64_PCREL21BI, 0x79) 1959DEFINE_RELOCATION(R_IA_64_PCREL22, 0x7A) 1960DEFINE_RELOCATION(R_IA_64_PCREL64I, 0x7B) 1961DEFINE_RELOCATION(R_IA_64_IPLTMSB, 0x80) 1962DEFINE_RELOCATION(R_IA_64_IPLTLSB, 0x81) 1963DEFINE_RELOCATION(R_IA_64_SUB, 0x85) 1964DEFINE_RELOCATION(R_IA_64_LTOFF22X, 0x86) 1965DEFINE_RELOCATION(R_IA_64_LDXMOV, 0x87) 1966DEFINE_RELOCATION(R_IA_64_TPREL14, 0x91) 1967DEFINE_RELOCATION(R_IA_64_TPREL22, 0x92) 1968DEFINE_RELOCATION(R_IA_64_TPREL64I, 0x93) 1969DEFINE_RELOCATION(R_IA_64_TPREL64MSB, 0x96) 1970DEFINE_RELOCATION(R_IA_64_TPREL64LSB, 0x97) 1971DEFINE_RELOCATION(R_IA_64_LTOFF_TPREL22, 0x9A) 1972DEFINE_RELOCATION(R_IA_64_DTPMOD64MSB, 0xA6) 1973DEFINE_RELOCATION(R_IA_64_DTPMOD64LSB, 0xA7) 1974DEFINE_RELOCATION(R_IA_64_LTOFF_DTPMOD22, 0xAA) 1975DEFINE_RELOCATION(R_IA_64_DTPREL14, 0xB1) 1976DEFINE_RELOCATION(R_IA_64_DTPREL22, 0xB2) 1977DEFINE_RELOCATION(R_IA_64_DTPREL64I, 0xB3) 1978DEFINE_RELOCATION(R_IA_64_DTPREL32MSB, 0xB4) 1979DEFINE_RELOCATION(R_IA_64_DTPREL32LSB, 0xB5) 1980DEFINE_RELOCATION(R_IA_64_DTPREL64MSB, 0xB6) 1981DEFINE_RELOCATION(R_IA_64_DTPREL64LSB, 0xB7) 1982DEFINE_RELOCATION(R_IA_64_LTOFF_DTPREL22, 0xBA) 1983') 1984 1985define(`DEFINE_MIPS_RELOCATIONS',` 1986DEFINE_RELOCATION(R_MIPS_NONE, 0) 1987DEFINE_RELOCATION(R_MIPS_16, 1) 1988DEFINE_RELOCATION(R_MIPS_32, 2) 1989DEFINE_RELOCATION(R_MIPS_REL32, 3) 1990DEFINE_RELOCATION(R_MIPS_26, 4) 1991DEFINE_RELOCATION(R_MIPS_HI16, 5) 1992DEFINE_RELOCATION(R_MIPS_LO16, 6) 1993DEFINE_RELOCATION(R_MIPS_GPREL16, 7) 1994DEFINE_RELOCATION(R_MIPS_LITERAL, 8) 1995DEFINE_RELOCATION(R_MIPS_GOT16, 9) 1996DEFINE_RELOCATION(R_MIPS_PC16, 10) 1997DEFINE_RELOCATION(R_MIPS_CALL16, 11) 1998DEFINE_RELOCATION(R_MIPS_GPREL32, 12) 1999DEFINE_RELOCATION(R_MIPS_SHIFT5, 16) 2000DEFINE_RELOCATION(R_MIPS_SHIFT6, 17) 2001DEFINE_RELOCATION(R_MIPS_64, 18) 2002DEFINE_RELOCATION(R_MIPS_GOT_DISP, 19) 2003DEFINE_RELOCATION(R_MIPS_GOT_PAGE, 20) 2004DEFINE_RELOCATION(R_MIPS_GOT_OFST, 21) 2005DEFINE_RELOCATION(R_MIPS_GOT_HI16, 22) 2006DEFINE_RELOCATION(R_MIPS_GOT_LO16, 23) 2007DEFINE_RELOCATION(R_MIPS_SUB, 24) 2008DEFINE_RELOCATION(R_MIPS_CALLHI16, 30) 2009DEFINE_RELOCATION(R_MIPS_CALLLO16, 31) 2010DEFINE_RELOCATION(R_MIPS_JALR, 37) 2011DEFINE_RELOCATION(R_MIPS_TLS_DTPMOD32, 38) 2012DEFINE_RELOCATION(R_MIPS_TLS_DTPREL32, 39) 2013DEFINE_RELOCATION(R_MIPS_TLS_DTPMOD64, 40) 2014DEFINE_RELOCATION(R_MIPS_TLS_DTPREL64, 41) 2015DEFINE_RELOCATION(R_MIPS_TLS_GD, 42) 2016DEFINE_RELOCATION(R_MIPS_TLS_LDM, 43) 2017DEFINE_RELOCATION(R_MIPS_TLS_DTPREL_HI16, 44) 2018DEFINE_RELOCATION(R_MIPS_TLS_DTPREL_LO16, 45) 2019DEFINE_RELOCATION(R_MIPS_TLS_GOTTPREL, 46) 2020DEFINE_RELOCATION(R_MIPS_TLS_TPREL32, 47) 2021DEFINE_RELOCATION(R_MIPS_TLS_TPREL64, 48) 2022DEFINE_RELOCATION(R_MIPS_TLS_TPREL_HI16, 49) 2023DEFINE_RELOCATION(R_MIPS_TLS_TPREL_LO16, 50) 2024') 2025 2026define(`DEFINE_PPC32_RELOCATIONS',` 2027DEFINE_RELOCATION(R_PPC_NONE, 0) 2028DEFINE_RELOCATION(R_PPC_ADDR32, 1) 2029DEFINE_RELOCATION(R_PPC_ADDR24, 2) 2030DEFINE_RELOCATION(R_PPC_ADDR16, 3) 2031DEFINE_RELOCATION(R_PPC_ADDR16_LO, 4) 2032DEFINE_RELOCATION(R_PPC_ADDR16_HI, 5) 2033DEFINE_RELOCATION(R_PPC_ADDR16_HA, 6) 2034DEFINE_RELOCATION(R_PPC_ADDR14, 7) 2035DEFINE_RELOCATION(R_PPC_ADDR14_BRTAKEN, 8) 2036DEFINE_RELOCATION(R_PPC_ADDR14_BRNTAKEN, 9) 2037DEFINE_RELOCATION(R_PPC_REL24, 10) 2038DEFINE_RELOCATION(R_PPC_REL14, 11) 2039DEFINE_RELOCATION(R_PPC_REL14_BRTAKEN, 12) 2040DEFINE_RELOCATION(R_PPC_REL14_BRNTAKEN, 13) 2041DEFINE_RELOCATION(R_PPC_GOT16, 14) 2042DEFINE_RELOCATION(R_PPC_GOT16_LO, 15) 2043DEFINE_RELOCATION(R_PPC_GOT16_HI, 16) 2044DEFINE_RELOCATION(R_PPC_GOT16_HA, 17) 2045DEFINE_RELOCATION(R_PPC_PLTREL24, 18) 2046DEFINE_RELOCATION(R_PPC_COPY, 19) 2047DEFINE_RELOCATION(R_PPC_GLOB_DAT, 20) 2048DEFINE_RELOCATION(R_PPC_JMP_SLOT, 21) 2049DEFINE_RELOCATION(R_PPC_RELATIVE, 22) 2050DEFINE_RELOCATION(R_PPC_LOCAL24PC, 23) 2051DEFINE_RELOCATION(R_PPC_UADDR32, 24) 2052DEFINE_RELOCATION(R_PPC_UADDR16, 25) 2053DEFINE_RELOCATION(R_PPC_REL32, 26) 2054DEFINE_RELOCATION(R_PPC_PLT32, 27) 2055DEFINE_RELOCATION(R_PPC_PLTREL32, 28) 2056DEFINE_RELOCATION(R_PPC_PLT16_LO, 29) 2057DEFINE_RELOCATION(R_PPC_PLT16_HI, 30) 2058DEFINE_RELOCATION(R_PPC_PLT16_HA, 31) 2059DEFINE_RELOCATION(R_PPC_SDAREL16, 32) 2060DEFINE_RELOCATION(R_PPC_SECTOFF, 33) 2061DEFINE_RELOCATION(R_PPC_SECTOFF_LO, 34) 2062DEFINE_RELOCATION(R_PPC_SECTOFF_HI, 35) 2063DEFINE_RELOCATION(R_PPC_SECTOFF_HA, 36) 2064DEFINE_RELOCATION(R_PPC_ADDR30, 37) 2065DEFINE_RELOCATION(R_PPC_TLS, 67) 2066DEFINE_RELOCATION(R_PPC_DTPMOD32, 68) 2067DEFINE_RELOCATION(R_PPC_TPREL16, 69) 2068DEFINE_RELOCATION(R_PPC_TPREL16_LO, 70) 2069DEFINE_RELOCATION(R_PPC_TPREL16_HI, 71) 2070DEFINE_RELOCATION(R_PPC_TPREL16_HA, 72) 2071DEFINE_RELOCATION(R_PPC_TPREL32, 73) 2072DEFINE_RELOCATION(R_PPC_DTPREL16, 74) 2073DEFINE_RELOCATION(R_PPC_DTPREL16_LO, 75) 2074DEFINE_RELOCATION(R_PPC_DTPREL16_HI, 76) 2075DEFINE_RELOCATION(R_PPC_DTPREL16_HA, 77) 2076DEFINE_RELOCATION(R_PPC_DTPREL32, 78) 2077DEFINE_RELOCATION(R_PPC_GOT_TLSGD16, 79) 2078DEFINE_RELOCATION(R_PPC_GOT_TLSGD16_LO, 80) 2079DEFINE_RELOCATION(R_PPC_GOT_TLSGD16_HI, 81) 2080DEFINE_RELOCATION(R_PPC_GOT_TLSGD16_HA, 82) 2081DEFINE_RELOCATION(R_PPC_GOT_TLSLD16, 83) 2082DEFINE_RELOCATION(R_PPC_GOT_TLSLD16_LO, 84) 2083DEFINE_RELOCATION(R_PPC_GOT_TLSLD16_HI, 85) 2084DEFINE_RELOCATION(R_PPC_GOT_TLSLD16_HA, 86) 2085DEFINE_RELOCATION(R_PPC_GOT_TPREL16, 87) 2086DEFINE_RELOCATION(R_PPC_GOT_TPREL16_LO, 88) 2087DEFINE_RELOCATION(R_PPC_GOT_TPREL16_HI, 89) 2088DEFINE_RELOCATION(R_PPC_GOT_TPREL16_HA, 90) 2089DEFINE_RELOCATION(R_PPC_GOT_DTPREL16, 91) 2090DEFINE_RELOCATION(R_PPC_GOT_DTPREL16_LO, 92) 2091DEFINE_RELOCATION(R_PPC_GOT_DTPREL16_HI, 93) 2092DEFINE_RELOCATION(R_PPC_GOT_DTPREL16_HA, 94) 2093DEFINE_RELOCATION(R_PPC_TLSGD, 95) 2094DEFINE_RELOCATION(R_PPC_TLSLD, 96) 2095DEFINE_RELOCATION(R_PPC_EMB_NADDR32, 101) 2096DEFINE_RELOCATION(R_PPC_EMB_NADDR16, 102) 2097DEFINE_RELOCATION(R_PPC_EMB_NADDR16_LO, 103) 2098DEFINE_RELOCATION(R_PPC_EMB_NADDR16_HI, 104) 2099DEFINE_RELOCATION(R_PPC_EMB_NADDR16_HA, 105) 2100DEFINE_RELOCATION(R_PPC_EMB_SDAI16, 106) 2101DEFINE_RELOCATION(R_PPC_EMB_SDA2I16, 107) 2102DEFINE_RELOCATION(R_PPC_EMB_SDA2REL, 108) 2103DEFINE_RELOCATION(R_PPC_EMB_SDA21, 109) 2104DEFINE_RELOCATION(R_PPC_EMB_MRKREF, 110) 2105DEFINE_RELOCATION(R_PPC_EMB_RELSEC16, 111) 2106DEFINE_RELOCATION(R_PPC_EMB_RELST_LO, 112) 2107DEFINE_RELOCATION(R_PPC_EMB_RELST_HI, 113) 2108DEFINE_RELOCATION(R_PPC_EMB_RELST_HA, 114) 2109DEFINE_RELOCATION(R_PPC_EMB_BIT_FLD, 115) 2110DEFINE_RELOCATION(R_PPC_EMB_RELSDA, 116) 2111') 2112 2113define(`DEFINE_PPC64_RELOCATIONS',` 2114DEFINE_RELOCATION(R_PPC64_NONE, 0) 2115DEFINE_RELOCATION(R_PPC64_ADDR32, 1) 2116DEFINE_RELOCATION(R_PPC64_ADDR24, 2) 2117DEFINE_RELOCATION(R_PPC64_ADDR16, 3) 2118DEFINE_RELOCATION(R_PPC64_ADDR16_LO, 4) 2119DEFINE_RELOCATION(R_PPC64_ADDR16_HI, 5) 2120DEFINE_RELOCATION(R_PPC64_ADDR16_HA, 6) 2121DEFINE_RELOCATION(R_PPC64_ADDR14, 7) 2122DEFINE_RELOCATION(R_PPC64_ADDR14_BRTAKEN, 8) 2123DEFINE_RELOCATION(R_PPC64_ADDR14_BRNTAKEN, 9) 2124DEFINE_RELOCATION(R_PPC64_REL24, 10) 2125DEFINE_RELOCATION(R_PPC64_REL14, 11) 2126DEFINE_RELOCATION(R_PPC64_REL14_BRTAKEN, 12) 2127DEFINE_RELOCATION(R_PPC64_REL14_BRNTAKEN, 13) 2128DEFINE_RELOCATION(R_PPC64_GOT16, 14) 2129DEFINE_RELOCATION(R_PPC64_GOT16_LO, 15) 2130DEFINE_RELOCATION(R_PPC64_GOT16_HI, 16) 2131DEFINE_RELOCATION(R_PPC64_GOT16_HA, 17) 2132DEFINE_RELOCATION(R_PPC64_COPY, 19) 2133DEFINE_RELOCATION(R_PPC64_GLOB_DAT, 20) 2134DEFINE_RELOCATION(R_PPC64_JMP_SLOT, 21) 2135DEFINE_RELOCATION(R_PPC64_RELATIVE, 22) 2136DEFINE_RELOCATION(R_PPC64_UADDR32, 24) 2137DEFINE_RELOCATION(R_PPC64_UADDR16, 25) 2138DEFINE_RELOCATION(R_PPC64_REL32, 26) 2139DEFINE_RELOCATION(R_PPC64_PLT32, 27) 2140DEFINE_RELOCATION(R_PPC64_PLTREL32, 28) 2141DEFINE_RELOCATION(R_PPC64_PLT16_LO, 29) 2142DEFINE_RELOCATION(R_PPC64_PLT16_HI, 30) 2143DEFINE_RELOCATION(R_PPC64_PLT16_HA, 31) 2144DEFINE_RELOCATION(R_PPC64_SECTOFF, 33) 2145DEFINE_RELOCATION(R_PPC64_SECTOFF_LO, 34) 2146DEFINE_RELOCATION(R_PPC64_SECTOFF_HI, 35) 2147DEFINE_RELOCATION(R_PPC64_SECTOFF_HA, 36) 2148DEFINE_RELOCATION(R_PPC64_ADDR30, 37) 2149DEFINE_RELOCATION(R_PPC64_ADDR64, 38) 2150DEFINE_RELOCATION(R_PPC64_ADDR16_HIGHER, 39) 2151DEFINE_RELOCATION(R_PPC64_ADDR16_HIGHERA, 40) 2152DEFINE_RELOCATION(R_PPC64_ADDR16_HIGHEST, 41) 2153DEFINE_RELOCATION(R_PPC64_ADDR16_HIGHESTA, 42) 2154DEFINE_RELOCATION(R_PPC64_UADDR64, 43) 2155DEFINE_RELOCATION(R_PPC64_REL64, 44) 2156DEFINE_RELOCATION(R_PPC64_PLT64, 45) 2157DEFINE_RELOCATION(R_PPC64_PLTREL64, 46) 2158DEFINE_RELOCATION(R_PPC64_TOC16, 47) 2159DEFINE_RELOCATION(R_PPC64_TOC16_LO, 48) 2160DEFINE_RELOCATION(R_PPC64_TOC16_HI, 49) 2161DEFINE_RELOCATION(R_PPC64_TOC16_HA, 50) 2162DEFINE_RELOCATION(R_PPC64_TOC, 51) 2163DEFINE_RELOCATION(R_PPC64_PLTGOT16, 52) 2164DEFINE_RELOCATION(R_PPC64_PLTGOT16_LO, 53) 2165DEFINE_RELOCATION(R_PPC64_PLTGOT16_HI, 54) 2166DEFINE_RELOCATION(R_PPC64_PLTGOT16_HA, 55) 2167DEFINE_RELOCATION(R_PPC64_ADDR16_DS, 56) 2168DEFINE_RELOCATION(R_PPC64_ADDR16_LO_DS, 57) 2169DEFINE_RELOCATION(R_PPC64_GOT16_DS, 58) 2170DEFINE_RELOCATION(R_PPC64_GOT16_LO_DS, 59) 2171DEFINE_RELOCATION(R_PPC64_PLT16_LO_DS, 60) 2172DEFINE_RELOCATION(R_PPC64_SECTOFF_DS, 61) 2173DEFINE_RELOCATION(R_PPC64_SECTOFF_LO_DS, 62) 2174DEFINE_RELOCATION(R_PPC64_TOC16_DS, 63) 2175DEFINE_RELOCATION(R_PPC64_TOC16_LO_DS, 64) 2176DEFINE_RELOCATION(R_PPC64_PLTGOT16_DS, 65) 2177DEFINE_RELOCATION(R_PPC64_PLTGOT16_LO_DS, 66) 2178DEFINE_RELOCATION(R_PPC64_TLS, 67) 2179DEFINE_RELOCATION(R_PPC64_DTPMOD64, 68) 2180DEFINE_RELOCATION(R_PPC64_TPREL16, 69) 2181DEFINE_RELOCATION(R_PPC64_TPREL16_LO, 60) 2182DEFINE_RELOCATION(R_PPC64_TPREL16_HI, 71) 2183DEFINE_RELOCATION(R_PPC64_TPREL16_HA, 72) 2184DEFINE_RELOCATION(R_PPC64_TPREL64, 73) 2185DEFINE_RELOCATION(R_PPC64_DTPREL16, 74) 2186DEFINE_RELOCATION(R_PPC64_DTPREL16_LO, 75) 2187DEFINE_RELOCATION(R_PPC64_DTPREL16_HI, 76) 2188DEFINE_RELOCATION(R_PPC64_DTPREL16_HA, 77) 2189DEFINE_RELOCATION(R_PPC64_DTPREL64, 78) 2190DEFINE_RELOCATION(R_PPC64_GOT_TLSGD16, 79) 2191DEFINE_RELOCATION(R_PPC64_GOT_TLSGD16_LO, 80) 2192DEFINE_RELOCATION(R_PPC64_GOT_TLSGD16_HI, 81) 2193DEFINE_RELOCATION(R_PPC64_GOT_TLSGD16_HA, 82) 2194DEFINE_RELOCATION(R_PPC64_GOT_TLSLD16, 83) 2195DEFINE_RELOCATION(R_PPC64_GOT_TLSLD16_LO, 84) 2196DEFINE_RELOCATION(R_PPC64_GOT_TLSLD16_HI, 85) 2197DEFINE_RELOCATION(R_PPC64_GOT_TLSLD16_HA, 86) 2198DEFINE_RELOCATION(R_PPC64_GOT_TPREL16_DS, 87) 2199DEFINE_RELOCATION(R_PPC64_GOT_TPREL16_LO_DS, 88) 2200DEFINE_RELOCATION(R_PPC64_GOT_TPREL16_HI, 89) 2201DEFINE_RELOCATION(R_PPC64_GOT_TPREL16_HA, 90) 2202DEFINE_RELOCATION(R_PPC64_GOT_DTPREL16_DS, 91) 2203DEFINE_RELOCATION(R_PPC64_GOT_DTPREL16_LO_DS, 92) 2204DEFINE_RELOCATION(R_PPC64_GOT_DTPREL16_HI, 93) 2205DEFINE_RELOCATION(R_PPC64_GOT_DTPREL16_HA, 94) 2206DEFINE_RELOCATION(R_PPC64_TPREL16_DS, 95) 2207DEFINE_RELOCATION(R_PPC64_TPREL16_LO_DS, 96) 2208DEFINE_RELOCATION(R_PPC64_TPREL16_HIGHER, 97) 2209DEFINE_RELOCATION(R_PPC64_TPREL16_HIGHERA, 98) 2210DEFINE_RELOCATION(R_PPC64_TPREL16_HIGHEST, 99) 2211DEFINE_RELOCATION(R_PPC64_TPREL16_HIGHESTA, 100) 2212DEFINE_RELOCATION(R_PPC64_DTPREL16_DS, 101) 2213DEFINE_RELOCATION(R_PPC64_DTPREL16_LO_DS, 102) 2214DEFINE_RELOCATION(R_PPC64_DTPREL16_HIGHER, 103) 2215DEFINE_RELOCATION(R_PPC64_DTPREL16_HIGHERA, 104) 2216DEFINE_RELOCATION(R_PPC64_DTPREL16_HIGHEST, 105) 2217DEFINE_RELOCATION(R_PPC64_DTPREL16_HIGHESTA, 106) 2218DEFINE_RELOCATION(R_PPC64_TLSGD, 107) 2219DEFINE_RELOCATION(R_PPC64_TLSLD, 108) 2220') 2221 2222define(`DEFINE_RISCV_RELOCATIONS',` 2223DEFINE_RELOCATION(R_RISCV_NONE, 0) 2224DEFINE_RELOCATION(R_RISCV_32, 1) 2225DEFINE_RELOCATION(R_RISCV_64, 2) 2226DEFINE_RELOCATION(R_RISCV_RELATIVE, 3) 2227DEFINE_RELOCATION(R_RISCV_COPY, 4) 2228DEFINE_RELOCATION(R_RISCV_JUMP_SLOT, 5) 2229DEFINE_RELOCATION(R_RISCV_TLS_DTPMOD32, 6) 2230DEFINE_RELOCATION(R_RISCV_TLS_DTPMOD64, 7) 2231DEFINE_RELOCATION(R_RISCV_TLS_DTPREL32, 8) 2232DEFINE_RELOCATION(R_RISCV_TLS_DTPREL64, 9) 2233DEFINE_RELOCATION(R_RISCV_TLS_TPREL32, 10) 2234DEFINE_RELOCATION(R_RISCV_TLS_TPREL64, 11) 2235DEFINE_RELOCATION(R_RISCV_BRANCH, 16) 2236DEFINE_RELOCATION(R_RISCV_JAL, 17) 2237DEFINE_RELOCATION(R_RISCV_CALL, 18) 2238DEFINE_RELOCATION(R_RISCV_CALL_PLT, 19) 2239DEFINE_RELOCATION(R_RISCV_GOT_HI20, 20) 2240DEFINE_RELOCATION(R_RISCV_TLS_GOT_HI20, 21) 2241DEFINE_RELOCATION(R_RISCV_TLS_GD_HI20, 22) 2242DEFINE_RELOCATION(R_RISCV_PCREL_HI20, 23) 2243DEFINE_RELOCATION(R_RISCV_PCREL_LO12_I, 24) 2244DEFINE_RELOCATION(R_RISCV_PCREL_LO12_S, 25) 2245DEFINE_RELOCATION(R_RISCV_HI20, 26) 2246DEFINE_RELOCATION(R_RISCV_LO12_I, 27) 2247DEFINE_RELOCATION(R_RISCV_LO12_S, 28) 2248DEFINE_RELOCATION(R_RISCV_TPREL_HI20, 29) 2249DEFINE_RELOCATION(R_RISCV_TPREL_LO12_I, 30) 2250DEFINE_RELOCATION(R_RISCV_TPREL_LO12_S, 31) 2251DEFINE_RELOCATION(R_RISCV_TPREL_ADD, 32) 2252DEFINE_RELOCATION(R_RISCV_ADD8, 33) 2253DEFINE_RELOCATION(R_RISCV_ADD16, 34) 2254DEFINE_RELOCATION(R_RISCV_ADD32, 35) 2255DEFINE_RELOCATION(R_RISCV_ADD64, 36) 2256DEFINE_RELOCATION(R_RISCV_SUB8, 37) 2257DEFINE_RELOCATION(R_RISCV_SUB16, 38) 2258DEFINE_RELOCATION(R_RISCV_SUB32, 39) 2259DEFINE_RELOCATION(R_RISCV_SUB64, 40) 2260DEFINE_RELOCATION(R_RISCV_GNU_VTINHERIT, 41) 2261DEFINE_RELOCATION(R_RISCV_GNU_VTENTRY, 42) 2262DEFINE_RELOCATION(R_RISCV_ALIGN, 43) 2263DEFINE_RELOCATION(R_RISCV_RVC_BRANCH, 44) 2264DEFINE_RELOCATION(R_RISCV_RVC_JUMP, 45) 2265DEFINE_RELOCATION(R_RISCV_RVC_LUI, 46) 2266DEFINE_RELOCATION(R_RISCV_GPREL_I, 47) 2267DEFINE_RELOCATION(R_RISCV_GPREL_S, 48) 2268DEFINE_RELOCATION(R_RISCV_TPREL_I, 49) 2269DEFINE_RELOCATION(R_RISCV_TPREL_S, 50) 2270DEFINE_RELOCATION(R_RISCV_RELAX, 51) 2271DEFINE_RELOCATION(R_RISCV_SUB6, 52) 2272DEFINE_RELOCATION(R_RISCV_SET6, 53) 2273DEFINE_RELOCATION(R_RISCV_SET8, 54) 2274DEFINE_RELOCATION(R_RISCV_SET16, 55) 2275DEFINE_RELOCATION(R_RISCV_SET32, 56) 2276DEFINE_RELOCATION(R_RISCV_32_PCREL, 57) 2277DEFINE_RELOCATION(R_RISCV_IRELATIVE, 58) 2278') 2279 2280define(`DEFINE_SPARC_RELOCATIONS',` 2281DEFINE_RELOCATION(R_SPARC_NONE, 0) 2282DEFINE_RELOCATION(R_SPARC_8, 1) 2283DEFINE_RELOCATION(R_SPARC_16, 2) 2284DEFINE_RELOCATION(R_SPARC_32, 3) 2285DEFINE_RELOCATION(R_SPARC_DISP8, 4) 2286DEFINE_RELOCATION(R_SPARC_DISP16, 5) 2287DEFINE_RELOCATION(R_SPARC_DISP32, 6) 2288DEFINE_RELOCATION(R_SPARC_WDISP30, 7) 2289DEFINE_RELOCATION(R_SPARC_WDISP22, 8) 2290DEFINE_RELOCATION(R_SPARC_HI22, 9) 2291DEFINE_RELOCATION(R_SPARC_22, 10) 2292DEFINE_RELOCATION(R_SPARC_13, 11) 2293DEFINE_RELOCATION(R_SPARC_LO10, 12) 2294DEFINE_RELOCATION(R_SPARC_GOT10, 13) 2295DEFINE_RELOCATION(R_SPARC_GOT13, 14) 2296DEFINE_RELOCATION(R_SPARC_GOT22, 15) 2297DEFINE_RELOCATION(R_SPARC_PC10, 16) 2298DEFINE_RELOCATION(R_SPARC_PC22, 17) 2299DEFINE_RELOCATION(R_SPARC_WPLT30, 18) 2300DEFINE_RELOCATION(R_SPARC_COPY, 19) 2301DEFINE_RELOCATION(R_SPARC_GLOB_DAT, 20) 2302DEFINE_RELOCATION(R_SPARC_JMP_SLOT, 21) 2303DEFINE_RELOCATION(R_SPARC_RELATIVE, 22) 2304DEFINE_RELOCATION(R_SPARC_UA32, 23) 2305DEFINE_RELOCATION(R_SPARC_PLT32, 24) 2306DEFINE_RELOCATION(R_SPARC_HIPLT22, 25) 2307DEFINE_RELOCATION(R_SPARC_LOPLT10, 26) 2308DEFINE_RELOCATION(R_SPARC_PCPLT32, 27) 2309DEFINE_RELOCATION(R_SPARC_PCPLT22, 28) 2310DEFINE_RELOCATION(R_SPARC_PCPLT10, 29) 2311DEFINE_RELOCATION(R_SPARC_10, 30) 2312DEFINE_RELOCATION(R_SPARC_11, 31) 2313DEFINE_RELOCATION(R_SPARC_64, 32) 2314DEFINE_RELOCATION(R_SPARC_OLO10, 33) 2315DEFINE_RELOCATION(R_SPARC_HH22, 34) 2316DEFINE_RELOCATION(R_SPARC_HM10, 35) 2317DEFINE_RELOCATION(R_SPARC_LM22, 36) 2318DEFINE_RELOCATION(R_SPARC_PC_HH22, 37) 2319DEFINE_RELOCATION(R_SPARC_PC_HM10, 38) 2320DEFINE_RELOCATION(R_SPARC_PC_LM22, 39) 2321DEFINE_RELOCATION(R_SPARC_WDISP16, 40) 2322DEFINE_RELOCATION(R_SPARC_WDISP19, 41) 2323DEFINE_RELOCATION(R_SPARC_GLOB_JMP, 42) 2324DEFINE_RELOCATION(R_SPARC_7, 43) 2325DEFINE_RELOCATION(R_SPARC_5, 44) 2326DEFINE_RELOCATION(R_SPARC_6, 45) 2327DEFINE_RELOCATION(R_SPARC_DISP64, 46) 2328DEFINE_RELOCATION(R_SPARC_PLT64, 47) 2329DEFINE_RELOCATION(R_SPARC_HIX22, 48) 2330DEFINE_RELOCATION(R_SPARC_LOX10, 49) 2331DEFINE_RELOCATION(R_SPARC_H44, 50) 2332DEFINE_RELOCATION(R_SPARC_M44, 51) 2333DEFINE_RELOCATION(R_SPARC_L44, 52) 2334DEFINE_RELOCATION(R_SPARC_REGISTER, 53) 2335DEFINE_RELOCATION(R_SPARC_UA64, 54) 2336DEFINE_RELOCATION(R_SPARC_UA16, 55) 2337DEFINE_RELOCATION(R_SPARC_TLS_GD_HI22, 56) 2338DEFINE_RELOCATION(R_SPARC_TLS_GD_LO10, 57) 2339DEFINE_RELOCATION(R_SPARC_TLS_GD_ADD, 58) 2340DEFINE_RELOCATION(R_SPARC_TLS_GD_CALL, 59) 2341DEFINE_RELOCATION(R_SPARC_TLS_LDM_HI22, 60) 2342DEFINE_RELOCATION(R_SPARC_TLS_LDM_LO10, 61) 2343DEFINE_RELOCATION(R_SPARC_TLS_LDM_ADD, 62) 2344DEFINE_RELOCATION(R_SPARC_TLS_LDM_CALL, 63) 2345DEFINE_RELOCATION(R_SPARC_TLS_LDO_HIX22, 64) 2346DEFINE_RELOCATION(R_SPARC_TLS_LDO_LOX10, 65) 2347DEFINE_RELOCATION(R_SPARC_TLS_LDO_ADD, 66) 2348DEFINE_RELOCATION(R_SPARC_TLS_IE_HI22, 67) 2349DEFINE_RELOCATION(R_SPARC_TLS_IE_LO10, 68) 2350DEFINE_RELOCATION(R_SPARC_TLS_IE_LD, 69) 2351DEFINE_RELOCATION(R_SPARC_TLS_IE_LDX, 70) 2352DEFINE_RELOCATION(R_SPARC_TLS_IE_ADD, 71) 2353DEFINE_RELOCATION(R_SPARC_TLS_LE_HIX22, 72) 2354DEFINE_RELOCATION(R_SPARC_TLS_LE_LOX10, 73) 2355DEFINE_RELOCATION(R_SPARC_TLS_DTPMOD32, 74) 2356DEFINE_RELOCATION(R_SPARC_TLS_DTPMOD64, 75) 2357DEFINE_RELOCATION(R_SPARC_TLS_DTPOFF32, 76) 2358DEFINE_RELOCATION(R_SPARC_TLS_DTPOFF64, 77) 2359DEFINE_RELOCATION(R_SPARC_TLS_TPOFF32, 78) 2360DEFINE_RELOCATION(R_SPARC_TLS_TPOFF64, 79) 2361DEFINE_RELOCATION(R_SPARC_GOTDATA_HIX22, 80) 2362DEFINE_RELOCATION(R_SPARC_GOTDATA_LOX10, 81) 2363DEFINE_RELOCATION(R_SPARC_GOTDATA_OP_HIX22, 82) 2364DEFINE_RELOCATION(R_SPARC_GOTDATA_OP_LOX10, 83) 2365DEFINE_RELOCATION(R_SPARC_GOTDATA_OP, 84) 2366DEFINE_RELOCATION(R_SPARC_H34, 85) 2367') 2368 2369define(`DEFINE_X86_64_RELOCATIONS',` 2370DEFINE_RELOCATION(R_X86_64_NONE, 0) 2371DEFINE_RELOCATION(R_X86_64_64, 1) 2372DEFINE_RELOCATION(R_X86_64_PC32, 2) 2373DEFINE_RELOCATION(R_X86_64_GOT32, 3) 2374DEFINE_RELOCATION(R_X86_64_PLT32, 4) 2375DEFINE_RELOCATION(R_X86_64_COPY, 5) 2376DEFINE_RELOCATION(R_X86_64_GLOB_DAT, 6) 2377DEFINE_RELOCATION(R_X86_64_JUMP_SLOT, 7) 2378DEFINE_RELOCATION(R_X86_64_RELATIVE, 8) 2379DEFINE_RELOCATION(R_X86_64_GOTPCREL, 9) 2380DEFINE_RELOCATION(R_X86_64_32, 10) 2381DEFINE_RELOCATION(R_X86_64_32S, 11) 2382DEFINE_RELOCATION(R_X86_64_16, 12) 2383DEFINE_RELOCATION(R_X86_64_PC16, 13) 2384DEFINE_RELOCATION(R_X86_64_8, 14) 2385DEFINE_RELOCATION(R_X86_64_PC8, 15) 2386DEFINE_RELOCATION(R_X86_64_DTPMOD64, 16) 2387DEFINE_RELOCATION(R_X86_64_DTPOFF64, 17) 2388DEFINE_RELOCATION(R_X86_64_TPOFF64, 18) 2389DEFINE_RELOCATION(R_X86_64_TLSGD, 19) 2390DEFINE_RELOCATION(R_X86_64_TLSLD, 20) 2391DEFINE_RELOCATION(R_X86_64_DTPOFF32, 21) 2392DEFINE_RELOCATION(R_X86_64_GOTTPOFF, 22) 2393DEFINE_RELOCATION(R_X86_64_TPOFF32, 23) 2394DEFINE_RELOCATION(R_X86_64_PC64, 24) 2395DEFINE_RELOCATION(R_X86_64_GOTOFF64, 25) 2396DEFINE_RELOCATION(R_X86_64_GOTPC32, 26) 2397DEFINE_RELOCATION(R_X86_64_GOT64, 27) 2398DEFINE_RELOCATION(R_X86_64_GOTPCREL64, 28) 2399DEFINE_RELOCATION(R_X86_64_GOTPC64, 29) 2400DEFINE_RELOCATION(R_X86_64_GOTPLT64, 30) 2401DEFINE_RELOCATION(R_X86_64_PLTOFF64, 31) 2402DEFINE_RELOCATION(R_X86_64_SIZE32, 32) 2403DEFINE_RELOCATION(R_X86_64_SIZE64, 33) 2404DEFINE_RELOCATION(R_X86_64_GOTPC32_TLSDESC, 34) 2405DEFINE_RELOCATION(R_X86_64_TLSDESC_CALL, 35) 2406DEFINE_RELOCATION(R_X86_64_TLSDESC, 36) 2407DEFINE_RELOCATION(R_X86_64_IRELATIVE, 37) 2408DEFINE_RELOCATION(R_X86_64_RELATIVE64, 38) 2409DEFINE_RELOCATION(R_X86_64_GOTPCRELX, 41) 2410DEFINE_RELOCATION(R_X86_64_REX_GOTPCRELX, 42) 2411') 2412 2413define(`DEFINE_RELOCATIONS',` 2414DEFINE_386_RELOCATIONS() 2415DEFINE_AARCH64_RELOCATIONS() 2416DEFINE_AMD64_RELOCATIONS() 2417DEFINE_ARM_RELOCATIONS() 2418DEFINE_IA64_RELOCATIONS() 2419DEFINE_MIPS_RELOCATIONS() 2420DEFINE_PPC32_RELOCATIONS() 2421DEFINE_PPC64_RELOCATIONS() 2422DEFINE_RISCV_RELOCATIONS() 2423DEFINE_SPARC_RELOCATIONS() 2424DEFINE_X86_64_RELOCATIONS() 2425') 2426 2427define(`DEFINE_LL_FLAGS',` 2428DEFINE_LL_FLAG(LL_NONE, 0, 2429 `no flags') 2430DEFINE_LL_FLAG(LL_EXACT_MATCH, 0x1, 2431 `require an exact match') 2432DEFINE_LL_FLAG(LL_IGNORE_INT_VER, 0x2, 2433 `ignore version incompatibilities') 2434DEFINE_LL_FLAG(LL_REQUIRE_MINOR, 0x4, 2435 `') 2436DEFINE_LL_FLAG(LL_EXPORTS, 0x8, 2437 `') 2438DEFINE_LL_FLAG(LL_DELAY_LOAD, 0x10, 2439 `') 2440DEFINE_LL_FLAG(LL_DELTA, 0x20, 2441 `') 2442') 2443 2444# 2445# Note tags 2446# 2447define(`DEFINE_NOTE_ENTRY_TYPES',` 2448DEFINE_NOTE_ENTRY(NT_ABI_TAG, 1, 2449 `Tag indicating the ABI') 2450DEFINE_NOTE_ENTRY(NT_GNU_HWCAP, 2, 2451 `Hardware capabilities') 2452DEFINE_NOTE_ENTRY(NT_GNU_BUILD_ID, 3, 2453 `Build id, set by ld(1)') 2454DEFINE_NOTE_ENTRY(NT_GNU_GOLD_VERSION, 4, 2455 `Version number of the GNU gold linker') 2456DEFINE_NOTE_ENTRY(NT_PRSTATUS, 1, 2457 `Process status') 2458DEFINE_NOTE_ENTRY(NT_FPREGSET, 2, 2459 `Floating point information') 2460DEFINE_NOTE_ENTRY(NT_PRPSINFO, 3, 2461 `Process information') 2462DEFINE_NOTE_ENTRY(NT_AUXV, 6, 2463 `Auxiliary vector') 2464DEFINE_NOTE_ENTRY(NT_PRXFPREG, 0x46E62B7FUL, 2465 `Linux user_xfpregs structure') 2466DEFINE_NOTE_ENTRY(NT_PSTATUS, 10, 2467 `Linux process status') 2468DEFINE_NOTE_ENTRY(NT_FPREGS, 12, 2469 `Linux floating point regset') 2470DEFINE_NOTE_ENTRY(NT_PSINFO, 13, 2471 `Linux process information') 2472DEFINE_NOTE_ENTRY(NT_LWPSTATUS, 16, 2473 `Linux lwpstatus_t type') 2474DEFINE_NOTE_ENTRY(NT_LWPSINFO, 17, 2475 `Linux lwpinfo_t type') 2476DEFINE_NOTE_ENTRY(NT_FREEBSD_NOINIT_TAG, 2, 2477 `FreeBSD no .init tag') 2478DEFINE_NOTE_ENTRY(NT_FREEBSD_ARCH_TAG, 3, 2479 `FreeBSD arch tag') 2480DEFINE_NOTE_ENTRY(NT_FREEBSD_FEATURE_CTL, 4, 2481 `FreeBSD feature control') 2482') 2483 2484# Aliases for the ABI tag. 2485define(`DEFINE_NOTE_ENTRY_ALIASES',` 2486DEFINE_NOTE_ENTRY_ALIAS(NT_FREEBSD_ABI_TAG, NT_ABI_TAG) 2487DEFINE_NOTE_ENTRY_ALIAS(NT_GNU_ABI_TAG, NT_ABI_TAG) 2488DEFINE_NOTE_ENTRY_ALIAS(NT_NETBSD_IDENT, NT_ABI_TAG) 2489DEFINE_NOTE_ENTRY_ALIAS(NT_OPENBSD_IDENT, NT_ABI_TAG) 2490') 2491 2492# 2493# Option kinds. 2494# 2495define(`DEFINE_OPTION_KINDS',` 2496DEFINE_OPTION_KIND(ODK_NULL, 0, 2497 `undefined') 2498DEFINE_OPTION_KIND(ODK_REGINFO, 1, 2499 `register usage info') 2500DEFINE_OPTION_KIND(ODK_EXCEPTIONS, 2, 2501 `exception processing info') 2502DEFINE_OPTION_KIND(ODK_PAD, 3, 2503 `section padding') 2504DEFINE_OPTION_KIND(ODK_HWPATCH, 4, 2505 `hardware patch applied') 2506DEFINE_OPTION_KIND(ODK_FILL, 5, 2507 `fill value used by linker') 2508DEFINE_OPTION_KIND(ODK_TAGS, 6, 2509 `reserved space for tools') 2510DEFINE_OPTION_KIND(ODK_HWAND, 7, 2511 `hardware AND patch applied') 2512DEFINE_OPTION_KIND(ODK_HWOR, 8, 2513 `hardware OR patch applied') 2514DEFINE_OPTION_KIND(ODK_GP_GROUP, 9, 2515 `GP group to use for text/data sections') 2516DEFINE_OPTION_KIND(ODK_IDENT, 10, 2517 `ID information') 2518DEFINE_OPTION_KIND(ODK_PAGESIZE, 11, 2519 `page size information') 2520') 2521 2522# 2523# ODK_EXCEPTIONS info field masks. 2524# 2525define(`DEFINE_OPTION_EXCEPTIONS',` 2526DEFINE_OPTION_EXCEPTION(OEX_FPU_MIN, 0x0000001FUL, 2527 `minimum FPU exception which must be enabled') 2528DEFINE_OPTION_EXCEPTION(OEX_FPU_MAX, 0x00001F00UL, 2529 `maximum FPU exception which can be enabled') 2530DEFINE_OPTION_EXCEPTION(OEX_PAGE0, 0x00010000UL, 2531 `page zero must be mapped') 2532DEFINE_OPTION_EXCEPTION(OEX_SMM, 0x00020000UL, 2533 `run in sequential memory mode') 2534DEFINE_OPTION_EXCEPTION(OEX_PRECISEFP, 0x00040000UL, 2535 `run in precise FP exception mode') 2536DEFINE_OPTION_EXCEPTION(OEX_DISMISS, 0x00080000UL, 2537 `dismiss invalid address traps') 2538') 2539 2540# 2541# ODK_PAD info field masks. 2542# 2543define(`DEFINE_OPTION_PADS',` 2544DEFINE_OPTION_PAD(OPAD_PREFIX, 0x0001) 2545DEFINE_OPTION_PAD(OPAD_POSTFIX, 0x0002) 2546DEFINE_OPTION_PAD(OPAD_SYMBOL, 0x0004) 2547') 2548 2549# 2550# ODK_HWPATCH info field masks and ODK_HWAND/ODK_HWOR 2551# info field and hwp_flags[12] masks. 2552# 2553define(`DEFINE_ODK_HWPATCH_MASKS',` 2554DEFINE_ODK_HWPATCH_MASK(OHW_R4KEOP, 0x00000001UL, 2555 `patch for R4000 branch at end-of-page bug') 2556DEFINE_ODK_HWPATCH_MASK(OHW_R8KPFETCH, 0x00000002UL, 2557 `R8000 prefetch bug may occur') 2558DEFINE_ODK_HWPATCH_MASK(OHW_R5KEOP, 0x00000004UL, 2559 `patch for R5000 branch at end-of-page bug') 2560DEFINE_ODK_HWPATCH_MASK(OHW_R5KCVTL, 0x00000008UL, 2561 `R5000 cvt.[ds].l bug: clean == 1') 2562DEFINE_ODK_HWPATCH_MASK(OHW_R10KLDL, 0x00000010UL, 2563 `need patch for R10000 misaligned load') 2564DEFINE_ODK_HWPATCH_MASK(OHWA0_R4KEOP_CHECKED, 0x00000001UL, 2565 `object checked for R4000 end-of-page bug') 2566DEFINE_ODK_HWPATCH_MASK(OHWA0_R4KEOP_CLEAN, 0x00000002UL, 2567 `object verified clean for R4000 end-of-page bug') 2568DEFINE_ODK_HWPATCH_MASK(OHWO0_FIXADE, 0x00000001UL, 2569 `object requires call to fixade') 2570') 2571 2572# 2573# ODK_IDENT/ODK_GP_GROUP info field masks. 2574# 2575define(`DEFINE_ODK_GP_MASKS',` 2576DEFINE_ODK_GP_MASK(OGP_GROUP, 0x0000FFFFUL, 2577 `GP group number') 2578DEFINE_ODK_GP_MASK(OGP_SELF, 0x00010000UL, 2579 `GP group is self-contained') 2580') 2581 2582# MIPS ABI related constants. 2583define(`DEFINE_MIPS_ABIS',` 2584DEFINE_MIPS_ABI(E_MIPS_ABI_O32, 0x00001000, 2585 `MIPS 32 bit ABI (UCODE)') 2586DEFINE_MIPS_ABI(E_MIPS_ABI_O64, 0x00002000, 2587 `UCODE MIPS 64 bit ABI') 2588DEFINE_MIPS_ABI(E_MIPS_ABI_EABI32, 0x00003000, 2589 `Embedded ABI for 32-bit') 2590DEFINE_MIPS_ABI(E_MIPS_ABI_EABI64, 0x00004000, 2591 `Embedded ABI for 64-bit') 2592') 2593