Module Name: src
Committed By: jkoshy
Date: Mon Feb 10 15:54:17 UTC 2025
Modified Files:
src/external/bsd/elftoolchain/dist/common/sys: elfconstants.m4
elfdefinitions.m4
Log Message:
Update to Elftoolchain HEAD (r4175).
This update:
- Updates the list of known EM_* constants.
- Adds symbol definitions for EM_LOONGARCH.
- Updates the set of known relocation type definitions for EM_AARCH64,
EM_ARM, EM_MIPS, EM_PPC, EM_PPC64, EM_RISCV, EM_S390, EM_SPARC
and EM_X86_64.
- Adds synonyms for relocation types that are spelled differently
in NetBSD than in the official psABI, e.g., R_IA_64_* vs R_IA64_*.
- Arranges for comments to be propagated to the generated
"elfdefinitions.h" file, aiding its readability.
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/external/bsd/elftoolchain/dist/common/sys/elfconstants.m4
cvs rdiff -u -r1.6 -r1.7 \
src/external/bsd/elftoolchain/dist/common/sys/elfdefinitions.m4
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/bsd/elftoolchain/dist/common/sys/elfconstants.m4
diff -u src/external/bsd/elftoolchain/dist/common/sys/elfconstants.m4:1.7 src/external/bsd/elftoolchain/dist/common/sys/elfconstants.m4:1.8
--- src/external/bsd/elftoolchain/dist/common/sys/elfconstants.m4:1.7 Sun Mar 3 17:37:29 2024
+++ src/external/bsd/elftoolchain/dist/common/sys/elfconstants.m4 Mon Feb 10 15:54:16 2025
@@ -1,4 +1,4 @@
-dnl $NetBSD: elfconstants.m4,v 1.7 2024/03/03 17:37:29 christos Exp $
+dnl $NetBSD: elfconstants.m4,v 1.8 2025/02/10 15:54:16 jkoshy Exp $
# Copyright (c) 2010,2021 Joseph Koshy
# All rights reserved.
@@ -23,17 +23,77 @@ dnl $NetBSD: elfconstants.m4,v 1.7 2024
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
-# These definitions are based on:
+define(`VCSID_ELFCONSTANTS_M4',
+ `Id: elfconstants.m4 4172 2025-02-06 21:19:36Z jkoshy')
+
+define(`COMPATIBILITY_NOTICE',`dnl
+# These definitions are believed to be compatible with:
+#
# - The public specification of the ELF format as defined in the
# October 2009 draft of System V ABI.
-# See: http://www.sco.com/developers/gabi/latest/ch4.intro.html
+# http://www.sco.com/developers/gabi/latest/ch4.intro.html
+#
# - The May 1998 (version 1.5) draft of "The ELF-64 object format".
-# - Processor-specific ELF ABI definitions for sparc, i386, amd64, mips,
-# ia64, powerpc, and RISC-V processors.
+#
# - The "Linkers and Libraries Guide", from Sun Microsystems.
-
-define(`VCSID_ELFCONSTANTS_M4',
- `Id: elfconstants.m4 4028 2023-12-27 22:37:31Z jkoshy')
+#
+# - Processor-specific ELF ABI definitions for the aarch64, arm, i386,
+# ia_64, loongarch, mips, ppc, ppc64, riscv, s390, sparc, vax and
+# x86_64 architectures:
+#
+# i386 ::
+# System V Application Binary Interface
+# Intel386 Architecture Processor Supplement Version 1.2
+# https://gitlab.com/x86-psABIs/i386-ABI/-/tree/hjl/x86/master
+#
+# aarch64 ::
+# ELF for the Arm® 64-bit Architecture (AArch64)
+# https://github.com/ARM-software/abi-aa/blob/main/aaelf64/aaelf64.rst
+#
+# arm ::
+# ELF for the Arm® Architecture
+# https://github.com/ARM-software/abi-aa/blob/main/aaelf32/aaelf32.rst
+#
+# ia_64 ::
+# Intel® Itanium™ Processor-specific Application Binary Interface (ABI)
+# Document Number: 245370-003
+# http://refspecs.linux-foundation.org/elf/IA64-SysV-psABI.pdf
+#
+# loongarch ::
+# ELF for the LoongArch™ Architecture
+# https://github.com/loongson/la-abi-specs/blob/release/laelf.adoc.
+#
+# mips ::
+# SYSTEM V APPLICATION BINARY INTERFACE, MIPS RISC Processor Supplement,
+# 3rd Edition, 1996.
+# https://refspecs.linuxfoundation.org/elf/mipsabi.pdf
+#
+# ppc ::
+# Power Architecture® 32-bit Application Binary Interface
+# Supplement 1.0 - Linux® & Embedded
+# (Archived link) https://web.archive.org/web/20120608002551/\
+# https://www.power.org/resources/downloads/\
+# Power-Arch-32-bit-ABI-supp-1.0-Unified.pdf
+#
+# ppc64 ::
+# 64-bit ELF ABI Specification for OpenPOWER Architecture
+# https://openpowerfoundation.org/specifications/64bitelfabi/
+#
+# riscv ::
+# RISC-V ELF Specification
+# https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc
+#
+# s390 ::
+# S/390 ELF Application Binary Interface Supplement
+# https://refspecs.linuxfoundation.org/ELF/zSeries/lzsabi0_zSeries.htm
+#
+# sparc ::
+# Oracle Solaris Linkers and Libraries Guide
+# November 2024, Document E36783-04.
+#
+# x86_64 ::
+# ELF x86-64-ABI psABI
+# https://gitlab.com/x86-psABIs/x86-64-ABI')
# In the following definitions, `_' is an M4 macro that is meant to be
# expanded later. Its intended usage is:
@@ -59,6 +119,12 @@ define(`VCSID_ELFCONSTANTS_M4',
# }
# }
+
+# The `__' macro is used to record comments.
+#
+# Provide a default definition for the macro that ignores its arguments.
+define(`__',`')
+
#
# Types of capabilities.
#
@@ -398,135 +464,149 @@ _(`DT_DEPRECATED_SPARC_REGISTER', `DT_SP
# Flags used in the executable header (field: e_flags).
#
define(`DEFINE_EHDR_FLAGS',`
-_(EF_ARM_RELEXEC, 0x00000001UL,
+_(EF_ARM_RELEXEC, 0x00000001U,
`dynamic segment describes only how to relocate segments')
-_(EF_ARM_HASENTRY, 0x00000002UL,
+_(EF_ARM_HASENTRY, 0x00000002U,
`e_entry contains a program entry point')
-_(EF_ARM_SYMSARESORTED, 0x00000004UL,
+_(EF_ARM_SYMSARESORTED, 0x00000004U,
`subsection of symbol table is sorted by symbol value')
-_(EF_ARM_DYNSYMSUSESEGIDX, 0x00000008UL,
+_(EF_ARM_DYNSYMSUSESEGIDX, 0x00000008U,
`dynamic symbol st_shndx = containing segment index + 1')
-_(EF_ARM_MAPSYMSFIRST, 0x00000010UL,
+_(EF_ARM_MAPSYMSFIRST, 0x00000010U,
`mapping symbols precede other local symbols in symtab')
-_(EF_ARM_BE8, 0x00800000UL,
+_(EF_ARM_BE8, 0x00800000U,
`file contains BE-8 code')
-_(EF_ARM_LE8, 0x00400000UL,
+_(EF_ARM_LE8, 0x00400000U,
`file contains LE-8 code')
-_(EF_ARM_EABIMASK, 0xFF000000UL,
+_(EF_ARM_EABIMASK, 0xFF000000U,
`mask for ARM EABI version number (0 denotes GNU or unknown)')
-_(EF_ARM_EABI_UNKNOWN, 0x00000000UL,
+_(EF_ARM_EABI_UNKNOWN, 0x00000000U,
`Unknown or GNU ARM EABI version number')
-_(EF_ARM_EABI_VER1, 0x01000000UL,
+_(EF_ARM_EABI_VER1, 0x01000000U,
`ARM EABI version 1')
-_(EF_ARM_EABI_VER2, 0x02000000UL,
+_(EF_ARM_EABI_VER2, 0x02000000U,
`ARM EABI version 2')
-_(EF_ARM_EABI_VER3, 0x03000000UL,
+_(EF_ARM_EABI_VER3, 0x03000000U,
`ARM EABI version 3')
-_(EF_ARM_EABI_VER4, 0x04000000UL,
+_(EF_ARM_EABI_VER4, 0x04000000U,
`ARM EABI version 4')
-_(EF_ARM_EABI_VER5, 0x05000000UL,
+_(EF_ARM_EABI_VER5, 0x05000000U,
`ARM EABI version 5')
-_(EF_ARM_INTERWORK, 0x00000004UL,
+_(EF_ARM_INTERWORK, 0x00000004U,
`GNU EABI extension')
-_(EF_ARM_APCS_26, 0x00000008UL,
+_(EF_ARM_APCS_26, 0x00000008U,
`GNU EABI extension')
-_(EF_ARM_APCS_FLOAT, 0x00000010UL,
+_(EF_ARM_APCS_FLOAT, 0x00000010U,
`GNU EABI extension')
-_(EF_ARM_PIC, 0x00000020UL,
+_(EF_ARM_PIC, 0x00000020U,
`GNU EABI extension')
-_(EF_ARM_ALIGN8, 0x00000040UL,
+_(EF_ARM_ALIGN8, 0x00000040U,
`GNU EABI extension')
-_(EF_ARM_NEW_ABI, 0x00000080UL,
+_(EF_ARM_NEW_ABI, 0x00000080U,
`GNU EABI extension')
-_(EF_ARM_OLD_ABI, 0x00000100UL,
+_(EF_ARM_OLD_ABI, 0x00000100U,
`GNU EABI extension')
-_(EF_ARM_SOFT_FLOAT, 0x00000200UL,
+_(EF_ARM_SOFT_FLOAT, 0x00000200U,
`GNU EABI extension')
-_(EF_ARM_VFP_FLOAT, 0x00000400UL,
+_(EF_ARM_VFP_FLOAT, 0x00000400U,
`GNU EABI extension')
-_(EF_ARM_MAVERICK_FLOAT, 0x00000800UL,
+_(EF_ARM_MAVERICK_FLOAT, 0x00000800U,
`GNU EABI extension')
-_(EF_MIPS_NOREORDER, 0x00000001UL,
+_(EF_LOONGARCH_ABI_SOFT_FLOAT, 0x00000001U,
+ `LoongArch software floating point emulation')
+_(EF_LOONGARCH_ABI_SINGLE_FLOAT, 0x00000002U,
+ `LoongArch 32-bit floating point registers')
+_(EF_LOONGARCH_ABI_DOUBLE_FLOAT, 0x00000003U,
+ `LoongArch 64-bit floating point registers')
+_(EF_LOONGARCH_ABI_MODIFIER_MASK, 0x00000007U,
+ `LoongArch floating point modifier mask')
+_(EF_LOONGARCH_OBJABI_V0, 0x00000000U,
+ `LoongArch object file ABI version 0')
+_(EF_LOONGARCH_OBJABI_V1, 0x00000040U,
+ `LoongArch object file ABI version 1')
+_(EF_LOONGARCH_OBJABI_MASK, 0x000000C0U,
+ `LoongArch object file ABI version mask')
+_(EF_MIPS_NOREORDER, 0x00000001U,
`at least one .noreorder directive appeared in the source')
-_(EF_MIPS_PIC, 0x00000002UL,
+_(EF_MIPS_PIC, 0x00000002U,
`file contains position independent code')
-_(EF_MIPS_CPIC, 0x00000004UL,
+_(EF_MIPS_CPIC, 0x00000004U,
`file code uses standard conventions for calling PIC')
-_(EF_MIPS_UCODE, 0x00000010UL,
+_(EF_MIPS_UCODE, 0x00000010U,
`file contains UCODE (obsolete)')
-_(EF_MIPS_ABI, 0x00007000UL,
+_(EF_MIPS_ABI, 0x00007000U,
`Application binary interface, see E_MIPS_* values')
-_(EF_MIPS_ABI2, 0x00000020UL,
+_(EF_MIPS_ABI2, 0x00000020U,
`file follows MIPS III 32-bit ABI')
-_(EF_MIPS_OPTIONS_FIRST, 0x00000080UL,
+_(EF_MIPS_OPTIONS_FIRST, 0x00000080U,
`ld(1) should process .MIPS.options section first')
-_(EF_MIPS_ARCH_ASE, 0x0F000000UL,
+_(EF_MIPS_ARCH_ASE, 0x0F000000U,
`file uses application-specific architectural extensions')
-_(EF_MIPS_ARCH_ASE_MDMX, 0x08000000UL,
+_(EF_MIPS_ARCH_ASE_MDMX, 0x08000000U,
`file uses MDMX multimedia extensions')
-_(EF_MIPS_ARCH_ASE_M16, 0x04000000UL,
+_(EF_MIPS_ARCH_ASE_M16, 0x04000000U,
`file uses MIPS-16 ISA extensions')
-_(EF_MIPS_ARCH_ASE_MICROMIPS, 0x02000000UL,
+_(EF_MIPS_ARCH_ASE_MICROMIPS, 0x02000000U,
`MicroMIPS architecture')
-_(EF_MIPS_ARCH, 0xF0000000UL,
+_(EF_MIPS_ARCH, 0xF0000000U,
`4-bit MIPS architecture field')
-_(EF_MIPS_ARCH_1, 0x00000000UL,
+_(EF_MIPS_ARCH_1, 0x00000000U,
`MIPS I instruction set')
-_(EF_MIPS_ARCH_2, 0x10000000UL,
+_(EF_MIPS_ARCH_2, 0x10000000U,
`MIPS II instruction set')
-_(EF_MIPS_ARCH_3, 0x20000000UL,
+_(EF_MIPS_ARCH_3, 0x20000000U,
`MIPS III instruction set')
-_(EF_MIPS_ARCH_4, 0x30000000UL,
+_(EF_MIPS_ARCH_4, 0x30000000U,
`MIPS IV instruction set')
-_(EF_MIPS_ARCH_5, 0x40000000UL,
+_(EF_MIPS_ARCH_5, 0x40000000U,
`Never introduced')
-_(EF_MIPS_ARCH_32, 0x50000000UL,
+_(EF_MIPS_ARCH_32, 0x50000000U,
`Mips32 Revision 1')
-_(EF_MIPS_ARCH_64, 0x60000000UL,
+_(EF_MIPS_ARCH_64, 0x60000000U,
`Mips64 Revision 1')
-_(EF_MIPS_ARCH_32R2, 0x70000000UL,
+_(EF_MIPS_ARCH_32R2, 0x70000000U,
`Mips32 Revision 2')
-_(EF_MIPS_ARCH_64R2, 0x80000000UL,
+_(EF_MIPS_ARCH_64R2, 0x80000000U,
`Mips64 Revision 2')
-_(EF_PPC_EMB, 0x80000000UL,
+_(EF_PPC_EMB, 0x80000000U,
`Embedded PowerPC flag')
-_(EF_PPC_RELOCATABLE, 0x00010000UL,
+_(EF_PPC_RELOCATABLE, 0x00010000U,
`-mrelocatable flag')
-_(EF_PPC_RELOCATABLE_LIB, 0x00008000UL,
+_(EF_PPC_RELOCATABLE_LIB, 0x00008000U,
`-mrelocatable-lib flag')
-_(EF_RISCV_RVC, 0x00000001UL,
+_(EF_RISCV_RVC, 0x00000001U,
`Compressed instruction extension')
-_(EF_RISCV_FLOAT_ABI_MASK, 0x00000006UL,
+_(EF_RISCV_FLOAT_ABI_MASK, 0x00000006U,
`Floating point ABI')
-_(EF_RISCV_FLOAT_ABI_SOFT, 0x00000000UL,
+_(EF_RISCV_FLOAT_ABI_SOFT, 0x00000000U,
`Software emulated floating point')
-_(EF_RISCV_FLOAT_ABI_SINGLE, 0x00000002UL,
+_(EF_RISCV_FLOAT_ABI_SINGLE, 0x00000002U,
`Single precision floating point')
-_(EF_RISCV_FLOAT_ABI_DOUBLE, 0x00000004UL,
+_(EF_RISCV_FLOAT_ABI_DOUBLE, 0x00000004U,
`Double precision floating point')
-_(EF_RISCV_FLOAT_ABI_QUAD, 0x00000006UL,
+_(EF_RISCV_FLOAT_ABI_QUAD, 0x00000006U,
`Quad precision floating point')
-_(EF_RISCV_RVE, 0x00000008UL,
+_(EF_RISCV_RVE, 0x00000008U,
`Compressed instruction ABI')
-_(EF_RISCV_TSO, 0x00000010UL,
+_(EF_RISCV_TSO, 0x00000010U,
`RVTSO memory consistency model')
-_(EF_SPARC_EXT_MASK, 0x00ffff00UL,
+_(EF_SPARC_EXT_MASK, 0x00FFFF00U,
`Vendor Extension mask')
-_(EF_SPARC_32PLUS, 0x00000100UL,
+_(EF_SPARC_32PLUS, 0x00000100U,
`Generic V8+ features')
-_(EF_SPARC_SUN_US1, 0x00000200UL,
+_(EF_SPARC_SUN_US1, 0x00000200U,
`Sun UltraSPARCTM 1 Extensions')
-_(EF_SPARC_HAL_R1, 0x00000400UL,
+_(EF_SPARC_HAL_R1, 0x00000400U,
`HAL R1 Extensions')
-_(EF_SPARC_SUN_US3, 0x00000800UL,
+_(EF_SPARC_SUN_US3, 0x00000800U,
`Sun UltraSPARC 3 Extensions')
-_(EF_SPARCV9_MM, 0x00000003UL,
+_(EF_SPARCV9_MM, 0x00000003U,
`Mask for Memory Model')
-_(EF_SPARCV9_TSO, 0x00000000UL,
+_(EF_SPARCV9_TSO, 0x00000000U,
`Total Store Ordering')
-_(EF_SPARCV9_PSO, 0x00000001UL,
+_(EF_SPARCV9_PSO, 0x00000001U,
`Partial Store Ordering')
-_(EF_SPARCV9_RMO, 0x00000002UL,
+_(EF_SPARCV9_RMO, 0x00000002U,
`Relaxed Memory Ordering')
')
@@ -562,11 +642,11 @@ _(EI_NIDENT, 16,
# The ELF class of an object.
#
define(`DEFINE_ELF_CLASSES',`
-_(ELFCLASSNONE, 0,
+_(ELFCLASSNONE, 0U,
`Unknown ELF class')
-_(ELFCLASS32, 1,
+_(ELFCLASS32, 1U,
`32 bit objects')
-_(ELFCLASS64, 2,
+_(ELFCLASS64, 2U,
`64 bit objects')
')
@@ -574,11 +654,11 @@ _(ELFCLASS64, 2,
# Endianness of data in an ELF object.
#
define(`DEFINE_ELF_DATA_ENDIANNESSES',`
-_(ELFDATANONE, 0,
+_(ELFDATANONE, 0U,
`Unknown data endianness')
-_(ELFDATA2LSB, 1,
+_(ELFDATA2LSB, 1U,
`little endian')
-_(ELFDATA2MSB, 2,
+_(ELFDATA2MSB, 2U,
`big endian')
')
@@ -604,51 +684,51 @@ _(SELFMAG, 4)
# ELF OS ABI field.
#
define(`DEFINE_ELF_OSABIS',`
-_(ELFOSABI_NONE, 0,
+_(ELFOSABI_NONE, 0U,
`No extensions or unspecified')
-_(ELFOSABI_SYSV, 0,
+_(ELFOSABI_SYSV, 0U,
`SYSV')
-_(ELFOSABI_HPUX, 1,
+_(ELFOSABI_HPUX, 1U,
`Hewlett-Packard HP-UX')
-_(ELFOSABI_NETBSD, 2,
+_(ELFOSABI_NETBSD, 2U,
`NetBSD')
-_(ELFOSABI_GNU, 3,
+_(ELFOSABI_GNU, 3U,
`GNU')
-_(ELFOSABI_HURD, 4,
+_(ELFOSABI_HURD, 4U,
`GNU/HURD')
-_(ELFOSABI_86OPEN, 5,
+_(ELFOSABI_86OPEN, 5U,
`86Open Common ABI')
-_(ELFOSABI_SOLARIS, 6,
+_(ELFOSABI_SOLARIS, 6U,
`Sun Solaris')
-_(ELFOSABI_AIX, 7,
+_(ELFOSABI_AIX, 7U,
`AIX')
-_(ELFOSABI_IRIX, 8,
+_(ELFOSABI_IRIX, 8U,
`IRIX')
-_(ELFOSABI_FREEBSD, 9,
+_(ELFOSABI_FREEBSD, 9U,
`FreeBSD')
-_(ELFOSABI_TRU64, 10,
+_(ELFOSABI_TRU64, 10U,
`Compaq TRU64 UNIX')
-_(ELFOSABI_MODESTO, 11,
+_(ELFOSABI_MODESTO, 11U,
`Novell Modesto')
-_(ELFOSABI_OPENBSD, 12,
+_(ELFOSABI_OPENBSD, 12U,
`Open BSD')
-_(ELFOSABI_OPENVMS, 13,
+_(ELFOSABI_OPENVMS, 13U,
`Open VMS')
-_(ELFOSABI_NSK, 14,
+_(ELFOSABI_NSK, 14U,
`Hewlett-Packard Non-Stop Kernel')
-_(ELFOSABI_AROS, 15,
+_(ELFOSABI_AROS, 15U,
`Amiga Research OS')
-_(ELFOSABI_FENIXOS, 16,
+_(ELFOSABI_FENIXOS, 16U,
`The FenixOS highly scalable multi-core OS')
-_(ELFOSABI_CLOUDABI, 17,
+_(ELFOSABI_CLOUDABI, 17U,
`Nuxi CloudABI')
-_(ELFOSABI_OPENVOS, 18,
+_(ELFOSABI_OPENVOS, 18U,
`Stratus Technologies OpenVOS')
-_(ELFOSABI_ARM_AEABI, 64,
+_(ELFOSABI_ARM_AEABI, 64U,
`ARM specific symbol versioning extensions')
-_(ELFOSABI_ARM, 97,
+_(ELFOSABI_ARM, 97U,
`ARM ABI')
-_(ELFOSABI_STANDALONE, 255,
+_(ELFOSABI_STANDALONE, 255U,
`Standalone (embedded) application')
')
@@ -661,404 +741,440 @@ _(ELFOSABI_LINUX, ELFOSABI_GNU)
# ELF Machine types: (EM_*).
#
define(`DEFINE_ELF_MACHINE_TYPES',`
-_(EM_NONE, 0,
+_(EM_NONE, 0U,
`No machine')
-_(EM_M32, 1,
+_(EM_M32, 1U,
`AT&T WE 32100')
-_(EM_SPARC, 2,
+_(EM_SPARC, 2U,
`SPARC')
-_(EM_386, 3,
+_(EM_386, 3U,
`Intel 80386')
-_(EM_68K, 4,
+_(EM_68K, 4U,
`Motorola 68000')
-_(EM_88K, 5,
+_(EM_88K, 5U,
`Motorola 88000')
-_(EM_IAMCU, 6,
+_(EM_IAMCU, 6U,
`Intel MCU')
-_(EM_860, 7,
+_(EM_860, 7U,
`Intel 80860')
-_(EM_MIPS, 8,
+_(EM_MIPS, 8U,
`MIPS I Architecture')
-_(EM_S370, 9,
+_(EM_S370, 9U,
`IBM System/370 Processor')
-_(EM_MIPS_RS3_LE, 10,
+_(EM_MIPS_RS3_LE, 10U,
`MIPS RS3000 Little-endian')
-_(EM_PARISC, 15,
+_(EM_PARISC, 15U,
`Hewlett-Packard PA-RISC')
-_(EM_VPP500, 17,
+_(EM_VPP500, 17U,
`Fujitsu VPP500')
-_(EM_SPARC32PLUS, 18,
+_(EM_SPARC32PLUS, 18U,
`Enhanced instruction set SPARC')
-_(EM_960, 19,
+_(EM_960, 19U,
`Intel 80960')
-_(EM_PPC, 20,
+_(EM_PPC, 20U,
`PowerPC')
-_(EM_PPC64, 21,
+_(EM_PPC64, 21U,
`64-bit PowerPC')
-_(EM_S390, 22,
+_(EM_S390, 22U,
`IBM System/390 Processor')
-_(EM_SPU, 23,
+_(EM_SPU, 23U,
`IBM SPU/SPC')
-_(EM_V800, 36,
+_(EM_V800, 36U,
`NEC V800')
-_(EM_FR20, 37,
+_(EM_FR20, 37U,
`Fujitsu FR20')
-_(EM_RH32, 38,
+_(EM_RH32, 38U,
`TRW RH-32')
-_(EM_RCE, 39,
+_(EM_RCE, 39U,
`Motorola RCE')
-_(EM_ARM, 40,
+_(EM_ARM, 40U,
`Advanced RISC Machines ARM')
-_(EM_ALPHA, 41,
+_(EM_ALPHA, 41U,
`Digital Alpha')
-_(EM_SH, 42,
+_(EM_SH, 42U,
`Hitachi SH')
-_(EM_SPARCV9, 43,
+_(EM_SPARCV9, 43U,
`SPARC Version 9')
-_(EM_TRICORE, 44,
+_(EM_TRICORE, 44U,
`Siemens TriCore embedded processor')
-_(EM_ARC, 45,
+_(EM_ARC, 45U,
`Argonaut RISC Core, Argonaut Technologies Inc.')
-_(EM_H8_300, 46,
+_(EM_H8_300, 46U,
`Hitachi H8/300')
-_(EM_H8_300H, 47,
+_(EM_H8_300H, 47U,
`Hitachi H8/300H')
-_(EM_H8S, 48,
+_(EM_H8S, 48U,
`Hitachi H8S')
-_(EM_H8_500, 49,
+_(EM_H8_500, 49U,
`Hitachi H8/500')
-_(EM_IA_64, 50,
+_(EM_IA_64, 50U,
`Intel IA-64 processor architecture')
-_(EM_MIPS_X, 51,
+_(EM_MIPS_X, 51U,
`Stanford MIPS-X')
-_(EM_COLDFIRE, 52,
+_(EM_COLDFIRE, 52U,
`Motorola ColdFire')
-_(EM_68HC12, 53,
+_(EM_68HC12, 53U,
`Motorola M68HC12')
-_(EM_MMA, 54,
+_(EM_MMA, 54U,
`Fujitsu MMA Multimedia Accelerator')
-_(EM_PCP, 55,
+_(EM_PCP, 55U,
`Siemens PCP')
-_(EM_NCPU, 56,
+_(EM_NCPU, 56U,
`Sony nCPU embedded RISC processor')
-_(EM_NDR1, 57,
+_(EM_NDR1, 57U,
`Denso NDR1 microprocessor')
-_(EM_STARCORE, 58,
+_(EM_STARCORE, 58U,
`Motorola Star*Core processor')
-_(EM_ME16, 59,
+_(EM_ME16, 59U,
`Toyota ME16 processor')
-_(EM_ST100, 60,
+_(EM_ST100, 60U,
`STMicroelectronics ST100 processor')
-_(EM_TINYJ, 61,
+_(EM_TINYJ, 61U,
`Advanced Logic Corp. TinyJ embedded processor family')
-_(EM_X86_64, 62,
+_(EM_X86_64, 62U,
`AMD x86-64 architecture')
-_(EM_PDSP, 63,
+_(EM_PDSP, 63U,
`Sony DSP Processor')
-_(EM_PDP10, 64,
+_(EM_PDP10, 64U,
`Digital Equipment Corp. PDP-10')
-_(EM_PDP11, 65,
+_(EM_PDP11, 65U,
`Digital Equipment Corp. PDP-11')
-_(EM_FX66, 66,
+_(EM_FX66, 66U,
`Siemens FX66 microcontroller')
-_(EM_ST9PLUS, 67,
+_(EM_ST9PLUS, 67U,
`STMicroelectronics ST9+ 8/16 bit microcontroller')
-_(EM_ST7, 68,
+_(EM_ST7, 68U,
`STMicroelectronics ST7 8-bit microcontroller')
-_(EM_68HC16, 69,
+_(EM_68HC16, 69U,
`Motorola MC68HC16 Microcontroller')
-_(EM_68HC11, 70,
+_(EM_68HC11, 70U,
`Motorola MC68HC11 Microcontroller')
-_(EM_68HC08, 71,
+_(EM_68HC08, 71U,
`Motorola MC68HC08 Microcontroller')
-_(EM_68HC05, 72,
+_(EM_68HC05, 72U,
`Motorola MC68HC05 Microcontroller')
-_(EM_SVX, 73,
+_(EM_SVX, 73U,
`Silicon Graphics SVx')
-_(EM_ST19, 74,
+_(EM_ST19, 74U,
`STMicroelectronics ST19 8-bit microcontroller')
-_(EM_VAX, 75,
+_(EM_VAX, 75U,
`Digital VAX')
-_(EM_CRIS, 76,
+_(EM_CRIS, 76U,
`Axis Communications 32-bit embedded processor')
-_(EM_JAVELIN, 77,
+_(EM_JAVELIN, 77U,
`Infineon Technologies 32-bit embedded processor')
-_(EM_FIREPATH, 78,
+_(EM_FIREPATH, 78U,
`Element 14 64-bit DSP Processor')
-_(EM_ZSP, 79,
+_(EM_ZSP, 79U,
`LSI Logic 16-bit DSP Processor')
-_(EM_MMIX, 80,
+_(EM_MMIX, 80U,
`Educational 64-bit processor by Donald Knuth')
-_(EM_HUANY, 81,
+_(EM_HUANY, 81U,
`Harvard University machine-independent object files')
-_(EM_PRISM, 82,
+_(EM_PRISM, 82U,
`SiTera Prism')
-_(EM_AVR, 83,
+_(EM_AVR, 83U,
`Atmel AVR 8-bit microcontroller')
-_(EM_FR30, 84,
+_(EM_FR30, 84U,
`Fujitsu FR30')
-_(EM_D10V, 85,
+_(EM_D10V, 85U,
`Mitsubishi D10V')
-_(EM_D30V, 86,
+_(EM_D30V, 86U,
`Mitsubishi D30V')
-_(EM_V850, 87,
+_(EM_V850, 87U,
`NEC v850')
-_(EM_M32R, 88,
+_(EM_M32R, 88U,
`Mitsubishi M32R')
-_(EM_MN10300, 89,
+_(EM_MN10300, 89U,
`Matsushita MN10300')
-_(EM_MN10200, 90,
+_(EM_MN10200, 90U,
`Matsushita MN10200')
-_(EM_PJ, 91,
+_(EM_PJ, 91U,
`picoJava')
-_(EM_OPENRISC, 92,
+_(EM_OPENRISC, 92U,
`OpenRISC 32-bit embedded processor')
-_(EM_ARC_COMPACT, 93,
+_(EM_ARC_COMPACT, 93U,
`ARC International ARCompact processor')
-_(EM_XTENSA, 94,
+_(EM_XTENSA, 94U,
`Tensilica Xtensa Architecture')
-_(EM_VIDEOCORE, 95,
+_(EM_VIDEOCORE, 95U,
`Alphamosaic VideoCore processor')
-_(EM_TMM_GPP, 96,
+_(EM_TMM_GPP, 96U,
`Thompson Multimedia General Purpose Processor')
-_(EM_NS32K, 97,
+_(EM_NS32K, 97U,
`National Semiconductor 32000 series')
-_(EM_TPC, 98,
+_(EM_TPC, 98U,
`Tenor Network TPC processor')
-_(EM_SNP1K, 99,
+_(EM_SNP1K, 99U,
`Trebia SNP 1000 processor')
-_(EM_ST200, 100,
+_(EM_ST200, 100U,
`STMicroelectronics (www.st.com) ST200 microcontroller')
-_(EM_IP2K, 101,
+_(EM_IP2K, 101U,
`Ubicom IP2xxx microcontroller family')
-_(EM_MAX, 102,
+_(EM_MAX, 102U,
`MAX Processor')
-_(EM_CR, 103,
+_(EM_CR, 103U,
`National Semiconductor CompactRISC microprocessor')
-_(EM_F2MC16, 104,
+_(EM_F2MC16, 104U,
`Fujitsu F2MC16')
-_(EM_MSP430, 105,
+_(EM_MSP430, 105U,
`Texas Instruments embedded microcontroller msp430')
-_(EM_BLACKFIN, 106,
+_(EM_BLACKFIN, 106U,
`Analog Devices Blackfin (DSP) processor')
-_(EM_SE_C33, 107,
+_(EM_SE_C33, 107U,
`S1C33 Family of Seiko Epson processors')
-_(EM_SEP, 108,
+_(EM_SEP, 108U,
`Sharp embedded microprocessor')
-_(EM_ARCA, 109,
+_(EM_ARCA, 109U,
`Arca RISC Microprocessor')
-_(EM_UNICORE, 110,
+_(EM_UNICORE, 110U,
`Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University')
-_(EM_EXCESS, 111,
+_(EM_EXCESS, 111U,
`eXcess: 16/32/64-bit configurable embedded CPU')
-_(EM_DXP, 112,
+_(EM_DXP, 112U,
`Icera Semiconductor Inc. Deep Execution Processor')
-_(EM_ALTERA_NIOS2, 113,
+_(EM_ALTERA_NIOS2, 113U,
`Altera Nios II soft-core processor')
-_(EM_CRX, 114,
+_(EM_CRX, 114U,
`National Semiconductor CompactRISC CRX microprocessor')
-_(EM_XGATE, 115,
+_(EM_XGATE, 115U,
`Motorola XGATE embedded processor')
-_(EM_C166, 116,
+_(EM_C166, 116U,
`Infineon C16x/XC16x processor')
-_(EM_M16C, 117,
+_(EM_M16C, 117U,
`Renesas M16C series microprocessors')
-_(EM_DSPIC30F, 118,
+_(EM_DSPIC30F, 118U,
`Microchip Technology dsPIC30F Digital Signal Controller')
-_(EM_CE, 119,
+_(EM_CE, 119U,
`Freescale Communication Engine RISC core')
-_(EM_M32C, 120,
+_(EM_M32C, 120U,
`Renesas M32C series microprocessors')
-_(EM_TSK3000, 131,
+_(EM_TSK3000, 131U,
`Altium TSK3000 core')
-_(EM_RS08, 132,
+_(EM_RS08, 132U,
`Freescale RS08 embedded processor')
-_(EM_SHARC, 133,
+_(EM_SHARC, 133U,
`Analog Devices SHARC family of 32-bit DSP processors')
-_(EM_ECOG2, 134,
+_(EM_ECOG2, 134U,
`Cyan Technology eCOG2 microprocessor')
-_(EM_SCORE7, 135,
+_(EM_SCORE7, 135U,
`Sunplus S+core7 RISC processor')
-_(EM_DSP24, 136,
+_(EM_DSP24, 136U,
`New Japan Radio (NJR) 24-bit DSP Processor')
-_(EM_VIDEOCORE3, 137,
+_(EM_VIDEOCORE3, 137U,
`Broadcom VideoCore III processor')
-_(EM_LATTICEMICO32, 138,
+_(EM_LATTICEMICO32, 138U,
`RISC processor for Lattice FPGA architecture')
-_(EM_SE_C17, 139,
+_(EM_SE_C17, 139U,
`Seiko Epson C17 family')
-_(EM_TI_C6000, 140,
+_(EM_TI_C6000, 140U,
`The Texas Instruments TMS320C6000 DSP family')
-_(EM_TI_C2000, 141,
+_(EM_TI_C2000, 141U,
`The Texas Instruments TMS320C2000 DSP family')
-_(EM_TI_C5500, 142,
+_(EM_TI_C5500, 142U,
`The Texas Instruments TMS320C55x DSP family')
-_(EM_MMDSP_PLUS, 160,
+_(EM_TI_ARP32, 143U,
+ `Texas Instruments Application Specific RISC Processor, 32bit fetch')
+_(EM_TI_PRU, 144U,
+ `Texas Instruments Programmable Realtime Unit')
+_(EM_MMDSP_PLUS, 160U,
`STMicroelectronics 64bit VLIW Data Signal Processor')
-_(EM_CYPRESS_M8C, 161,
+_(EM_CYPRESS_M8C, 161U,
`Cypress M8C microprocessor')
-_(EM_R32C, 162,
+_(EM_R32C, 162U,
`Renesas R32C series microprocessors')
-_(EM_TRIMEDIA, 163,
+_(EM_TRIMEDIA, 163U,
`NXP Semiconductors TriMedia architecture family')
-_(EM_QDSP6, 164,
+_(EM_QDSP6, 164U,
`QUALCOMM DSP6 Processor')
-_(EM_8051, 165,
+_(EM_8051, 165U,
`Intel 8051 and variants')
-_(EM_STXP7X, 166,
+_(EM_STXP7X, 166U,
`STMicroelectronics STxP7x family of configurable and extensible RISC processors')
-_(EM_NDS32, 167,
+_(EM_NDS32, 167U,
`Andes Technology compact code size embedded RISC processor family')
-_(EM_ECOG1, 168,
- `Cyan Technology eCOG1X family')
-_(EM_ECOG1X, 168,
+_(EM_ECOG1X, 168U,
`Cyan Technology eCOG1X family')
-_(EM_MAXQ30, 169,
+_(EM_MAXQ30, 169U,
`Dallas Semiconductor MAXQ30 Core Micro-controllers')
-_(EM_XIMO16, 170,
+_(EM_XIMO16, 170U,
`New Japan Radio (NJR) 16-bit DSP Processor')
-_(EM_MANIK, 171,
+_(EM_MANIK, 171U,
`M2000 Reconfigurable RISC Microprocessor')
-_(EM_CRAYNV2, 172,
+_(EM_CRAYNV2, 172U,
`Cray Inc. NV2 vector architecture')
-_(EM_RX, 173,
+_(EM_RX, 173U,
`Renesas RX family')
-_(EM_METAG, 174,
+_(EM_METAG, 174U,
`Imagination Technologies META processor architecture')
-_(EM_MCST_ELBRUS, 175,
+_(EM_MCST_ELBRUS, 175U,
`MCST Elbrus general purpose hardware architecture')
-_(EM_ECOG16, 176,
+_(EM_ECOG16, 176U,
`Cyan Technology eCOG16 family')
-_(EM_CR16, 177,
+_(EM_CR16, 177U,
`National Semiconductor CompactRISC CR16 16-bit microprocessor')
-_(EM_ETPU, 178,
+_(EM_ETPU, 178U,
`Freescale Extended Time Processing Unit')
-_(EM_SLE9X, 179,
+_(EM_SLE9X, 179U,
`Infineon Technologies SLE9X core')
-_(EM_AARCH64, 183,
+_(EM_L10M, 180U,
+ `Intel L10M')
+_(EM_K10M, 181U,
+ `Intel K10M')
+_(EM_AARCH64, 183U,
`AArch64 (64-bit ARM)')
-_(EM_AVR32, 185,
+_(EM_AVR32, 185U,
`Atmel Corporation 32-bit microprocessor family')
-_(EM_STM8, 186,
+_(EM_STM8, 186U,
`STMicroeletronics STM8 8-bit microcontroller')
-_(EM_TILE64, 187,
+_(EM_TILE64, 187U,
`Tilera TILE64 multicore architecture family')
-_(EM_TILEPRO, 188,
+_(EM_TILEPRO, 188U,
`Tilera TILEPro multicore architecture family')
-_(EM_MICROBLAZE, 189,
+_(EM_MICROBLAZE, 189U,
`Xilinx MicroBlaze 32-bit RISC soft processor core')
-_(EM_CUDA, 190,
+_(EM_CUDA, 190U,
`NVIDIA CUDA architecture')
-_(EM_TILEGX, 191,
+_(EM_TILEGX, 191U,
`Tilera TILE-Gx multicore architecture family')
-_(EM_CLOUDSHIELD, 192,
+_(EM_CLOUDSHIELD, 192U,
`CloudShield architecture family')
-_(EM_COREA_1ST, 193,
+_(EM_COREA_1ST, 193U,
`KIPO-KAIST Core-A 1st generation processor family')
-_(EM_COREA_2ND, 194,
+_(EM_COREA_2ND, 194U,
`KIPO-KAIST Core-A 2nd generation processor family')
-_(EM_ARC_COMPACT2, 195,
+_(EM_ARC_COMPACT2, 195U,
`Synopsys ARCompact V2')
-_(EM_OPEN8, 196,
+_(EM_OPEN8, 196U,
`Open8 8-bit RISC soft processor core')
-_(EM_RL78, 197,
+_(EM_RL78, 197U,
`Renesas RL78 family')
-_(EM_VIDEOCORE5, 198,
+_(EM_VIDEOCORE5, 198U,
`Broadcom VideoCore V processor')
-_(EM_78KOR, 199,
+_(EM_78KOR, 199U,
`Renesas 78KOR family')
-_(EM_56800EX, 200,
+_(EM_56800EX, 200U,
`Freescale 56800EX Digital Signal Controller')
-_(EM_BA1, 201,
+_(EM_BA1, 201U,
`Beyond BA1 CPU architecture')
-_(EM_BA2, 202,
+_(EM_BA2, 202U,
`Beyond BA2 CPU architecture')
-_(EM_XCORE, 203,
+_(EM_XCORE, 203U,
`XMOS xCORE processor family')
-_(EM_MCHP_PIC, 204,
+_(EM_MCHP_PIC, 204U,
`Microchip 8-bit PIC(r) family')
-_(EM_INTELGT, 205,
+_(EM_INTEL205, 205U,
`Intel Graphics Technology')
-_(EM_INTEL206, 206,
+_(EM_INTEL206, 206U,
`Reserved by Intel')
-_(EM_INTEL207, 207,
+_(EM_INTEL207, 207U,
`Reserved by Intel')
-_(EM_INTEL208, 208,
+_(EM_INTEL208, 208U,
`Reserved by Intel')
-_(EM_INTEL209, 209,
+_(EM_INTEL209, 209U,
`Reserved by Intel')
-_(EM_KM32, 210,
+_(EM_KM32, 210U,
`KM211 KM32 32-bit processor')
-_(EM_KMX32, 211,
+_(EM_KMX32, 211U,
`KM211 KMX32 32-bit processor')
-_(EM_KMX16, 212,
+_(EM_KMX16, 212U,
`KM211 KMX16 16-bit processor')
-_(EM_KMX8, 213,
+_(EM_KMX8, 213U,
`KM211 KMX8 8-bit processor')
-_(EM_KVARC, 214,
+_(EM_KVARC, 214U,
`KM211 KMX32 KVARC processor')
-_(EM_CDP, 215,
+_(EM_CDP, 215U,
`Paneve CDP architecture family')
-_(EM_COGE, 216,
+_(EM_COGE, 216U,
`Cognitive Smart Memory Processor')
-_(EM_COOL, 217,
+_(EM_COOL, 217U,
`Bluechip Systems CoolEngine')
-_(EM_NORC, 218,
+_(EM_NORC, 218U,
`Nanoradio Optimized RISC')
-_(EM_CSR_KALIMBA, 219,
+_(EM_CSR_KALIMBA, 219U,
`CSR Kalimba architecture family')
-_(EM_Z80, 220,
+_(EM_Z80, 220U,
`Zilog Z80')
-_(EM_VISIUM, 221,
+_(EM_VISIUM, 221U,
`Controls and Data Services VISIUMcore processor')
-_(EM_FT32, 222,
+_(EM_FT32, 222U,
`FTDI Chip FT32 high performance 32-bit RISC architecture')
-_(EM_MOXIE, 223,
+_(EM_MOXIE, 223U,
`Moxie processor family')
-_(EM_AMDGPU, 224,
+_(EM_AMDGPU, 224U,
`AMD GPU architecture')
-_(EM_RISCV, 243,
+_(EM_RISCV, 243U,
`RISC-V')
-_(EM_LANAI, 244,
+_(EM_LANAI, 244U,
`Lanai processor')
-_(EM_CEVA, 245,
+_(EM_CEVA, 245U,
`CEVA Processor Architecture Family')
-_(EM_CEVA_X2, 246,
+_(EM_CEVA_X2, 246U,
`CEVA X2 Processor Family')
-_(EM_BPF, 247,
+_(EM_BPF, 247U,
`Linux BPF – in-kernel virtual machine')
-_(EM_GRAPHCORE_IPU, 248,
+_(EM_GRAPHCORE_IPU, 248U,
`Graphcore Intelligent Processing Unit')
-_(EM_IMG1, 249,
+_(EM_IMG1, 249U,
`Imagination Technologies')
-_(EM_NFP, 250,
+_(EM_NFP, 250U,
`Netronome Flow Processor (NFP)')
-_(EM_CSKY, 252,
+_(EM_VE, 251U,
+ `NEC Vector Engine')
+_(EM_CSKY, 252U,
`C-SKY processor family')
-_(EM_65816, 257,
+_(EM_ARC_COMPACT3_64, 253U,
+ `Synopsys ARCv2.3 64-bit')
+_(EM_MCS6502, 254U,
+ `MOS Technology MCS 6502 processor')
+_(EM_ARC_COMPACT3, 255U,
+ `Synopsys ARCv2.3 32-bit')
+_(EM_KVX, 256U,
+ `Kalray VLIW core of the MPPA processor family')
+_(EM_65816, 257U,
`WDC 65816/65C816')
-_(EM_KF32, 259,
+_(EM_LOONGARCH, 258U,
+ `Loongson LoongArch')
+_(EM_KF32, 259U,
`ChipON KungFu 32')
+_(EM_U16_U8CORE, 260U,
+ `LAPIS nX-U16/U8')
+_(EM_TACHYUM, 261U,
+ `Reserved for Tachyum processor')
+_(EM_56800EF, 262U,
+ `NXP 56800EF Digital Signal Controller (DSC)')
+_(EM_SBF, 263U,
+ `Solana Bytecode Format')
+_(EM_AIENGINE, 264U,
+ `AMD/Xilinx AIEngine architecture')
+_(EM_SIMA_MLA, 265U,
+ `SiMa MLA')
+_(EM_BANG, 266U,
+ `Cambricon BANG')
+_(EM_LOONGGPU, 267U,
+ `Loongson LoongArch GPU')
')
define(`DEFINE_ELF_MACHINE_TYPE_SYNONYMS',`
_(EM_AMD64, EM_X86_64)
_(EM_ARC_A5, EM_ARC_COMPACT)
+_(EM_ECOG1, EM_ECOG1X)
+_(EM_INTELGT, EM_INTEL205)
')
#
# ELF file types: (ET_*).
#
define(`DEFINE_ELF_TYPES',`
-_(ET_NONE, 0,
+_(ET_NONE, 0U,
`No file type')
-_(ET_REL, 1,
+_(ET_REL, 1U,
`Relocatable object')
-_(ET_EXEC, 2,
+_(ET_EXEC, 2U,
`Executable')
-_(ET_DYN, 3,
+_(ET_DYN, 3U,
`Shared object')
-_(ET_CORE, 4,
+_(ET_CORE, 4U,
`Core file')
_(ET_LOOS, 0xFE00U,
`Begin OS-specific range')
@@ -1072,8 +1188,8 @@ _(ET_HIPROC, 0xFFFFU,
# ELF file format version numbers.
define(`DEFINE_ELF_FILE_VERSIONS',`
-_(EV_NONE, 0)
-_(EV_CURRENT, 1)
+_(EV_NONE, 0U)
+_(EV_CURRENT, 1U)
')
#
@@ -1122,61 +1238,67 @@ _(PF_ARM_ABS, 0x40000000,
# Types of program header table entries.
#
define(`DEFINE_PHDR_TYPES',`
-_(PT_NULL, 0UL,
+_(PT_NULL, 0U,
`ignored entry')
-_(PT_LOAD, 1UL,
+_(PT_LOAD, 1U,
`loadable segment')
-_(PT_DYNAMIC, 2UL,
+_(PT_DYNAMIC, 2U,
`contains dynamic linking information')
-_(PT_INTERP, 3UL,
+_(PT_INTERP, 3U,
`names an interpreter')
-_(PT_NOTE, 4UL,
+_(PT_NOTE, 4U,
`auxiliary information')
-_(PT_SHLIB, 5UL,
+_(PT_SHLIB, 5U,
`reserved')
-_(PT_PHDR, 6UL,
+_(PT_PHDR, 6U,
`describes the program header itself')
-_(PT_TLS, 7UL,
+_(PT_TLS, 7U,
`thread local storage')
-_(PT_LOOS, 0x60000000UL,
+_(PT_LOOS, 0x60000000U,
`start of OS-specific range')
-_(PT_SUNW_UNWIND, 0x6464E550UL,
+_(PT_SUNW_UNWIND, 0x6464E550U,
`Solaris/amd64 stack unwind tables')
-_(PT_GNU_EH_FRAME, 0x6474E550UL,
+_(PT_GNU_EH_FRAME, 0x6474E550U,
`GCC generated .eh_frame_hdr segment')
-_(PT_GNU_STACK, 0x6474E551UL,
+_(PT_GNU_STACK, 0x6474E551U,
`Stack flags')
-_(PT_GNU_RELRO, 0x6474E552UL,
+_(PT_GNU_RELRO, 0x6474E552U,
`Segment becomes read-only after relocation')
-_(PT_OPENBSD_RANDOMIZE,0x65A3DBE6UL,
+_(PT_OPENBSD_RANDOMIZE,0x65A3DBE6U,
`Segment filled with random data')
-_(PT_OPENBSD_WXNEEDED, 0x65A3DBE7UL,
+_(PT_OPENBSD_WXNEEDED, 0x65A3DBE7U,
`Program violates W^X')
-_(PT_OPENBSD_BOOTDATA, 0x65A41BE6UL,
+_(PT_OPENBSD_BOOTDATA, 0x65A41BE6U,
`Boot data')
-_(PT_SUNWBSS, 0x6FFFFFFAUL,
+_(PT_SUNWBSS, 0x6FFFFFFAU,
`A Solaris .SUNW_bss section')
-_(PT_SUNWSTACK, 0x6FFFFFFBUL,
+_(PT_SUNWSTACK, 0x6FFFFFFBU,
`A Solaris process stack')
-_(PT_SUNWDTRACE, 0x6FFFFFFCUL,
+_(PT_SUNWDTRACE, 0x6FFFFFFCU,
`Used by dtrace(1)')
-_(PT_SUNWCAP, 0x6FFFFFFDUL,
+_(PT_SUNWCAP, 0x6FFFFFFDU,
`Special hardware capability requirements')
-_(PT_HIOS, 0x6FFFFFFFUL,
+_(PT_HIOS, 0x6FFFFFFFU,
`end of OS-specific range')
-_(PT_LOPROC, 0x70000000UL,
+_(PT_LOPROC, 0x70000000U,
`start of processor-specific range')
-_(PT_ARM_ARCHEXT, 0x70000000UL,
+_(PT_AARCH64_ARCHEXT, 0x70000000U,
`platform architecture compatibility information')
-_(PT_ARM_EXIDX, 0x70000001UL,
+_(PT_AARCH64_UNWIND, 0x70000001U,
+ `exception unwinding tables')
+_(PT_AARCH64_MEMTAG_MTE, 0x70000002U,
+ `MTE memory tag data dumps in core files')
+_(PT_ARM_ARCHEXT, 0x70000000U,
+ `platform architecture compatibility information')
+_(PT_ARM_EXIDX, 0x70000001U,
`exception unwind tables')
-_(PT_MIPS_REGINFO, 0x70000000UL,
+_(PT_MIPS_REGINFO, 0x70000000U,
`register usage information')
-_(PT_MIPS_RTPROC, 0x70000001UL,
+_(PT_MIPS_RTPROC, 0x70000001U,
`runtime procedure table')
-_(PT_MIPS_OPTIONS, 0x70000002UL,
+_(PT_MIPS_OPTIONS, 0x70000002U,
`options segment')
-_(PT_HIPROC, 0x7FFFFFFFUL,
+_(PT_HIPROC, 0x7FFFFFFFU,
`end of processor-specific range')
')
@@ -1190,57 +1312,57 @@ _(PT_LOSUNW, PT_SUNWBSS)
# Section flags.
#
define(`DEFINE_SECTION_FLAGS',`
-_(SHF_WRITE, 0x1,
+_(SHF_WRITE, 0x1U,
`writable during program execution')
-_(SHF_ALLOC, 0x2,
+_(SHF_ALLOC, 0x2U,
`occupies memory during program execution')
-_(SHF_EXECINSTR, 0x4,
+_(SHF_EXECINSTR, 0x4U,
`executable instructions')
-_(SHF_MERGE, 0x10,
+_(SHF_MERGE, 0x10U,
`may be merged to prevent duplication')
-_(SHF_STRINGS, 0x20,
+_(SHF_STRINGS, 0x20U,
`NUL-terminated character strings')
-_(SHF_INFO_LINK, 0x40,
+_(SHF_INFO_LINK, 0x40U,
`the sh_info field holds a link')
-_(SHF_LINK_ORDER, 0x80,
+_(SHF_LINK_ORDER, 0x80U,
`special ordering requirements during linking')
-_(SHF_OS_NONCONFORMING, 0x100,
+_(SHF_OS_NONCONFORMING, 0x100U,
`requires OS-specific processing during linking')
-_(SHF_GROUP, 0x200,
+_(SHF_GROUP, 0x200U,
`member of a section group')
-_(SHF_TLS, 0x400,
+_(SHF_TLS, 0x400U,
`holds thread-local storage')
-_(SHF_COMPRESSED, 0x800,
+_(SHF_COMPRESSED, 0x800U,
`holds compressed data')
-_(SHF_MASKOS, 0x0FF00000UL,
+_(SHF_MASKOS, 0x0FF00000U,
`bits reserved for OS-specific semantics')
-_(SHF_AMD64_LARGE, 0x10000000UL,
+_(SHF_AMD64_LARGE, 0x10000000U,
`section uses large code model')
-_(SHF_ENTRYSECT, 0x10000000UL,
+_(SHF_ENTRYSECT, 0x10000000U,
`section contains an entry point (ARM)')
-_(SHF_COMDEF, 0x80000000UL,
+_(SHF_COMDEF, 0x80000000U,
`section may be multiply defined in input to link step (ARM)')
-_(SHF_MIPS_GPREL, 0x10000000UL,
+_(SHF_MIPS_GPREL, 0x10000000U,
`section must be part of global data area')
-_(SHF_MIPS_MERGE, 0x20000000UL,
+_(SHF_MIPS_MERGE, 0x20000000U,
`section data should be merged to eliminate duplication')
-_(SHF_MIPS_ADDR, 0x40000000UL,
+_(SHF_MIPS_ADDR, 0x40000000U,
`section data is addressed by default')
-_(SHF_MIPS_STRING, 0x80000000UL,
+_(SHF_MIPS_STRING, 0x80000000U,
`section data is string data by default')
-_(SHF_MIPS_NOSTRIP, 0x08000000UL,
+_(SHF_MIPS_NOSTRIP, 0x08000000U,
`section data may not be stripped')
-_(SHF_MIPS_LOCAL, 0x04000000UL,
+_(SHF_MIPS_LOCAL, 0x04000000U,
`section data local to process')
-_(SHF_MIPS_NAMES, 0x02000000UL,
+_(SHF_MIPS_NAMES, 0x02000000U,
`linker must generate implicit hidden weak names')
-_(SHF_MIPS_NODUPE, 0x01000000UL,
+_(SHF_MIPS_NODUPE, 0x01000000U,
`linker must retain only one copy')
-_(SHF_ORDERED, 0x40000000UL,
+_(SHF_ORDERED, 0x40000000U,
`section is ordered with respect to other sections')
-_(SHF_EXCLUDE, 0x80000000UL,
+_(SHF_EXCLUDE, 0x80000000U,
`section is excluded from executables and shared objects')
-_(SHF_MASKPROC, 0xF0000000UL,
+_(SHF_MASKPROC, 0xF0000000U,
`bits reserved for processor-specific semantics')
')
@@ -1248,7 +1370,7 @@ _(SHF_MASKPROC, 0xF0000000UL,
# Special section indices.
#
define(`DEFINE_SECTION_INDICES',`
-_(SHN_UNDEF, 0,
+_(SHN_UNDEF, 0U,
`undefined section')
_(SHN_LORESERVE, 0xFF00U,
`start of reserved area')
@@ -1296,147 +1418,147 @@ _(SHN_HIRESERVE, 0xFFFFU,
# Section types.
#
define(`DEFINE_SECTION_TYPES',`
-_(SHT_NULL, 0, `inactive header')
-_(SHT_PROGBITS, 1, `program defined information')
-_(SHT_SYMTAB, 2, `symbol table')
-_(SHT_STRTAB, 3, `string table')
-_(SHT_RELA, 4,
+_(SHT_NULL, 0U, `inactive header')
+_(SHT_PROGBITS, 1U, `program defined information')
+_(SHT_SYMTAB, 2U, `symbol table')
+_(SHT_STRTAB, 3U, `string table')
+_(SHT_RELA, 4U,
`relocation entries with addends')
-_(SHT_HASH, 5, `symbol hash table')
-_(SHT_DYNAMIC, 6,
+_(SHT_HASH, 5U, `symbol hash table')
+_(SHT_DYNAMIC, 6U,
`information for dynamic linking')
-_(SHT_NOTE, 7, `additional notes')
-_(SHT_NOBITS, 8, `section occupying no space')
-_(SHT_REL, 9,
+_(SHT_NOTE, 7U, `additional notes')
+_(SHT_NOBITS, 8U, `section occupying no space')
+_(SHT_REL, 9U,
`relocation entries without addends')
-_(SHT_SHLIB, 10, `reserved')
-_(SHT_DYNSYM, 11, `symbol table')
-_(SHT_INIT_ARRAY, 14,
+_(SHT_SHLIB, 10U, `reserved')
+_(SHT_DYNSYM, 11U, `symbol table')
+_(SHT_INIT_ARRAY, 14U,
`pointers to initialization functions')
-_(SHT_FINI_ARRAY, 15,
+_(SHT_FINI_ARRAY, 15U,
`pointers to termination functions')
-_(SHT_PREINIT_ARRAY, 16,
+_(SHT_PREINIT_ARRAY, 16U,
`pointers to functions called before initialization')
-_(SHT_GROUP, 17, `defines a section group')
-_(SHT_SYMTAB_SHNDX, 18,
+_(SHT_GROUP, 17U, `defines a section group')
+_(SHT_SYMTAB_SHNDX, 18U,
`used for extended section numbering')
-_(SHT_LOOS, 0x60000000UL,
+_(SHT_LOOS, 0x60000000U,
`start of OS-specific range')
-_(SHT_SUNW_dof, 0x6FFFFFF4UL,
+_(SHT_SUNW_dof, 0x6FFFFFF4U,
`used by dtrace')
-_(SHT_SUNW_cap, 0x6FFFFFF5UL,
+_(SHT_SUNW_cap, 0x6FFFFFF5U,
`capability requirements')
-_(SHT_GNU_ATTRIBUTES, 0x6FFFFFF5UL,
+_(SHT_GNU_ATTRIBUTES, 0x6FFFFFF5U,
`object attributes')
-_(SHT_SUNW_SIGNATURE, 0x6FFFFFF6UL,
+_(SHT_SUNW_SIGNATURE, 0x6FFFFFF6U,
`module verification signature')
-_(SHT_GNU_HASH, 0x6FFFFFF6UL,
+_(SHT_GNU_HASH, 0x6FFFFFF6U,
`GNU Hash sections')
-_(SHT_GNU_LIBLIST, 0x6FFFFFF7UL,
+_(SHT_GNU_LIBLIST, 0x6FFFFFF7U,
`List of libraries to be prelinked')
-_(SHT_SUNW_ANNOTATE, 0x6FFFFFF7UL,
+_(SHT_SUNW_ANNOTATE, 0x6FFFFFF7U,
`special section where unresolved references are allowed')
-_(SHT_SUNW_DEBUGSTR, 0x6FFFFFF8UL,
+_(SHT_SUNW_DEBUGSTR, 0x6FFFFFF8U,
`debugging information')
-_(SHT_CHECKSUM, 0x6FFFFFF8UL,
+_(SHT_CHECKSUM, 0x6FFFFFF8U,
`checksum for dynamic shared objects')
-_(SHT_SUNW_DEBUG, 0x6FFFFFF9UL,
+_(SHT_SUNW_DEBUG, 0x6FFFFFF9U,
`debugging information')
-_(SHT_SUNW_move, 0x6FFFFFFAUL,
+_(SHT_SUNW_move, 0x6FFFFFFAU,
`information to handle partially initialized symbols')
-_(SHT_SUNW_COMDAT, 0x6FFFFFFBUL,
+_(SHT_SUNW_COMDAT, 0x6FFFFFFBU,
`section supporting merging of multiple copies of data')
-_(SHT_SUNW_syminfo, 0x6FFFFFFCUL,
+_(SHT_SUNW_syminfo, 0x6FFFFFFCU,
`additional symbol information')
-_(SHT_SUNW_verdef, 0x6FFFFFFDUL,
+_(SHT_SUNW_verdef, 0x6FFFFFFDU,
`symbol versioning information')
-_(SHT_SUNW_verneed, 0x6FFFFFFEUL,
+_(SHT_SUNW_verneed, 0x6FFFFFFEU,
`symbol versioning requirements')
-_(SHT_SUNW_versym, 0x6FFFFFFFUL,
+_(SHT_SUNW_versym, 0x6FFFFFFFU,
`symbol versioning table')
-_(SHT_HIOS, 0x6FFFFFFFUL,
+_(SHT_HIOS, 0x6FFFFFFFU,
`end of OS-specific range')
-_(SHT_LOPROC, 0x70000000UL,
+_(SHT_LOPROC, 0x70000000U,
`start of processor-specific range')
-_(SHT_ARM_EXIDX, 0x70000001UL,
+_(SHT_ARM_EXIDX, 0x70000001U,
`exception index table')
-_(SHT_ARM_PREEMPTMAP, 0x70000002UL,
+_(SHT_ARM_PREEMPTMAP, 0x70000002U,
`BPABI DLL dynamic linking preemption map')
-_(SHT_ARM_ATTRIBUTES, 0x70000003UL,
+_(SHT_ARM_ATTRIBUTES, 0x70000003U,
`object file compatibility attributes')
-_(SHT_ARM_DEBUGOVERLAY, 0x70000004UL,
+_(SHT_ARM_DEBUGOVERLAY, 0x70000004U,
`overlay debug information')
-_(SHT_ARM_OVERLAYSECTION, 0x70000005UL,
+_(SHT_ARM_OVERLAYSECTION, 0x70000005U,
`overlay debug information')
-_(SHT_MIPS_LIBLIST, 0x70000000UL,
+_(SHT_MIPS_LIBLIST, 0x70000000U,
`DSO library information used in link')
-_(SHT_MIPS_MSYM, 0x70000001UL,
+_(SHT_MIPS_MSYM, 0x70000001U,
`MIPS symbol table extension')
-_(SHT_MIPS_CONFLICT, 0x70000002UL,
+_(SHT_MIPS_CONFLICT, 0x70000002U,
`symbol conflicting with DSO-defined symbols ')
-_(SHT_MIPS_GPTAB, 0x70000003UL,
+_(SHT_MIPS_GPTAB, 0x70000003U,
`global pointer table')
-_(SHT_MIPS_UCODE, 0x70000004UL,
+_(SHT_MIPS_UCODE, 0x70000004U,
`reserved')
-_(SHT_MIPS_DEBUG, 0x70000005UL,
+_(SHT_MIPS_DEBUG, 0x70000005U,
`reserved (obsolete debug information)')
-_(SHT_MIPS_REGINFO, 0x70000006UL,
+_(SHT_MIPS_REGINFO, 0x70000006U,
`register usage information')
-_(SHT_MIPS_PACKAGE, 0x70000007UL,
+_(SHT_MIPS_PACKAGE, 0x70000007U,
`OSF reserved')
-_(SHT_MIPS_PACKSYM, 0x70000008UL,
+_(SHT_MIPS_PACKSYM, 0x70000008U,
`OSF reserved')
-_(SHT_MIPS_RELD, 0x70000009UL,
+_(SHT_MIPS_RELD, 0x70000009U,
`dynamic relocation')
-_(SHT_MIPS_IFACE, 0x7000000BUL,
+_(SHT_MIPS_IFACE, 0x7000000BU,
`subprogram interface information')
-_(SHT_MIPS_CONTENT, 0x7000000CUL,
+_(SHT_MIPS_CONTENT, 0x7000000CU,
`section content classification')
-_(SHT_MIPS_OPTIONS, 0x7000000DUL,
+_(SHT_MIPS_OPTIONS, 0x7000000DU,
`general options')
-_(SHT_MIPS_DELTASYM, 0x7000001BUL,
+_(SHT_MIPS_DELTASYM, 0x7000001BU,
`Delta C++: symbol table')
-_(SHT_MIPS_DELTAINST, 0x7000001CUL,
+_(SHT_MIPS_DELTAINST, 0x7000001CU,
`Delta C++: instance table')
-_(SHT_MIPS_DELTACLASS, 0x7000001DUL,
+_(SHT_MIPS_DELTACLASS, 0x7000001DU,
`Delta C++: class table')
-_(SHT_MIPS_DWARF, 0x7000001EUL,
+_(SHT_MIPS_DWARF, 0x7000001EU,
`DWARF debug information')
-_(SHT_MIPS_DELTADECL, 0x7000001FUL,
+_(SHT_MIPS_DELTADECL, 0x7000001FU,
`Delta C++: declarations')
-_(SHT_MIPS_SYMBOL_LIB, 0x70000020UL,
+_(SHT_MIPS_SYMBOL_LIB, 0x70000020U,
`symbol-to-library mapping')
-_(SHT_MIPS_EVENTS, 0x70000021UL,
+_(SHT_MIPS_EVENTS, 0x70000021U,
`event locations')
-_(SHT_MIPS_TRANSLATE, 0x70000022UL,
+_(SHT_MIPS_TRANSLATE, 0x70000022U,
`???')
-_(SHT_MIPS_PIXIE, 0x70000023UL,
+_(SHT_MIPS_PIXIE, 0x70000023U,
`special pixie sections')
-_(SHT_MIPS_XLATE, 0x70000024UL,
+_(SHT_MIPS_XLATE, 0x70000024U,
`address translation table')
-_(SHT_MIPS_XLATE_DEBUG, 0x70000025UL,
+_(SHT_MIPS_XLATE_DEBUG, 0x70000025U,
`SGI internal address translation table')
-_(SHT_MIPS_WHIRL, 0x70000026UL,
+_(SHT_MIPS_WHIRL, 0x70000026U,
`intermediate code')
-_(SHT_MIPS_EH_REGION, 0x70000027UL,
+_(SHT_MIPS_EH_REGION, 0x70000027U,
`C++ exception handling region info')
-_(SHT_MIPS_XLATE_OLD, 0x70000028UL,
+_(SHT_MIPS_XLATE_OLD, 0x70000028U,
`obsolete')
-_(SHT_MIPS_PDR_EXCEPTION, 0x70000029UL,
+_(SHT_MIPS_PDR_EXCEPTION, 0x70000029U,
`runtime procedure descriptor table exception information')
-_(SHT_MIPS_ABIFLAGS, 0x7000002AUL,
+_(SHT_MIPS_ABIFLAGS, 0x7000002AU,
`ABI flags')
-_(SHT_SPARC_GOTDATA, 0x70000000UL,
+_(SHT_SPARC_GOTDATA, 0x70000000U,
`SPARC-specific data')
-_(SHT_X86_64_UNWIND, 0x70000001UL,
+_(SHT_X86_64_UNWIND, 0x70000001U,
`unwind tables for the AMD64')
-_(SHT_ORDERED, 0x7FFFFFFFUL,
+_(SHT_ORDERED, 0x7FFFFFFFU,
`sort entries in the section')
-_(SHT_HIPROC, 0x7FFFFFFFUL,
+_(SHT_HIPROC, 0x7FFFFFFFU,
`end of processor-specific range')
-_(SHT_LOUSER, 0x80000000UL,
+_(SHT_LOUSER, 0x80000000U,
`start of application-specific range')
-_(SHT_HIUSER, 0xFFFFFFFFUL,
+_(SHT_HIUSER, 0xFFFFFFFFU,
`end of application-specific range')
')
@@ -1597,7 +1719,8 @@ _(VER_DEF_CURRENT, 1,
#
# Relocation types.
#
-define(`DEFINE_386_RELOCATIONS',`
+define(`DEFINE_386_RELOCATION_TYPES',`
+__(`EM_386')
_(R_386_NONE, 0)
_(R_386_32, 1)
_(R_386_PC32, 2)
@@ -1605,12 +1728,12 @@ _(R_386_GOT32, 3)
_(R_386_PLT32, 4)
_(R_386_COPY, 5)
_(R_386_GLOB_DAT, 6)
-_(R_386_JMP_SLOT, 7)
_(R_386_JUMP_SLOT, 7)
_(R_386_RELATIVE, 8)
_(R_386_GOTOFF, 9)
_(R_386_GOTPC, 10)
_(R_386_32PLT, 11)
+__(` ', `unused: 12-13')
_(R_386_TLS_TPOFF, 14)
_(R_386_TLS_IE, 15)
_(R_386_TLS_GOTIE, 16)
@@ -1643,8 +1766,104 @@ _(R_386_IRELATIVE, 42)
_(R_386_GOT32X, 43)
')
-define(`DEFINE_AARCH64_RELOCATIONS',`
+define(`DEFINE_386_RELOCATION_TYPE_SYNONYMS',`
+_(R_386_JMP_SLOT, R_386_JUMP_SLOT)
+')
+
+define(`DEFINE_AARCH64_RELOCATION_TYPES',`
+__(`EM_AARCH64')
_(R_AARCH64_NONE, 0)
+_(R_AARCH64_P32_ABS32, 1)
+_(R_AARCH64_P32_ABS16, 2)
+_(R_AARCH64_P32_PREL32, 3)
+_(R_AARCH64_P32_PREL16, 4)
+_(R_AARCH64_P32_MOVW_UABS_G0, 5)
+_(R_AARCH64_P32_MOVW_UABS_G0_NC, 6)
+_(R_AARCH64_P32_MOVW_UABS_G1, 7)
+_(R_AARCH64_P32_MOVW_SABS_G0, 8)
+_(R_AARCH64_P32_LD_PREL_LO19, 9)
+_(R_AARCH64_P32_ADR_PREL_LO21, 10)
+_(R_AARCH64_P32_ADR_PREL_PG_HI21, 11)
+_(R_AARCH64_P32_ADD_ABS_LO12_NC, 12)
+_(R_AARCH64_P32_LDST8_ABS_LO12_NC, 13)
+_(R_AARCH64_P32_LDST16_ABS_LO12_NC, 14)
+_(R_AARCH64_P32_LDST32_ABS_LO12_NC, 15)
+_(R_AARCH64_P32_LDST64_ABS_LO12_NC, 16)
+_(R_AARCH64_P32_LDST128_ABS_LO12_NC, 17)
+_(R_AARCH64_P32_TSTBR14, 18)
+_(R_AARCH64_P32_CONDBR19, 19)
+_(R_AARCH64_P32_JUMP26, 20)
+_(R_AARCH64_P32_CALL26, 21)
+_(R_AARCH64_P32_MOVW_PREL_G0, 22)
+_(R_AARCH64_P32_MOVW_PREL_G0_NC, 23)
+_(R_AARCH64_P32_MOVW_PREL_G1, 24)
+_(R_AARCH64_P32_GOT_LD_PREL19, 25)
+_(R_AARCH64_P32_ADR_GOT_PAGE, 26)
+_(R_AARCH64_P32_LD32_GOT_LO12_NC, 27)
+_(R_AARCH64_P32_LD32_GOTPAGE_LO14, 28)
+_(R_AARCH64_P32_PLT32, 29)
+__(` ', `Unused: 30-79.')
+_(R_AARCH64_P32_TLSGD_ADR_PREL21, 80)
+_(R_AARCH64_P32_TLSGD_ADR_PAGE21, 81)
+_(R_AARCH64_P32_TLSGD_ADD_LO12_NC, 82)
+_(R_AARCH64_P32_TLSLD_ADR_PREL21, 83)
+_(R_AARCH64_P32_TLSLD_ADR_PAGE21, 84)
+_(R_AARCH64_P32_TLSLD_ADD_LO12_NC, 85)
+_(R_AARCH64_P32_TLSLD_LD_PREL19, 86)
+_(R_AARCH64_P32_TLSLD_MOVW_DTPREL_G1, 87)
+_(R_AARCH64_P32_TLSLD_MOVW_DTPREL_G0, 88)
+_(R_AARCH64_P32_TLSLD_MOVW_DTPREL_G0_NC, 89)
+_(R_AARCH64_P32_TLSLD_ADD_DTPREL_HI12, 90)
+_(R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12, 91)
+_(R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12_NC, 92)
+_(R_AARCH64_P32_TLSLD_LDST8_DTPREL_LO12, 93)
+_(R_AARCH64_P32_TLSLD_LDST8_DTPREL_LO12_NC, 94)
+_(R_AARCH64_P32_TLSLD_LDST16_DTPREL_LO12, 95)
+_(R_AARCH64_P32_TLSLD_LDST16_DTPREL_LO12_NC, 96)
+_(R_AARCH64_P32_TLSLD_LDST32_DTPREL_LO12, 97)
+_(R_AARCH64_P32_TLSLD_LDST32_DTPREL_LO12_NC, 98)
+_(R_AARCH64_P32_TLSLD_LDST64_DTPREL_LO12, 99)
+_(R_AARCH64_P32_TLSLD_LDST64_DTPREL_LO12_NC, 100)
+_(R_AARCH64_P32_TLSLD_LDST128_DTPREL_LO12, 101)
+_(R_AARCH64_P32_TLSLD_LDST128_DTPREL_LO12_NC, 102)
+_(R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21, 103)
+_(R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC, 104)
+_(R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19, 105)
+_(R_AARCH64_P32_TLSLE_MOVW_TPREL_G1, 106)
+_(R_AARCH64_P32_TLSLE_MOVW_TPREL_G0, 107)
+_(R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC, 108)
+_(R_AARCH64_P32_TLSLE_ADD_TPREL_HI12, 109)
+_(R_AARCH64_P32_TLSLE_ADD_TPREL_LO12, 110)
+_(R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC, 111)
+_(R_AARCH64_P32_TLSLE_LDST8_TPREL_LO12, 112)
+_(R_AARCH64_P32_TLSLE_LDST8_TPREL_LO12_NC, 113)
+_(R_AARCH64_P32_TLSLE_LDST16_TPREL_LO12, 114)
+_(R_AARCH64_P32_TLSLE_LDST16_TPREL_LO12_NC, 115)
+_(R_AARCH64_P32_TLSLE_LDST32_TPREL_LO12, 116)
+_(R_AARCH64_P32_TLSLE_LDST32_TPREL_LO12_NC, 117)
+_(R_AARCH64_P32_TLSLE_LDST64_TPREL_LO12, 118)
+_(R_AARCH64_P32_TLSLE_LDST64_TPREL_LO12_NC, 119)
+_(R_AARCH64_P32_TLSLE_LDST128_TPREL_LO12, 120)
+_(R_AARCH64_P32_TLSLE_LDST128_TPREL_LO12_NC, 121)
+_(R_AARCH64_P32_TLSDESC_LD_PREL19, 122)
+_(R_AARCH64_P32_TLSDESC_ADR_PREL21, 123)
+_(R_AARCH64_P32_TLSDESC_ADR_PAGE21, 124)
+_(R_AARCH64_P32_TLSDESC_LD32_LO12, 125)
+_(R_AARCH64_P32_TLSDESC_ADD_LO12, 126)
+_(R_AARCH64_P32_TLSDESC_CALL, 127)
+__(` ', `Unused: 128-179.')
+_(R_AARCH64_P32_COPY, 180)
+_(R_AARCH64_P32_GLOB_DAT, 181)
+_(R_AARCH64_P32_JUMP_SLOT, 182)
+_(R_AARCH64_P32_RELATIVE, 183)
+_(R_AARCH64_P32_TLS_IMPDEF1, 184,
+ `R_AARCH64_P32_TLS_DTPREL or R_AARCH64_P32_TLS_DTPMOD.')
+_(R_AARCH64_P32_TLS_IMPDEF2, 185,
+ `R_AARCH64_P32_TLS_DTPMOD or R_AARCH64_P32_TLS_DTPREL.')
+_(R_AARCH64_P32_TLS_TPREL, 186)
+_(R_AARCH64_P32_TLSDESC, 187)
+_(R_AARCH64_P32_IRELATIVE, 188)
+__(` ', `Unused: 189-256.')
_(R_AARCH64_ABS64, 257)
_(R_AARCH64_ABS32, 258)
_(R_AARCH64_ABS16, 259)
@@ -1669,6 +1888,7 @@ _(R_AARCH64_ADD_ABS_LO12_NC, 277)
_(R_AARCH64_LDST8_ABS_LO12_NC, 278)
_(R_AARCH64_TSTBR14, 279)
_(R_AARCH64_CONDBR19, 280)
+__(` ', `unused: 281')
_(R_AARCH64_JUMP26, 282)
_(R_AARCH64_CALL26, 283)
_(R_AARCH64_LDST16_ABS_LO12_NC, 284)
@@ -1681,6 +1901,7 @@ _(R_AARCH64_MOVW_PREL_G1_NC, 290)
_(R_AARCH64_MOVW_PREL_G2, 291)
_(R_AARCH64_MOVW_PREL_G2_NC, 292)
_(R_AARCH64_MOVW_PREL_G3, 293)
+__(` ', `unused: 294-298')
_(R_AARCH64_LDST128_ABS_LO12_NC, 299)
_(R_AARCH64_MOVW_GOTOFF_G0, 300)
_(R_AARCH64_MOVW_GOTOFF_G0_NC, 301)
@@ -1696,6 +1917,9 @@ _(R_AARCH64_LD64_GOTOFF_LO15, 310)
_(R_AARCH64_ADR_GOT_PAGE, 311)
_(R_AARCH64_LD64_GOT_LO12_NC, 312)
_(R_AARCH64_LD64_GOTPAGE_LO15, 313)
+_(R_AARCH64_PLT32, 314)
+_(R_AARCH64_GOTPCREL32, 315)
+__(` ', `unused: 316-511')
_(R_AARCH64_TLSGD_ADR_PREL21, 512)
_(R_AARCH64_TLSGD_ADR_PAGE21, 513)
_(R_AARCH64_TLSGD_ADD_LO12_NC, 514)
@@ -1712,7 +1936,8 @@ _(R_AARCH64_TLSLD_MOVW_DTPREL_G1, 524)
_(R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC, 525)
_(R_AARCH64_TLSLD_MOVW_DTPREL_G0, 526)
_(R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC, 527)
-_(R_AARCH64_TLSLD_ADD_DTPREL_HI12, 529)
+_(R_AARCH64_TLSLD_ADD_DTPREL_HI12, 528)
+_(R_AARCH64_TLSLD_ADD_DTPREL_LO12, 529)
_(R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC, 530)
_(R_AARCH64_TLSLD_LDST8_DTPREL_LO12, 531)
_(R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC, 532)
@@ -1757,51 +1982,56 @@ _(R_AARCH64_TLSLE_LDST128_TPREL_LO12, 5
_(R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC, 571)
_(R_AARCH64_TLSLD_LDST128_DTPREL_LO12, 572)
_(R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC, 573)
+__(` ', `unused: 574-579')
+_(R_AARCH64_AUTH_ABS64, 580)
+_(R_AARCH64_AUTH_MOVW_GOTOFF_G0, 581)
+_(R_AARCH64_AUTH_MOVW_GOTOFF_G0_NC, 582)
+_(R_AARCH64_AUTH_MOVW_GOTOFF_G1, 583)
+_(R_AARCH64_AUTH_MOVW_GOTOFF_G1_NC, 584)
+_(R_AARCH64_AUTH_MOVW_GOTOFF_G2, 585)
+_(R_AARCH64_AUTH_MOVW_GOTOFF_G2_NC, 586)
+_(R_AARCH64_AUTH_MOVW_GOTOFF_G3, 587)
+_(R_AARCH64_AUTH_GOT_LD_PREL19, 588)
+_(R_AARCH64_AUTH_LD64_GOTOFF_LO15, 589)
+_(R_AARCH64_AUTH_ADR_GOT_PAGE, 590)
+_(R_AARCH64_AUTH_LD64_GOT_LO12_NC, 591)
+_(R_AARCH64_AUTH_LD64_GOTPAGE_LO15, 592)
+_(R_AARCH64_AUTH_GOT_ADD_LO12_NC, 593)
+_(R_AARCH64_AUTH_GOT_ADR_PREL_LO21, 594)
+_(R_AARCH64_AUTH_TLSDESC_ADR_PAGE21, 595)
+_(R_AARCH64_AUTH_TLSDESC_LD64_LO12, 596)
+_(R_AARCH64_AUTH_TLSDESC_ADD_LO12, 597)
+__(` ', `unused: 598-1023')
_(R_AARCH64_COPY, 1024)
_(R_AARCH64_GLOB_DAT, 1025)
_(R_AARCH64_JUMP_SLOT, 1026)
_(R_AARCH64_RELATIVE, 1027)
-_(R_AARCH64_TLS_DTPREL64, 1028)
-_(R_AARCH64_TLS_DTPMOD64, 1029)
-_(R_AARCH64_TLS_TPREL64, 1030)
+_(R_AARCH64_TLS_IMPDEF1, 1028,
+ `R_AARCH64_TLS_DTPREL or R_AARCH64_TLS_DTPMOD.')
+_(R_AARCH64_TLS_IMPDEF2, 1029,
+ `R_AARCH64_TLS_DTPMOD or R_AARCH64_TLS_DTPREL.')
+_(R_AARCH64_TLS_TPREL, 1030)
_(R_AARCH64_TLSDESC, 1031)
_(R_AARCH64_IRELATIVE, 1032)
+__(` ', `unused: 1033-1040')
+_(R_AARCH64_AUTH_RELATIVE, 1041)
+_(R_AARCH64_AUTH_GLOB_DAT, 1042)
+_(R_AARCH64_AUTH_TLSDESC, 1043)
+_(R_AARCH64_AUTH_IRELATIVE, 1044)
')
-#
-# These are the symbols used in the Sun ``Linkers and Loaders
-# Guide'', Document No: 817-1984-17. See the X86_64 relocations list
-# below for the spellings used in the ELF specification.
-#
-define(`DEFINE_AMD64_RELOCATIONS',`
-_(R_AMD64_NONE, 0)
-_(R_AMD64_64, 1)
-_(R_AMD64_PC32, 2)
-_(R_AMD64_GOT32, 3)
-_(R_AMD64_PLT32, 4)
-_(R_AMD64_COPY, 5)
-_(R_AMD64_GLOB_DAT, 6)
-_(R_AMD64_JUMP_SLOT, 7)
-_(R_AMD64_RELATIVE, 8)
-_(R_AMD64_GOTPCREL, 9)
-_(R_AMD64_32, 10)
-_(R_AMD64_32S, 11)
-_(R_AMD64_16, 12)
-_(R_AMD64_PC16, 13)
-_(R_AMD64_8, 14)
-_(R_AMD64_PC8, 15)
-_(R_AMD64_PC64, 24)
-_(R_AMD64_GOTOFF64, 25)
-_(R_AMD64_GOTPC32, 26)
+define(`DEFINE_AARCH64_RELOCATION_TYPE_SYNONYMS',`
+_(R_AARCH64_TLS_TPREL64, R_AARCH64_TLS_TPREL)
')
#
# Relocation definitions from the ARM ELF ABI, version "ARM IHI
# 0044E" released on 30th November 2012.
#
-define(`DEFINE_ARM_RELOCATIONS',`
+define(`DEFINE_ARM_RELOCATION_TYPES',`
+__(`EM_ARM')
_(R_ARM_NONE, 0)
-_(R_ARM_PC24, 1)
+_(R_ARM_PC24, 1, `Deprecated.')
_(R_ARM_ABS32, 2)
_(R_ARM_REL32, 3)
_(R_ARM_LDR_PC_G0, 4)
@@ -1813,11 +2043,10 @@ _(R_ARM_SBREL32, 9)
_(R_ARM_THM_CALL, 10)
_(R_ARM_THM_PC8, 11)
_(R_ARM_BREL_ADJ, 12)
-_(R_ARM_SWI24, 13)
_(R_ARM_TLS_DESC, 13)
-_(R_ARM_THM_SWI8, 14)
-_(R_ARM_XPC25, 15)
-_(R_ARM_THM_XPC22, 16)
+_(R_ARM_THM_SWI8, 14, `Obsolete.')
+_(R_ARM_XPC25, 15, `Obsolete.')
+_(R_ARM_THM_XPC22, 16, `Obsolete.')
_(R_ARM_TLS_DTPMOD32, 17)
_(R_ARM_TLS_DTPOFF32, 18)
_(R_ARM_TLS_TPOFF32, 19)
@@ -1828,19 +2057,19 @@ _(R_ARM_RELATIVE, 23)
_(R_ARM_GOTOFF32, 24)
_(R_ARM_BASE_PREL, 25)
_(R_ARM_GOT_BREL, 26)
-_(R_ARM_PLT32, 27)
+_(R_ARM_PLT32, 27, `Deprecated.')
_(R_ARM_CALL, 28)
_(R_ARM_JUMP24, 29)
_(R_ARM_THM_JUMP24, 30)
_(R_ARM_BASE_ABS, 31)
-_(R_ARM_ALU_PCREL_7_0, 32)
-_(R_ARM_ALU_PCREL_15_8, 33)
-_(R_ARM_ALU_PCREL_23_15, 34)
-_(R_ARM_LDR_SBREL_11_0_NC, 35)
-_(R_ARM_ALU_SBREL_19_12_NC, 36)
-_(R_ARM_ALU_SBREL_27_20_CK, 37)
+_(R_ARM_ALU_PCREL_7_0, 32, `Obsolete.')
+_(R_ARM_ALU_PCREL_15_8, 33, `Obsolete.')
+_(R_ARM_ALU_PCREL_23_15, 34, `Obsolete.')
+_(R_ARM_LDR_SBREL_11_0_NC, 35, `Deprecated.')
+_(R_ARM_ALU_SBREL_19_12_NC, 36, `Deprecated.')
+_(R_ARM_ALU_SBREL_27_20_CK, 37, `Deprecated.')
_(R_ARM_TARGET1, 38)
-_(R_ARM_SBREL31, 39)
+_(R_ARM_SBREL31, 39, `Deprecated.')
_(R_ARM_V4BX, 40)
_(R_ARM_TARGET2, 41)
_(R_ARM_PREL31, 42)
@@ -1901,8 +2130,8 @@ _(R_ARM_GOT_PREL, 96)
_(R_ARM_GOT_BREL12, 97)
_(R_ARM_GOTOFF12, 98)
_(R_ARM_GOTRELAX, 99)
-_(R_ARM_GNU_VTENTRY, 100)
-_(R_ARM_GNU_VTINHERIT, 101)
+_(R_ARM_GNU_VTENTRY, 100, `Deprecated.')
+_(R_ARM_GNU_VTINHERIT, 101, `Deprecated.')
_(R_ARM_THM_JUMP11, 102)
_(R_ARM_THM_JUMP8, 103)
_(R_ARM_TLS_GD32, 104)
@@ -1929,212 +2158,488 @@ _(R_ARM_PRIVATE_12, 124)
_(R_ARM_PRIVATE_13, 125)
_(R_ARM_PRIVATE_14, 126)
_(R_ARM_PRIVATE_15, 127)
-_(R_ARM_ME_TOO, 128)
+_(R_ARM_ME_TOO, 128, `Obsolete.')
_(R_ARM_THM_TLS_DESCSEQ16, 129)
_(R_ARM_THM_TLS_DESCSEQ32, 130)
_(R_ARM_THM_GOT_BREL12, 131)
-_(R_ARM_IRELATIVE, 140)
+_(R_ARM_THM_ALU_ABS_G0_NC, 132)
+_(R_ARM_THM_ALU_ABS_G1_NC, 133)
+_(R_ARM_THM_ALU_ABS_G2_NC, 134)
+_(R_ARM_THM_ALU_ABS_G3, 135)
+_(R_ARM_THM_BF16, 136)
+_(R_ARM_THM_BF12, 137)
+_(R_ARM_THM_BF18, 138)
+__(` ', `Reserved: 139-159.')
+_(R_ARM_IRELATIVE, 160)
+_(R_ARM_PRIVATE_16, 161)
+_(R_ARM_PRIVATE_17, 162)
+_(R_ARM_PRIVATE_18, 163)
+_(R_ARM_PRIVATE_19, 164)
+_(R_ARM_PRIVATE_20, 165)
+_(R_ARM_PRIVATE_21, 166)
+_(R_ARM_PRIVATE_22, 167)
+_(R_ARM_PRIVATE_23, 168)
+_(R_ARM_PRIVATE_24, 169)
+_(R_ARM_PRIVATE_25, 170)
+_(R_ARM_PRIVATE_26, 171)
+_(R_ARM_PRIVATE_27, 172)
+_(R_ARM_PRIVATE_28, 173)
+_(R_ARM_PRIVATE_29, 174)
+_(R_ARM_PRIVATE_30, 175)
+_(R_ARM_PRIVATE_31, 176)
+__(` ', `Reserved: 177-255.')
+')
+
+define(`DEFINE_ARM_OBSOLETE_RELOCATION_TYPES',`
+_(R_ARM_PC13, 4)
+_(R_ARM_THM_PC22, 10)
+_(R_ARM_AMP_VCALL9, 12)
+_(R_ARM_SWI24, 13)
+_(R_ARM_GOTOFF, 24)
+_(R_ARM_GOTPC, 25)
+_(R_ARM_GOT32, 26)
+_(R_ARM_THM_PC11, 102)
+_(R_ARM_THM_PC9, 103)
')
-define(`DEFINE_IA64_RELOCATIONS',`
+define(`DEFINE_IA_64_RELOCATION_TYPES',`
+__(`EM_IA_64')
_(R_IA_64_NONE, 0)
-_(R_IA64_NONE, 0)
+__(` ', `unused: 0x1-0x20')
_(R_IA_64_IMM14, 0x21)
-_(R_IA64_IMM14, 0x21)
_(R_IA_64_IMM22, 0x22)
-_(R_IA64_IMM22, 0x22)
_(R_IA_64_IMM64, 0x23)
-_(R_IA64_IMM64, 0x23)
_(R_IA_64_DIR32MSB, 0x24)
-_(R_IA64_DIR32MSB, 0x24)
_(R_IA_64_DIR32LSB, 0x25)
-_(R_IA64_DIR32LSB, 0x25)
_(R_IA_64_DIR64MSB, 0x26)
-_(R_IA64_DIR64MSB, 0x26)
_(R_IA_64_DIR64LSB, 0x27)
-_(R_IA64_DIR64LSB, 0x27)
+__(` ', `unused: 0x28-0x29')
_(R_IA_64_GPREL22, 0x2a)
-_(R_IA64_GPREL22, 0x2a)
_(R_IA_64_GPREL64I, 0x2b)
-_(R_IA64_GPREL64I, 0x2b)
_(R_IA_64_GPREL32MSB, 0x2c)
_(R_IA_64_GPREL32LSB, 0x2d)
_(R_IA_64_GPREL64MSB, 0x2e)
-_(R_IA64_GPREL64MSB, 0x2e)
_(R_IA_64_GPREL64LSB, 0x2f)
-_(R_IA64_GPREL64LSB, 0x2f)
+__(` ', `unused: 0x30-0x31')
_(R_IA_64_LTOFF22, 0x32)
-_(R_IA64_LTOFF22, 0x32)
_(R_IA_64_LTOFF64I, 0x33)
-_(R_IA64_LTOFF64I, 0x33)
+__(` ', `unused: 0x34-0x39')
_(R_IA_64_PLTOFF22, 0x3a)
-_(R_IA64_PLTOFF22, 0x3a)
_(R_IA_64_PLTOFF64I, 0x3b)
-_(R_IA64_PLTOFF64I, 0x3b)
+__(` ', `unused: 0x3c-0x3d')
_(R_IA_64_PLTOFF64MSB, 0x3e)
-_(R_IA64_PLTOFF64MSB, 0x3e)
_(R_IA_64_PLTOFF64LSB, 0x3f)
-_(R_IA64_PLTOFF64LSB, 0x3f)
+__(` ', `unused: 0x40-0x42')
_(R_IA_64_FPTR64I, 0x43)
-_(R_IA64_FPTR64I, 0x43)
_(R_IA_64_FPTR32MSB, 0x44)
-_(R_IA64_FPTR32MSB, 0x44)
_(R_IA_64_FPTR32LSB, 0x45)
-_(R_IA64_FPTR32LSB, 0x45)
_(R_IA_64_FPTR64MSB, 0x46)
-_(R_IA64_FPTR64MSB, 0x46)
_(R_IA_64_FPTR64LSB, 0x47)
-_(R_IA64_FPTR64LSB, 0x47)
_(R_IA_64_PCREL60B, 0x48)
_(R_IA_64_PCREL21B, 0x49)
-_(R_IA64_PCREL21B, 0x49)
_(R_IA_64_PCREL21M, 0x4a)
-_(R_IA64_PCREL21M, 0x4a)
_(R_IA_64_PCREL21F, 0x4b)
-_(R_IA64_PCREL21F, 0x4b)
_(R_IA_64_PCREL32MSB, 0x4c)
-_(R_IA64_PCREL32MSB, 0x4c)
_(R_IA_64_PCREL32LSB, 0x4d)
-_(R_IA64_PCREL32LSB, 0x4d)
_(R_IA_64_PCREL64MSB, 0x4e)
-_(R_IA64_PCREL64MSB, 0x4e)
_(R_IA_64_PCREL64LSB, 0x4f)
-_(R_IA64_PCREL64LSB, 0x4f)
+__(` ', `unused: 0x50-0x51')
_(R_IA_64_LTOFF_FPTR22, 0x52)
-_(R_IA64_LTOFF_FPTR22, 0x52)
_(R_IA_64_LTOFF_FPTR64I, 0x53)
-_(R_IA64_LTOFF_FPTR64I, 0x53)
_(R_IA_64_LTOFF_FPTR32MSB, 0x54)
-_(R_IA64_LTOFF_FPTR32MSB, 0x54)
_(R_IA_64_LTOFF_FPTR32LSB, 0x55)
-_(R_IA64_LTOFF_FPTR32LSB, 0x55)
_(R_IA_64_LTOFF_FPTR64MSB, 0x56)
-_(R_IA64_LTOFF_FPTR64MSB, 0x56)
_(R_IA_64_LTOFF_FPTR64LSB, 0x57)
-_(R_IA64_LTOFF_FPTR64LSB, 0x57)
+__(` ', `unused: 0x58-0x5b')
_(R_IA_64_SEGREL32MSB, 0x5c)
-_(R_IA64_SEGREL32MSB, 0x5c)
_(R_IA_64_SEGREL32LSB, 0x5d)
-_(R_IA64_SEGREL32LSB, 0x5d)
_(R_IA_64_SEGREL64MSB, 0x5e)
-_(R_IA64_SEGREL64MSB, 0x5e)
_(R_IA_64_SEGREL64LSB, 0x5f)
-_(R_IA64_SEGREL64LSB, 0x5f)
+__(` ', `unused: 0x60-0x63')
_(R_IA_64_SECREL32MSB, 0x64)
-_(R_IA64_SECREL32MSB, 0x64)
_(R_IA_64_SECREL32LSB, 0x65)
-_(R_IA64_SECREL32LSB, 0x65)
_(R_IA_64_SECREL64MSB, 0x66)
-_(R_IA64_SECREL64MSB, 0x66)
_(R_IA_64_SECREL64LSB, 0x67)
-_(R_IA64_SECREL64LSB, 0x67)
+__(` ', `unused: 0x68-0x6b')
_(R_IA_64_REL32MSB, 0x6c)
-_(R_IA64_REL32MSB, 0x6c)
_(R_IA_64_REL32LSB, 0x6d)
-_(R_IA64_REL32LSB, 0x6d)
_(R_IA_64_REL64MSB, 0x6e)
-_(R_IA64_REL64MSB, 0x6e)
_(R_IA_64_REL64LSB, 0x6f)
-_(R_IA64_REL64LSB, 0x6f)
+__(` ', `unused: 0x70-0x73')
_(R_IA_64_LTV32MSB, 0x74)
-_(R_IA64_LTV32MSB, 0x74)
_(R_IA_64_LTV32LSB, 0x75)
-_(R_IA64_LTV32LSB, 0x75)
_(R_IA_64_LTV64MSB, 0x76)
-_(R_IA64_LTV64MSB, 0x76)
_(R_IA_64_LTV64LSB, 0x77)
-_(R_IA64_LTV64LSB, 0x77)
+__(` ', `unused: 0x78')
_(R_IA_64_PCREL21BI, 0x79)
_(R_IA_64_PCREL22, 0x7A)
_(R_IA_64_PCREL64I, 0x7B)
+__(` ', `unused: 0x7C-0x7F')
_(R_IA_64_IPLTMSB, 0x80)
-_(R_IA64_IPLTMSB, 0x80)
_(R_IA_64_IPLTLSB, 0x81)
-_(R_IA64_IPLTLSB, 0x81)
+__(` ', `unused: 0x82-0x84')
_(R_IA_64_SUB, 0x85)
-_(R_IA64_SUB, 0x85)
_(R_IA_64_LTOFF22X, 0x86)
-_(R_IA64_LTOFF22X, 0x86)
_(R_IA_64_LDXMOV, 0x87)
-_(R_IA64_LDXMOV, 0x87)
+__(` ', `unused: 0x88-0x90')
_(R_IA_64_TPREL14, 0x91)
-_(R_IA64_TPREL14, 0x91)
_(R_IA_64_TPREL22, 0x92)
-_(R_IA64_TPREL22, 0x92)
_(R_IA_64_TPREL64I, 0x93)
-_(R_IA64_TPREL64I, 0x93)
+__(` ', `unused: 0x94-0x95')
_(R_IA_64_TPREL64MSB, 0x96)
-_(R_IA64_TPREL64MSB, 0x96)
_(R_IA_64_TPREL64LSB, 0x97)
-_(R_IA64_TPREL64LSB, 0x97)
+__(` ', `unused: 0x98-0x99')
_(R_IA_64_LTOFF_TPREL22, 0x9A)
-_(R_IA64_LTOFF_TPREL22, 0x9A)
+__(` ', `unused: 0x9B-0xA5')
_(R_IA_64_DTPMOD64MSB, 0xA6)
-_(R_IA64_DTPMOD64MSB, 0xA6)
_(R_IA_64_DTPMOD64LSB, 0xA7)
-_(R_IA64_DTPMOD64LSB, 0xA7)
+__(` ', `unused: 0xA8-0xA9')
_(R_IA_64_LTOFF_DTPMOD22, 0xAA)
-_(R_IA64_LTOFF_DTPMOD22, 0xAA)
+__(` ', `unused: 0xAB-0xB0')
_(R_IA_64_DTPREL14, 0xB1)
-_(R_IA64_DTPREL14, 0xB1)
_(R_IA_64_DTPREL22, 0xB2)
-_(R_IA64_DTPREL22, 0xB2)
_(R_IA_64_DTPREL64I, 0xB3)
-_(R_IA64_DTPREL64I, 0xB3)
_(R_IA_64_DTPREL32MSB, 0xB4)
-_(R_IA64_DTPREL32MSB, 0xB4)
_(R_IA_64_DTPREL32LSB, 0xB5)
-_(R_IA64_DTPREL32LSB, 0xB5)
_(R_IA_64_DTPREL64MSB, 0xB6)
-_(R_IA64_DTPREL64MSB, 0xB6)
_(R_IA_64_DTPREL64LSB, 0xB7)
-_(R_IA64_DTPREL64LSB, 0xB7)
+__(` ', `unused: 0xB8-0xB9')
_(R_IA_64_LTOFF_DTPREL22, 0xBA)
-_(R_IA64_LTOFF_DTPREL22, 0xBA)
')
-define(`DEFINE_MIPS_RELOCATIONS',`
-_(R_MIPS_NONE, 0)
-_(R_MIPS_16, 1)
-_(R_MIPS_32, 2)
-_(R_MIPS_REL32, 3)
-_(R_MIPS_26, 4)
-_(R_MIPS_HI16, 5)
-_(R_MIPS_LO16, 6)
-_(R_MIPS_GPREL16, 7)
-_(R_MIPS_LITERAL, 8)
-_(R_MIPS_GOT16, 9)
-_(R_MIPS_PC16, 10)
-_(R_MIPS_CALL16, 11)
-_(R_MIPS_GPREL32, 12)
-_(R_MIPS_SHIFT5, 16)
-_(R_MIPS_SHIFT6, 17)
-_(R_MIPS_64, 18)
-_(R_MIPS_GOT_DISP, 19)
-_(R_MIPS_GOT_PAGE, 20)
-_(R_MIPS_GOT_OFST, 21)
-_(R_MIPS_GOT_HI16, 22)
-_(R_MIPS_GOT_LO16, 23)
-_(R_MIPS_SUB, 24)
-_(R_MIPS_CALLHI16, 30)
-_(R_MIPS_CALLLO16, 31)
-_(R_MIPS_JALR, 37)
-_(R_MIPS_TLS_DTPMOD32, 38)
-_(R_MIPS_TLS_DTPREL32, 39)
-_(R_MIPS_TLS_DTPMOD64, 40)
-_(R_MIPS_TLS_DTPREL64, 41)
-_(R_MIPS_TLS_GD, 42)
-_(R_MIPS_TLS_LDM, 43)
-_(R_MIPS_TLS_DTPREL_HI16, 44)
-_(R_MIPS_TLS_DTPREL_LO16, 45)
-_(R_MIPS_TLS_GOTTPREL, 46)
-_(R_MIPS_TLS_TPREL32, 47)
-_(R_MIPS_TLS_TPREL64, 48)
-_(R_MIPS_TLS_TPREL_HI16, 49)
-_(R_MIPS_TLS_TPREL_LO16, 50)
+define(`DEFINE_IA_64_RELOCATION_TYPE_SYNONYMS',`
+_(R_IA64_NONE, R_IA_64_NONE)
+_(R_IA64_IMM14, R_IA_64_IMM14)
+_(R_IA64_IMM22, R_IA_64_IMM22)
+_(R_IA64_IMM64, R_IA_64_IMM64)
+_(R_IA64_DIR32MSB, R_IA_64_DIR32MSB)
+_(R_IA64_DIR32LSB, R_IA_64_DIR32LSB)
+_(R_IA64_DIR64MSB, R_IA_64_DIR64MSB)
+_(R_IA64_DIR64LSB, R_IA_64_DIR64LSB)
+_(R_IA64_GPREL22, R_IA_64_GPREL22)
+_(R_IA64_GPREL64I, R_IA_64_GPREL64I)
+_(R_IA64_GPREL64MSB, R_IA_64_GPREL64MSB)
+_(R_IA64_GPREL64LSB, R_IA_64_GPREL64LSB)
+_(R_IA64_LTOFF22, R_IA_64_LTOFF22)
+_(R_IA64_LTOFF64I, R_IA_64_LTOFF64I)
+_(R_IA64_PLTOFF22, R_IA_64_PLTOFF22)
+_(R_IA64_PLTOFF64I, R_IA_64_PLTOFF64I)
+_(R_IA64_PLTOFF64MSB, R_IA_64_PLTOFF64MSB)
+_(R_IA64_PLTOFF64LSB, R_IA_64_PLTOFF64LSB)
+_(R_IA64_FPTR64I, R_IA_64_FPTR64I)
+_(R_IA64_FPTR32MSB, R_IA_64_FPTR32MSB)
+_(R_IA64_FPTR32LSB, R_IA_64_FPTR32LSB)
+_(R_IA64_FPTR64MSB, R_IA_64_FPTR64MSB)
+_(R_IA64_FPTR64LSB, R_IA_64_FPTR64LSB)
+_(R_IA64_PCREL21B, R_IA_64_PCREL21B)
+_(R_IA64_PCREL21M, R_IA_64_PCREL21M)
+_(R_IA64_PCREL21F, R_IA_64_PCREL21F)
+_(R_IA64_PCREL32MSB, R_IA_64_PCREL32MSB)
+_(R_IA64_PCREL32LSB, R_IA_64_PCREL32LSB)
+_(R_IA64_PCREL64MSB, R_IA_64_PCREL64MSB)
+_(R_IA64_PCREL64LSB, R_IA_64_PCREL64LSB)
+_(R_IA64_LTOFF_FPTR22, R_IA_64_LTOFF_FPTR22)
+_(R_IA64_LTOFF_FPTR64I, R_IA_64_LTOFF_FPTR64I)
+_(R_IA64_LTOFF_FPTR32MSB, R_IA_64_LTOFF_FPTR32MSB)
+_(R_IA64_LTOFF_FPTR32LSB, R_IA_64_LTOFF_FPTR32LSB)
+_(R_IA64_LTOFF_FPTR64MSB, R_IA_64_LTOFF_FPTR64MSB)
+_(R_IA64_LTOFF_FPTR64LSB, R_IA_64_LTOFF_FPTR64LSB)
+_(R_IA64_SEGREL32MSB, R_IA_64_SEGREL32MSB)
+_(R_IA64_SEGREL32LSB, R_IA_64_SEGREL32LSB)
+_(R_IA64_SEGREL64MSB, R_IA_64_SEGREL64MSB)
+_(R_IA64_SEGREL64LSB, R_IA_64_SEGREL64LSB)
+_(R_IA64_SECREL32MSB, R_IA_64_SECREL32MSB)
+_(R_IA64_SECREL32LSB, R_IA_64_SECREL32LSB)
+_(R_IA64_SECREL64MSB, R_IA_64_SECREL64MSB)
+_(R_IA64_SECREL64LSB, R_IA_64_SECREL64LSB)
+_(R_IA64_REL32MSB, R_IA_64_REL32MSB)
+_(R_IA64_REL32LSB, R_IA_64_REL32LSB)
+_(R_IA64_REL64MSB, R_IA_64_REL64MSB)
+_(R_IA64_REL64LSB, R_IA_64_REL64LSB)
+_(R_IA64_LTV32MSB, R_IA_64_LTV32MSB)
+_(R_IA64_LTV32LSB, R_IA_64_LTV32LSB)
+_(R_IA64_LTV64MSB, R_IA_64_LTV64MSB)
+_(R_IA64_LTV64LSB, R_IA_64_LTV64LSB)
+_(R_IA64_IPLTMSB, R_IA_64_IPLTMSB)
+_(R_IA64_IPLTLSB, R_IA_64_IPLTLSB)
+_(R_IA64_SUB, R_IA_64_SUB)
+_(R_IA64_LTOFF22X, R_IA_64_LTOFF22X)
+_(R_IA64_LDXMOV, R_IA_64_LDXMOV)
+_(R_IA64_TPREL14, R_IA_64_TPREL14)
+_(R_IA64_TPREL22, R_IA_64_TPREL22)
+_(R_IA64_TPREL64I, R_IA_64_TPREL64I)
+_(R_IA64_TPREL64MSB, R_IA_64_TPREL64MSB)
+_(R_IA64_TPREL64LSB, R_IA_64_TPREL64LSB)
+_(R_IA64_LTOFF_TPREL22, R_IA_64_LTOFF_TPREL22)
+_(R_IA64_DTPMOD64MSB, R_IA_64_DTPMOD64MSB)
+_(R_IA64_DTPMOD64LSB, R_IA_64_DTPMOD64LSB)
+_(R_IA64_LTOFF_DTPMOD22, R_IA_64_LTOFF_DTPMOD22)
+_(R_IA64_DTPREL14, R_IA_64_DTPREL14)
+_(R_IA64_DTPREL22, R_IA_64_DTPREL22)
+_(R_IA64_DTPREL64I, R_IA_64_DTPREL64I)
+_(R_IA64_DTPREL32MSB, R_IA_64_DTPREL32MSB)
+_(R_IA64_DTPREL32LSB, R_IA_64_DTPREL32LSB)
+_(R_IA64_DTPREL64MSB, R_IA_64_DTPREL64MSB)
+_(R_IA64_DTPREL64LSB, R_IA_64_DTPREL64LSB)
+_(R_IA64_LTOFF_DTPREL22, R_IA_64_LTOFF_DTPREL22)
+')
+
+define(`DEFINE_LOONGARCH_RELOCATION_TYPES',`
+__(`EM_LOONGARCH')
+_(R_LARCH_NONE, 0)
+_(R_LARCH_32, 1)
+_(R_LARCH_64, 2)
+_(R_LARCH_RELATIVE, 3)
+_(R_LARCH_COPY, 4)
+_(R_LARCH_JUMP_SLOT, 5)
+_(R_LARCH_TLS_DTPMOD32, 6)
+_(R_LARCH_TLS_DTPMOD64, 7)
+_(R_LARCH_TLS_DTPREL32, 8)
+_(R_LARCH_TLS_DTPREL64, 9)
+_(R_LARCH_TLS_TPREL32, 10)
+_(R_LARCH_TLS_TPREL64, 11)
+_(R_LARCH_IRELATIVE, 12)
+_(R_LARCH_TLS_DESC32, 13)
+_(R_LARCH_TLS_DESC64, 14)
+__(` ', `reserved for the dynamic linker: 15-19')
+_(R_LARCH_MARK_LA, 20)
+_(R_LARCH_MARK_PCREL, 21)
+_(R_LARCH_SOP_PUSH_PCREL, 22)
+_(R_LARCH_SOP_PUSH_ABSOLUTE, 23)
+_(R_LARCH_SOP_PUSH_DUP, 24)
+_(R_LARCH_SOP_PUSH_GPREL, 25)
+_(R_LARCH_SOP_PUSH_TLS_TPREL, 26)
+_(R_LARCH_SOP_PUSH_TLS_GOT, 27)
+_(R_LARCH_SOP_PUSH_TLS_GD, 28)
+_(R_LARCH_SOP_PUSH_PLT_PCREL, 29)
+_(R_LARCH_SOP_ASSERT, 30)
+_(R_LARCH_SOP_NOT, 31)
+_(R_LARCH_SOP_SUB, 32)
+_(R_LARCH_SOP_SL, 33)
+_(R_LARCH_SOP_SR, 34)
+_(R_LARCH_SOP_ADD, 35)
+_(R_LARCH_SOP_AND, 36)
+_(R_LARCH_SOP_IF_ELSE, 37)
+_(R_LARCH_SOP_POP_32_S_10_5, 38)
+_(R_LARCH_SOP_POP_32_U_10_12, 39)
+_(R_LARCH_SOP_POP_32_S_10_12, 40)
+_(R_LARCH_SOP_POP_32_S_10_16, 41)
+_(R_LARCH_SOP_POP_32_S_10_16_S2, 42)
+_(R_LARCH_SOP_POP_32_S_5_20, 43)
+_(R_LARCH_SOP_POP_32_S_0_5_10_16_S2, 44)
+_(R_LARCH_SOP_POP_32_S_0_10_10_16_S2, 45)
+_(R_LARCH_SOP_POP_32_U, 46)
+_(R_LARCH_ADD8, 47)
+_(R_LARCH_ADD16, 48)
+_(R_LARCH_ADD24, 49)
+_(R_LARCH_ADD32, 50)
+_(R_LARCH_ADD64, 51)
+_(R_LARCH_SUB8, 52)
+_(R_LARCH_SUB16, 53)
+_(R_LARCH_SUB24, 54)
+_(R_LARCH_SUB32, 55)
+_(R_LARCH_SUB64, 56)
+_(R_LARCH_GNU_VTINHERIT, 57)
+_(R_LARCH_GNU_VTENTRY, 58)
+__(` ', `reserved: 59-63')
+_(R_LARCH_B16, 64)
+_(R_LARCH_B21, 65)
+_(R_LARCH_B26, 66)
+_(R_LARCH_ABS_HI20, 67)
+_(R_LARCH_ABS_LO12, 68)
+_(R_LARCH_ABS64_LO20, 69)
+_(R_LARCH_ABS64_HI12, 70)
+_(R_LARCH_PCALA_HI20, 71)
+_(R_LARCH_PCALA_LO12, 72)
+_(R_LARCH_PCALA64_LO20, 73)
+_(R_LARCH_PCALA64_HI12, 74)
+_(R_LARCH_GOT_PC_HI20, 75)
+_(R_LARCH_GOT_PC_LO12, 76)
+_(R_LARCH_GOT64_PC_LO20, 77)
+_(R_LARCH_GOT64_PC_HI12, 78)
+_(R_LARCH_GOT_HI20, 79)
+_(R_LARCH_GOT_LO12, 80)
+_(R_LARCH_GOT64_LO20, 81)
+_(R_LARCH_GOT64_HI12, 82)
+_(R_LARCH_TLS_LE_HI20, 83)
+_(R_LARCH_TLS_LE_LO12, 84)
+_(R_LARCH_TLS_LE64_LO20, 85)
+_(R_LARCH_TLS_LE64_HI12, 86)
+_(R_LARCH_TLS_IE_PC_HI20, 87)
+_(R_LARCH_TLS_IE_PC_LO12, 88)
+_(R_LARCH_TLS_IE64_PC_LO20, 89)
+_(R_LARCH_TLS_IE64_PC_HI12, 90)
+_(R_LARCH_TLS_IE_HI20, 91)
+_(R_LARCH_TLS_IE_LO12, 92)
+_(R_LARCH_TLS_IE64_LO20, 93)
+_(R_LARCH_TLS_IE64_HI12, 94)
+_(R_LARCH_TLS_LD_PC_HI20, 95)
+_(R_LARCH_TLS_LD_HI20, 96)
+_(R_LARCH_TLS_GD_PC_HI20, 97)
+_(R_LARCH_TLS_GD_HI20, 98)
+_(R_LARCH_32_PCREL, 99)
+_(R_LARCH_RELAX, 100)
+__(` ', `reserved: 101')
+_(R_LARCH_ALIGN, 102)
+_(R_LARCH_PCREL20_S2, 103)
+__(` ', `reserved: 104')
+_(R_LARCH_ADD6, 105)
+_(R_LARCH_SUB6, 106)
+_(R_LARCH_ADD_ULEB128, 107)
+_(R_LARCH_SUB_ULEB128, 108)
+_(R_LARCH_64_PCREL, 109)
+_(R_LARCH_CALL36, 110)
+_(R_LARCH_TLS_DESC_PC_HI20, 111)
+_(R_LARCH_TLS_DESC_PC_LO12, 112)
+_(R_LARCH_TLS_DESC64_PC_LO20, 113)
+_(R_LARCH_TLS_DESC64_PC_HI12, 114)
+_(R_LARCH_TLS_DESC_HI20, 115)
+_(R_LARCH_TLS_DESC_LO12, 116)
+_(R_LARCH_TLS_DESC64_LO20, 117)
+_(R_LARCH_TLS_DESC64_HI12, 118)
+_(R_LARCH_TLS_DESC_LD, 119)
+_(R_LARCH_TLS_DESC_CALL, 120)
+_(R_LARCH_TLS_LE_HI20_R, 121)
+_(R_LARCH_TLS_LE_ADD_R, 122)
+_(R_LARCH_TLS_LE_LO12_R, 123)
+_(R_LARCH_TLS_LD_PCREL20_S2, 124)
+_(R_LARCH_TLS_GD_PCREL20_S2, 125)
+_(R_LARCH_TLS_DESC_PCREL20_S2, 126)
+')
+
+define(`DEFINE_MIPS_RELOCATION_TYPES',`
+__(`EM_MIPS')
+_(R_MIPS_NONE, 0, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_16, 1, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_32, 2, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_REL32, 3, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_26, 4, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_HI16, 5, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_LO16, 6, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_GPREL16, 7, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_LITERAL, 8, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_GOT16, 9, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_PC16, 10, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_CALL16, 11, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_GPREL32, 12, `GNU binutils, LLVM, MIPS psABI.')
+__(` ', `Unused: 13-15.')
+_(R_MIPS_SHIFT5, 16, `GNU binutils, LLVM.')
+_(R_MIPS_SHIFT6, 17, `GNU binutils, LLVM.')
+_(R_MIPS_64, 18, `GNU binutils, LLVM')
+_(R_MIPS_GOT_DISP, 19, `GNU binutils, LLVM.')
+_(R_MIPS_GOT_PAGE, 20, `GNU binutils, LLVM.')
+_(R_MIPS_GOTHI16, 21, `MIPS psABI.')
+_(R_MIPS_GOTLO16, 22, `MIPS psABI.')
+_(R_MIPS_GOT_LO16, 23, `GNU binutils, LLVM.')
+_(R_MIPS_SUB, 24, `GNU binutils, LLVM.')
+_(R_MIPS_INSERT_A, 25, `GNU binutils, LLVM.')
+_(R_MIPS_INSERT_B, 26, `GNU binutils, LLVM.')
+_(R_MIPS_DELETE, 27, `GNU binutils, LLVM.')
+_(R_MIPS_HIGHER, 28, `GNU binutils, LLVM.')
+_(R_MIPS_HIGHEST, 29, `GNU binutils, LLVM.')
+_(R_MIPS_CALLHI16, 30, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_CALLLO16, 31, `GNU binutils, LLVM, MIPS psABI.')
+_(R_MIPS_SCN_DISP, 32, `GNU binutils, LLVM.')
+_(R_MIPS_REL16, 33, `GNU binutils, LLVM.')
+_(R_MIPS_ADD_IMMEDIATE, 34, `GNU binutils, LLVM.')
+_(R_MIPS_PJUMP, 35, `GNU binutils, LLVM.')
+_(R_MIPS_RELGOT, 36, `GNU binutils, LLVM.')
+_(R_MIPS_JALR, 37, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_DTPMOD32, 38, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_DTPREL32, 39, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_DTPMOD64, 40, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_DTPREL64, 41, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_GD, 42, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_LDM, 43, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_DTPREL_HI16, 44, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_DTPREL_LO16, 45, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_GOTTPREL, 46, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_TPREL32, 47, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_TPREL64, 48, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_TPREL_HI16, 49, `GNU binutils, LLVM.')
+_(R_MIPS_TLS_TPREL_LO16, 50, `GNU binutils, LLVM.')
+_(R_MIPS_GLOB_DAT, 51, `GNU binutils, LLVM.')
+__(` ', `Unused: 52-59.')
+_(R_MIPS_PC21_S2, 60, `GNU binutils, LLVM.')
+_(R_MIPS_PC26_S2, 61, `GNU binutils, LLVM.')
+_(R_MIPS_PC18_S3, 62, `GNU binutils, LLVM.')
+_(R_MIPS_PC19_S2, 63, `GNU binutils, LLVM.')
+_(R_MIPS_PCHI16, 64, `GNU binutils, LLVM.')
+_(R_MIPS_PCLO16, 65, `GNU binutils, LLVM.')
+__(` ', `Unused: 66-99.')
+_(R_MIPS16_26, 100, `GNU binutils, LLVM.')
+_(R_MIPS16_GPREL, 101, `GNU binutils, LLVM.')
+_(R_MIPS16_GOT16, 102, `GNU binutils, LLVM.')
+_(R_MIPS16_CALL16, 103, `GNU binutils, LLVM.')
+_(R_MIPS16_HI16, 104, `GNU binutils, LLVM.')
+_(R_MIPS16_LO16, 105, `GNU binutils, LLVM.')
+_(R_MIPS16_TLS_GD, 106, `GNU binutils, LLVM.')
+_(R_MIPS16_TLS_LDM, 107, `GNU binutils, LLVM.')
+_(R_MIPS16_TLS_DTPREL_HI16, 108, `GNU binutils, LLVM.')
+_(R_MIPS16_TLS_DTPREL_LO16, 109, `GNU binutils, LLVM.')
+_(R_MIPS16_TLS_GOTTPREL, 110, `GNU binutils, LLVM.')
+_(R_MIPS16_TLS_TPREL_HI16, 111, `GNU binutils, LLVM.')
+_(R_MIPS16_TLS_TPREL_LO16, 112, `GNU binutils, LLVM.')
+__(` ', `Unused: 113-125.')
+_(R_MIPS_COPY, 126, `GNU binutils, LLVM.')
+_(R_MIPS_JUMP_SLOT, 127, `GNU binutils, LLVM.')
+__(` ', `Unused: 128-132.')
+_(R_MICROMIPS_26_S1, 133, `GNU binutils, LLVM.')
+_(R_MICROMIPS_HI16, 134, `GNU binutils, LLVM.')
+_(R_MICROMIPS_LO16, 135, `GNU binutils, LLVM.')
+_(R_MICROMIPS_GPREL16, 136, `GNU binutils, LLVM.')
+_(R_MICROMIPS_LITERAL, 137, `GNU binutils, LLVM.')
+_(R_MICROMIPS_GOT16, 138, `GNU binutils, LLVM.')
+_(R_MICROMIPS_PC7_S1, 139, `GNU binutils, LLVM.')
+_(R_MICROMIPS_PC10_S1, 140, `GNU binutils, LLVM.')
+_(R_MICROMIPS_PC16_S1, 141, `GNU binutils, LLVM.')
+_(R_MICROMIPS_CALL16, 142, `GNU binutils, LLVM.')
+__(` ', `Unused: 143-144.')
+_(R_MICROMIPS_GOT_DISP, 145, `GNU binutils, LLVM.')
+_(R_MICROMIPS_GOT_PAGE, 146, `GNU binutils, LLVM.')
+_(R_MICROMIPS_GOT_OFST, 147, `GNU binutils, LLVM.')
+_(R_MICROMIPS_GOT_HI16, 148, `GNU binutils, LLVM.')
+_(R_MICROMIPS_GOT_LO16, 149, `GNU binutils, LLVM.')
+_(R_MICROMIPS_SUB, 150, `GNU binutils, LLVM.')
+_(R_MICROMIPS_HIGHER, 151, `GNU binutils, LLVM.')
+_(R_MICROMIPS_HIGHEST, 152, `GNU binutils, LLVM.')
+_(R_MICROMIPS_CALL_HI16, 153, `GNU binutils, LLVM.')
+_(R_MICROMIPS_CALL_LO16, 154, `GNU binutils, LLVM.')
+_(R_MICROMIPS_SCN_DISP, 155, `GNU binutils, LLVM.')
+_(R_MICROMIPS_JALR, 156, `GNU binutils, LLVM.')
+_(R_MICROMIPS_HI0_LO16, 157, `GNU binutils, LLVM.')
+__(` ', `Unused: 158-161.')
+_(R_MICROMIPS_TLS_GD, 162, `GNU binutils, LLVM.')
+_(R_MICROMIPS_TLS_LDM, 163, `GNU binutils, LLVM.')
+_(R_MICROMIPS_TLS_DTPREL_HI16, 164, `GNU binutils, LLVM.')
+_(R_MICROMIPS_TLS_DTPREL_LO16, 165, `GNU binutils, LLVM.')
+_(R_MICROMIPS_TLS_GOTTPREL, 166, `GNU binutils, LLVM.')
+__(` ', `Unused: 167-168.')
+_(R_MICROMIPS_TLS_TPREL_HI16, 169, `GNU binutils, LLVM.')
+_(R_MICROMIPS_TLS_TPREL_LO16, 170, `GNU binutils, LLVM.')
+__(` ', `Unused: 171.')
+_(R_MICROMIPS_GPREL7_S2, 172, `GNU binutils, LLVM.')
+_(R_MICROMIPS_PC23_S2, 173, `GNU binutils, LLVM.')
+_(R_MICROMIPS_PC21_S1, 174, `LLVM.')
+_(R_MICROMIPS_PC26_S1, 175, `LLVM.')
+_(R_MICROMIPS_PC18_S3, 176, `LLVM.')
+_(R_MICROMIPS_PC19_S2, 177, `LLVM.')
+__(` ', `Unused: 178-247.')
+_(R_MIPS_PC32, 248, `GNU binutils, LLVM.')
+_(R_MIPS_EH, 249, `GNU binutils, LLVM.')
+__(` ', `GNU extensions.')
+_(R_MIPS_GNU_REL16_S2, 250, `GNU binutils.')
+_(R_MIPS_GNU_VTINHERIT, 251, `GNU binutils.')
+_(R_MIPS_GNU_VTENTRY, 252, `GNU binutils.')
+')
+
+define(`DEFINE_MIPS_RELOCATION_TYPE_SYNONYMS',`
+_(R_MIPS_GOT_OFST, 21, `GNU binutils, LLVM.')
+_(R_MIPS_GOT_HI16, 22, `GNU binutils, LLVM.')
')
-define(`DEFINE_PPC32_RELOCATIONS',`
+define(`DEFINE_PPC_RELOCATION_TYPES',`
+__(EM_PPC)
_(R_PPC_NONE, 0)
_(R_PPC_ADDR32, 1)
_(R_PPC_ADDR24, 2)
@@ -2167,12 +2672,14 @@ _(R_PPC_PLTREL32, 28)
_(R_PPC_PLT16_LO, 29)
_(R_PPC_PLT16_HI, 30)
_(R_PPC_PLT16_HA, 31)
+__(` ', `Not in the psABI: 32')
_(R_PPC_SDAREL16, 32)
_(R_PPC_SECTOFF, 33)
_(R_PPC_SECTOFF_LO, 34)
_(R_PPC_SECTOFF_HI, 35)
_(R_PPC_SECTOFF_HA, 36)
_(R_PPC_ADDR30, 37)
+__(` ', `Used by the PPC64 ABI: 38-66.')
_(R_PPC_TLS, 67)
_(R_PPC_DTPMOD32, 68)
_(R_PPC_TPREL16, 69)
@@ -2197,12 +2704,14 @@ _(R_PPC_GOT_TPREL16, 87)
_(R_PPC_GOT_TPREL16_LO, 88)
_(R_PPC_GOT_TPREL16_HI, 89)
_(R_PPC_GOT_TPREL16_HA, 90)
+__(` ', `Not in the psABI: 91-94.')
_(R_PPC_GOT_DTPREL16, 91)
_(R_PPC_GOT_DTPREL16_LO, 92)
_(R_PPC_GOT_DTPREL16_HI, 93)
_(R_PPC_GOT_DTPREL16_HA, 94)
_(R_PPC_TLSGD, 95)
_(R_PPC_TLSLD, 96)
+__(` ', `Reserved: 97-100.')
_(R_PPC_EMB_NADDR32, 101)
_(R_PPC_EMB_NADDR16, 102)
_(R_PPC_EMB_NADDR16_LO, 103)
@@ -2219,9 +2728,57 @@ _(R_PPC_EMB_RELST_HI, 113)
_(R_PPC_EMB_RELST_HA, 114)
_(R_PPC_EMB_BIT_FLD, 115)
_(R_PPC_EMB_RELSDA, 116)
+__(` ', `Reserved: 117-179.')
+_(R_PPC_DIAB_SDA21_LO, 180)
+_(R_PPC_DIAB_SDA21_HI, 181)
+_(R_PPC_DIAB_SDA21_HA, 182)
+_(R_PPC_DIAB_RELSDA_LO, 183)
+_(R_PPC_DIAB_RELSDA_HI, 184)
+_(R_PPC_DIAB_RELSDA_HA, 185)
+__(` ', `Reserved: 201-200.')
+_(R_PPC_EMB_SPE_DOUBLE, 201)
+_(R_PPC_EMB_SPE_WORD, 202)
+_(R_PPC_EMB_SPE_HALF, 203)
+_(R_PPC_EMB_SPE_DOUBLE_SDAREL, 204)
+_(R_PPC_EMB_SPE_WORD_SDAREL, 205)
+_(R_PPC_EMB_SPE_HALF_SDAREL, 206)
+_(R_PPC_EMB_SPE_DOUBLE_SDA2REL, 207)
+_(R_PPC_EMB_SPE_WORD_SDA2REL, 208)
+_(R_PPC_EMB_SPE_HALF_SDA2REL, 209)
+_(R_PPC_EMB_SPE_DOUBLE_SDA0REL, 210)
+_(R_PPC_EMB_SPE_WORD_SDA0REL, 211)
+_(R_PPC_EMB_SPE_HALF_SDA0REL, 212)
+_(R_PPC_EMB_SPE_DOUBLE_SDA, 213)
+_(R_PPC_EMB_SPE_WORD_SDA, 214)
+_(R_PPC_EMB_SPE_HALF_SDA, 215)
+_(R_PPC_VLE_REL8, 216)
+_(R_PPC_VLE_REL15, 217)
+_(R_PPC_VLE_REL24, 218)
+_(R_PPC_VLE_LO16A, 219)
+_(R_PPC_VLE_LO16D, 220)
+_(R_PPC_VLE_HI16A, 221)
+_(R_PPC_VLE_HI16D, 222)
+_(R_PPC_VLE_HA16A, 223)
+_(R_PPC_VLE_HA16D, 224)
+_(R_PPC_VLE_SDA21, 225)
+_(R_PPC_VLE_SDA21_LO, 226)
+_(R_PPC_VLE_SDAREL_LO16A, 227)
+_(R_PPC_VLE_SDAREL_LO16D, 228)
+_(R_PPC_VLE_SDAREL_HI16A, 229)
+_(R_PPC_VLE_SDAREL_HI16D, 230)
+_(R_PPC_VLE_SDAREL_HA16A, 231)
+_(R_PPC_VLE_SDAREL_HA16D, 232)
+_(R_PPC_VLE_ADDR20, 233)
+__(` ', `Reserved: 234-248.')
+_(R_PPC_REL16, 249)
+_(R_PPC_REL16_LO, 250)
+_(R_PPC_REL16_HI, 251)
+_(R_PPC_REL16_HA, 252)
+__(` ', `Reserved: 253-255.')
')
-define(`DEFINE_PPC64_RELOCATIONS',`
+define(`DEFINE_PPC64_RELOCATION_TYPES',`
+__(EM_PPC64)
_(R_PPC64_NONE, 0)
_(R_PPC64_ADDR32, 1)
_(R_PPC64_ADDR24, 2)
@@ -2230,20 +2787,20 @@ _(R_PPC64_ADDR16_LO, 4)
_(R_PPC64_ADDR16_HI, 5)
_(R_PPC64_ADDR16_HA, 6)
_(R_PPC64_ADDR14, 7)
-_(R_PPC64_ADDR14_BRTAKEN, 8)
-_(R_PPC64_ADDR14_BRNTAKEN, 9)
+__(` ', `unused: 8-9.')
_(R_PPC64_REL24, 10)
_(R_PPC64_REL14, 11)
-_(R_PPC64_REL14_BRTAKEN, 12)
-_(R_PPC64_REL14_BRNTAKEN, 13)
+__(` ', `unused: 12-13.')
_(R_PPC64_GOT16, 14)
_(R_PPC64_GOT16_LO, 15)
_(R_PPC64_GOT16_HI, 16)
_(R_PPC64_GOT16_HA, 17)
+__(` ', `unused: 18.')
_(R_PPC64_COPY, 19)
_(R_PPC64_GLOB_DAT, 20)
_(R_PPC64_JMP_SLOT, 21)
_(R_PPC64_RELATIVE, 22)
+__(` ', `unused: 23.')
_(R_PPC64_UADDR32, 24)
_(R_PPC64_UADDR16, 25)
_(R_PPC64_REL32, 26)
@@ -2252,11 +2809,12 @@ _(R_PPC64_PLTREL32, 28)
_(R_PPC64_PLT16_LO, 29)
_(R_PPC64_PLT16_HI, 30)
_(R_PPC64_PLT16_HA, 31)
+__(` ', `unused: 32.')
_(R_PPC64_SECTOFF, 33)
_(R_PPC64_SECTOFF_LO, 34)
_(R_PPC64_SECTOFF_HI, 35)
_(R_PPC64_SECTOFF_HA, 36)
-_(R_PPC64_ADDR30, 37)
+_(R_PPC64_REL30, 37)
_(R_PPC64_ADDR64, 38)
_(R_PPC64_ADDR16_HIGHER, 39)
_(R_PPC64_ADDR16_HIGHERA, 40)
@@ -2289,7 +2847,7 @@ _(R_PPC64_PLTGOT16_LO_DS, 66)
_(R_PPC64_TLS, 67)
_(R_PPC64_DTPMOD64, 68)
_(R_PPC64_TPREL16, 69)
-_(R_PPC64_TPREL16_LO, 60)
+_(R_PPC64_TPREL16_LO, 70)
_(R_PPC64_TPREL16_HI, 71)
_(R_PPC64_TPREL16_HA, 72)
_(R_PPC64_TPREL64, 73)
@@ -2328,9 +2886,74 @@ _(R_PPC64_DTPREL16_HIGHEST, 105)
_(R_PPC64_DTPREL16_HIGHESTA, 106)
_(R_PPC64_TLSGD, 107)
_(R_PPC64_TLSLD, 108)
+_(R_PPC64_TOCSAVE, 109)
+_(R_PPC64_ADDR16_HIGH, 110)
+_(R_PPC64_ADDR16_HIGHA, 111)
+_(R_PPC64_TPREL16_HIGH, 112)
+_(R_PPC64_TPREL16_HIGHA, 113)
+_(R_PPC64_DTPREL16_HIGH, 114)
+_(R_PPC64_DTPREL16_HIGHA, 115)
+_(R_PPC64_REL24_NOTOC, 116)
+_(R_PPC64_ADDR64_LOCAL, 117)
+_(R_PPC64_ENTRY, 118)
+_(R_PPC64_PLTSEQ, 119)
+_(R_PPC64_PLTCALL, 120)
+_(R_PPC64_PLTSEQ_NOTOC, 121)
+_(R_PPC64_PLTCALL_NOTOC, 122)
+_(R_PPC64_PCREL_OPT, 123)
+__(` ', `unused: 124-127.')
+_(R_PPC64_D34, 128)
+_(R_PPC64_D34_LO, 129)
+_(R_PPC64_D34_HI30, 130)
+_(R_PPC64_D34_HA30, 131)
+_(R_PPC64_PCREL34, 132)
+_(R_PPC64_GOT_PCREL34, 133)
+_(R_PPC64_PLT_PCREL34, 134)
+_(R_PPC64_PLT_PCREL34_NOTOC, 135)
+_(R_PPC64_ADDR16_HIGHER34, 136)
+_(R_PPC64_ADDR16_HIGHERA34, 137)
+_(R_PPC64_ADDR16_HIGHEST34, 138)
+_(R_PPC64_ADDR16_HIGHESTA34, 139)
+_(R_PPC64_REL16_HIGHER34, 140)
+_(R_PPC64_REL16_HIGHERA34, 141)
+_(R_PPC64_REL16_HIGHEST34, 142)
+_(R_PPC64_REL16_HIGHESTA34, 143)
+_(R_PPC64_D28, 144)
+_(R_PPC64_PCREL28, 145)
+_(R_PPC64_TPREL34, 146)
+_(R_PPC64_DTPREL34, 147)
+_(R_PPC64_GOT_TLSGD_PCREL34, 148)
+_(R_PPC64_GOT_TLSLD_PCREL34, 149)
+_(R_PPC64_GOT_TPREL_PCREL34, 150)
+_(R_PPC64_GOT_DTPREL_PCREL34, 151)
+__(` ', `unused: 152-239.')
+_(R_PPC64_REL16_HIGH, 240)
+_(R_PPC64_REL16_HIGHA, 241)
+_(R_PPC64_REL16_HIGHER, 242)
+_(R_PPC64_REL16_HIGHERA, 243)
+_(R_PPC64_REL16_HIGHEST, 244)
+_(R_PPC64_REL16_HIGHESTA, 245)
+_(R_PPC64_REL16DX_HA, 246)
+__(` ', `unused: 247.')
+_(R_PPC64_IRELATIVE, 248)
+_(R_PPC64_REL16, 249)
+_(R_PPC64_REL16_LO, 250)
+_(R_PPC64_REL16_HI, 251)
+_(R_PPC64_REL16_HA, 252)
+_(R_PPC64_GNU_VTINHERIT, 253)
+_(R_PPC64_GNU_VTENTRY, 254)
')
-define(`DEFINE_RISCV_RELOCATIONS',`
+define(`DEFINE_PPC64_OBSOLETE_RELOCATION_TYPES',`
+_(R_PPC64_ADDR14_BRTAKEN, 8)
+_(R_PPC64_ADDR14_BRNTAKEN, 9)
+_(R_PPC64_REL14_BRTAKEN, 12)
+_(R_PPC64_REL14_BRNTAKEN, 13)
+_(R_PPC64_ADDR30, 37)
+')
+
+define(`DEFINE_RISCV_RELOCATION_TYPES',`
+__(`EM_RISCV')
_(R_RISCV_NONE, 0)
_(R_RISCV_32, 1)
_(R_RISCV_64, 2)
@@ -2343,6 +2966,8 @@ _(R_RISCV_TLS_DTPREL32, 8)
_(R_RISCV_TLS_DTPREL64, 9)
_(R_RISCV_TLS_TPREL32, 10)
_(R_RISCV_TLS_TPREL64, 11)
+_(R_RISCV_TLSDESC, 12)
+__(` ', `unused: 13-15')
_(R_RISCV_BRANCH, 16)
_(R_RISCV_JAL, 17)
_(R_RISCV_CALL, 18)
@@ -2368,16 +2993,12 @@ _(R_RISCV_SUB8, 37)
_(R_RISCV_SUB16, 38)
_(R_RISCV_SUB32, 39)
_(R_RISCV_SUB64, 40)
-_(R_RISCV_GNU_VTINHERIT, 41)
-_(R_RISCV_GNU_VTENTRY, 42)
+_(R_RISCV_GOT32_PCREL, 41)
+__(` ', `reserved: 42')
_(R_RISCV_ALIGN, 43)
_(R_RISCV_RVC_BRANCH, 44)
_(R_RISCV_RVC_JUMP, 45)
-_(R_RISCV_RVC_LUI, 46)
-_(R_RISCV_GPREL_I, 47)
-_(R_RISCV_GPREL_S, 48)
-_(R_RISCV_TPREL_I, 49)
-_(R_RISCV_TPREL_S, 50)
+__(` ', `reserved: 46-50')
_(R_RISCV_RELAX, 51)
_(R_RISCV_SUB6, 52)
_(R_RISCV_SET6, 53)
@@ -2386,9 +3007,61 @@ _(R_RISCV_SET16, 55)
_(R_RISCV_SET32, 56)
_(R_RISCV_32_PCREL, 57)
_(R_RISCV_IRELATIVE, 58)
+_(R_RISCV_PLT32, 59)
+_(R_RISCV_SET_ULEB128, 60)
+_(R_RISCV_SUB_ULEB128, 61)
+_(R_RISCV_TLSDESC_HI20, 62)
+_(R_RISCV_TLSDESC_LOAD_LO12, 63)
+_(R_RISCV_TLSDESC_ADD_LO12, 64)
+_(R_RISCV_TLSDESC_CALL, 65)
+__(` ', `reserved: 66-190')
+_(R_RISCV_VENDOR, 191)
+__(` ', `reserved: 192-255')
+')
+
+define(`DEFINE_RISCV_OBSOLETE_RELOCATION_TYPES',`
+_(R_RISCV_GNU_VTINHERIT, 41)
+_(R_RISCV_GNU_VTENTRY, 42)
+_(R_RISCV_RVC_LUI, 46)
+_(R_RISCV_GPREL_I, 47)
+_(R_RISCV_GPREL_S, 48)
+_(R_RISCV_TPREL_I, 49)
+_(R_RISCV_TPREL_S, 50)
+')
+
+define(`DEFINE_S390_RELOCATION_TYPES',`
+__(`EM_S390')
+_(R_390_NONE, 0)
+_(R_390_8, 1)
+_(R_390_12, 2)
+_(R_390_16, 3)
+_(R_390_32, 4)
+_(R_390_PC32, 5)
+_(R_390_GOT12, 6)
+_(R_390_GOT32, 7)
+_(R_390_PLT32, 8)
+_(R_390_COPY, 9)
+_(R_390_GLOB_DAT, 10)
+_(R_390_JMP_SLOT, 11)
+_(R_390_RELATIVE, 12)
+_(R_390_GOTOFF, 13)
+_(R_390_GOTPC, 14)
+_(R_390_GOT16, 15)
+_(R_390_PC16, 16)
+_(R_390_PC16DBL, 17)
+_(R_390_PLT16DBL, 18)
+_(R_390_PC32DBL, 19)
+_(R_390_PLT32DBL, 20)
+_(R_390_GOTPCDBL, 21)
+_(R_390_64, 22)
+_(R_390_PC64, 23)
+_(R_390_GOT64, 24)
+_(R_390_PLT64, 25)
+_(R_390_GOTENT, 26)
')
-define(`DEFINE_SPARC_RELOCATIONS',`
+define(`DEFINE_SPARC_RELOCATION_TYPES',`
+__(`EM_SPARC')
_(R_SPARC_NONE, 0)
_(R_SPARC_8, 1)
_(R_SPARC_16, 2)
@@ -2431,7 +3104,7 @@ _(R_SPARC_PC_HM10, 38)
_(R_SPARC_PC_LM22, 39)
_(R_SPARC_WDISP16, 40)
_(R_SPARC_WDISP19, 41)
-_(R_SPARC_GLOB_JMP, 42)
+__(` ', `unused: 42')
_(R_SPARC_7, 43)
_(R_SPARC_5, 44)
_(R_SPARC_6, 45)
@@ -2475,9 +3148,17 @@ _(R_SPARC_GOTDATA_OP_HIX22, 82)
_(R_SPARC_GOTDATA_OP_LOX10, 83)
_(R_SPARC_GOTDATA_OP, 84)
_(R_SPARC_H34, 85)
+_(R_SPARC_SIZE32, 86)
+_(R_SPARC_SIZE64, 87)
+_(R_SPARC_WDISP10, 88)
+')
+
+define(`DEFINE_SPARC_OBSOLETE_RELOCATION_TYPES',`
+_(R_SPARC_GLOB_JMP, 42)
')
-define(`DEFINE_VAX_RELOCATIONS',`
+define(`DEFINE_VAX_RELOCATION_TYPES',`
+__(`EM_VAX')
_(R_VAX_NONE, 0)
_(R_VAX_32, 1)
_(R_VAX_16, 2)
@@ -2493,7 +3174,8 @@ _(R_VAX_JMP_SLOT, 21)
_(R_VAX_RELATIVE, 22)
')
-define(`DEFINE_X86_64_RELOCATIONS',`
+define(`DEFINE_X86_64_RELOCATION_TYPES',`
+__(`EM_X86_64')
_(R_X86_64_NONE, 0)
_(R_X86_64_64, 1)
_(R_X86_64_PC32, 2)
@@ -2524,34 +3206,92 @@ _(R_X86_64_GOTPC32, 26)
_(R_X86_64_GOT64, 27)
_(R_X86_64_GOTPCREL64, 28)
_(R_X86_64_GOTPC64, 29)
-_(R_X86_64_GOTPLT64, 30)
+__(` ', `deprecated: 30')
_(R_X86_64_PLTOFF64, 31)
_(R_X86_64_SIZE32, 32)
_(R_X86_64_SIZE64, 33)
-_(R_X86_64_GOTPC32_TLSDESC, 34)
-_(R_X86_64_TLSDESC_CALL, 35)
+_(R_X86_64_GOTPC32_TLSDESC, 34)
+_(R_X86_64_TLSDESC_CALL, 35)
_(R_X86_64_TLSDESC, 36)
_(R_X86_64_IRELATIVE, 37)
_(R_X86_64_RELATIVE64, 38)
+__(` ', `deprecated: 39-40')
+_(R_X86_64_GOTPCRELX, 41)
+_(R_X86_64_REX_GOTPCRELX, 42)
+_(R_X86_64_CODE_4_GOTPCRELX, 43)
+_(R_X86_64_CODE_4_GOTTPOFF, 44)
+_(R_X86_64_CODE_4_GOTPC32_TLSDESC, 45)
+_(R_X86_64_CODE_5_GOTPCRELX, 46)
+_(R_X86_64_CODE_5_GOTTPOFF, 47)
+_(R_X86_64_CODE_5_GOTPC32_TLSDESC, 48)
+_(R_X86_64_CODE_6_GOTPCRELX, 49)
+_(R_X86_64_CODE_6_GOTTPOFF, 50)
+_(R_X86_64_CODE_6_GOTPC32_TLSDESC, 51)
+')
+
+define(`DEFINE_X86_64_OBSOLETE_RELOCATION_TYPES', `
+_(R_X86_64_GOTPLT64, 30)
_(R_X86_64_PC32_BND, 39)
_(R_X86_64_PLT32_BND, 40)
-_(R_X86_64_GOTPCRELX, 41)
-_(R_X86_64_REX_GOTPCRELX, 42)
')
-define(`DEFINE_RELOCATIONS',`
-DEFINE_386_RELOCATIONS()
-DEFINE_AARCH64_RELOCATIONS()
-DEFINE_AMD64_RELOCATIONS()
-DEFINE_ARM_RELOCATIONS()
-DEFINE_IA64_RELOCATIONS()
-DEFINE_MIPS_RELOCATIONS()
-DEFINE_PPC32_RELOCATIONS()
-DEFINE_PPC64_RELOCATIONS()
-DEFINE_RISCV_RELOCATIONS()
-DEFINE_SPARC_RELOCATIONS()
-DEFINE_VAX_RELOCATIONS()
-DEFINE_X86_64_RELOCATIONS()
+# These are the symbols used in the Sun ``Linkers and Loaders
+# Guide'', Document No: 817-1984-17. See the X86_64 relocations
+# list above for the spellings used in the ELF specification.
+define(`DEFINE_X86_64_RELOCATION_TYPE_SYNONYMS',`
+_(R_AMD64_NONE, R_X86_64_NONE)
+_(R_AMD64_64, R_X86_64_64)
+_(R_AMD64_PC32, R_X86_64_PC32)
+_(R_AMD64_GOT32, R_X86_64_GOT32)
+_(R_AMD64_PLT32, R_X86_64_PLT32)
+_(R_AMD64_COPY, R_X86_64_COPY)
+_(R_AMD64_GLOB_DAT, R_X86_64_GLOB_DAT)
+_(R_AMD64_JUMP_SLOT, R_X86_64_JUMP_SLOT)
+_(R_AMD64_RELATIVE, R_X86_64_RELATIVE)
+_(R_AMD64_GOTPCREL, R_X86_64_GOTPCREL)
+_(R_AMD64_32, R_X86_64_32)
+_(R_AMD64_32S, R_X86_64_32S)
+_(R_AMD64_16, R_X86_64_16)
+_(R_AMD64_PC16, R_X86_64_PC16)
+_(R_AMD64_8, R_X86_64_8)
+_(R_AMD64_PC8, R_X86_64_PC8)
+_(R_AMD64_PC64, R_X86_64_PC64)
+_(R_AMD64_GOTOFF64, R_X86_64_GOTOFF64)
+_(R_AMD64_GOTPC32, R_X86_64_PC32)
+')
+
+define(`DEFINE_RELOCATION_TYPES',`
+DEFINE_386_RELOCATION_TYPES()
+DEFINE_AARCH64_RELOCATION_TYPES()
+DEFINE_ARM_RELOCATION_TYPES()
+DEFINE_IA_64_RELOCATION_TYPES()
+DEFINE_LOONGARCH_RELOCATION_TYPES()
+DEFINE_MIPS_RELOCATION_TYPES()
+DEFINE_PPC64_RELOCATION_TYPES()
+DEFINE_PPC_RELOCATION_TYPES()
+DEFINE_RISCV_RELOCATION_TYPES()
+DEFINE_S390_RELOCATION_TYPES()
+DEFINE_SPARC_RELOCATION_TYPES()
+DEFINE_VAX_RELOCATION_TYPES()
+DEFINE_X86_64_RELOCATION_TYPES()
+')
+
+# Obsolete relocation types.
+define(`DEFINE_OBSOLETE_RELOCATION_TYPES',`dnl
+DEFINE_ARM_OBSOLETE_RELOCATION_TYPES()
+DEFINE_PPC64_OBSOLETE_RELOCATION_TYPES()
+DEFINE_RISCV_OBSOLETE_RELOCATION_TYPES()
+DEFINE_SPARC_OBSOLETE_RELOCATION_TYPES()
+DEFINE_X86_64_OBSOLETE_RELOCATION_TYPES()
+')
+
+# Alternate spellings for relocation types.
+define(`DEFINE_RELOCATION_TYPE_SYNONYMS',`
+DEFINE_386_RELOCATION_TYPE_SYNONYMS()
+DEFINE_AARCH64_RELOCATION_TYPE_SYNONYMS()
+DEFINE_IA_64_RELOCATION_TYPE_SYNONYMS()
+DEFINE_MIPS_RELOCATION_TYPE_SYNONYMS()
+DEFINE_X86_64_RELOCATION_TYPE_SYNONYMS()
')
define(`DEFINE_LL_FLAGS',`
@@ -2591,7 +3331,7 @@ _(NT_PRPSINFO, 3,
`Process information')
_(NT_AUXV, 6,
`Auxiliary vector')
-_(NT_PRXFPREG, 0x46E62B7FUL,
+_(NT_PRXFPREG, 0x46E62B7FU,
`Linux user_xfpregs structure')
_(NT_PSTATUS, 10,
`Linux process status')
@@ -2653,17 +3393,17 @@ _(ODK_PAGESIZE, 11,
# ODK_EXCEPTIONS info field masks.
#
define(`DEFINE_OPTION_EXCEPTIONS',`
-_(OEX_FPU_MIN, 0x0000001FUL,
+_(OEX_FPU_MIN, 0x0000001FU,
`minimum FPU exception which must be enabled')
-_(OEX_FPU_MAX, 0x00001F00UL,
+_(OEX_FPU_MAX, 0x00001F00U,
`maximum FPU exception which can be enabled')
-_(OEX_PAGE0, 0x00010000UL,
+_(OEX_PAGE0, 0x00010000U,
`page zero must be mapped')
-_(OEX_SMM, 0x00020000UL,
+_(OEX_SMM, 0x00020000U,
`run in sequential memory mode')
-_(OEX_PRECISEFP, 0x00040000UL,
+_(OEX_PRECISEFP, 0x00040000U,
`run in precise FP exception mode')
-_(OEX_DISMISS, 0x00080000UL,
+_(OEX_DISMISS, 0x00080000U,
`dismiss invalid address traps')
')
@@ -2681,21 +3421,21 @@ _(OPAD_SYMBOL, 0x0004)
# info field and hwp_flags[12] masks.
#
define(`DEFINE_ODK_HWPATCH_MASKS',`
-_(OHW_R4KEOP, 0x00000001UL,
+_(OHW_R4KEOP, 0x00000001U,
`patch for R4000 branch at end-of-page bug')
-_(OHW_R8KPFETCH, 0x00000002UL,
+_(OHW_R8KPFETCH, 0x00000002U,
`R8000 prefetch bug may occur')
-_(OHW_R5KEOP, 0x00000004UL,
+_(OHW_R5KEOP, 0x00000004U,
`patch for R5000 branch at end-of-page bug')
-_(OHW_R5KCVTL, 0x00000008UL,
+_(OHW_R5KCVTL, 0x00000008U,
`R5000 cvt.[ds].l bug: clean == 1')
-_(OHW_R10KLDL, 0x00000010UL,
+_(OHW_R10KLDL, 0x00000010U,
`need patch for R10000 misaligned load')
-_(OHWA0_R4KEOP_CHECKED, 0x00000001UL,
+_(OHWA0_R4KEOP_CHECKED, 0x00000001U,
`object checked for R4000 end-of-page bug')
-_(OHWA0_R4KEOP_CLEAN, 0x00000002UL,
+_(OHWA0_R4KEOP_CLEAN, 0x00000002U,
`object verified clean for R4000 end-of-page bug')
-_(OHWO0_FIXADE, 0x00000001UL,
+_(OHWO0_FIXADE, 0x00000001U,
`object requires call to fixade')
')
@@ -2703,9 +3443,9 @@ _(OHWO0_FIXADE, 0x00000001UL,
# ODK_IDENT/ODK_GP_GROUP info field masks.
#
define(`DEFINE_ODK_GP_MASKS',`
-_(OGP_GROUP, 0x0000FFFFUL,
+_(OGP_GROUP, 0x0000FFFFU,
`GP group number')
-_(OGP_SELF, 0x00010000UL,
+_(OGP_SELF, 0x00010000U,
`GP group is self-contained')
')
Index: src/external/bsd/elftoolchain/dist/common/sys/elfdefinitions.m4
diff -u src/external/bsd/elftoolchain/dist/common/sys/elfdefinitions.m4:1.6 src/external/bsd/elftoolchain/dist/common/sys/elfdefinitions.m4:1.7
--- src/external/bsd/elftoolchain/dist/common/sys/elfdefinitions.m4:1.6 Sun Mar 3 17:37:29 2024
+++ src/external/bsd/elftoolchain/dist/common/sys/elfdefinitions.m4 Mon Feb 10 15:54:16 2025
@@ -1,6 +1,6 @@
-dnl $NetBSD: elfdefinitions.m4,v 1.6 2024/03/03 17:37:29 christos Exp $
+dnl $NetBSD: elfdefinitions.m4,v 1.7 2025/02/10 15:54:16 jkoshy Exp $
/*-
- * Copyright (c) 2010,2021 Joseph Koshy
+ * Copyright (c) 2010,2021,2024 Joseph Koshy
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -26,12 +26,44 @@ dnl $NetBSD: elfdefinitions.m4,v 1.6 20
*/
divert(-1)
define(`VCSID_ELFDEFINITIONS_M4',
- `Id: elfdefinitions.m4 3984 2022-05-06 11:22:42Z jkoshy')
+ `Id: elfdefinitions.m4 4162 2025-02-04 18:52:12Z jkoshy')
include(`elfconstants.m4')dnl
-define(`_',`ifelse(eval(len($1) <= 7),1,
- `#define $1 $2',
- `#define $1 $2')')
+# Compute the whitespace between a symbol and its definition.
+#
+# - If the symbol is 7 characters or shorter in width, use two tabs.
+# - Otherwise, if the symbol is 15 characters or less in width, use one tab.
+# - Otherwise, use a single space.
+#
+# This makes the generated definitions easier to read.
+define(`_WHITESPACE',
+ `ifelse(eval(len($1) <= 7),1,` ',
+ eval(len($1) <= 15),1,` ',
+ ` ')')
+
+# Format symbol descriptions as C-style comment.
+define(`_DESCRIPTION',
+ `ifelse(eval(len(`$*') > 0),1,` /* $* */',
+ `')')
+
+# Expand the `_' macro to a C preprocessor definition that is suitably
+# vertically aligned. If a symbol description is present, add it as a
+# C-style comment.
+define(`_',``#'define $1`'_WHITESPACE($1)`'$2`'_DESCRIPTION(`$3')')
+
+# Expand the `__' macro to a C-style comment.
+#
+# - An empty invocation __()) is ignored.
+# - An invocation with a single argument __(COMMENT) is expanded as an inline
+# C-style comment.
+# - An invocation with two or more arguments __(PREFIX, COMMENT) expands to
+# `PREFIX/* COMMENT */'. This form would be used to visually indent the
+# comment in the generated output.
+undefine(`__')
+define(`__',
+ `ifelse($#, 0, `',
+ $#, 1, `/* $1 */',
+ `$1/* shift($*) */')')
divert(0)dnl
/*
@@ -42,14 +74,7 @@ divert(0)dnl
*/
/*
- * These definitions are based on:
- * - The public specification of the ELF format as defined in the
- * October 2009 draft of System V ABI.
- * See: http://www.sco.com/developers/gabi/latest/ch4.intro.html
- * - The May 1998 (version 1.5) draft of "The ELF-64 object format".
- * - Processor-specific ELF ABI definitions for sparc, i386, amd64, mips,
- * ia64, powerpc, and RISC-V processors.
- * - The "Linkers and Libraries Guide", from Sun Microsystems.
+patsubst(defn(`COMPATIBILITY_NOTICE'), `^#', ` * ')
*/
#ifndef _SYS_ELFDEFINITIONS_H_
@@ -216,7 +241,17 @@ DEFINE_VERSIONING_NUMBERS()
/**
** Relocation types.
**/
-DEFINE_RELOCATIONS()
+DEFINE_RELOCATION_TYPES()
+
+/*
+ * Obsolete relocation types.
+ */
+DEFINE_OBSOLETE_RELOCATION_TYPES()
+
+/*
+ * Alternate spellings for relocation type symbols.
+ */
+DEFINE_RELOCATION_TYPE_SYNONYMS()
/*
* MIPS ABI related.
@@ -713,7 +748,7 @@ typedef struct {
uint32_t gh_nbuckets; /* Number of hash buckets. */
uint32_t gh_symndx; /* First visible symbol in .dynsym. */
uint32_t gh_maskwords; /* #maskwords used in bloom filter. */
- uint32_t gh_shift2; /* Bloom filter shift count. */
+ uint32_t gh_shift2; /* Bloom filter `shift' count. */
} Elf_GNU_Hash_Header;
#endif /* _SYS_ELFDEFINITIONS_H_ */