Compare commits

..

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

11 changed files with 586 additions and 423 deletions

View File

@ -1,2 +0,0 @@
b33fdb927bc154f6ca6285194d0e40fb76877dd0 SOURCES/elfutils-0.190.tar.bz2
f9875667f09b76d7a2c2bf19c9df80a5a95c1824 SOURCES/testcore-noncontig.bz2

36
.gitignore vendored
View File

@ -1,2 +1,34 @@
SOURCES/elfutils-0.190.tar.bz2 /elfutils-0.158.tar.bz2
SOURCES/testcore-noncontig.bz2 /elfutils-0.159.tar.bz2
/elfutils-0.160.tar.bz2
/elfutils-0.161.tar.bz2
/elfutils-0.162.tar.bz2
/elfutils-0.163.tar.bz2
/elfutils-0.164.tar.bz2
/elfutils-0.165.tar.bz2
/elfutils-0.166.tar.bz2
/elfutils-0.167.tar.bz2
/elfutils-0.168.tar.bz2
/elfutils-0.169.tar.bz2
/elfutils-0.170.tar.bz2
/elfutils-0.171.tar.bz2
/elfutils-0.172.tar.bz2
/elfutils-0.173.tar.bz2
/elfutils-0.174.tar.bz2
/elfutils-0.175.tar.bz2
/elfutils-0.176.tar.bz2
/elfutils-0.177.tar.bz2
/elfutils-0.178.tar.bz2
/elfutils-0.179.tar.bz2
/elfutils-0.180.tar.bz2
/elfutils-0.181.tar.bz2
/elfutils-0.182.tar.bz2
/elfutils-0.183.tar.bz2
/elfutils-0.185.tar.bz2
/elfutils-0.186.tar.bz2
/elfutils-0.187.tar.bz2
/elfutils-0.188.tar.bz2
/elfutils-0.189.tar.bz2
/elfutils-0.190.tar.bz2
/elfutils-0.191.tar.bz2
/elfutils-0.192.tar.bz2

View File

