From eccdc733a50980adc99178645ea4d5c2949c7e90 Mon Sep 17 00:00:00 2001 From: "Schimpe, Christina" Date: Wed, 27 Dec 2023 14:19:21 +0000 Subject: [PATCH] x86: Add NT_X86_SHSTK note Define NT_X86_SHSTK which is the note for x86 Shadow Stack (SHSTK) to support Intel SHSTK in Linux kernel. For now only userspace shadow stack and kernel IBT are supported by the linux kernel. This note should be used instead of NT_X86_CET introduced in the commit "x86: Add NT_X86_CET note", as it is outdated and only used by old binutils versions. --- binutils/readelf.c | 2 ++ include/elf/common.h | 3 +++ 2 files changed, 5 insertions(+) diff --git a/binutils/readelf.c b/binutils/readelf.c index 775106f..a464692 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -20079,6 +20079,8 @@ get_note_type (Filedata * filedata, unsigned e_type) return _("NT_X86_XSTATE (x86 XSAVE extended state)"); case NT_X86_CET: return _("NT_X86_CET (x86 CET state)"); + case NT_X86_SHSTK: + return _("NT_X86_SHSTK (x86 SHSTK state)"); case NT_S390_HIGH_GPRS: return _("NT_S390_HIGH_GPRS (s390 upper register halves)"); case NT_S390_TIMER: diff --git a/include/elf/common.h b/include/elf/common.h index 244b133..690d780 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -645,6 +645,9 @@ /* note name must be "LINUX". */ #define NT_X86_CET 0x203 /* x86 CET state. */ /* note name must be "LINUX". */ +#define NT_X86_SHSTK 0x204 /* x86 SHSTK state. */ + /* This replaces NT_X86_CET (0x203). */ + /* note name must be "LINUX". */ #define NT_S390_HIGH_GPRS 0x300 /* S/390 upper halves of GPRs */ /* note name must be "LINUX". */ #define NT_S390_TIMER 0x301 /* S390 timer */ -- 2.7.4