pdp10_elf36.hrl: sync with binutils-2.37 ELF definitions

This commit is contained in:
Mikael Pettersson
2021-08-12 19:50:06 +02:00
parent bd664c841d
commit 96dd45fc5b

View File

@@ -1,7 +1,7 @@
%%% -*- erlang-indent-level: 2 -*-
%%%
%%% pdp10_elf36.hrl -- ELF definitions for PDP10
%%% Copyright (C) 2013-2020 Mikael Pettersson
%%% Copyright (C) 2013-2021 Mikael Pettersson
%%%
%%% This file is part of pdp10-tools.
%%%
@@ -339,7 +339,7 @@
-define(EM_BA2, 202). % Beyond BA2 CPU architecture
-define(EM_XCORE, 203). % XMOS xCORE processor family
-define(EM_MCHP_PIC, 204). % Microchip 8-bit PIC(r) family
-define(EM_INTEL205, 205). % Reserved by Intel
-define(EM_INTELGT, 205). % Intel Graphics Technology
-define(EM_INTEL206, 206). % Reserved by Intel
-define(EM_INTEL207, 207). % Reserved by Intel
-define(EM_INTEL208, 208). % Reserved by Intel
@@ -362,9 +362,21 @@
%% 225-242: reserved
-define(EM_RISCV, 243). % RISC-V
-define(EM_LANAI, 244). % Lanai 32-bit processor.
-define(EM_CEVA, 245). % CEVA Processor Architecture Family
-define(EM_CEVA_X2, 246). % CEVA X2 Processor Family
-define(EM_BPF, 247). % Linux BPF - in-kernel virtual machine.
-define(EM_GRAPHCORE_IPU,248). % Graphcore Intelligent Processing Unit
-define(EM_IMG1, 249). % Imagination Technologies
-define(EM_NFP, 250). % Netronome Flow Processor.
-define(EM_VE, 251). % NEC Vector Engine
-define(EM_CSKY, 252). % C-SKY processor family.
-define(EM_ARC_COMPACT3_64,253).% Synopsys ARCv2.3 64-bit
-define(EM_MCS6502, 254). % MOS Technology MCS 6502 processor
-define(EM_ARC_COMPACT3,255). % Synopsys ARCv2.3 32-bit
-define(EM_KVX, 256). % Kalray VLIW core of the MPPA processor family
-define(EM_65816, 257). % WDC 65816/65C816
-define(EM_LOONGARCH, 258). % LoongArch
-define(EM_KF32, 259). % ChipON KungFu32
%% If it is necessary to assign new unofficial EM_* values, please pick large
%% random numbers (16#8523, 16#a7f2, etc.) to minimize the chances of collision
@@ -568,7 +580,7 @@
%%-define(SHF_MASKOS, 16#0F000000). % OS-specific semantics
-define(SHF_MASKOS, 16#0FF00000). % New value, Oct 4, 1999 Draft
-define(SHF_GNU_BUILD_NOTE, (1 bsl 20)).% Section contains GNU BUILD ATTRIBUTE notes.
-define(SHF_GNU_RETAIN, (1 bsl 21)). % Section should not be garbage collected by the linker.
-define(SHF_MASKPROC, 16#F0000000). % Processor-specific semantics
%% This used to be implemented as a processor specific section flag.
@@ -702,6 +714,7 @@
-define(ELF36_R_SYM(I), ((I) bsr 8)).
-define(ELF36_R_TYPE(I), ((I) band 16#ff)).
%% TODO: GNU binutils casts (S) below to unsigned
-define(ELF36_R_INFO(S,T), (((S) bsl 8) + ((T) band 16#ff))).
%% Processor-specific relocation types.
@@ -773,6 +786,8 @@
% note name must be "LINUX".
-define(NT_X86_XSTATE, 16#202). % x86 XSAVE extended state
% note name must be "LINUX".
-define(NT_X86_CET, 16#203). % x86 CET state.
% note name must be "LINUX".
-define(NT_S390_HIGH_GPRS, 16#300). % S/390 upper halves of GPRs
% note name must be "LINUX".
-define(NT_S390_TIMER, 16#301). % S390 timer
@@ -812,11 +827,25 @@
% note name must be "LINUX".
-define(NT_ARM_PAC_MASK, 16#406). % AArch pointer authentication code masks
% note name must be "LINUX".
-define(NT_ARM_TAGGED_ADDR_CTRL,16#409). % AArch64 tagged address control (prctl())
% note name must be "LINUX".
-define(NT_ARC_V2, 16#600). % ARC HS accumulator/extra registers.
% note name must be "LINUX".
-define(NT_RISCV_CSR, 16#900). % RISC-V Control and Status Registers
% note name must be "CORE".
-define(NT_SIGINFO, 16#53494749). % Fields of siginfo_t.
-define(NT_FILE, 16#46494c45). % Description of mapped files.
%% The range 16#ff000000 to 16#ffffffff is set aside for notes that don't
%% originate from any particular operating system.
-define(NT_GDB_TDESC, 16#ff000000). % Contains copy of GDB's target description XML.
-define(NT_MEMTAG, 16#ff000001). % Contains a copy of the memory tags.
%% NT_MEMTAG record types.
%% ARM-specific NT_MEMTAG types.
-define(NT_MEMTAG_TYPE_AARCH_MTE, 16#400). % MTE memory tags for AArch64.
%% Note segments for core files on dir-style procfs systems.
-define(NT_PSTATUS, 10). % Has a struct pstatus
@@ -873,6 +902,7 @@
-define(NT_VERSION, 1). % Contains a version string.
-define(NT_ARCH, 2). % Contains an architecture string.
-define(NT_GO_BUILDID, 4). % Contains GO buildid data.
%% Values for notes in non-core files using name "GNU".
@@ -906,6 +936,16 @@
-define(GNU_PROPERTY_STACK_SIZE, 1).
-define(GNU_PROPERTY_NO_COPY_ON_PROTECTED, 2).
%% A 4-byte unsigned integer property: A bit is set if it is set in all
%% relocatable inputs.
-define(GNU_PROPERTY_UINT32_AND_LO, 16#b0000000).
-define(GNU_PROPERTY_UINT32_AND_HI, 16#b0007fff).
%% A 4-byte unsigned integer property: A bit is set if it is set in any
%% relocatable inputs.
-define(GNU_PROPERTY_UINT32_OR_LO, 16#b0008000).
-define(GNU_PROPERTY_UINT32_OR_HI, 16#b000ffff).
%% Processor-specific semantics, lo
-define(GNU_PROPERTY_LOPROC, 16#c0000000).
%% Processor-specific semantics, hi
@@ -955,40 +995,30 @@
-define(GNU_PROPERTY_X86_FEATURE_1_AND, (?GNU_PROPERTY_X86_UINT32_AND_LO + 0)).
-define(GNU_PROPERTY_X86_ISA_1_NEEDED, (?GNU_PROPERTY_X86_UINT32_OR_LO + 0)).
-define(GNU_PROPERTY_X86_ISA_1_NEEDED, (?GNU_PROPERTY_X86_UINT32_OR_LO + 2)).
-define(GNU_PROPERTY_X86_FEATURE_2_NEEDED, (?GNU_PROPERTY_X86_UINT32_OR_LO + 1)).
-define(GNU_PROPERTY_X86_ISA_1_USED, (?GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0)).
-define(GNU_PROPERTY_X86_ISA_1_USED, (?GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2)).
-define(GNU_PROPERTY_X86_FEATURE_2_USED, (?GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1)).
%% GNU_PROPERTY_X86_ISA_1_BASELINE: CMOV, CX8 (cmpxchg8b), FPU (fld),
%% MMX, OSFXSR (fxsave), SCE (syscall), SSE and SSE2.
-define(GNU_PROPERTY_X86_ISA_1_BASELINE, (1 bsl 0)).
%% GNU_PROPERTY_X86_ISA_1_V2: GNU_PROPERTY_X86_ISA_1_BASELINE,
%% CMPXCHG16B (cmpxchg16b), LAHF-SAHF (lahf), POPCNT (popcnt), SSE3,
%% SSSE3, SSE4.1 and SSE4.2.
-define(GNU_PROPERTY_X86_ISA_1_V2, (1 bsl 1)).
%% GNU_PROPERTY_X86_ISA_1_V3: GNU_PROPERTY_X86_ISA_1_V2, AVX, AVX2, BMI1,
%% BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE.
-define(GNU_PROPERTY_X86_ISA_1_V3, (1 bsl 2)).
%% GNU_PROPERTY_X86_ISA_1_V4: GNU_PROPERTY_X86_ISA_1_V3, AVX512F,
%% AVX512BW, AVX512CD, AVX512DQ and AVX512VL.
-define(GNU_PROPERTY_X86_ISA_1_V4, (1 bsl 3)).
-define(GNU_PROPERTY_X86_FEATURE_1_IBT, (1 bsl 0)).
-define(GNU_PROPERTY_X86_FEATURE_1_SHSTK, (1 bsl 1)).
-define(GNU_PROPERTY_X86_ISA_1_CMOV, (1 bsl 0)).
-define(GNU_PROPERTY_X86_ISA_1_SSE, (1 bsl 1)).
-define(GNU_PROPERTY_X86_ISA_1_SSE2, (1 bsl 2)).
-define(GNU_PROPERTY_X86_ISA_1_SSE3, (1 bsl 3)).
-define(GNU_PROPERTY_X86_ISA_1_SSSE3, (1 bsl 4)).
-define(GNU_PROPERTY_X86_ISA_1_SSE4_1, (1 bsl 5)).
-define(GNU_PROPERTY_X86_ISA_1_SSE4_2, (1 bsl 6)).
-define(GNU_PROPERTY_X86_ISA_1_AVX, (1 bsl 7)).
-define(GNU_PROPERTY_X86_ISA_1_AVX2, (1 bsl 8)).
-define(GNU_PROPERTY_X86_ISA_1_FMA, (1 bsl 9)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512F, (1 bsl 10)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512CD, (1 bsl 11)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512ER, (1 bsl 12)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512PF, (1 bsl 13)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512VL, (1 bsl 14)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512DQ, (1 bsl 15)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512BW, (1 bsl 16)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512_4FMAPS, (1 bsl 17)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512_4VNNIW, (1 bsl 18)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512_BITALG, (1 bsl 19)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512_IFMA, (1 bsl 20)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512_VBMI, (1 bsl 21)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512_VBMI2, (1 bsl 22)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512_VNNI, (1 bsl 23)).
-define(GNU_PROPERTY_X86_ISA_1_AVX512_BF16, (1 bsl 24)).
-define(GNU_PROPERTY_X86_FEATURE_1_LAM_U48, (1 bsl 2)).
-define(GNU_PROPERTY_X86_FEATURE_1_LAM_U57, (1 bsl 3)).
-define(GNU_PROPERTY_X86_FEATURE_2_X86, (1 bsl 0)).
-define(GNU_PROPERTY_X86_FEATURE_2_X87, (1 bsl 1)).
@@ -1000,6 +1030,38 @@
-define(GNU_PROPERTY_X86_FEATURE_2_XSAVE, (1 bsl 7)).
-define(GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT, (1 bsl 8)).
-define(GNU_PROPERTY_X86_FEATURE_2_XSAVEC, (1 bsl 9)).
-define(GNU_PROPERTY_X86_FEATURE_2_TMM, (1 bsl 10)).
-define(GNU_PROPERTY_X86_FEATURE_2_MASK, (1 bsl 11)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED, (?GNU_PROPERTY_X86_UINT32_OR_LO + 0)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED, (?GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_CMOV, (1 bsl 0)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE, (1 bsl 1)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE2, (1 bsl 2)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE3, (1 bsl 3)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSSE3, (1 bsl 4)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_1, (1 bsl 5)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_2, (1 bsl 6)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX, (1 bsl 7)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX2, (1 bsl 8)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_FMA, (1 bsl 9)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512F, (1 bsl 10)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512CD, (1 bsl 11)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512ER, (1 bsl 12)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512PF, (1 bsl 13)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512VL, (1 bsl 14)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512DQ, (1 bsl 15)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512BW, (1 bsl 16)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4FMAPS, (1 bsl 17)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4VNNIW, (1 bsl 18)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BITALG, (1 bsl 19)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_IFMA, (1 bsl 20)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI, (1 bsl 21)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI2, (1 bsl 22)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VNNI, (1 bsl 23)).
-define(GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BF16, (1 bsl 24)).
%% AArch64 specific GNU PROPERTY.
-define(GNU_PROPERTY_AARCH64_FEATURE_1_AND, 16#c0000000).
@@ -1021,6 +1083,15 @@
-define(NT_NETBSD_IDENT, 1).
-define(NT_NETBSD_MARCH, 5).
%% Values for NetBSD .note.netbsd.ident notes. Note name is "PaX".
-define(NT_NETBSD_PAX, 3).
-define(NT_NETBSD_PAX_MPROTECT, 16#01). % Force enable Mprotect.
-define(NT_NETBSD_PAX_NOMPROTECT, 16#02). % Force disable Mprotect.
-define(NT_NETBSD_PAX_GUARD, 16#04). % Force enable Segvguard.
-define(NT_NETBSD_PAX_NOGUARD, 16#08). % Force disable Segvguard.
-define(NT_NETBSD_PAX_ASLR, 16#10). % Force enable ASLR.
-define(NT_NETBSD_PAX_NOASLR, 16#20). % Force disable ASLR.
%% Values for OpenBSD .note.openbsd.ident notes. Note name is "OpenBSD".
-define(NT_OPENBSD_IDENT, 1).
@@ -1065,6 +1136,11 @@
-define(PT_GNU_RELRO, (?PT_LOOS + 16#474e552)). % Read-only after relocation
-define(PT_GNU_PROPERTY, (?PT_LOOS + 16#474e553)). % GNU property
%% OpenBSD segment types.
-define(PT_OPENBSD_RANDOMIZE, (?PT_LOOS + 16#5a3dbe6)). % Fill with random data.
-define(PT_OPENBSD_WXNEEDED, (?PT_LOOS + 16#5a3dbe7)). % Program does W^X violations.
-define(PT_OPENBSD_BOOTDATA, (?PT_LOOS + 16#5a41be6)). % Section for boot arguments.
%% Mbind segments
-define(PT_GNU_MBIND_NUM, 4096).
-define(PT_GNU_MBIND_LO, (?PT_LOOS + 16#474e555)).
@@ -1142,6 +1218,7 @@
%% deliberate special case and we maintain it for backwards compatability.
-define(DT_VALRNGLO, 16#6ffffd00).
-define(DT_GNU_FLAGS_1, 16#6ffffdf4).
-define(DT_GNU_PRELINKED,16#6ffffdf5).
-define(DT_GNU_CONFLICTSZ,16#6ffffdf6).
-define(DT_GNU_LIBLISTSZ,16#6ffffdf7).
@@ -1202,6 +1279,9 @@
-define(DF_P1_LAZYLOAD, 16#00000001).
-define(DF_P1_GROUPPERM,16#00000002).
%% Flag value in the DT_GNU_FLAGS_1 /dynamic entry.
-define(DF_GNU_1_UNIQUE,16#00000001).
%% Flag value in in the DT_FLAGS_1 .dynamic entry.
-define(DF_1_NOW, 16#00000001).
-define(DF_1_GLOBAL, 16#00000002).
@@ -1441,6 +1521,11 @@
-define(AT_FREEBSD_HWCAP, 25). % CPU feature flags.
-define(AT_FREEBSD_HWCAP2, 26). % CPU feature flags 2.
-define(AT_FREEBSD_BSDFLAGS, 27). % ELF BSD Flags.
-define(AT_FREEBSD_ARGC, 28). % Argument count.
-define(AT_FREEBSD_ARGV, 29). % Argument vector.
-define(AT_FREEBSD_ENVC, 30). % Environment count.
-define(AT_FREEBSD_ENVV, 31). % Environment vvector.
-define(AT_FREEBSD_PS_STRINGS, 32). % struct ps_strings.
-define(AT_SUN_UID, 2000). % Effective user ID.
-define(AT_SUN_RUID, 2001). % Real user ID.