[PATCH v5 0/6] elf: Define note name macros

From: Akihiko Odaki
Date: Wed Jan 15 2025 - 00:49:49 EST


elf.h had a comment saying:
> Notes used in ET_CORE. Architectures export some of the arch register
> sets using the corresponding note types via the PTRACE_GETREGSET and
> PTRACE_SETREGSET requests.
> The note name for these types is "LINUX", except NT_PRFPREG that is
> named "CORE".

However, NT_PRSTATUS is also named "CORE". It is also unclear what
"these types" refers to.

To fix these problems, define a name for each note type. The added
definitions are macros so the kernel and userspace can directly refer to
them.

For userspace program developers
---------------------------------------------------
While the main purpose of new macros is documentation, they are also
hoped to be useful for userspace programs. Please check patch
"elf: Define note name macros" and if you have a suggestion to make it
more convenient for you, please share.

I added the Binutils mailing list to the CC as it contains code to parse
dumps. I'm also planning to share this series on LLVM Discourse.

Signed-off-by: Akihiko Odaki <akihiko.odaki@xxxxxxxxxx>
---
Changes in v5:
- Noted that patch "elf: Define note name macros" allows removing
duplicate definitions of note names.
- Reordered NT_GNU_PROPERTY_TYPE_0 to precede notes used in ET_CORE to
show its not specific to ET_CORE.
- Link to v4: https://lore.kernel.org/r/20250111-elf-v4-0-b3841fa0dcd9@xxxxxxxxxx

Changes in v4:
- s/powwerpc/powerpc/
- s/NT_INIT/nt_init/g s/NT_SIZE/nt_size/g
- Removed parentheses that have little value.
- Fixed the code alignment in get_cpu_elf_notes_size().
- Link to v3: https://lore.kernel.org/r/20250107-elf-v3-0-99cb505b1ab2@xxxxxxxxxx

Changes in v3:
- Added patch "s390/crash: Use note name macros".
- Changed to interleave note name and type macros.
- Described NN_ and NT_ macros.
- Link to v2: https://lore.kernel.org/r/20250104-elf-v2-0-77dc2e06db4e@xxxxxxxxxx

Changes in v2:
- Added a macro definition for each note type instead of trying to
describe in a comment.
- Link to v1: https://lore.kernel.org/r/20241225-elf-v1-1-79e940350d50@xxxxxxxxxx

---
Akihiko Odaki (6):
elf: Define note name macros
binfmt_elf: Use note name macros
powerpc: Use note name macros
crash: Use note name macros
s390/crash: Use note name macros
crash: Remove KEXEC_CORE_NOTE_NAME

arch/powerpc/kernel/fadump.c | 2 +-
arch/powerpc/platforms/powernv/opal-core.c | 8 +--
arch/s390/kernel/crash_dump.c | 62 ++++++++-------------
fs/binfmt_elf.c | 21 ++++---
fs/binfmt_elf_fdpic.c | 8 +--
fs/proc/kcore.c | 12 ++--
include/linux/kexec.h | 2 -
include/linux/vmcore_info.h | 3 +-
include/uapi/linux/elf.h | 89 ++++++++++++++++++++++++++++--
kernel/crash_core.c | 2 +-
10 files changed, 134 insertions(+), 75 deletions(-)
---
base-commit: a32e14f8aef69b42826cf0998b068a43d486a9e9
change-id: 20241210-elf-b80ea3949c39

Best regards,
--
Akihiko Odaki <akihiko.odaki@xxxxxxxxxx>