]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
elfutils: update to 0.195 23468/head
authorJohn Audia <therealgraysky@proton.me>
Thu, 21 May 2026 12:53:52 +0000 (08:53 -0400)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 28 Jun 2026 09:54:12 +0000 (11:54 +0200)
Patches rebased:
- 003-libintl-compatibility.patch
- 005-build_only_libs.patch
- 006-Fix-build-on-aarch64-musl.patch
- 101-no-fts.patch

Patches removed due being upstreamed:
- 007-add-libeu-symbols-to-libelf.patch
- 008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch
- 009-fix-null-dereference-with-lto.patch
- 102-fix-potential-deref-of-null-error.patch

Note that this release is needed in order to build against GCC 16.1
https://github.com/openwrt/openwrt/pull/23194

Release notes from 0.192 to 0.195:
https://inbox.sourceware.org/elfutils-devel/CAJDtP-RjuT13zehLgSvz9TnwQZ1VYPOS=q_kuut5a2g+KLamgw@mail.gmail.com/T/
https://inbox.sourceware.org/elfutils-devel/CAJDtP-S0rYAOZQeDZvMtPkQztgK9RboWtYwpqNLCNGNdaSGn-A@mail.gmail.com/T/
https://inbox.sourceware.org/elfutils-devel/CAJDtP-Qok4ViNzvrr28WgkCCqrFH0iAZStiD8C7nbpDhrPzLWA@mail.gmail.com/T/

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23468
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
package/libs/elfutils/Makefile
package/libs/elfutils/patches/003-libintl-compatibility.patch
package/libs/elfutils/patches/005-build_only_libs.patch
package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch
package/libs/elfutils/patches/007-add-libeu-symbols-to-libelf.patch [deleted file]
package/libs/elfutils/patches/008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch [deleted file]
package/libs/elfutils/patches/009-fix-null-dereference-with-lto.patch [deleted file]
package/libs/elfutils/patches/101-no-fts.patch
package/libs/elfutils/patches/102-fix-potential-deref-of-null-error.patch [deleted file]

index 4507a0108909eca59d62065773985f78eae2015f..030392b54e858701a8a723512f73a93f03f30c57 100644 (file)
@@ -7,13 +7,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=elfutils
-PKG_VERSION:=0.192
-PKG_RELEASE:=2
+PKG_VERSION:=0.195
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION) \
                 https://mirrors.kernel.org/sourceware/$(PKG_NAME)/$(PKG_VERSION)
-PKG_HASH:=616099beae24aba11f9b63d86ca6cc8d566d968b802391334c91df54eab416b4
+PKG_HASH:=37629fdf7f1f3dc2818e138fca2b8094177d6c2d0f701d3bb650a561218dc026
 
 PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca@gmail.com>
 PKG_LICENSE:=GPL-2.0-or-later LGPL-3.0-or-later
index eda9f2204a928c935af82c409fbd126e24c1673d..655f8f3cfe5fe2b61312a60290b5b8394b4ec90e 100644 (file)
@@ -11,7 +11,7 @@
  Requires.private: zlib @LIBZSTD@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -728,6 +728,9 @@ dnl AM_GNU_GETTEXT_REQUIRE_VERSION suppo
+@@ -788,6 +788,9 @@ dnl AM_GNU_GETTEXT_REQUIRE_VERSION suppo
  AM_GNU_GETTEXT_VERSION([0.19.6])
  AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6])
  
index 177ac659e624037cfd641b31de1b2fcf91db8484..2d68b3e7a58177a0b79ee8547767ec32c746c69c 100644 (file)
@@ -1,11 +1,11 @@
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -27,7 +27,7 @@ AM_MAKEFLAGS = --no-print-directory
+@@ -29,7 +29,7 @@ AM_MAKEFLAGS = --no-print-directory
  pkginclude_HEADERS = version.h
  
- SUBDIRS = config lib libelf libcpu backends libebl libdwelf libdwfl libdw \
--        libasm debuginfod src po doc tests
-+        libasm
+ SUBDIRS = config lib libelf libcpu backends libebl libdwelf libdwfl \
+-        libdwfl_stacktrace libdw libasm debuginfod src po doc tests
++        libdwfl_stacktrace libdw libasm
  
  EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING SECURITY \
             COPYING COPYING-GPLV2 COPYING-LGPLV3 CONDUCT
