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

Akihiko Odaki
2025-01-07T12:47:53Z

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@daynix.com>
---
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@daynix.com

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@daynix.com

---
Akihiko Odaki (6):
elf: Define note name macros
binfmt_elf: Use note name macros
powwerpc: 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 | 86 ++++++++++++++++++++++++++++--
kernel/crash_core.c | 2 +-
10 files changed, 133 insertions(+), 73 deletions(-)
---
base-commit: a32e14f8aef69b42826cf0998b068a43d486a9e9
change-id: 20241210-elf-b80ea3949c39

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