Debian Patches

Status for elfutils/0.194-4

Patch Description Author Forwarded Bugs Origin Last update
elfutils-0.194-alloc-jobs.patch readelf: Allocate job_data one-by-one as needed
Currently, job_data is stored in an array whose size is equal to the
number of debug sections (.debug_*, .eh_frame, .gdb_index, etc.).

This size may be too small if a binary contains multiple debug sections
with the same name. For example an ET_REL binary compiled with -ggdb3
can contain multiple .debug_macro sections.

Fix this by allocating job_data on the fly when preparing to read a
debug section. This supports an arbitrary number of debug sections
while also avoiding unnecessary memory allocation.

https://sourceware.org/bugzilla/show_bug.cgi?id=33580
Aaron Merey <amerey@redhat.com> no 2025-10-27
elfutils-0.194-fix-const.patch Fix const-correctness issues
These were uncovered by the C23 const-preserving library macros.
Andreas Schwab <schwab@suse.de> no 2025-11-24
elfutils-0.194-sh_addr-non-zero.patch libdwfl: Work around ET_REL files with sh_addr fields set to non-zero

libdwfl tries to model the loading of modules (executables, shared
libraries, the linux kernel and/or kernel modules) in
memory. Depending on the (offline) load address it then also applies
(simple) relocations for ET_REL (object files or kernel modules). Load
addresses are normally represented through phdr segments for ET_EXEC
or ET_DYN, but for ET_REL files (which don't have phdrs) the Elf
section sh_addr fields are used.

The sh_addr fields of the ET_REL Elf images are updated in two places
__libdwfl_elf_address_range (through __libdwfl_report_elf) and
__libdwfl_relocate (through dwfl_module_getelf and
dwfl_module_getdwarf). Both rely on sh_addr being zero if no load
address has been set yet, so the address layout for each (SHF_ALLOC)
section is done only once.

Recent linux kernels use a linker script that does set the sh_addr
fields to (random, linker assigned) non-zero addresses. See commit
1ba9f8979426 ("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and related
macros").

The sh_addr values seems unnecessary, but because they aren't zero
anymore our layout/relocation code doesn't know it still has to figure
out a "real" load value for these sections.

Introduce __libdwfl_reset_sh_addr which resets all sh_addr fields to
zero for SHF_ALLOC sections in ET_REL files.

We don't call __libdwfl_reset_sh_addr on aux_sym files (from
.gnu_debugdata) and when constructing an Elf from a core file. In all
other cases we know (or assume) that the Elf file is being opened
through libdw_open_elf (called indirectly through __libdw_open_elf,
__libdwfl_report_offline, dwfl_module_getelf and dwfl_module_getdwarf)

This technically changes the Elf that goes through libdwfl, but we
would already update the sh_addr fields for ET_REL Elf sections in
memory anyway to represent the load address as libdwfl would see
them. So this isn't really a change in behavior (it just might update
the sh_addr field twice).

* libdwfl/libdwflP.h (__libdwfl_reset_sh_addr): Define new
internal function.
* libdwfl/relocate.c (__libdwfl_reset_sh_addr): New internal
function.
* libdwfl/open.c (libdw_open_elf): Call __libdwfl_reset_sh_addr.
* libdwfl/dwfl_module_getdwarf.c (open_elf_file): Add comment.
(find_aux_sym): Likewise.
(find_dw): Likewise.
* libdwfl/dwfl_segment_report_module.c
(dwfl_segment_report_module): Likewise.
* libdwfl/dwfl_report_elf.c (__libdwfl_report_elf): Likewise.
Mark Wielaard <mark@klomp.org> no 2026-03-02
testsuite-ignore-elflint.diff On many architectures this test fails because binaries/libs produced by
binutils don't pass elflint. However elfutils shouldn't FTBFS because of this.

So we run the tests on all archs to see what breaks, but if it breaks we ignore
the result (exitcode 77 means: this test was skipped).
no
ignore_strmerge.diff no
disable_werror.patch disable -Werror as it tends to break with new gcc versions
===================================================================
Helmut Grohne <helmut@subdivi.de> no debian 2018-01-01
remove-old-glibc-hack.diff no
kfreebsd-debuginfod no
kfreebsd-mremap-stub =================================================================== no
hurd-hacks.diff no
perf_regs.diff no
pr33991.diff aarch64: Recognize SHT_AARCH64_ATTRIBUTES
Recognize SHT_AARCH64_ATTRIBUTES. This is enough to stop elflint
complaining about unknown section types. But doesn't implement parsing
the attributes.

* backends/aarch64_symbol.c (aarch64_section_type_name):
New function.
* backends/aarch64_init.c (aarch64_init): Hook
section_type_name.

https://sourceware.org/bugzilla/show_bug.cgi?id=33923
Mark Wielaard <mark@klomp.org> no 2026-02-24

All known versions for source package 'elfutils'

Links