@ -1,329 +0,0 @@
From c791d16b7dcf9d985ebe0e852481142753603353 Mon Sep 17 00:00:00 2001
From: Aaron Merey <amerey@redhat.com>
Date: Fri, 8 Dec 2023 16:44:35 -0500
Subject: [PATCH] libdwfl: Correctly handle corefile non-contiguous segments
It is possible for segments of different shared libaries to be interleaved
in memory such that the segments of one library are located in between
non-contiguous segments of another library.
For example, this can be seen with firefox on RHEL 7.9 where multiple
shared libraries could be mapped in between ld-2.17.so segments:
[...]
7f0972082000-7f09720a4000 00000000 139264 /usr/lib64/ld-2.17.so
7f09720a4000-7f09720a5000 00000000 4096 /memfd:mozilla-ipc (deleted)
7f09720a5000-7f09720a7000 00000000 8192 /memfd:mozilla-ipc (deleted)
7f09720a7000-7f09720a9000 00000000 8192 /memfd:mozilla-ipc (deleted)
7f0972134000-7f0972136000 00000000 8192 /usr/lib64/firefox/libmozwayland.so
7f0972136000-7f0972137000 00002000 4096 /usr/lib64/firefox/libmozwayland.so
7f0972137000-7f0972138000 00003000 4096 /usr/lib64/firefox/libmozwayland.so
7f0972138000-7f0972139000 00003000 4096 /usr/lib64/firefox/libmozwayland.so
7f097213a000-7f0972147000 00000000 53248 /usr/lib64/firefox/libmozsqlite3.so
7f0972147000-7f097221e000 0000d000 880640 /usr/lib64/firefox/libmozsqlite3.so
7f097221e000-7f0972248000 000e4000 172032 /usr/lib64/firefox/libmozsqlite3.so
7f0972248000-7f0972249000 0010e000 4096 /usr/lib64/firefox/libmozsqlite3.so
7f0972249000-7f097224c000 0010e000 12288 /usr/lib64/firefox/libmozsqlite3.so
7f097224c000-7f0972250000 00111000 16384 /usr/lib64/firefox/libmozsqlite3.so
7f0972250000-7f0972253000 00000000 12288 /usr/lib64/firefox/liblgpllibs.so
[...]
7f09722a3000-7f09722a4000 00021000 4096 /usr/lib64/ld-2.17.so
7f09722a4000-7f09722a5000 00022000 4096 /usr/lib64/ld-2.17.so
dwfl_segment_report_module did not account for the possibility of
interleaving non-contiguous segments, resulting in premature closure
of modules as well as failing to report modules.
Fix this by removing segment skipping in dwfl_segment_report_module.
When dwfl_segment_report_module reported a module, it would return
the index of the segment immediately following the end address of the
current module. Since there's a chance that other modules might fall
within this address range, dwfl_segment_report_module instead returns
the index of the next segment.
This patch also fixes premature module closure that can occur in
dwfl_segment_report_module when interleaving non-contiguous segments
are found. Previously modules with start and end addresses that overlap
with the current segment would have their build-ids compared with the
current segment's build-id. If there was a mismatch, that module would
be closed. Avoid closing modules in this case when mismatching build-ids
correspond to distinct modules.
https://sourceware.org/bugzilla/show_bug.cgi?id=30975
Signed-off-by: Aaron Merey <amerey@redhat.com>
---
libdwfl/dwfl_segment_report_module.c | 37 +++++++++----
tests/Makefile.am | 8 ++-
tests/dwfl-core-noncontig.c | 82 ++++++++++++++++++++++++++++
tests/run-dwfl-core-noncontig.sh | 63 +++++++++++++++++++++
4 files changed, 176 insertions(+), 14 deletions(-)
create mode 100644 tests/dwfl-core-noncontig.c
create mode 100755 tests/run-dwfl-core-noncontig.sh
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c
index 3ef62a7..09ee37b 100644
--- a/libdwfl/dwfl_segment_report_module.c
+++ b/libdwfl/dwfl_segment_report_module.c
@@ -737,17 +737,34 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
&& invalid_elf (module->elf, module->disk_file_has_build_id,
&build_id))
{
- elf_end (module->elf);
- close (module->fd);
- module->elf = NULL;
- module->fd = -1;
+ /* If MODULE's build-id doesn't match the disk file's
+ build-id, close ELF only if MODULE and ELF refer to
+ different builds of files with the same name. This
+ prevents premature closure of the correct ELF in cases
+ where segments of a module are non-contiguous in memory. */
+ if (name != NULL && module->name[0] != '\0'
+ && strcmp (basename (module->name), basename (name)) == 0)
+ {
+ elf_end (module->elf);
+ close (module->fd);
+ module->elf = NULL;
+ module->fd = -1;
+ }
}
- if (module->elf != NULL)
+ else if (module->elf != NULL)
{
- /* Ignore this found module if it would conflict in address
- space with any already existing module of DWFL. */
+ /* This module has already been reported. */
skip_this_module = true;
}
+ else
+ {
+ /* Only report this module if we haven't already done so. */
+ for (Dwfl_Module *mod = dwfl->modulelist; mod != NULL;
+ mod = mod->next)
+ if (mod->low_addr == module_start
+ && mod->high_addr == module_end)
+ skip_this_module = true;
+ }
}
if (skip_this_module)
goto out;
@@ -781,10 +798,6 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
}
}
- /* Our return value now says to skip the segments contained
- within the module. */
- ndx = addr_segndx (dwfl, segment, module_end, true);
-
/* Examine its .dynamic section to get more interesting details.
If it has DT_SONAME, we'll use that as the module name.
If it has a DT_DEBUG, then it's actually a PIE rather than a DSO.
@@ -929,6 +942,8 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
ndx = -1;
goto out;
}
+ else
+ ndx++;
/* We have reported the module. Now let the caller decide whether we
should read the whole thing in right now. */
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 7fb8efb..9f8f769 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -42,7 +42,7 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \
dwfl-bug-addr-overflow arls dwfl-bug-fd-leak \
dwfl-addr-sect dwfl-bug-report early-offscn \
dwfl-bug-getmodules dwarf-getmacros dwarf-ranges addrcfi \
- dwarfcfi \
+ dwfl-core-noncontig dwarfcfi \
test-flag-nobits dwarf-getstring rerequest_tag \
alldts typeiter typeiter2 low_high_pc \
test-elf_cntl_gelf_getshdr dwflsyms dwfllines \
@@ -212,7 +212,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
$(asm_TESTS) run-disasm-bpf.sh run-low_high_pc-dw-form-indirect.sh \
run-nvidia-extended-linemap-libdw.sh run-nvidia-extended-linemap-readelf.sh \
run-readelf-dw-form-indirect.sh run-strip-largealign.sh \
- run-readelf-Dd.sh
+ run-readelf-Dd.sh run-dwfl-core-noncontig.sh
if !BIARCH
export ELFUTILS_DISABLE_BIARCH = 1
@@ -632,7 +632,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
run-nvidia-extended-linemap-libdw.sh run-nvidia-extended-linemap-readelf.sh \
testfile_nvidia_linemap.bz2 \
testfile-largealign.o.bz2 run-strip-largealign.sh \
- run-funcretval++11.sh
+ run-funcretval++11.sh \
+ run-dwfl-core-noncontig.sh testcore-noncontig.bz2
if USE_VALGRIND
@@ -738,6 +739,7 @@ dwfl_bug_fd_leak_LDADD = $(libeu) $(libdw) $(libebl) $(libelf)
dwfl_bug_report_LDADD = $(libdw) $(libebl) $(libelf)
dwfl_bug_getmodules_LDADD = $(libeu) $(libdw) $(libebl) $(libelf)
dwfl_addr_sect_LDADD = $(libeu) $(libdw) $(libebl) $(libelf) $(argp_LDADD)
+dwfl_core_noncontig_LDADD = $(libdw) $(libelf)
dwarf_getmacros_LDADD = $(libdw)
dwarf_ranges_LDADD = $(libdw)
dwarf_getstring_LDADD = $(libdw)
diff --git a/tests/dwfl-core-noncontig.c b/tests/dwfl-core-noncontig.c
new file mode 100644
index 0000000..04558e2
--- /dev/null
+++ b/tests/dwfl-core-noncontig.c
@@ -0,0 +1,82 @@
+/* Test program for dwfl_getmodules bug.
+ Copyright (C) 2008 Red Hat, Inc.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <assert.h>
+#include ELFUTILS_HEADER(dwfl)
+#include ELFUTILS_HEADER(elf)
+
+static const Dwfl_Callbacks cb =
+{
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+};
+
+int
+main (int argc, char **argv)
+{
+ assert (argc == 2);
+
+ Dwfl *dwfl = dwfl_begin (&cb);
+
+ int fd = open (argv[1], O_RDONLY);
+ assert (fd != -1);
+
+ Elf *elf = elf_begin (fd, ELF_C_READ, NULL);
+ (void) dwfl_core_file_report (dwfl, elf, argv[0]);
+
+ /* testcore-noncontig contains a shared library mapped between
+ non-contiguous segments of another shared library:
+
+ [...]
+ 7f14e458c000-7f14e45ae000 00000000 139264 /usr/lib64/ld-2.17.so (1)
+ 7f14e4795000-7f14e4798000 00000000 12288 /usr/lib64/firefox/liblgpllibs.so (2)
+ 7f14e4798000-7f14e479d000 00003000 20480 /usr/lib64/firefox/liblgpllibs.so
+ 7f14e479d000-7f14e479f000 00008000 8192 /usr/lib64/firefox/liblgpllibs.so
+ 7f14e479f000-7f14e47a0000 00009000 4096 /usr/lib64/firefox/liblgpllibs.so
+ 7f14e47a0000-7f14e47a1000 0000a000 4096 /usr/lib64/firefox/liblgpllibs.so (3)
+ 7f14e47ad000-7f14e47ae000 00021000 4096 /usr/lib64/ld-2.17.so (4)
+ 7f14e47ae000-7f14e47af000 00022000 4096 /usr/lib64/ld-2.17.so */
+
+ /* First segment of the non-contiguous module (1). */
+ int seg = dwfl_addrsegment (dwfl, 0x7f14e458c000, NULL);
+ assert (seg == 32);
+
+ /* First segment of the module within the non-contiguous module's address
+ range (2). */
+ seg = dwfl_addrsegment (dwfl, 0x7f14e4795000, NULL);
+ assert (seg == 33);
+
+ /* Last segment of the module within the non-contiguous module's
+ address range (3). */
+ seg = dwfl_addrsegment (dwfl, 0x7f14e47a0000, NULL);
+ assert (seg == 37);
+
+ /* First segment of non-contiguous module following its address space
+ gap (4). */
+ seg = dwfl_addrsegment (dwfl, 0x7f14e47ad000, NULL);
+ assert (seg == 40);
+
+ dwfl_end (dwfl);
+ elf_end (elf);
+
+ return 0;
+}
diff --git a/tests/run-dwfl-core-noncontig.sh b/tests/run-dwfl-core-noncontig.sh
new file mode 100755
index 0000000..1245b67
--- /dev/null
+++ b/tests/run-dwfl-core-noncontig.sh
@@ -0,0 +1,63 @@
+#! /bin/sh
+# Copyright (C) 2023 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# Test whether libdwfl can handle corefiles containing non-contiguous
+# segments where multiple modules are contained within the address
+# space of some other module.
+
+# testcore-noncontig was generated from the following program with
+# systemd-coredump on RHEL 7.9 Workstation, kernel
+# 3.10.0-1160.105.1.el7.x86_64. liblgpllibs.so was packaged with
+# firefox-115.4.0-1.el7_9.x86_64.rpm.
+
+# #include <unistd.h>
+# #include <dlfcn.h>
+#
+# int main () {
+# dlopen ("/usr/lib64/firefox/liblgpllibs.so", RTLD_GLOBAL | RTLD_NOW);
+# sleep (60);
+# return 0;
+# }
+#
+# gcc -ldl -o test test.c
+
+tempfiles out
+testfiles testcore-noncontig
+
+testrun ${abs_builddir}/dwfl-core-noncontig testcore-noncontig
+
+# Remove parts of the output that could change depending on which
+# libraries are locally installed.
+testrun ${abs_top_builddir}/src/unstrip -n --core testcore-noncontig \
+ | sed 's/+/ /g' | cut -d " " -f1,3 | sort > out
+
+testrun_compare cat out <<\EOF
+0x400000 3a1748a544b40a38b3be3d2d13ffa34a2a5a71c0@0x400284
+0x7f14e357e000 edf51350c7f71496149d064aa8b1441f786df88a@0x7f14e357e1d8
+0x7f14e3794000 7615604eaf4a068dfae5085444d15c0dee93dfbd@0x7f14e37941d8
+0x7f14e3a96000 09cfb171310110bc7ea9f4476c9fa044d85baff4@0x7f14e3a96210
+0x7f14e3d9e000 e10cc8f2b932fc3daeda22f8dac5ebb969524e5b@0x7f14e3d9e248
+0x7f14e3fba000 fc4fa58e47a5acc137eadb7689bce4357c557a96@0x7f14e3fba280
+0x7f14e4388000 7f2e9cb0769d7e57bd669b485a74b537b63a57c4@0x7f14e43881d8
+0x7f14e458c000 62c449974331341bb08dcce3859560a22af1e172@0x7f14e458c1d8
+0x7f14e4795000 175efdcef445455872a86a6fbee7567ca16a513e@0x7f14e4795248
+0x7ffcfe59f000 80d79b32785868a2dc10047b39a80d1daec8923d@0x7ffcfe59f328
+EOF
+
+exit 0
--
2.43.0

