Backport upstream patch to allow readelf to recognize packaging metadata note
Will be useful to implement: https://fedoraproject.org/wiki/Changes/Package_information_on_ELF_objects Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
This commit is contained in:
parent
893b61d358
commit
a2393deeee
@ -0,0 +1,78 @@
|
||||
From 92608c3a98e943bb0d43408e84d4f419f87b5f1f Mon Sep 17 00:00:00 2001
|
||||
From: Luca Boccassi <luca.boccassi@gmail.com>
|
||||
Date: Wed, 1 Dec 2021 14:44:25 +0000
|
||||
Subject: [PATCH] readelf: recognize FDO Packaging Metadata ELF note
|
||||
|
||||
As defined on: https://systemd.io/COREDUMP_PACKAGE_METADATA/
|
||||
this note will be used starting from Fedora 36. Allow
|
||||
readelf --notes to pretty print it:
|
||||
|
||||
Displaying notes found in: .note.package
|
||||
Owner Data size Description
|
||||
FDO 0x00000039 FDO_PACKAGING_METADATA
|
||||
Packaging Metadata: {"type":"deb","name":"fsverity-utils","version":"1.3-1"}
|
||||
|
||||
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
|
||||
(cherry picked from commit e5382207cdddea07c6456fc1c0e6bea73b3d9947)
|
||||
---
|
||||
binutils/readelf.c | 15 +++++++++++++++
|
||||
include/elf/common.h | 3 +++
|
||||
2 files changed, 18 insertions(+)
|
||||
|
||||
diff --git a/binutils/readelf.c b/binutils/readelf.c
|
||||
index a6073f7ec80..a92dce3114f 100644
|
||||
--- a/binutils/readelf.c
|
||||
+++ b/binutils/readelf.c
|
||||
@@ -18861,6 +18861,8 @@ get_note_type (Filedata * filedata, unsigned e_type)
|
||||
return _("func");
|
||||
case NT_GO_BUILDID:
|
||||
return _("GO BUILDID");
|
||||
+ case FDO_PACKAGING_METADATA:
|
||||
+ return _("FDO_PACKAGING_METADATA");
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -20012,6 +20014,17 @@ print_stapsdt_note (Elf_Internal_Note *pnote)
|
||||
return false;
|
||||
}
|
||||
|
||||
+static bool
|
||||
+print_fdo_note (Elf_Internal_Note * pnote)
|
||||
+{
|
||||
+ if (pnote->descsz > 0 && pnote->type == FDO_PACKAGING_METADATA)
|
||||
+ {
|
||||
+ printf (_(" Packaging Metadata: %.*s\n"), (int) pnote->descsz, pnote->descdata);
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
static const char *
|
||||
get_ia64_vms_note_type (unsigned e_type)
|
||||
{
|
||||
@@ -20741,6 +20754,8 @@ process_note (Elf_Internal_Note * pnote,
|
||||
return print_stapsdt_note (pnote);
|
||||
else if (startswith (pnote->namedata, "CORE"))
|
||||
return print_core_note (pnote);
|
||||
+ else if (startswith (pnote->namedata, "FDO"))
|
||||
+ return print_fdo_note (pnote);
|
||||
else if (((startswith (pnote->namedata, "GA")
|
||||
&& strchr ("*$!+", pnote->namedata[2]) != NULL)
|
||||
|| strchr ("*$!+", pnote->namedata[0]) != NULL)
|
||||
diff --git a/include/elf/common.h b/include/elf/common.h
|
||||
index 0cca28673dd..8ee17c84a97 100644
|
||||
--- a/include/elf/common.h
|
||||
+++ b/include/elf/common.h
|
||||
@@ -953,6 +953,9 @@
|
||||
|
||||
#define NT_FREEBSD_ABI_TAG 1
|
||||
|
||||
+/* Values for FDO .note.package notes as defined on https://systemd.io/COREDUMP_PACKAGE_METADATA/ */
|
||||
+#define FDO_PACKAGING_METADATA 0xcafe1a7e
|
||||
+
|
||||
/* These three macros disassemble and assemble a symbol table st_info field,
|
||||
which contains the symbol binding and symbol type. The STB_ and STT_
|
||||
defines identify the binding and type. */
|
||||
--
|
||||
2.30.2
|
||||
|
@ -325,6 +325,10 @@ Patch27: binutils-gas-multibyte-warnings.patch
|
||||
# Lifetime: Fixed in 2.38.
|
||||
Patch28: binutils-AArch64-EFI.patch
|
||||
|
||||
# Purpose: Recognize FDO Packaging Metadata ELF note in readelf
|
||||
# Lifetime: Fixed in 2.38.
|
||||
Patch29: binutils-readelf-recognize-FDO-Packaging-Metadata-ELF-note.patch
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
Provides: bundled(libiberty)
|
||||
|
Loading…
Reference in New Issue
Block a user