3.18.1-5 - Add valgrind-3.18.1-demangle-namespace.patch
This commit is contained in:
parent
0e37cf264d
commit
b8d4e42b21
35
valgrind-3.18.1-demangle-namespace.patch
Normal file
35
valgrind-3.18.1-demangle-namespace.patch
Normal file
@ -0,0 +1,35 @@
|
||||
commit 542447d4708d4418a08e678dcf467af92b90b7ad
|
||||
Author: Mark Wielaard <mark@klomp.org>
|
||||
Date: Mon Nov 22 13:07:59 2021 +0100
|
||||
|
||||
readdwarf3.c (parse_inl_DIE) inlined_subroutine can appear in namespaces
|
||||
|
||||
This was broken by commit 75e3ef0f3 "readdwarf3: Skip units without
|
||||
addresses when looking for inlined functions". Specifically by this
|
||||
part: "Also use skip_DIE instead of read_DIE when not parsing
|
||||
(skipping) children"
|
||||
|
||||
rustc puts concrete function instances in namespaces (which is
|
||||
allowed in DWARF since there is no strict separation between type
|
||||
declarations and program scope entries in a DIE tree), the inline
|
||||
parser didn't expect this and so skipped any DIE under a namespace
|
||||
entry. This wasn't an issue before because "skipping" a DIE tree was
|
||||
done by reading it, so it wasn't actually skipped. But now that we
|
||||
really skip the DIE (sub)tree (which is faster than actually parsing
|
||||
it) some entries were missed in the rustc case.
|
||||
|
||||
https://bugs.kde.org/show_bug.cgi?id=445668
|
||||
|
||||
diff --git a/coregrind/m_debuginfo/readdwarf3.c b/coregrind/m_debuginfo/readdwarf3.c
|
||||
index 18eecea9f..5489f8d13 100644
|
||||
--- a/coregrind/m_debuginfo/readdwarf3.c
|
||||
+++ b/coregrind/m_debuginfo/readdwarf3.c
|
||||
@@ -3358,7 +3358,7 @@ static Bool parse_inl_DIE (
|
||||
// might maybe contain a DW_TAG_inlined_subroutine:
|
||||
Bool ret = (unit_has_addrs
|
||||
|| dtag == DW_TAG_lexical_block || dtag == DW_TAG_subprogram
|
||||
- || dtag == DW_TAG_inlined_subroutine);
|
||||
+ || dtag == DW_TAG_inlined_subroutine || dtag == DW_TAG_namespace);
|
||||
return ret;
|
||||
|
||||
bad_DIE:
|
@ -3,7 +3,7 @@
|
||||
Summary: Tool for finding memory management bugs in programs
|
||||
Name: %{?scl_prefix}valgrind
|
||||
Version: 3.18.1
|
||||
Release: 4%{?dist}
|
||||
Release: 5%{?dist}
|
||||
Epoch: 1
|
||||
License: GPLv2+
|
||||
URL: http://www.valgrind.org/
|
||||
@ -125,6 +125,9 @@ Patch16: valgrind-3.18.1-amd64-more-spec-rules.patch
|
||||
# "mutex is locked simultaneously by two threads" warning
|
||||
Patch17: valgrind-3.18.1-condvar.patch
|
||||
|
||||
# KDE#445668 Inline stack frame generation is broken for Rust binaries
|
||||
Patch18: valgrind-3.18.1-demangle-namespace.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: glibc-devel
|
||||
|
||||
@ -274,6 +277,7 @@ Valgrind User Manual for details.
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
|
||||
%build
|
||||
# LTO triggers undefined symbols in valgrind. Valgrind has a --enable-lto
|
||||
@ -503,6 +507,9 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Nov 22 2021 Mark Wielaard <mjw@fedoraproject.org> - 3.18.1-5
|
||||
- Add valgrind-3.18.1-demangle-namespace.patch
|
||||
|
||||
* Fri Nov 19 2021 Mark Wielaard <mjw@fedoraproject.org> - 3.18.1-4
|
||||
- Add valgrind-3.18.1-condvar.patch
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user