index a7786ed2c011a0b184ca32132bc8aecfdfde0555..bd387e7a66ab1e7364c718a1d90b862ec6256ba1 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
  # include <sys/user.h>
  # include <sys/ptrace.h>
  # include <asm/ptrace.h>
-@@ -94,7 +94,7 @@ aarch64_set_initial_registers_tid (pid_t
+@@ -115,7 +115,7 @@ aarch64_set_initial_registers_tid (pid_t
  
    Dwarf_Word dwarf_fregs[32];
    for (int r = 0; r < 32; r++)
diff --git a/package/libs/elfutils/patches/007-add-libeu-symbols-to-libelf.patch b/package/libs/elfutils/patches/007-add-libeu-symbols-to-libelf.patch
deleted file mode 100644 (file)
index 23489b5..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-From f5d6e088f84dd05278c4698a21cbf1ff4569978d Mon Sep 17 00:00:00 2001
-From: Mark Wielaard <mark@klomp.org>
-Date: Tue, 22 Oct 2024 15:03:42 +0200
-Subject: [PATCH] libelf: Add libeu objects to libelf.a static archive
-
-libelf might use some symbols from libeu.a, specifically the eu-search
-wrappers. But we don't ship libeu.a separately. So include the libeu
-objects in the libelf.a archive to facilitate static linking.
-
-       * libelf/Makefile.am (libeu_objects): New variable.
-       (libelf_a_LIBADD): New, add libeu_objects.
-
-https://sourceware.org/bugzilla/show_bug.cgi?id=32293
-
-Signed-off-by: Mark Wielaard <mark@klomp.org>
----
- libelf/Makefile.am | 3 +++
- 1 file changed, 3 insertions(+)
-
---- a/libelf/Makefile.am
-+++ b/libelf/Makefile.am
-@@ -122,6 +122,9 @@ libelf.so: $(srcdir)/libelf.map $(libelf
-       @$(textrel_check)
-       $(AM_V_at)ln -fs $@ $@.$(VERSION)
-+libeu_objects = $(shell $(AR) t ../lib/libeu.a)
-+libelf_a_LIBADD = $(addprefix ../lib/,$(libeu_objects))
-+
- install: install-am libelf.so
-       $(mkinstalldirs) $(DESTDIR)$(libdir)
-       $(INSTALL_PROGRAM) libelf.so $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so
diff --git a/package/libs/elfutils/patches/008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch b/package/libs/elfutils/patches/008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch
deleted file mode 100644 (file)
index e5732d2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-From f3c664d069d81a4872a1ec8241ee709f37c53e9c Mon Sep 17 00:00:00 2001
-From: Aaron Merey <amerey@redhat.com>
-Date: Tue, 29 Oct 2024 14:16:57 -0400
-Subject: [PATCH] configure.ac: Fix ENABLE_IMA_VERIFICATION conditional
-
-Fix test statement for ENABLE_IMA_VERIFICATION always evalutating to
-false due to a missing 'x'.
-
-Signed-off-by: Aaron Merey <amerey@redhat.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -895,7 +895,7 @@ AS_IF([test "x$enable_debuginfod" != "xn
- AM_CONDITIONAL([DEBUGINFOD],[test "x$enable_debuginfod" = "xyes"])
- AS_IF([test "x$enable_debuginfod_ima_verification" = "xyes"],AC_DEFINE([ENABLE_IMA_VERIFICATION],[1],[Build IMA verification]))
- AS_IF([test "x$have_libarchive" = "xyes"],AC_DEFINE([HAVE_LIBARCHIVE],[1],[Define to 1 if libarchive is available]))
--AM_CONDITIONAL([ENABLE_IMA_VERIFICATION],[test "$enable_debuginfod_ima_verification" = "xyes"])
-+AM_CONDITIONAL([ENABLE_IMA_VERIFICATION],[test "x$enable_debuginfod_ima_verification" = "xyes"])
- AM_CONDITIONAL([OLD_LIBMICROHTTPD],[test "x$old_libmicrohttpd" = "xyes"])
- dnl for /etc/profile.d/elfutils.{csh,sh}
diff --git a/package/libs/elfutils/patches/009-fix-null-dereference-with-lto.patch b/package/libs/elfutils/patches/009-fix-null-dereference-with-lto.patch
deleted file mode 100644 (file)
index 1179a1e..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-From 8707194a9f2f0b13e53041b03ebfdbdbd2942e43 Mon Sep 17 00:00:00 2001
-From: Mark Wielaard <mark@klomp.org>
-Date: Tue, 5 Nov 2024 23:31:14 +0100
-Subject: [PATCH 1/1] libelf: Only fetch shdr once in elf_compress[_gnu]
-
-Some compilers assume the second call to elf[32|64]_getshdr can fail
-and produce error: potential null pointer dereference. Just store the
-result of the first call and reuse (when not NULL).
-
-       * libelf/elf_compress.c (elf_compress): Store getshdr result in
-       a shdr union var.
-       * libelf/elf_compress_gnu.c (): Likewise
-
-https://sourceware.org/bugzilla/show_bug.cgi?id=32311
-
-Signed-off-by: Mark Wielaard <mark@klomp.org>
----
- libelf/elf_compress.c     | 55 +++++++++++++++++++++------------------
- libelf/elf_compress_gnu.c | 45 ++++++++++++++------------------
- 2 files changed, 48 insertions(+), 52 deletions(-)
-
---- a/libelf/elf_compress.c
-+++ b/libelf/elf_compress.c
-@@ -584,25 +584,30 @@ elf_compress (Elf_Scn *scn, int type, un
-   Elf64_Xword sh_flags;
-   Elf64_Word sh_type;
-   Elf64_Xword sh_addralign;
-+  union shdr
-+  {
-+    Elf32_Shdr *s32;
-+    Elf64_Shdr *s64;
-+  } shdr;
-   if (elfclass == ELFCLASS32)
-     {
--      Elf32_Shdr *shdr = elf32_getshdr (scn);
--      if (shdr == NULL)
-+      shdr.s32 = elf32_getshdr (scn);
-+      if (shdr.s32 == NULL)
-       return -1;
--      sh_flags = shdr->sh_flags;
--      sh_type = shdr->sh_type;
--      sh_addralign = shdr->sh_addralign;
-+      sh_flags = shdr.s32->sh_flags;
-+      sh_type = shdr.s32->sh_type;
-+      sh_addralign = shdr.s32->sh_addralign;
-     }
-   else
-     {
--      Elf64_Shdr *shdr = elf64_getshdr (scn);
--      if (shdr == NULL)
-+      shdr.s64 = elf64_getshdr (scn);
-+      if (shdr.s64 == NULL)
-       return -1;
--      sh_flags = shdr->sh_flags;
--      sh_type = shdr->sh_type;
--      sh_addralign = shdr->sh_addralign;
-+      sh_flags = shdr.s64->sh_flags;
-+      sh_type = shdr.s64->sh_type;
-+      sh_addralign = shdr.s64->sh_addralign;
-     }
-   if ((sh_flags & SHF_ALLOC) != 0)
-@@ -679,17 +684,17 @@ elf_compress (Elf_Scn *scn, int type, un
-        correctly and ignored when SHF_COMPRESSED is set.  */
-       if (elfclass == ELFCLASS32)
-       {
--        Elf32_Shdr *shdr = elf32_getshdr (scn);
--        shdr->sh_size = new_size;
--        shdr->sh_addralign = __libelf_type_align (ELFCLASS32, ELF_T_CHDR);
--        shdr->sh_flags |= SHF_COMPRESSED;
-+        shdr.s32->sh_size = new_size;
-+        shdr.s32->sh_addralign = __libelf_type_align (ELFCLASS32,
-+                                                      ELF_T_CHDR);
-+        shdr.s32->sh_flags |= SHF_COMPRESSED;
-       }
-       else
-       {
--        Elf64_Shdr *shdr = elf64_getshdr (scn);
--        shdr->sh_size = new_size;
--        shdr->sh_addralign = __libelf_type_align (ELFCLASS64, ELF_T_CHDR);
--        shdr->sh_flags |= SHF_COMPRESSED;
-+        shdr.s64->sh_size = new_size;
-+        shdr.s64->sh_addralign = __libelf_type_align (ELFCLASS64,
-+                                                      ELF_T_CHDR);
-+        shdr.s64->sh_flags |= SHF_COMPRESSED;
-       }
-       __libelf_reset_rawdata (scn, out_buf, new_size, 1, ELF_T_CHDR);
-@@ -731,17 +736,15 @@ elf_compress (Elf_Scn *scn, int type, un
-        correctly and ignored when SHF_COMPRESSED is set.  */
-       if (elfclass == ELFCLASS32)
-       {
--        Elf32_Shdr *shdr = elf32_getshdr (scn);
--        shdr->sh_size = scn->zdata_size;
--        shdr->sh_addralign = scn->zdata_align;
--        shdr->sh_flags &= ~SHF_COMPRESSED;
-+        shdr.s32->sh_size = scn->zdata_size;
-+        shdr.s32->sh_addralign = scn->zdata_align;
-+        shdr.s32->sh_flags &= ~SHF_COMPRESSED;
-       }
-       else
-       {
--        Elf64_Shdr *shdr = elf64_getshdr (scn);
--        shdr->sh_size = scn->zdata_size;
--        shdr->sh_addralign = scn->zdata_align;
--        shdr->sh_flags &= ~SHF_COMPRESSED;
-+        shdr.s64->sh_size = scn->zdata_size;
-+        shdr.s64->sh_addralign = scn->zdata_align;
-+        shdr.s64->sh_flags &= ~SHF_COMPRESSED;
-       }
-       __libelf_reset_rawdata (scn, scn->zdata_base,
---- a/libelf/elf_compress_gnu.c
-+++ b/libelf/elf_compress_gnu.c
-@@ -59,25 +59,30 @@ elf_compress_gnu (Elf_Scn *scn, int infl
-   Elf64_Xword sh_flags;
-   Elf64_Word sh_type;
-   Elf64_Xword sh_addralign;
-+  union shdr
-+  {
-+    Elf32_Shdr *s32;
-+    Elf64_Shdr *s64;
-+  } shdr;
-   if (elfclass == ELFCLASS32)
-     {
--      Elf32_Shdr *shdr = elf32_getshdr (scn);
--      if (shdr == NULL)
-+      shdr.s32 = elf32_getshdr (scn);
-+      if (shdr.s32 == NULL)
-       return -1;
--      sh_flags = shdr->sh_flags;
--      sh_type = shdr->sh_type;
--      sh_addralign = shdr->sh_addralign;
-+      sh_flags = shdr.s32->sh_flags;
-+      sh_type = shdr.s32->sh_type;
-+      sh_addralign = shdr.s32->sh_addralign;
-     }
-   else
-     {
--      Elf64_Shdr *shdr = elf64_getshdr (scn);
--      if (shdr == NULL)
-+      shdr.s64 = elf64_getshdr (scn);
-+      if (shdr.s64 == NULL)
-       return -1;
--      sh_flags = shdr->sh_flags;
--      sh_type = shdr->sh_type;
--      sh_addralign = shdr->sh_addralign;
-+      sh_flags = shdr.s64->sh_flags;
-+      sh_type = shdr.s64->sh_type;
-+      sh_addralign = shdr.s64->sh_addralign;
-     }
-   /* Allocated sections, or sections that are already are compressed
-@@ -122,15 +127,9 @@ elf_compress_gnu (Elf_Scn *scn, int infl
-        sh_flags won't have a SHF_COMPRESSED hint in the GNU format.
-        Just adjust the sh_size.  */
-       if (elfclass == ELFCLASS32)
--      {
--        Elf32_Shdr *shdr = elf32_getshdr (scn);
--        shdr->sh_size = new_size;
--      }
-+        shdr.s32->sh_size = new_size;
-       else
--      {
--        Elf64_Shdr *shdr = elf64_getshdr (scn);
--        shdr->sh_size = new_size;
--      }
-+        shdr.s64->sh_size = new_size;
-       __libelf_reset_rawdata (scn, out_buf, new_size, 1, ELF_T_BYTE);
-@@ -187,15 +186,9 @@ elf_compress_gnu (Elf_Scn *scn, int infl
-        sh_flags won't have a SHF_COMPRESSED hint in the GNU format.
-        Just adjust the sh_size.  */
-       if (elfclass == ELFCLASS32)
--      {
--        Elf32_Shdr *shdr = elf32_getshdr (scn);
--        shdr->sh_size = size;
--      }
-+      shdr.s32->sh_size = size;
-       else
--      {
--        Elf64_Shdr *shdr = elf64_getshdr (scn);
--        shdr->sh_size = size;
--      }
-+      shdr.s64->sh_size = size;
-       __libelf_reset_rawdata (scn, buf_out, size, sh_addralign,
-                             __libelf_data_type (&ehdr, sh_type,
index 29a6c4b36cb4aa2b40dac36ecf4d33a2eafbf992..3483ef203ea46b9b86f1dd446edfae7f590e2aa4 100644 (file)
@@ -72,7 +72,7 @@
        struct parse_opt *opt = state->hook;
 --- a/libdwfl/Makefile.am
 +++ b/libdwfl/Makefile.am
-@@ -50,7 +50,7 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_en
+@@ -51,7 +51,7 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_en
                    argp-std.c find-debuginfo.c \
                    dwfl_build_id_find_elf.c \
                    dwfl_build_id_find_debuginfo.c \
diff --git a/package/libs/elfutils/patches/102-fix-potential-deref-of-null-error.patch b/package/libs/elfutils/patches/102-fix-potential-deref-of-null-error.patch
deleted file mode 100644 (file)
index 6710e4e..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-strip.c: Pointer `arhdr` created at strip.c:2741 and then dereferenced without NULL-check.
-The same situation for the `arhdr` pointer at the objdump.c:313 and
-the `h` pointer at the readelf.c:13545.
-
-Triggers found by static analyzer Svace.
-
-Signed-off-by: Maks Mishin <maks.mishinFZ@gmail.com>
----
- src/objdump.c | 5 +++++
- src/readelf.c | 5 +++++
- src/strip.c   | 5 +++++
- 3 files changed, 15 insertions(+)
-
---- a/src/objdump.c
-+++ b/src/objdump.c
-@@ -311,6 +311,11 @@ handle_ar (int fd, Elf *elf, const char
-     {
-       /* The the header for this element.  */
-       Elf_Arhdr *arhdr = elf_getarhdr (subelf);
-+      if (arhdr == NULL)
-+      {
-+        printf ("cannot get arhdr: %s\n", elf_errmsg (-1));
-+        exit (1);
-+      }
-       /* Skip over the index entries.  */
-       if (strcmp (arhdr->ar_name, "/") != 0
---- a/src/readelf.c
-+++ b/src/readelf.c
-@@ -13543,6 +13543,11 @@ dump_archive_index (Elf *elf, const char
-                         as_off, fname, elf_errmsg (-1));
-         const Elf_Arhdr *h = elf_getarhdr (subelf);
-+        if (h == NULL)
-+      {
-+        printf ("cannot get arhdr: %s\n", elf_errmsg (-1));
-+        exit (1);
-+      }
-         printf (_("Archive member '%s' contains:\n"), h->ar_name);
---- a/src/strip.c
-+++ b/src/strip.c
-@@ -2739,6 +2739,11 @@ handle_ar (int fd, Elf *elf, const char
-     {
-       /* The the header for this element.  */
-       Elf_Arhdr *arhdr = elf_getarhdr (subelf);
-+        if (arhdr == NULL)
-+      {
-+        printf ("cannot get arhdr: %s\n", elf_errmsg (-1));
-+        exit (1);
-+      }
-       if (elf_kind (subelf) == ELF_K_ELF)
-       result |= handle_elf (fd, subelf, new_prefix, arhdr->ar_name, 0, NULL);