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_ */

Reply via email to