diff --git a/valgrind-3.15.0-dhat-x86.patch b/valgrind-3.15.0-dhat-x86.patch new file mode 100644 index 0000000..38778ed --- /dev/null +++ b/valgrind-3.15.0-dhat-x86.patch @@ -0,0 +1,18 @@ +commit e63d90d66e8de6d6ec2c92e3b0a32cc165b83369 +Author: Mark Wielaard +Date: Wed Apr 10 01:22:37 2019 +0200 + + dhat is broken on x86 (32bit) + +diff --git a/dhat/dh_main.c b/dhat/dh_main.c +index 47a9327..a933328 100644 +--- a/dhat/dh_main.c ++++ b/dhat/dh_main.c +@@ -794,6 +794,7 @@ void dh_handle_noninsn_write ( CorePart part, ThreadId tid, + { + switch (part) { + case Vg_CoreSysCall: ++ case Vg_CoreClientReq: + dh_handle_write(base, size); + break; + case Vg_CoreSignal: diff --git a/valgrind-3.15.0-gdb-output1.patch b/valgrind-3.15.0-gdb-output1.patch new file mode 100644 index 0000000..692c0e7 --- /dev/null +++ b/valgrind-3.15.0-gdb-output1.patch @@ -0,0 +1,123 @@ +From 97df7b924435c5f7f576972dc924f2c29105edb3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Alexandra=20H=C3=A1jkov=C3=A1?= +Date: Tue, 9 Apr 2019 11:09:56 +0200 +Subject: [PATCH] gdbserver_tests: adjust filtering for the new gdb output + +mcsigpass and mcsignopass tests fails due to the slightly different +gdb output. Filter the tests output to make it the same for different +gdb version. Change mcsigpass and mcsignopass .exp to fit filtered +.out. +--- + gdbserver_tests/filter_gdb | 1 + + gdbserver_tests/mcsignopass.stdoutB.exp | 24 ++++++++++++------------ + gdbserver_tests/mcsigpass.stdoutB.exp | 6 +++--- + 3 files changed, 16 insertions(+), 15 deletions(-) + +diff --git a/gdbserver_tests/filter_gdb b/gdbserver_tests/filter_gdb +index 05bbe4c54..7e6092dd0 100755 +--- a/gdbserver_tests/filter_gdb ++++ b/gdbserver_tests/filter_gdb +@@ -139,6 +139,7 @@ sed -e '/Remote debugging using/,/vgdb launched process attached/d' + -e 's/VgTs_WaitSys) 0x/VgTs_WaitSys) 0x/' \ + -e '/Cannot access memory at address 0x......../d' \ + -e '/\[New Thread/d' \ ++ -e 's/0x........ in test/test/' \ + -e '/^$/d' | + + # remove all the lines telling where the SIGFPE was trapped. +diff --git a/gdbserver_tests/mcsignopass.stdoutB.exp b/gdbserver_tests/mcsignopass.stdoutB.exp +index d77f9832a..18c830be6 100644 +--- a/gdbserver_tests/mcsignopass.stdoutB.exp ++++ b/gdbserver_tests/mcsignopass.stdoutB.exp +@@ -6,54 +6,54 @@ Signal Stop Print Pass to program Description + SIGFPE Yes Yes Yes Arithmetic exception + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Signal Stop Print Pass to program Description + SIGSEGV No Yes Yes Segmentation fault + Continuing. + Program received signal SIGSEGV, Segmentation fault. + Program received signal SIGBUS, Bus error. +-0x........ in test3 () at faultstatus.c:126 ++test3 () at faultstatus.c:126 + 126 mapping[FILESIZE+10]; + Continuing. + Program received signal SIGFPE, Arithmetic exception. +diff --git a/gdbserver_tests/mcsigpass.stdoutB.exp b/gdbserver_tests/mcsigpass.stdoutB.exp +index de6c2634f..680035836 100644 +--- a/gdbserver_tests/mcsigpass.stdoutB.exp ++++ b/gdbserver_tests/mcsigpass.stdoutB.exp +@@ -1,14 +1,14 @@ + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test1 () at faultstatus.c:116 ++test1 () at faultstatus.c:116 + 116 *BADADDR = 'x'; + Continuing. + Program received signal SIGSEGV, Segmentation fault. +-0x........ in test2 () at faultstatus.c:121 ++test2 () at faultstatus.c:121 + 121 mapping[0] = 'x'; + Continuing. + Program received signal SIGBUS, Bus error. +-0x........ in test3 () at faultstatus.c:126 ++test3 () at faultstatus.c:126 + 126 mapping[FILESIZE+10]; + Continuing. + Program received signal SIGFPE, Arithmetic exception. +-- +2.17.2 + diff --git a/valgrind-3.15.0-gdb-output2.patch b/valgrind-3.15.0-gdb-output2.patch new file mode 100644 index 0000000..78f5ea9 --- /dev/null +++ b/valgrind-3.15.0-gdb-output2.patch @@ -0,0 +1,19 @@ +commit 983cb6ab1d60c79a8a9c6723815468fc59c4f248 +Author: Mark Wielaard +Date: Wed Apr 10 01:28:24 2019 +0200 + + Bug 406357 + +diff --git a/gdbserver_tests/filter_gdb b/gdbserver_tests/filter_gdb +index 05bbe4c..d0ab11d 100755 +--- a/gdbserver_tests/filter_gdb ++++ b/gdbserver_tests/filter_gdb +@@ -92,7 +92,7 @@ sed -e '/Remote debugging using/,/vgdb launched process attached/d' + -e 's/^Thread .... received /Program received /' \ + -e 's/#[0-9]\( 0x........ in sleeper_or_burner\)/#.\1/' \ + -e 's/\(#0 0x........ in do_burn ()\) at sleepers.c:41/\1/' \ +- -e '/^Reading symbols from .*\.\.\.done\./d' \ ++ -e '/^Reading symbols from .*\.\.\.\(done\.\)\?/d' \ + -e '/^Loaded symbols for .*$/d' \ + -e '/^Current language.*/d' \ + -e '/^The current source language is.*/d' \ diff --git a/valgrind-3.15.0-libstdc++-supp.patch b/valgrind-3.15.0-libstdc++-supp.patch new file mode 100644 index 0000000..990a344 --- /dev/null +++ b/valgrind-3.15.0-libstdc++-supp.patch @@ -0,0 +1,51 @@ +commit 751b5736bb597210c5d9de40cb586d4b341bf29a +Author: Mark Wielaard +Date: Tue Apr 9 16:09:50 2019 +0200 + + More memcheck/tests/libstdc++.supp suppressions + +diff --git a/memcheck/tests/libstdc++.supp b/memcheck/tests/libstdc++.supp +index fad537f..28ab182 100644 +--- a/memcheck/tests/libstdc++.supp ++++ b/memcheck/tests/libstdc++.supp +@@ -49,6 +49,9 @@ + # still reachable: 72,704 bytes in 1 blocks + # suppressed: 0 bytes in 0 blocks + ++# All the following suppressions are variants of ++# _dl_init -> call_init which calls the DT_INIT_ARRAY functions ++ + { + malloc-leaks-cxx-stl-string-classes + Memcheck:Leak +@@ -61,6 +64,16 @@ + obj:*lib*/ld-2.*.so + } + { ++ malloc-leaks-cxx-stl-string-classes-2 ++ Memcheck:Leak ++ match-leak-kinds: reachable ++ fun:malloc ++ obj:*lib*/libstdc++.so* ++ fun:call_init.part.0 ++ fun:_dl_init ++ obj:*lib*/ld-2.*.so ++} ++{ + malloc-leaks-cxx-stl-string-classes-debug + Memcheck:Leak + match-leak-kinds: reachable +@@ -73,3 +86,13 @@ + fun:_dl_init + obj:*lib*/ld-2.*.so + } ++{ ++ malloc-leaks-cxx-stl-string-classes-debug2 ++ Memcheck:Leak ++ match-leak-kinds: reachable ++ fun:malloc ++ obj:* ++ fun:call_init ++ fun:_dl_init ++ fun:_dl_start_user ++} diff --git a/valgrind-3.15.0-missing-a-c.patch b/valgrind-3.15.0-missing-a-c.patch new file mode 100644 index 0000000..d047b0f --- /dev/null +++ b/valgrind-3.15.0-missing-a-c.patch @@ -0,0 +1,19 @@ +commit e5ff7e633a768a421dafbc115c3a3c2f713338db +Author: Mark Wielaard +Date: Wed Apr 10 00:33:26 2019 +0200 + + add missing a.c + +diff --git a/cachegrind/tests/a.c b/cachegrind/tests/a.c +new file mode 100644 +index 0000000..cd1c66e +--- /dev/null ++++ b/cachegrind/tests/a.c +@@ -0,0 +1,7 @@ ++int main(void) { ++ int z = 0; ++ for (int i = 0; i < 1000000; i++) { ++ z += i; ++ } ++ return z % 256; ++} diff --git a/valgrind-3.15.0-s390x-get-startregs-constraint.patch b/valgrind-3.15.0-s390x-get-startregs-constraint.patch new file mode 100644 index 0000000..f6f34dc --- /dev/null +++ b/valgrind-3.15.0-s390x-get-startregs-constraint.patch @@ -0,0 +1,19 @@ +commit b2d2da64b0de1c4d657b63187967b68606e84711 +Author: Julian Seward +Date: Mon Apr 8 14:16:48 2019 +0200 + + GET_STARTREGS for s390: fix register constraint (per comments from Andreas Arnez). + +diff --git a/coregrind/m_libcassert.c b/coregrind/m_libcassert.c +index 6d1cd4c..bb9b92b 100644 +--- a/coregrind/m_libcassert.c ++++ b/coregrind/m_libcassert.c +@@ -180,7 +180,7 @@ + "std %%f6, 72(%1);" \ + "std %%f7, 80(%1);" \ + : /* out */ "=r" (ia) \ +- : /* in */ "r" (&block[0]) \ ++ : /* in */ "a" (&block[0]) \ + : /* trash */ "memory" \ + ); \ + (srP)->r_pc = ia; \ diff --git a/valgrind.spec b/valgrind.spec index 8943f2e..af8e295 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -3,7 +3,7 @@ Summary: Tool for finding memory management bugs in programs Name: %{?scl_prefix}valgrind Version: 3.15.0 -Release: 0.1.RC1%{?dist} +Release: 0.2.RC1%{?dist} Epoch: 1 License: GPLv2+ URL: http://www.valgrind.org/ @@ -84,6 +84,25 @@ Patch3: valgrind-3.9.0-ldso-supp.patch # same directory is used independent of arch. Patch4: valgrind-3.15.0-pkglibexecdir.patch +# valgrind commit b2d2da64b0de1c4d657b63187967b68606e84711 +# GET_STARTREGS for s390: fix register constraint +Patch5: valgrind-3.15.0-s390x-get-startregs-constraint.patch + +# KDE#406352 RC1 fails cachegrind/callgrind ann tests because of missing a.c +Patch6: valgrind-3.15.0-missing-a-c.patch + +# KDE#406360 memcheck/tests/libstdc++.supp needs more supression variants +Patch7: valgrind-3.15.0-libstdc++-supp.patch + +# KDE#406354 dhat is broken on x86 (32bit) +Patch8: valgrind-3.15.0-dhat-x86.patch + +# KDE#406355 mcsignopass and mcsigpass fails due to a difference in gdb output +Patch9: valgrind-3.15.0-gdb-output1.patch + +# KDE#406357 RC1 fails gdbserver_tests because of gdb output change +Patch10: valgrind-3.15.0-gdb-output2.patch + %if 0%{?fedora} >= 15 BuildRequires: glibc-devel >= 2.14 @@ -216,6 +235,12 @@ Valgrind User Manual for details. %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 %build CC=gcc @@ -428,6 +453,14 @@ fi %endif %changelog +* Tue Apr 9 2019 Mark Wielaard - 3.15.0-0.2.RC1 +- Add valgrind-3.15.0-s390x-get-startregs-constraint.patch +- Add valgrind-3.15.0-missing-a-c.patch +- Add valgrind-3.15.0-libstdc++-supp.patch +- Add valgrind-3.15.0-dhat-x86.patch +- Add valgrind-3.15.0-gdb-output1.patch +- Add valgrind-3.15.0-gdb-output2.patch + * Mon Apr 8 2019 Mark Wielaard - 3.15.0-0.1.RC1 - Remove patches to prebuild files and always ./autogen.sh. - Only ever build primary arch. Put tools under libexec.