View File

@ -0,0 +1,36 @@
From 0a65a54593ae489d40cb993caa74095d45bc47fd 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(+)
diff --git a/libelf/Makefile.am b/libelf/Makefile.am
index 3402863e..2d3dbdf2 100644
--- a/libelf/Makefile.am
+++ b/libelf/Makefile.am
@@ -122,6 +122,9 @@ libelf.so: $(srcdir)/libelf.map $(libelf_so_LIBS) $(libelf_so_DEPS)
@$(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
--
2.47.0

View File

@ -0,0 +1,35 @@
commit 43829fb8780ecbe9d17aaed22d3dfcb806cb5f45
Author: Mark Wielaard <mark@klomp.org>
Date: Thu Oct 24 10:44:25 2024 +0200
stacktrace: Init elf_fd in sysprof_init_dwfl
When building with LTO gcc believes elf_fd can be used uninitialized:
In function sysprof_init_dwfl,
inlined from sysprof_unwind_cb at stacktrace.c:1235:16:
stacktrace.c:1087:7: error: elf_fd may be used uninitialized [-Werror=maybe-uninitialized]
1087 | close (elf_fd);
| ^
This code won't be reached because if find_procfile doesn't initialize
elf_fd, it will return an error. But help the compiler by initializing
elf_fd to -1.
* src/stacktrace.c (sysprof_init_dwfl): Init elf_fd to -1.
Signed-off-by: Mark Wielaard <mark@klomp.org>
diff --git a/src/stacktrace.c b/src/stacktrace.c
index 438cb1dd0d38..b912ca5de502 100644
--- a/src/stacktrace.c
+++ b/src/stacktrace.c
@@ -1033,7 +1033,7 @@ sysprof_init_dwfl (struct sysprof_unwind_info *sui,
}
Elf *elf = NULL;
- int elf_fd;
+ int elf_fd = -1;
err = find_procfile (dwfl, &pid, &elf, &elf_fd);
if (err < 0)
{

View File

@ -0,0 +1 @@
u debuginfod - "elfutils debuginfo server" /var/cache/debuginfod -

View File

@ -1,24 +1,31 @@
# Rebuild --with static to enable static subpackages
# This is *not* supported by elfutils maintainers
%bcond_with static
Name: elfutils Name: elfutils
Version: 0.190 Version: 0.192
%global baserelease 2 %global baserelease 2
Release: %{baserelease}%{?dist} Release: %{baserelease}%{?dist}
URL: http://elfutils.org/ URL: http://elfutils.org/
%global source_url ftp://sourceware.org/pub/elfutils/%{version}/ %global source_url ftp://sourceware.org/pub/elfutils/%{version}/
License: GPLv3+ and (GPLv2+ or LGPLv3+) and GFDL License: GPL-3.0-or-later AND (GPL-2.0-or-later OR LGPL-3.0-or-later) AND GFDL-1.3-no-invariants-or-later
Source: %{?source_url}%{name}-%{version}.tar.bz2 Source: %{?source_url}%{name}-%{version}.tar.bz2
Source1: testcore-noncontig.bz2 Source1: elfutils-debuginfod.sysusers
Summary: A collection of utilities and DSOs to handle ELF files and DWARF data Summary: A collection of utilities and DSOs to handle ELF files and DWARF data
# Needed for isa specific Provides and Requires. # Needed for isa specific Provides and Requires.
%global depsuffix %{?_isa}%{!?_isa:-%{_arch}} %global depsuffix %{?_isa}%{!?_isa:-%{_arch}}
# eu-stacktrace currently only supports x86_64
%ifarch x86_64
%global enable_stacktrace 1
%else
%global enable_stacktrace 0
%endif
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
Requires: elfutils-libs%{depsuffix} = %{version}-%{release} Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
Recommends: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
%else
Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release} Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
%endif
BuildRequires: gcc BuildRequires: gcc
# For libstdc++ demangle support # For libstdc++ demangle support
@ -39,6 +46,8 @@ BuildRequires: pkgconfig(libmicrohttpd) >= 0.9.33
BuildRequires: pkgconfig(libcurl) >= 7.29.0 BuildRequires: pkgconfig(libcurl) >= 7.29.0
BuildRequires: pkgconfig(sqlite3) >= 3.7.17 BuildRequires: pkgconfig(sqlite3) >= 3.7.17
BuildRequires: pkgconfig(libarchive) >= 3.1.2 BuildRequires: pkgconfig(libarchive) >= 3.1.2
# For debugindod metadata query
BuildRequires: pkgconfig(json-c) >= 0.11
# For tests need to bunzip2 test files. # For tests need to bunzip2 test files.
BuildRequires: bzip2 BuildRequires: bzip2
@ -51,6 +60,11 @@ BuildRequires: curl
# For run-debuginfod-response-headers.sh test case # For run-debuginfod-response-headers.sh test case
BuildRequires: socat BuildRequires: socat
# For eu-stacktrace
%if %{enable_stacktrace}
BuildRequires: sysprof-capture-devel
%endif
BuildRequires: automake BuildRequires: automake
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: gettext-devel BuildRequires: gettext-devel
@ -64,9 +78,19 @@ BuildRequires: gettext-devel
%global provide_yama_scope 1 %global provide_yama_scope 1
%endif %endif
%global with_sysusers 0
%if 0%{?fedora} >= 32 || 0%{?rhel} >= 9
%global with_sysusers 1
%endif
# Patches # Patches
# RHEL-18913: Fix handling of corefiles with non-contiguous segments.
Patch1: elfutils-0.190-fix-core-noncontig.patch # Include libeu.a objects in libelf.a for static linking.
Patch1: elfutils-0.192-libelf-static.patch
# Fix eu-stacktrace LTO build error.
Patch2: elfutils-0.192-stacktrace-lto.patch
%description %description
Elfutils is a collection of utilities, including stack (to show Elfutils is a collection of utilities, including stack (to show
@ -78,7 +102,7 @@ elfcompress (to compress or decompress ELF sections).
%package libs %package libs
Summary: Libraries to handle compiled objects Summary: Libraries to handle compiled objects
License: GPLv2+ or LGPLv3+ License: GPL-2.0-or-later OR LGPL-3.0-or-later
%if 0%{!?_isa:1} %if 0%{!?_isa:1}
Provides: elfutils-libs%{depsuffix} = %{version}-%{release} Provides: elfutils-libs%{depsuffix} = %{version}-%{release}
%endif %endif
@ -87,7 +111,8 @@ Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
Requires: default-yama-scope Requires: default-yama-scope
%endif %endif
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20 %if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
Recommends: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release} # see Supplements: instead
# Recommends: elfutils-debuginfod-client%%{depsuffix} = %%{version}-%%{release}
%else %else
Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release} Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
%endif %endif
@ -101,17 +126,12 @@ libraries.
%package devel %package devel
Summary: Development libraries to handle compiled objects Summary: Development libraries to handle compiled objects
License: GPLv2+ or LGPLv3+ License: GPL-2.0-or-later OR LGPL-3.0-or-later
%if 0%{!?_isa:1} %if 0%{!?_isa:1}
Provides: elfutils-devel%{depsuffix} = %{version}-%{release} Provides: elfutils-devel%{depsuffix} = %{version}-%{release}
%endif %endif
Requires: elfutils-libs%{depsuffix} = %{version}-%{release} Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
Requires: elfutils-libelf-devel%{depsuffix} = %{version}-%{release} Requires: elfutils-libelf-devel%{depsuffix} = %{version}-%{release}
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
Recommends: elfutils-debuginfod-client-devel%{depsuffix} = %{version}-%{release}
%else
Requires: elfutils-debuginfod-client-devel%{depsuffix} = %{version}-%{release}
%endif
%description devel %description devel
The elfutils-devel package contains the libraries to create The elfutils-devel package contains the libraries to create
@ -119,22 +139,25 @@ applications for handling compiled objects. libdw provides access
to the DWARF debugging information. libasm provides a programmable to the DWARF debugging information. libasm provides a programmable
assembler interface. assembler interface.
%if %{with static}
%package devel-static %package devel-static
Summary: Static archives to handle compiled objects Summary: Static archives to handle compiled objects
License: GPLv2+ or LGPLv3+ License: GPL-2.0-or-later OR LGPL-3.0-or-later
%if 0%{!?_isa:1} %if 0%{!?_isa:1}
Provides: elfutils-devel-static%{depsuffix} = %{version}-%{release} Provides: elfutils-devel-static%{depsuffix} = %{version}-%{release}
%endif %endif
Requires: elfutils-devel%{depsuffix} = %{version}-%{release} Requires: elfutils-devel%{depsuffix} = %{version}-%{release}
Requires: elfutils-libelf-devel-static%{depsuffix} = %{version}-%{release} Requires: elfutils-libelf-devel-static%{depsuffix} = %{version}-%{release}
Requires: libzstd-static%{depsuffix}
%description devel-static %description devel-static
The elfutils-devel-static package contains the static archives The elfutils-devel-static package contains the static archives
with the code to handle compiled objects. with the code to handle compiled objects.
%endif
%package libelf %package libelf
Summary: Library to read and write ELF files Summary: Library to read and write ELF files
License: GPLv2+ or LGPLv3+ License: GPL-2.0-or-later OR LGPL-3.0-or-later
%if 0%{!?_isa:1} %if 0%{!?_isa:1}
Provides: elfutils-libelf%{depsuffix} = %{version}-%{release} Provides: elfutils-libelf%{depsuffix} = %{version}-%{release}
%endif %endif
@ -148,7 +171,7 @@ elfutils package use it also to generate new ELF files.
%package libelf-devel %package libelf-devel
Summary: Development support for libelf Summary: Development support for libelf
License: GPLv2+ or LGPLv3+ License: GPL-2.0-or-later OR LGPL-3.0-or-later
%if 0%{!?_isa:1} %if 0%{!?_isa:1}
Provides: elfutils-libelf-devel%{depsuffix} = %{version}-%{release} Provides: elfutils-libelf-devel%{depsuffix} = %{version}-%{release}
%endif %endif
@ -161,9 +184,10 @@ applications for handling compiled objects. libelf allows you to
access the internals of the ELF object file format, so you can see the access the internals of the ELF object file format, so you can see the
different sections of an ELF file. different sections of an ELF file.
%if %{with static}
%package libelf-devel-static %package libelf-devel-static
Summary: Static archive of libelf Summary: Static archive of libelf
License: GPLv2+ or LGPLv3+ License: GPL-2.0-or-later OR LGPL-3.0-or-later
%if 0%{!?_isa:1} %if 0%{!?_isa:1}
Provides: elfutils-libelf-devel-static%{depsuffix} = %{version}-%{release} Provides: elfutils-libelf-devel-static%{depsuffix} = %{version}-%{release}
%endif %endif
@ -172,11 +196,12 @@ Requires: elfutils-libelf-devel%{depsuffix} = %{version}-%{release}
%description libelf-devel-static %description libelf-devel-static
The elfutils-libelf-static package contains the static archive The elfutils-libelf-static package contains the static archive
for libelf. for libelf.
%endif
%if %{provide_yama_scope} %if %{provide_yama_scope}
%package default-yama-scope %package default-yama-scope
Summary: Default yama attach scope sysctl setting Summary: Default yama attach scope sysctl setting
License: GPLv2+ or LGPLv3+ License: GPL-2.0-or-later OR LGPL-3.0-or-later
Provides: default-yama-scope Provides: default-yama-scope
BuildArch: noarch BuildArch: noarch
# For the sysctl_apply macro we need systemd as build requires. # For the sysctl_apply macro we need systemd as build requires.
@ -210,17 +235,24 @@ profiling) of processes.
%package debuginfod-client %package debuginfod-client
Summary: Library and command line client for build-id HTTP ELF/DWARF server Summary: Library and command line client for build-id HTTP ELF/DWARF server
License: GPLv3+ and (GPLv2+ or LGPLv3+) License: GPL-3.0-or-later AND (GPL-2.0-or-later OR LGPL-3.0-or-later)
%if 0%{!?_isa:1} %if 0%{!?_isa:1}
Provides: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release} Provides: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
%endif %endif
# For debuginfod-find binary # For debuginfod-find binary
Requires: elfutils-libs%{depsuffix} = %{version}-%{release} Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
# Instead of the weak forward dependency from -libs to -debuginfod-client,
# we'll add weak reverse dependencies from some of the many programs that
# indirectly load this. This lets the base @core compose omit this library.
Supplements: systemtap-client perf gdb binutils elfutils ltrace dyninst
Supplements: valgrind annocheck bpftrace dwarves libabigail
%endif
%package debuginfod-client-devel %package debuginfod-client-devel
Summary: Libraries and headers to build debuginfod client applications Summary: Libraries and headers to build debuginfod client applications
License: GPLv2+ or LGPLv3+ License: GPL-2.0-or-later OR LGPL-3.0-or-later
%if 0%{!?_isa:1} %if 0%{!?_isa:1}
Provides: elfutils-debuginfod-client-devel%{depsuffix} = %{version}-%{release} Provides: elfutils-debuginfod-client-devel%{depsuffix} = %{version}-%{release}
%endif %endif
@ -228,16 +260,23 @@ Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
%package debuginfod %package debuginfod
Summary: HTTP ELF/DWARF file server addressed by build-id Summary: HTTP ELF/DWARF file server addressed by build-id
License: GPLv3+ License: GPL-3.0-or-later
Requires: elfutils-libs%{depsuffix} = %{version}-%{release} Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release} Requires: elfutils-debuginfod-client%{depsuffix} = %{version}-%{release}
BuildRequires: systemd BuildRequires: systemd
%if %{with_sysusers}
BuildRequires: systemd-rpm-macros
%endif
BuildRequires: make BuildRequires: make
Requires(post): systemd Requires(post): systemd
Requires(preun): systemd Requires(preun): systemd
Requires(postun): systemd Requires(postun): systemd
%if %{with_sysusers}
%{?sysusers_requires_compat}
%else
Requires(pre): shadow-utils Requires(pre): shadow-utils
%endif
# To extract .deb files with a bsdtar (= libarchive) subshell # To extract .deb files with a bsdtar (= libarchive) subshell
Requires: bsdtar Requires: bsdtar
@ -267,8 +306,6 @@ autoreconf -f -v -i
# are executable. # are executable.
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
cp %{SOURCE1} tests
%build %build
# Remove -Wall from default flags. The makefiles enable enough warnings # Remove -Wall from default flags. The makefiles enable enough warnings
# themselves, and they use -Werror. Appending -Wall defeats the cases where # themselves, and they use -Werror. Appending -Wall defeats the cases where
@ -281,11 +318,14 @@ RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -Wformat"
trap 'cat config.log' EXIT trap 'cat config.log' EXIT
%configure CFLAGS="$RPM_OPT_FLAGS" \
%if 0%{?centos} >= 8 %if 0%{?centos} >= 8
%configure CFLAGS="$RPM_OPT_FLAGS" --enable-debuginfod-urls=https://debuginfod.centos.org/ --enable-debuginfod-urls=%{dist_debuginfod_url} \
%else
%configure CFLAGS="$RPM_OPT_FLAGS"
%endif %endif
%if %{enable_stacktrace}
--enable-stacktrace \
%endif
--enable-debuginfod
trap '' EXIT trap '' EXIT
%make_build %make_build
@ -293,13 +333,16 @@ trap '' EXIT
%make_install %make_install
chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so* chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so*
%if %{without static}
%if 0%{?centos} < 8 # We don't want the static libraries
# We don't have standard DEBUGINFOD_URLS yet. rm ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib{elf,dw,asm}.a
rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.sh
rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.csh
%endif %endif
# We don't have standard DEBUGINFOD_URLS necessarily, but still ship
# the profile.d/debuginfod* files, in case of a site specific server.
# rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.sh
# rm ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/debuginfod.csh
%find_lang %{name} %find_lang %{name}
%if %{provide_yama_scope} %if %{provide_yama_scope}
@ -311,6 +354,10 @@ install -Dm0644 config/debuginfod.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysc
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod
touch ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod/debuginfod.sqlite touch ${RPM_BUILD_ROOT}%{_localstatedir}/cache/debuginfod/debuginfod.sqlite
%if %{with_sysusers}
install -Dm0644 %{SOURCE1} %{buildroot}%{_sysusersdir}/elfutils-debuginfod.conf
%endif
%check %check
# Record some build root versions in build.log # Record some build root versions in build.log
uname -r; rpm -q binutils gcc glibc || true uname -r; rpm -q binutils gcc glibc || true
@ -344,7 +391,6 @@ fi
%endif %endif
%files %files
%{!?_licensedir:%global license %%doc}
%license COPYING COPYING-GPLV2 COPYING-LGPLV3 doc/COPYING-GFDL %license COPYING COPYING-GPLV2 COPYING-LGPLV3 doc/COPYING-GFDL
%doc README TODO CONTRIBUTING %doc README TODO CONTRIBUTING
%{_bindir}/eu-addr2line %{_bindir}/eu-addr2line
@ -362,13 +408,15 @@ fi
%{_bindir}/eu-size %{_bindir}/eu-size
%{_bindir}/eu-srcfiles %{_bindir}/eu-srcfiles
%{_bindir}/eu-stack %{_bindir}/eu-stack
%if %{enable_stacktrace}
%{_bindir}/eu-stacktrace
%endif
%{_bindir}/eu-strings %{_bindir}/eu-strings
%{_bindir}/eu-strip %{_bindir}/eu-strip
%{_bindir}/eu-unstrip %{_bindir}/eu-unstrip
%{_mandir}/man1/eu-*.1* %{_mandir}/man1/eu-*.1*
%files libs %files libs
%{!?_licensedir:%global license %%doc}
%license COPYING-GPLV2 COPYING-LGPLV3 %license COPYING-GPLV2 COPYING-LGPLV3
%{_libdir}/libasm-%{version}.so %{_libdir}/libasm-%{version}.so
%{_libdir}/libdw-%{version}.so %{_libdir}/libdw-%{version}.so
@ -389,12 +437,13 @@ fi
%{_libdir}/libdw.so %{_libdir}/libdw.so
%{_libdir}/pkgconfig/libdw.pc %{_libdir}/pkgconfig/libdw.pc
%if %{with static}
%files devel-static %files devel-static
%{_libdir}/libdw.a %{_libdir}/libdw.a
%{_libdir}/libasm.a %{_libdir}/libasm.a
%endif
%files -f %{name}.lang libelf %files -f %{name}.lang libelf
%{!?_licensedir:%global license %%doc}
%license COPYING-GPLV2 COPYING-LGPLV3 %license COPYING-GPLV2 COPYING-LGPLV3
%{_libdir}/libelf-%{version}.so %{_libdir}/libelf-%{version}.so
%{_libdir}/libelf.so.* %{_libdir}/libelf.so.*
@ -406,9 +455,14 @@ fi
%{_libdir}/libelf.so %{_libdir}/libelf.so
%{_libdir}/pkgconfig/libelf.pc %{_libdir}/pkgconfig/libelf.pc
%{_mandir}/man3/elf_*.3* %{_mandir}/man3/elf_*.3*
%{_mandir}/man3/elf32_*.3*
%{_mandir}/man3/elf64_*.3*
%{_mandir}/man3/libelf.3*
%if %{with static}
%files libelf-devel-static %files libelf-devel-static
%{_libdir}/libelf.a %{_libdir}/libelf.a
%endif
%if %{provide_yama_scope} %if %{provide_yama_scope}
%files default-yama-scope %files default-yama-scope
@ -416,29 +470,30 @@ fi
%endif %endif
%files debuginfod-client %files debuginfod-client
%defattr(-,root,root)
%{_libdir}/libdebuginfod-%{version}.so %{_libdir}/libdebuginfod-%{version}.so
%{_libdir}/libdebuginfod.so.* %{_libdir}/libdebuginfod.so.*
%{_bindir}/debuginfod-find %{_bindir}/debuginfod-find
%{_mandir}/man1/debuginfod-find.1* %{_mandir}/man1/debuginfod-find.1*
%{_mandir}/man7/debuginfod*.7* %{_mandir}/man7/debuginfod*.7*
%if 0%{?centos} >= 8
%{_sysconfdir}/profile.d/debuginfod.* %{_sysconfdir}/profile.d/debuginfod.*
%config(noreplace) %{_datadir}/fish/vendor_conf.d/*
%if 0%{?centos} >= 8
%{_sysconfdir}/debuginfod/*.urls %{_sysconfdir}/debuginfod/*.urls
%endif %endif
%files debuginfod-client-devel %files debuginfod-client-devel
%defattr(-,root,root)
%{_libdir}/pkgconfig/libdebuginfod.pc %{_libdir}/pkgconfig/libdebuginfod.pc
%{_mandir}/man3/debuginfod_*.3* %{_mandir}/man3/debuginfod_*.3*
%{_includedir}/elfutils/debuginfod.h %{_includedir}/elfutils/debuginfod.h
%{_libdir}/libdebuginfod.so %{_libdir}/libdebuginfod.so
%files debuginfod %files debuginfod
%defattr(-,root,root)
%{_bindir}/debuginfod %{_bindir}/debuginfod
%config(noreplace) %{_sysconfdir}/sysconfig/debuginfod %config(noreplace) %{_sysconfdir}/sysconfig/debuginfod
%{_unitdir}/debuginfod.service %{_unitdir}/debuginfod.service
%if %{with_sysusers}
%{_sysusersdir}/elfutils-debuginfod.conf
%endif
%{_mandir}/man8/debuginfod*.8* %{_mandir}/man8/debuginfod*.8*
@ -446,11 +501,15 @@ fi
%ghost %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite %ghost %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite
%pre debuginfod %pre debuginfod
%if %{with_sysusers}
%sysusers_create_compat %{SOURCE1}
%else
getent group debuginfod >/dev/null || groupadd -r debuginfod getent group debuginfod >/dev/null || groupadd -r debuginfod
getent passwd debuginfod >/dev/null || \ getent passwd debuginfod >/dev/null || \
useradd -r -g debuginfod -d /var/cache/debuginfod -s /sbin/nologin \ useradd -r -g debuginfod -d /var/cache/debuginfod -s /sbin/nologin \
-c "elfutils debuginfo server" debuginfod -c "elfutils debuginfo server" debuginfod
exit 0 exit 0
%endif
%post debuginfod %post debuginfod
%systemd_post debuginfod.service %systemd_post debuginfod.service
@ -459,6 +518,36 @@ exit 0
%systemd_postun_with_restart debuginfod.service %systemd_postun_with_restart debuginfod.service
%changelog %changelog
* Thu Oct 24 2024 Aaron Merey <amerey@redhat.com> - 0.192-2
- Enable eu-stacktrace on x86_64
- Add elfutils-0.192-stacktrace-lto.patch
* Wed Oct 23 2024 Aaron Merey <amerey@redhat.com> - 0.192-1
- Upgrade to upstream elfutils 0.192
- Drop upstreamed patches
elfutils-0.190-riscv-flatten.patch
elfutils-0.191-riscv-flatten.patch
elfutils-0.191-profile-empty-urls.patch
- Add elfutils-0.192-libelf-static.patch
* Fri Apr 19 2024 Aaron Merey <amerey@redhat.com> - 0.191-3
- eu-srcfiles directly links to libdebuginfod.so so explicitly
Require elfutils-debuginfod-client not just Recommends.
* Thu Apr 18 2024 Aaron Merey <amerey@redhat.com> - 0.191-2
- Update SPDX licenses.
* Fri Apr 12 2024 Aaron Merey <amerey@redhat.com> - 0.191-1
- Upgrade to upstream elfutils 0.191
- Drop upstreamed patches
elfutils-0.190-fix-core-noncontig.patch
elfutils-0.190-gcc-14.patch
elfutils-0.190-remove-ET_REL-unstrip-test.patch
- Drop testcore-noncontig.bz2
- Add elfutils-0.191-profile-empty-urls.patch
- Add elfutils-0.191-riscv-flatten.patch
- Add feature flag for reenabling elfutils-libelf-devel-static and elfutils-devel-static
* Fri Dec 8 2023 Aaron Merey <amerey@redhat.com> - 0.190-2 * Fri Dec 8 2023 Aaron Merey <amerey@redhat.com> - 0.190-2
- Add elfutils-0.190-fix-core-noncontig.patch - Add elfutils-0.190-fix-core-noncontig.patch
@ -489,6 +578,13 @@ exit 0
- Upgrade to upsteam elfutils 0.188. - Upgrade to upsteam elfutils 0.188.
- Add elfutils-0.188-static-extract_section.patch. - Add elfutils-0.188-static-extract_section.patch.
* Fri Sep 30 2022 Mark Wielaard <mjw@redhat.com> - 0.187-6
- Add sysuser support for creating the debuginfod user
* Thu Jun 16 2022 Frank Ch. Eigler <fche@redhat.com> - 0.187-5
- rhbz2088774: ship /etc/profile.d/debuginfod* files even without
default DEBUGINFOD_URLS.
* Fri May 6 2022 Mark Wielaard <mjw@redhat.com> - 0.187-4 * Fri May 6 2022 Mark Wielaard <mjw@redhat.com> - 0.187-4
- Upgrade to elfutils 0.187 - Upgrade to elfutils 0.187
- debuginfod: Support -C option for connection thread pooling. - debuginfod: Support -C option for connection thread pooling.
@ -507,14 +603,22 @@ exit 0
- Add elfutils-0.187-debuginfod-client-fd-leak.patch - Add elfutils-0.187-debuginfod-client-fd-leak.patch
- Add elfutils-0.187-mhd_no_dual_stack.patch - Add elfutils-0.187-mhd_no_dual_stack.patch
- Add elfutils-0.187-mhd_epoll.patch - Add elfutils-0.187-mhd_epoll.patch
* Tue Apr 12 2022 Mark Wielaard <mjw@redhat.com> - 0.186-5
- Add an explicit versioned requires from elfutils-debuginfod-client - Add an explicit versioned requires from elfutils-debuginfod-client
on elfutils-libs and elfutils-libelf. on elfutils-libelf.
* Fri Apr 8 2022 Mark Wielaard <mjw@redhat.com> - 0.186-4
- Add an explicit versioned requires from elfutils-debuginfod-client
on elfutils-libs.
* Tue Mar 22 2022 Mark Wielaard <mjw@redhat.com> - 0.186-3
- Remove brew testsuite workarounds - Remove brew testsuite workarounds
* Thu Feb 10 2022 Frank Ch. Eigler <fche@redhat.com> - 0.186-2 * Thu Feb 10 2022 Frank Ch. Eigler <fche@redhat.com> - 0.186-2
- rhbz2052574: enable debuginfod.centos.org support by default - rhbz2053226: enable debuginfod.centos.org support by default
* Thu Nov 11 2021 Mark Wielaard <mjw@redhat.com> - 0.186-1 * Tue Nov 23 2021 Mark Wielaard <mjw@redhat.com> - 0.186-1
- Upgrade to upstream 0.186 - Upgrade to upstream 0.186
- debuginfod-client: Default $DEBUGINFOD_URLS is computed from - debuginfod-client: Default $DEBUGINFOD_URLS is computed from
drop-in files /etc/debuginfod/*.urls rather than drop-in files /etc/debuginfod/*.urls rather than
@ -538,16 +642,50 @@ exit 0
dwarf_linefunctionname. dwarf_linefunctionname.
- translations: Update Japanese translation. - translations: Update Japanese translation.
* Thu May 27 2021 Mark Wielaard <mjw@redhat.com> - 0.185-1 * Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 0.185-5
- Upgrade to upstream 0.185 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Dec 17 2020 Mark Wielaard <mjw@redhat.com> - 0.182-3 * Wed Jun 16 2021 Frank Ch. Eigler <fche@redhat.com> - 0.185-4
- RHBZ1947876 - redux.
* Wed Jun 09 2021 Frank Ch. Eigler <fche@redhat.com> - 0.185-3
- RHBZ1947876 - turn -debuginfod-client into a weak reverse dependency.
* Mon May 31 2021 Mark Wielaard <mjw@redhat.com> - 0.185-2
- Allow failing make check
* Mon May 31 2021 Mark Wielaard <mjw@redhat.com> - 0.185-1
- Upgrade to upstream 0.185
- debuginfod-client: Simplify curl handle reuse so downloads which
return an error are retried.
- elfcompress: Always exit with code 0 when the operation succeeds
(even when nothing was done). On error the exit code
is now always 1.
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 0.183-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Mon Feb 8 2021 Mark Wielaard <mjw@fedoraproject.org> - 0.183-1
- Upgrade to upstream 0.183
- debuginfod: New thread-busy metric and more detailed error metrics.
New --fdcache-mintmp and tracking of filesystem freespace.
- debuginfod-client: DEBUGINFOD_SONAME macro added to debuginfod.h can
be used to dlopen the libdebuginfod.so library.
New function debuginfod_set_verbose_fd and DEBUGINFOD_VERBOSE
environment variable.
- config: profile.sh and profile.csh won't export DEBUGINFOD_URLS
unless configured --enable-debuginfod-urls[=URLS]
- elflint, readelf: Recognize SHF_GNU_RETAIN.
Handle SHT_X86_64_UNWIND as valid relocation target type.
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.182-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Dec 17 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.182-2
- Add elfutils-0.182-s390-pid_memory_read.patch - Add elfutils-0.182-s390-pid_memory_read.patch
* Mon Nov 2 2020 Mark Wielaard <mjw@redhat.com> - 0.182-2 * Sat Oct 31 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.182-1
- Add elfutils-0.182-debuginfod-test-fix.patch.
* Mon Nov 2 2020 Mark Wielaard <mjw@redhat.com> - 0.182-1
- Upgrade to upstream 0.182 - Upgrade to upstream 0.182
- backends: Support for tilegx has been removed. - backends: Support for tilegx has been removed.
- config: New /etc/profile.d files to provide default $DEBUGINFOD_URLS. - config: New /etc/profile.d files to provide default $DEBUGINFOD_URLS.
@ -557,26 +695,131 @@ exit 0
- debuginfod-client: Now supports compressed (kernel) ELF images. - debuginfod-client: Now supports compressed (kernel) ELF images.
- libdwfl: Add ZSTD compression support. - libdwfl: Add ZSTD compression support.
* Thu Jun 11 2020 Mark Wielaard <mjw@redhat.com> - 0.180-1 * Mon Oct 19 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.181-3
- New upstream release. - Add elfutils-0.181-array-param.patch.
* Fri Jan 10 2020 Mark Wielaard <mjw@redhat.com> - 0.178-7 * Fri Sep 18 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.181-2
- Add ZSTD support elfutils-0.181-zstd.patch.
* Tue Sep 8 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.181-1
- Upgrade to upstream 0.181
- libelf: elf_update now compensates (fixes up) a bad sh_addralign
for SHF_COMPRESSED sections.
- libdebuginfod: configure now takes --enable-libdebuginfod=dummy or
--disable-libdebuginfod for bootstrapping.
DEBUGINFOD_URLS now accepts "scheme-free" urls
(guessing at what the user meant, either http:// or file://)
- readelf, elflint: Handle aarch64 bti, pac bits in dynamic table and
gnu property notes.
- libdw, readelf: Recognize DW_CFA_AARCH64_negate_ra_state. Allows
unwinding on arm64 for code that is compiled for PAC
(Pointer Authentication Code) as long as it isn't enabled.
* Tue Aug 25 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-7
- Add elfutils-0.180-shf-compressed.patch
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.180-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 22 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-5
- Remove elfutils-libelf-devel-static and elfutils-devel-static subpackages.
- Remove duplicate listing of sysconfig/debuginfod (config) file.
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 0.180-4
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Fri Jul 3 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-3
- Add elfutils-0.180-mhd-result.patch
* Wed Jul 1 2020 Jeff Law <law@redhat.com> - 0.180-2
- Disable LTO
* Thu Jun 11 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.180-1
- New upstream release.
elflint: Allow SHF_EXCLUDE as generic section flag when --gnu is given.
libdw, readelf: Handle GCC LTO .gnu.debuglto_ prefix.
libdw: Use correct CU to resolve file names in dwarf_decl_file.
libdwfl: Handle debugaltlink in dwfl_standard_find_debuginfo.
size: Also obey radix printing for bsd format.
nm: Explicitly print weak 'V' or 'T' and common 'C' symbols.
* Thu Apr 30 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.179-2
- Add elfutils-0.179-debug-client-alt-link.patch
* Mon Mar 30 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.179-1
- New upstream release.
debuginfod-client:
- When DEBUGINFOD_PROGRESS is set and the program doesn't
install its own debuginfod_progressfn_t show download
progress on stderr.
- DEBUGINFOD_TIMEOUT is now defined as seconds to get at
least 100K, defaults to 90 seconds.
- Default to $XDG_CACHE_HOME/debuginfod_client.
- New functions debuginfod_set_user_data,
debuginfod_get_user_data, debuginfod_get_url and
debuginfod_add_http_header.
- Support for file:// URLs.
debuginfod:
- Performance improvements through highly parallelized scanning
and archive content caching.
- Uses libarchive directly for reading rpm archives.
- Support for indexing .deb/.ddeb archives through dpkg-deb
or bsdtar.
- Generic archive support through -Z EXT[=CMD]. Which can be
used for example for arch-linux pacman files by using
-Z '.tar.zst=zstdcat'.
- Better logging using User-Agent and X-Forwarded-For headers.
- More prometheus metrics.
- Support for eliding dots or extraneous slashes in path names.
debuginfod-find:
- Accept /path/names in place of buildid hex.
libelf:
- Handle PN_XNUM in elf_getphdrnum before shdr 0 is cached
- Ensure zlib resource cleanup on failure.
libdwfl:
- dwfl_linux_kernel_find_elf and dwfl_linux_kernel_report_offline
now find and handle a compressed vmlinuz image.
readelf, elflint:
- Handle PT_GNU_PROPERTY.
translations:
- Updated Ukrainian translation.
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.178-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jan 24 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.178-8
- Add elfutils-0.178-gcc10-null-dereference.patch
* Fri Jan 10 2020 Mark Wielaard <mjw@fedoraproject.org> - 0.178-7
- Add elfutils-0.178-debuginfod-timeoutprogress.patch - Add elfutils-0.178-debuginfod-timeoutprogress.patch
- Add elfutils-0.178-libasm-ebl.patch - Add elfutils-0.178-libasm-ebl.patch
* Fri Dec 13 2019 Mark Wielaard <mjw@redhat.com> - 0.178-6 * Wed Dec 11 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.178-6
- Add elfutils-0.178-curl-code-gcc-10.patch - Add elfutils-0.178-curl-code-gcc-10.patch
- Add elfutils-0.178-compressed-vmlinuz.patch - Add elfutils-0.178-compressed-vmlinuz.patch
* Mon Dec 9 2019 Mark Wielaard <mjw@redhat.com> - 0.178-5 * Mon Dec 9 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.178-5
- Add elfutils-0.178-debuginfod-no-cache.patch. #1781097 - Add elfutils-0.178-debuginfod-no-cache.patch.
* Thu Nov 28 2019 Mark Wielaard <mjw@redhat.com> - 0.178-4 * Thu Nov 28 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.178-4
- Define %%{depsuffix} before use.
* Thu Nov 28 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.178-3
- Add elfutils-debuginfod-client Provides and Requires with depsuffix - Add elfutils-debuginfod-client Provides and Requires with depsuffix
to get multilib dependencies correct. Add %%{version}-%%{release} to to get multilib dependencies correct. Add %%{version}-%%{release} to
keep subpackages in sync. keep subpackages in sync.
* Tue Nov 26 2019 Mark Wielaard <mjw@redhat.com> - 0.178-2 * Wed Nov 27 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.178-2
- Fix libdebuginfod file list for debuginfo-client[-devel].
* Tue Nov 26 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.178-1
- New upstream release. - New upstream release.
- debuginfod: New server, client tool and library to index and fetch - debuginfod: New server, client tool and library to index and fetch
ELF/DWARF files addressed by build-id through HTTP. ELF/DWARF files addressed by build-id through HTTP.
@ -591,52 +834,79 @@ exit 0
threads through the same Dwarf handle. threads through the same Dwarf handle.
- libdwfl: Will try to use debuginfod when installed as fallback to - libdwfl: Will try to use debuginfod when installed as fallback to
retrieve ELF and DWARF debug data files by build-id. retrieve ELF and DWARF debug data files by build-id.
- Fix libdebuginfod file list for debuginfo-client[-devel].
* Fri Jul 5 2019 Mark Wielaard <mjw@redhat.com> - 0.176-5 * Wed Aug 14 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.177-1
- New upstream release.
- elfclassify: New tool to analyze ELF objects.
- readelf: Print DW_AT_data_member_location as decimal offset.
Decode DW_AT_discr_list block attributes.
- libdw: Add DW_AT_GNU_numerator, DW_AT_GNU_denominator and DW_AT_GNU_bias.
- libdwelf: Add dwelf_elf_e_machine_string.
dwelf_elf_begin now only returns NULL when there is an error
reading or decompressing a file. If the file is not an ELF file
an ELF handle of type ELF_K_NONE is returned.
- backends: Add support for C-SKY.
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.176-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Jul 5 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.176-4
- Add elfutils-0.176-strip-symbols-illformed.patch - Add elfutils-0.176-strip-symbols-illformed.patch
* Wed Jun 5 2019 Mark Wielaard <mjw@redhat.com> - 0.176-4 * Mon Jun 3 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.176-3
- Add elfutils-0.176-elf-update.patch (#1717349) - Add elfutils-0.176-elf-update.patch
* Mon May 13 2019 Mark Wielaard <mjw@redhat.com> - 0.176-3 * Tue Apr 30 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.176-2
- Rebuilt for annobin change. - Update elfutils-0.176-gcc-pr88835.patch.
- Add elfutils-0.176-pt-gnu-prop.patch
- Add elfutils-0.176-xlate-note.patch
* Fri May 10 2019 Mark Wielaard <mjw@redhat.com> - 0.176-2 * Fri Feb 15 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.176-1
- Add elfutils-0.176-xlate-note.patch (#1705138)
* Tue May 7 2019 Mark Wielaard <mjw@fedoraproject.org> - 0.176-1
- New upstream release. - New upstream release.
- backends: riscv improved core file and return value location support. - backends: riscv improved core file and return value location support.
- Fixes CVE-2019-7146, CVE-2019-7148, CVE-2019-7149, CVE-2019-7150, - Fixes CVE-2019-7146, CVE-2019-7148, CVE-2019-7149, CVE-2019-7150,
CVE-2019-7664, CVE-2019-7665. CVE-2019-7664, CVE-2019-7665.
* Mon Dec 3 2018 Mark Wielaard <mjw@redhat.com> - 0.174-6 * Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.175-3
- Add elfutils-0.174-gnu-props-32.patch. - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Nov 15 2018 Mark Wielaard <mjw@redhat.com> - 0.174-5 * Mon Dec 3 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.175-2
- Add elfutils-0.174-x86_64_unwind.patch (#1650114). - Add elfutils-0.175-gnu-props-32.patch.
- Add elfutils-0.174-gnu-property-note.patch (#1650120).
* Fri Nov 16 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.175-1
- New upstream release.
- readelf: Handle multiple .debug_macro sections.
- strip: Add strip --reloc-debug-sections-only option.
Handle relocations against GNU compressed sections.
- libdwelf: New function dwelf_elf_begin.
- libcpu: Recognize bpf jump variants BPF_JLT, BPF_JLE, BPF_JSLT
and BPF_JSLE.
- backends: RISCV handles ADD/SUB relocations.
- Remove all patches.
* Wed Nov 14 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.174-5
- Add elfutils-0.174-x86_64_unwind.patch.
- Add elfutils-0.174-gnu-property-note.patch.
- Add elfutils-0.174-version-note.patch. - Add elfutils-0.174-version-note.patch.
- Add elfutils-0.174-gnu-attribute-note.patch (#1650125). - Add elfutils-0.174-gnu-attribute-note.patch
* Tue Nov 6 2018 Mark Wielaard <mjw@redhat.com> - 0.174-4 * Tue Nov 6 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.174-4
- Add elfutils-0.174-size-rec-ar.patch - Add elfutils-0.174-size-rec-ar.patch
CVE-2018-18520 (#1646479) CVE-2018-18520 (#1646478)
- Add elfutils-0.174-ar-sh_entsize-zero.patch - Add elfutils-0.174-ar-sh_entsize-zero.patch
CVE-2018-18521 (#1646484) CVE-2018-18521 (#1646483)
* Fri Nov 2 2018 Mark Wielaard <mjw@redhat.com> - 0.174-3 * Fri Nov 2 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.174-3
- Add elfutils-0.174-libdwfl-sanity-check-core-reads.patch - Add elfutils-0.174-libdwfl-sanity-check-core-reads.patch
CVE-2018-18310 (#1642606) CVE-2018-18310 (#1642605)
* Fri Oct 19 2018 Mark Wielaard <mjw@redhat.com> - 0.174-2 * Wed Oct 17 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.174-2
- Add elfutils-0.174-strip-unstrip-group.patch (#1638248). - Add elfutils-0.174-strip-unstrip-group.patch.
* Tue Sep 18 2018 Mark Wielaard <mjw@redhat.com> - 0.174-1 * Fri Sep 14 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.174-1
- New upstream release (#1614972) - New upstream release
- libelf, libdw and all tools now handle extended shnum and shstrndx - libelf, libdw and all tools now handle extended shnum and shstrndx
correctly correctly (#1608390).
- elfcompress: Don't rewrite input file if no section data needs - elfcompress: Don't rewrite input file if no section data needs
updating. Try harder to keep same file mode bits (suid) on rewrite. updating. Try harder to keep same file mode bits (suid) on rewrite.
- strip: Handle mixed (out of order) allocated/non-allocated sections. - strip: Handle mixed (out of order) allocated/non-allocated sections.
@ -644,9 +914,9 @@ exit 0
- backends: RISCV and M68K now have backend implementations to - backends: RISCV and M68K now have backend implementations to
generate CFI based backtraces. generate CFI based backtraces.
- Fixes CVE-2018-16062, CVE-2018-16402 and CVE-2018-16403 - Fixes CVE-2018-16062, CVE-2018-16402 and CVE-2018-16403
(#1623754, #1625052, #1625057). (#1623753, #1625051, #1625056).
* Mon Jul 30 2018 Florian Weimer <fweimer@redhat.com> - 0.173-8 * Tue Jul 31 2018 Florian Weimer <fweimer@redhat.com> - 0.173-8
- Rebuild with fixed binutils - Rebuild with fixed binutils
* Sun Jul 29 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.173-7 * Sun Jul 29 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.173-7

9
gating.yaml Normal file
View File

@ -0,0 +1,9 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier0-tmt-01-pub-x86_64-aarch64.functional}
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier0-tmt-02-pub-s390x-ppc64le.functional}
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier0-tmt-03-priv-x86_64-aarch64.functional}
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier0-tmt-04-priv-s390x-ppc64le.functional}

1
mirrors Normal file
View File

@ -0,0 +1 @@
https://fedorahosted.org/releases/e/l/elfutils

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (elfutils-0.192.tar.bz2) = 543188f5f2cfe5bc7955a878416c5f252edff9926754e5de0c6c57b132f21d9285c9b29e41281e93baad11d4ae7efbbf93580c114579c182103565fe99bd3909

109
upstream-key.gpg Normal file
View File

@ -0,0 +1,109 @@
pub 1024D/7EBBD625 2003-01-10
uid Roland McGrath <roland@frob.com>
uid Roland McGrath <frob@debian.org>
uid Roland McGrath <roland@gnu.org>
uid Roland McGrath <roland@redhat.com>
sub 2048g/17998A93 2003-01-10
pub 1024D/79FF4474 2001-08-24
uid Ulrich Drepper <drepper@akkadia.org>
uid Ulrich Drepper <drepper@redhat.com>
sub 2048g/07FA6550 2001-08-24
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (GNU/Linux)
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
gTKAnym+PwCfbnwIeEZfbBWgonv4/I3aNNm3FdQ=
=2IML
-----END PGP PUBLIC KEY BLOCK-----