From 7ffb94911bd9df18edadf0d2cdf3bef0638bea83 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 26 Apr 2022 14:25:14 +0200 Subject: [PATCH] 0.187-1 - Upgrade to elfutils 0.187 --- .gitignore | 1 + elfutils-0.186-elf-glibc.patch | 208 ------------------ elfutils-0.186-fdo-ebl.patch | 46 ---- elfutils-0.186-fdo-efllint.patch | 26 --- ....186-ppc64le-error-return-workaround.patch | 97 -------- elfutils.spec | 30 ++- sources | 2 +- 7 files changed, 21 insertions(+), 389 deletions(-) delete mode 100644 elfutils-0.186-elf-glibc.patch delete mode 100644 elfutils-0.186-fdo-ebl.patch delete mode 100644 elfutils-0.186-fdo-efllint.patch delete mode 100644 elfutils-0.186-ppc64le-error-return-workaround.patch diff --git a/.gitignore b/.gitignore index 862ef94..f28cb05 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ /elfutils-0.184.tar.bz2 /elfutils-0.185.tar.bz2 /elfutils-0.186.tar.bz2 +/elfutils-0.187.tar.bz2 diff --git a/elfutils-0.186-elf-glibc.patch b/elfutils-0.186-elf-glibc.patch deleted file mode 100644 index 40aab81..0000000 --- a/elfutils-0.186-elf-glibc.patch +++ /dev/null @@ -1,208 +0,0 @@ -commit 31d551ae4dd8cf307c68f86b6c1ecac2f92b522a -Author: Mark Wielaard -Date: Thu Mar 24 23:06:09 2022 +0100 - - libelf: Sync elf.h from glibc. - - Adds EM_INTELGT, NT_ARM_TAGGED_ADDR_CTRL, NT_ARM_PAC_ENABLED_KEYS, - ELF_NOTE_FDO, NT_FDO_PACKAGING_METADATA and OpenRISC 1000 specific - relocs. - - It also adds and renames some GNU_PROPERTY constants. But none of the - constants the elfutils code uses was renamed or given a different - constant value. - - dwelf_elf_e_machine_string was updated to handle EM_INTELGT. - - Signed-off-by: Mark Wielaard - -diff --git a/libdwelf/dwelf_elf_e_machine_string.c b/libdwelf/dwelf_elf_e_machine_string.c -index 387648e2..051c70b5 100644 ---- a/libdwelf/dwelf_elf_e_machine_string.c -+++ b/libdwelf/dwelf_elf_e_machine_string.c -@@ -360,6 +360,8 @@ dwelf_elf_e_machine_string (int machine) - return "XMOS xCORE"; - case EM_MCHP_PIC: - return "Microchip 8-bit PIC"; -+ case EM_INTELGT: -+ return "Intel Graphics Technology"; - case EM_KM32: - return "KM211 KM32"; - case EM_KMX32: - - * elf_getdata.c (__libelf_type_aligns): ELF_T_GNUHASH has different -diff --git a/libelf/elf.h b/libelf/elf.h -index 8e3e618f..0735f6b5 100644 ---- a/libelf/elf.h -+++ b/libelf/elf.h -@@ -1,5 +1,5 @@ - /* This file defines standard ELF types, structures, and macros. -- Copyright (C) 1995-2020 Free Software Foundation, Inc. -+ Copyright (C) 1995-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -336,7 +336,8 @@ typedef struct - #define EM_BA2 202 /* Beyond BA2 */ - #define EM_XCORE 203 /* XMOS xCORE */ - #define EM_MCHP_PIC 204 /* Microchip 8-bit PIC(r) */ -- /* reserved 205-209 */ -+#define EM_INTELGT 205 /* Intel Graphics Technology */ -+ /* reserved 206-209 */ - #define EM_KM32 210 /* KM211 KM32 */ - #define EM_KMX32 211 /* KM211 KMX32 */ - #define EM_EMX16 212 /* KM211 KMX16 */ -@@ -813,6 +814,10 @@ typedef struct - address keys. */ - #define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication - generic key. */ -+#define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* AArch64 tagged address -+ control. */ -+#define NT_ARM_PAC_ENABLED_KEYS 0x40a /* AArch64 pointer authentication -+ enabled keys. */ - #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note. */ - #define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers. */ - #define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode. */ -@@ -1226,8 +1231,7 @@ typedef struct - #define AT_L3_CACHESIZE 46 - #define AT_L3_CACHEGEOMETRY 47 - --#define AT_MINSIGSTKSZ 51 /* Stack needed for signal delivery -- (AArch64). */ -+#define AT_MINSIGSTKSZ 51 /* Stack needed for signal delivery */ - - /* Note section contents. Each entry in the note section begins with - a header of a fixed form. */ -@@ -1254,6 +1258,8 @@ typedef struct - /* Note entries for GNU systems have this name. */ - #define ELF_NOTE_GNU "GNU" - -+/* Note entries for freedesktop.org have this name. */ -+#define ELF_NOTE_FDO "FDO" - - /* Defined types of notes for Solaris. */ - -@@ -1297,6 +1303,10 @@ typedef struct - /* Program property. */ - #define NT_GNU_PROPERTY_TYPE_0 5 - -+/* Packaging metadata as defined on -+ https://systemd.io/COREDUMP_PACKAGE_METADATA/ */ -+#define NT_FDO_PACKAGING_METADATA 0xcafe1a7e -+ - /* Note section name of program property. */ - #define NOTE_GNU_PROPERTY_SECTION_NAME ".note.gnu.property" - -@@ -1307,6 +1317,23 @@ typedef struct - /* No copy relocation on protected data symbol. */ - #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 0xb0000000 -+#define GNU_PROPERTY_UINT32_AND_HI 0xb0007fff -+ -+/* A 4-byte unsigned integer property: A bit is set if it is set in any -+ relocatable inputs. */ -+#define GNU_PROPERTY_UINT32_OR_LO 0xb0008000 -+#define GNU_PROPERTY_UINT32_OR_HI 0xb000ffff -+ -+/* The needed properties by the object file. */ -+#define GNU_PROPERTY_1_NEEDED GNU_PROPERTY_UINT32_OR_LO -+ -+/* Set if the object file requires canonical function pointers and -+ cannot be used with copy relocation. */ -+#define GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS (1U << 0) -+ - /* Processor-specific semantics, lo */ - #define GNU_PROPERTY_LOPROC 0xc0000000 - /* Processor-specific semantics, hi */ -@@ -1324,31 +1351,26 @@ typedef struct - - /* The x86 instruction sets indicated by the corresponding bits are - used in program. Their support in the hardware is optional. */ --#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000 -+#define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002 - /* The x86 instruction sets indicated by the corresponding bits are - used in program and they must be supported by the hardware. */ --#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001 -+#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002 - /* X86 processor-specific features used in program. */ - #define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002 - --#define GNU_PROPERTY_X86_ISA_1_486 (1U << 0) --#define GNU_PROPERTY_X86_ISA_1_586 (1U << 1) --#define GNU_PROPERTY_X86_ISA_1_686 (1U << 2) --#define GNU_PROPERTY_X86_ISA_1_SSE (1U << 3) --#define GNU_PROPERTY_X86_ISA_1_SSE2 (1U << 4) --#define GNU_PROPERTY_X86_ISA_1_SSE3 (1U << 5) --#define GNU_PROPERTY_X86_ISA_1_SSSE3 (1U << 6) --#define GNU_PROPERTY_X86_ISA_1_SSE4_1 (1U << 7) --#define GNU_PROPERTY_X86_ISA_1_SSE4_2 (1U << 8) --#define GNU_PROPERTY_X86_ISA_1_AVX (1U << 9) --#define GNU_PROPERTY_X86_ISA_1_AVX2 (1U << 10) --#define GNU_PROPERTY_X86_ISA_1_AVX512F (1U << 11) --#define GNU_PROPERTY_X86_ISA_1_AVX512CD (1U << 12) --#define GNU_PROPERTY_X86_ISA_1_AVX512ER (1U << 13) --#define GNU_PROPERTY_X86_ISA_1_AVX512PF (1U << 14) --#define GNU_PROPERTY_X86_ISA_1_AVX512VL (1U << 15) --#define GNU_PROPERTY_X86_ISA_1_AVX512DQ (1U << 16) --#define GNU_PROPERTY_X86_ISA_1_AVX512BW (1U << 17) -+/* 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 (1U << 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 (1U << 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 (1U << 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 (1U << 3) - - /* This indicates that all executable sections are compatible with - IBT. */ -@@ -4102,4 +4124,41 @@ enum - #define R_ARC_TLS_LE_S9 0x4a - #define R_ARC_TLS_LE_32 0x4b - -+/* OpenRISC 1000 specific relocs. */ -+#define R_OR1K_NONE 0 -+#define R_OR1K_32 1 -+#define R_OR1K_16 2 -+#define R_OR1K_8 3 -+#define R_OR1K_LO_16_IN_INSN 4 -+#define R_OR1K_HI_16_IN_INSN 5 -+#define R_OR1K_INSN_REL_26 6 -+#define R_OR1K_GNU_VTENTRY 7 -+#define R_OR1K_GNU_VTINHERIT 8 -+#define R_OR1K_32_PCREL 9 -+#define R_OR1K_16_PCREL 10 -+#define R_OR1K_8_PCREL 11 -+#define R_OR1K_GOTPC_HI16 12 -+#define R_OR1K_GOTPC_LO16 13 -+#define R_OR1K_GOT16 14 -+#define R_OR1K_PLT26 15 -+#define R_OR1K_GOTOFF_HI16 16 -+#define R_OR1K_GOTOFF_LO16 17 -+#define R_OR1K_COPY 18 -+#define R_OR1K_GLOB_DAT 19 -+#define R_OR1K_JMP_SLOT 20 -+#define R_OR1K_RELATIVE 21 -+#define R_OR1K_TLS_GD_HI16 22 -+#define R_OR1K_TLS_GD_LO16 23 -+#define R_OR1K_TLS_LDM_HI16 24 -+#define R_OR1K_TLS_LDM_LO16 25 -+#define R_OR1K_TLS_LDO_HI16 26 -+#define R_OR1K_TLS_LDO_LO16 27 -+#define R_OR1K_TLS_IE_HI16 28 -+#define R_OR1K_TLS_IE_LO16 29 -+#define R_OR1K_TLS_LE_HI16 30 -+#define R_OR1K_TLS_LE_LO16 31 -+#define R_OR1K_TLS_TPOFF 32 -+#define R_OR1K_TLS_DTPOFF 33 -+#define R_OR1K_TLS_DTPMOD 34 -+ - #endif /* elf.h */ diff --git a/elfutils-0.186-fdo-ebl.patch b/elfutils-0.186-fdo-ebl.patch deleted file mode 100644 index 9173f96..0000000 --- a/elfutils-0.186-fdo-ebl.patch +++ /dev/null @@ -1,46 +0,0 @@ -commit 1e5302ad3cf02788339a340f6322d1af1f05d9f9 -Author: Luca Boccassi -Date: Sun Nov 21 19:43:18 2021 +0000 - - libebl: 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: - - Note section [ 3] '.note.package' of 76 bytes at offset 0x2e8: - Owner Data size Type - FDO 57 FDO_PACKAGING_METADATA - Packaging Metadata: {"type":"deb","name":"fsverity-utils","version":"1.3-1"} - - Signed-off-by: Luca Boccassi - -diff --git a/libebl/eblobjnote.c b/libebl/eblobjnote.c -index 36efe275..5a7c5c62 100644 ---- a/libebl/eblobjnote.c -+++ b/libebl/eblobjnote.c -@@ -288,6 +288,10 @@ ebl_object_note (Ebl *ebl, uint32_t namesz, const char *name, uint32_t type, - if (descsz == 0 && type == NT_VERSION) - return; - -+ if (strcmp ("FDO", name) == 0 && type == NT_FDO_PACKAGING_METADATA -+ && descsz > 0 && desc[descsz - 1] == '\0') -+ printf(" Packaging Metadata: %.*s\n", (int) descsz, desc); -+ - /* Everything else should have the "GNU" owner name. */ - if (strcmp ("GNU", name) != 0) - return; -diff --git a/libebl/eblobjnotetypename.c b/libebl/eblobjnotetypename.c -index 4662906d..473a1f2f 100644 ---- a/libebl/eblobjnotetypename.c -+++ b/libebl/eblobjnotetypename.c -@@ -101,6 +101,9 @@ ebl_object_note_type_name (Ebl *ebl, const char *name, uint32_t type, - return buf; - } - -+ if (strcmp (name, "FDO") == 0 && type == NT_FDO_PACKAGING_METADATA) -+ return "FDO_PACKAGING_METADATA"; -+ - if (strcmp (name, "GNU") != 0) - { - /* NT_VERSION is special, all data is in the name. */ diff --git a/elfutils-0.186-fdo-efllint.patch b/elfutils-0.186-fdo-efllint.patch deleted file mode 100644 index 682c569..0000000 --- a/elfutils-0.186-fdo-efllint.patch +++ /dev/null @@ -1,26 +0,0 @@ -commit 4a22e01277e37540d753e3513c4df3bd2b6e1246 -Author: Mark Wielaard -Date: Fri Mar 25 00:00:47 2022 +0100 - - elflint: Recognize NT_FDO_PACKAGING_METADATA - - Signed-off-by: Mark Wielaard - -diff --git a/src/elflint.c b/src/elflint.c -index ef7725ce..d919936f 100644 ---- a/src/elflint.c -+++ b/src/elflint.c -@@ -4384,6 +4384,13 @@ section [%2d] '%s': unknown core file note type %" PRIu32 - else - goto unknown_note; - -+ case NT_FDO_PACKAGING_METADATA: -+ if (nhdr.n_namesz == sizeof ELF_NOTE_FDO -+ && strcmp (data->d_buf + name_offset, ELF_NOTE_FDO) == 0) -+ break; -+ else -+ goto unknown_note; -+ - case 0: - /* Linux vDSOs use a type 0 note for the kernel version word. */ - if (nhdr.n_namesz == sizeof "Linux" diff --git a/elfutils-0.186-ppc64le-error-return-workaround.patch b/elfutils-0.186-ppc64le-error-return-workaround.patch deleted file mode 100644 index adcd5a9..0000000 --- a/elfutils-0.186-ppc64le-error-return-workaround.patch +++ /dev/null @@ -1,97 +0,0 @@ -diff --git a/src/readelf.c b/src/readelf.c -index 93fb5989..43ae00b6 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -1661,10 +1661,13 @@ print_scngrp (Ebl *ebl) - elf_ndxscn (scn)); - shdr = gelf_getshdr (scn, &shdr_mem); - if (unlikely (shdr == NULL)) -+ { - error (EXIT_FAILURE, 0, - _("cannot get section [%zd] header: %s"), - elf_ndxscn (scn), - elf_errmsg (-1)); -+ return; -+ } - } - handle_scngrp (ebl, scn, shdr); - } -@@ -2388,9 +2391,12 @@ print_symtab (Ebl *ebl, int type) - elf_ndxscn (scn)); - shdr = gelf_getshdr (scn, &shdr_mem); - if (unlikely (shdr == NULL)) -+ { - error (EXIT_FAILURE, 0, - _("cannot get section [%zd] header: %s"), - elf_ndxscn (scn), elf_errmsg (-1)); -+ return; -+ } - } - handle_symtab (ebl, scn, shdr); - } -@@ -2722,8 +2728,11 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) - GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), - &glink_mem); - if (glink == NULL) -+ { - error (EXIT_FAILURE, 0, _("invalid sh_link value in section %zu"), - elf_ndxscn (scn)); -+ return; -+ } - - printf (ngettext ("\ - \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", -@@ -2798,8 +2807,11 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) - GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), - &glink_mem); - if (glink == NULL) -+ { - error (EXIT_FAILURE, 0, _("invalid sh_link value in section %zu"), - elf_ndxscn (scn)); -+ return; -+ } - - int class = gelf_getclass (ebl->elf); - printf (ngettext ("\ -@@ -3102,8 +3114,11 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) - &glink_mem); - size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_HALF, 1, EV_CURRENT); - if (glink == NULL) -+ { - error (EXIT_FAILURE, 0, _("invalid sh_link value in section %zu"), - elf_ndxscn (scn)); -+ return; -+ } - - /* Print the header. */ - printf (ngettext ("\ -@@ -3495,9 +3510,12 @@ handle_hash (Ebl *ebl) - elf_ndxscn (scn)); - shdr = gelf_getshdr (scn, &shdr_mem); - if (unlikely (shdr == NULL)) -+ { - error (EXIT_FAILURE, 0, - _("cannot get section [%zd] header: %s"), - elf_ndxscn (scn), elf_errmsg (-1)); -+ return; -+ } - } - - if (shdr->sh_type == SHT_HASH) -diff --git a/src/unstrip.c b/src/unstrip.c -index aacc9aad..0dc713aa 100644 ---- a/src/unstrip.c -+++ b/src/unstrip.c -@@ -1552,9 +1552,12 @@ more sections in stripped file than debug file -- arguments reversed?")); - } - - if (sec == NULL) -+ { - error (EXIT_FAILURE, 0, - _("cannot find matching section for [%zu] '%s'"), - elf_ndxscn (scn), name); -+ return; -+ } - - sec->outscn = scn; - } diff --git a/elfutils.spec b/elfutils.spec index e10455e..3a02fdf 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,6 +1,6 @@ Name: elfutils -Version: 0.186 -%global baserelease 5 +Version: 0.187 +%global baserelease 1 Release: %{baserelease}%{?dist} URL: http://elfutils.org/ %global source_url ftp://sourceware.org/pub/elfutils/%{version}/ @@ -63,15 +63,8 @@ BuildRequires: gettext-devel # Patches -# Support for FDO packaging metadata -Patch1: elfutils-0.186-elf-glibc.patch -Patch2: elfutils-0.186-fdo-ebl.patch -Patch3: elfutils-0.186-fdo-efllint.patch -# For s390x... -Patch4: elfutils-0.186-fdo-swap.patch -# Workaround for gcc on ppc64le -# error: potential null pointer dereference [-Werror=null-dereference] -Patch5: elfutils-0.186-ppc64le-error-return-workaround.patch +# For s390x... FDO package notes are bogus. +Patch1: elfutils-0.186-fdo-swap.patch %description Elfutils is a collection of utilities, including stack (to show @@ -412,6 +405,21 @@ exit 0 %systemd_postun_with_restart debuginfod.service %changelog +* Tue Apr 26 2022 Mark Wielaard - 0.187-1 +- Upgrade to elfutils 0.187 + - debuginfod: Support -C option for connection thread pooling. + - debuginfod-client: Negative cache file are now zero sized instead + of no-permission files. + - addr2line: The -A, --absolute option, which shows file names + includingthe full compilation directory is now the + default. To get theold behavior use the new option --relative. + - readelf, elflint: Recognize FDO Packaging Metadata ELF notes + - libdw, debuginfo-client: Load libcurl lazily only when files need + to be fetched remotely. libcurl is now never loaded when + DEBUGINFOD_URLS is unset. And whenDEBUGINFOD_URLS is set, + libcurl is only loaded when the debuginfod_begin function is + called. + * Tue Apr 12 2022 Mark Wielaard - 0.186-5 - Add an explicit versioned requires from elfutils-debuginfod-client on elfutils-libelf. diff --git a/sources b/sources index 9267009..808d95e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (elfutils-0.186.tar.bz2) = c9180b27ec62935f18b9431268d176f6023d1bb938731d2af6e7626ae460af6608a70ba68483aa1ec7e6cb0fa0528b661ca8b68bc4f58ea8e18af527c5950c78 +SHA512 (elfutils-0.187.tar.bz2) = a9b9e32b503b8b50a62d4e4001097ed2721d3475232a6380e6b9853bd1647aec016440c0ca7ceb950daf1144f8db9814ab43cf33cc0ebef7fc91e9e775c9e874