The package rpms/valgrind.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/valgrind.git/commit/?id=6cf115573....
Change:
+%ifarch %{arm}
Thanks.
Full change:
============
commit bd144c9e1ad662fde400f06f751fca4ff6a3bdd2
Author: Mark Wielaard <mjw(a)fedoraproject.org>
Date: Thu Jun 29 20:34:46 2017 +0200
3.13.0-4
- Add valgrind-3.13.0-arm-index-hardwire.patch (#1466017)
- Add valgrind-3.13.0-ucontext_t.patch
- Add valgrind-3.13.0-gdb-8-testfix.patch
- Add valgrind-3.13.0-disable-vgdb-child.patch
diff --git a/valgrind-3.13.0-arm-index-hardwire.patch
b/valgrind-3.13.0-arm-index-hardwire.patch
new file mode 100644
index 0000000..4b718e3
--- /dev/null
+++ b/valgrind-3.13.0-arm-index-hardwire.patch
@@ -0,0 +1,86 @@
+diff --git a/coregrind/m_redir.c b/coregrind/m_redir.c
+index b8cc022..d54cae7 100644
+--- a/coregrind/m_redir.c
++++ b/coregrind/m_redir.c
+@@ -1485,6 +1485,17 @@ void VG_(redir_initialise) ( void )
+ (Addr)&VG_(arm_linux_REDIR_FOR_strcmp),
+ complain_about_stripped_glibc_ldso
+ );
++ /* index */
++ add_hardwired_spec(
++ "ld-linux.so.3", "index",
++ (Addr)&VG_(arm_linux_REDIR_FOR_index),
++ complain_about_stripped_glibc_ldso
++ );
++ add_hardwired_spec(
++ "ld-linux-armhf.so.3", "index",
++ (Addr)&VG_(arm_linux_REDIR_FOR_index),
++ complain_about_stripped_glibc_ldso
++ );
+ }
+
+ # elif defined(VGP_arm64_linux)
+diff --git a/coregrind/m_trampoline.S b/coregrind/m_trampoline.S
+index a532071..0488b54 100644
+--- a/coregrind/m_trampoline.S
++++ b/coregrind/m_trampoline.S
+@@ -625,26 +625,26 @@ VG_(arm_linux_REDIR_FOR_strlen):
+ bx lr
+ UD2_4
+
+-//.global VG_(arm_linux_REDIR_FOR_index)
+-//VG_(arm_linux_REDIR_FOR_index):
+-// ldrb r3, [r0, #0] @ zero_extendqisi2
+-// and r1, r1, #255
+-// cmp r3, r1
+-// @ lr needed for prologue
+-// bne .L9
+-// bx lr
+-//.L12:
+-// ldrb r3, [r0, #1]! @ zero_extendqisi2
+-// cmp r3, r1
+-// beq .L11
+-//.L9:
+-// cmp r3, #0
+-// bne .L12
+-// mov r0, #0
+-// bx lr
+-//.L11:
+-// bx lr
+-// UD2_4
++.global VG_(arm_linux_REDIR_FOR_index)
++VG_(arm_linux_REDIR_FOR_index):
++ ldrb r3, [r0, #0] @ zero_extendqisi2
++ and r1, r1, #255
++ cmp r3, r1
++ @ lr needed for prologue
++ bne .L9
++ bx lr
++.L12:
++ ldrb r3, [r0, #1]! @ zero_extendqisi2
++ cmp r3, r1
++ beq .L11
++.L9:
++ cmp r3, #0
++ bne .L12
++ mov r0, #0
++ bx lr
++.L11:
++ bx lr
++ UD2_4
+
+ .global VG_(arm_linux_REDIR_FOR_memcpy)
+ VG_(arm_linux_REDIR_FOR_memcpy):
+diff --git a/coregrind/pub_core_trampoline.h b/coregrind/pub_core_trampoline.h
+index 3a9bafe..e29427d 100644
+--- a/coregrind/pub_core_trampoline.h
++++ b/coregrind/pub_core_trampoline.h
+@@ -100,7 +100,7 @@ extern Addr VG_(ppctoc_magic_redirect_return_stub);
+ extern Addr VG_(arm_linux_SUBST_FOR_sigreturn);
+ extern Addr VG_(arm_linux_SUBST_FOR_rt_sigreturn);
+ extern UInt VG_(arm_linux_REDIR_FOR_strlen)( void* );
+-//extern void* VG_(arm_linux_REDIR_FOR_index) ( void*, Int );
++extern void* VG_(arm_linux_REDIR_FOR_index) ( void*, Int );
+ extern void* VG_(arm_linux_REDIR_FOR_memcpy)( void*, void*, Int );
+ extern void* VG_(arm_linux_REDIR_FOR_strcmp)( void*, void* );
+ #endif
diff --git a/valgrind-3.13.0-disable-vgdb-child.patch
b/valgrind-3.13.0-disable-vgdb-child.patch
new file mode 100644
index 0000000..4f9537a
--- /dev/null
+++ b/valgrind-3.13.0-disable-vgdb-child.patch
@@ -0,0 +1,36 @@
+commit 59af5db9c15d8ea03c1521736fb1f107d66bce08
+Author: philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9>
+Date: Sun Jun 25 20:25:50 2017 +0000
+
+ After fork, vgdb activity is polled according to the nr of bbs done :
+ once the nr of bbs done reaches the next vgdb poll, a check for vgdb
+ activity is done.
+ This might lead to the activation of gdbserver after fork.
+ Such poll is however not expected, unless the children is
+ to be trace.
+ This spurious poll in the forked child can cause failures
+ depending on the nr of bbs done before the fork, and the
+ nr of bbs done between the fork and the exec.
+
+ => disable vgdb poll in the child in the cleanup after fork
+ in the child, unless the children have to be traced.
+
+
+
+ git-svn-id:
svn://svn.valgrind.org/valgrind/trunk@16454
a5019735-40e9-0310-863c-91ae7b9d1cf9
+
+diff --git a/coregrind/m_gdbserver/m_gdbserver.c b/coregrind/m_gdbserver/m_gdbserver.c
+index 87fbce2..648d543 100644
+--- a/coregrind/m_gdbserver/m_gdbserver.c
++++ b/coregrind/m_gdbserver/m_gdbserver.c
+@@ -646,6 +646,10 @@ static void gdbserver_cleanup_in_child_after_fork(ThreadId me)
+
+ if (VG_(clo_trace_children)) {
+ VG_(gdbserver_prerun_action) (me);
++ } else {
++ /* After fork, if we do not trace the children, disable vgdb
++ poll to avoid gdbserver being called unexpectedly. */
++ VG_(disable_vgdb_poll) ();
+ }
+ }
+
diff --git a/valgrind-3.13.0-gdb-8-testfix.patch b/valgrind-3.13.0-gdb-8-testfix.patch
new file mode 100644
index 0000000..f34da04
--- /dev/null
+++ b/valgrind-3.13.0-gdb-8-testfix.patch
@@ -0,0 +1,183 @@
+commit 21788250c945713fa25c16f2683e1f9cd0bb6ccf
+Author: philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9>
+Date: Sun Jun 25 12:40:53 2017 +0000
+
+ Fix some tests failure with GDB 8.0
+
+ At the beginning of a Valgrind gdbserver test,
+ 2 messages are produced when launching the command
+ target remote | vgdb
+
+ A message output by vgdb:
+ relaying data between gdb and process <pid>
+ (this message is read by GDB from the vgdb pipe, and re-output
+ on stderr)
+ and a message produced by GDB:
+ Remote debugging using | ./vgdb
+
+ GDB 8.0 changes the order in which the above messages are output.
+ This causes 2 tests to fail, as the 'relaying' line appears
+ then in a part of the output deleted by a filter script.
+
+ To avoid this, change the filter scripts to always remove
+ this 'relaying line', which is not particularly interesting to check.
+ All the .exp files containining such a 'relaying' line are updated
+ accordingly.
+
+ This has been tested with various gdb versions (7.5, 7.7, 7.12, 8.0)
+ on amd64 and/or ppc64.
+
+ Thanks to Mark Wielaard, which helped to investigate this problem
+ by bisecting the GDB patches in GDB 8.0 causing this change of
+ behaviour.
+
+
+
+
+ git-svn-id:
svn://svn.valgrind.org/valgrind/trunk@16453
a5019735-40e9-0310-863c-91ae7b9d1cf9
+
+diff --git a/gdbserver_tests/filter_gdb b/gdbserver_tests/filter_gdb
+index 7177720..ed78cfe 100755
+--- a/gdbserver_tests/filter_gdb
++++ b/gdbserver_tests/filter_gdb
+@@ -72,7 +72,7 @@ sed -e '/Remote debugging using/,/vgdb launched process
attached/d'
+ -e '/^Missing separate debuginfo/d'
\
+ -e '/\/_exit.c: No such file or directory/d'
\
+ -e '/^Try: zypper install -C/d'
\
+- -e 's/\(relaying data between gdb and process \)[0-9][0-9]*/\1..../'
\
++ -e '/relaying data between gdb and process/d'
\
+ -e 's/pid [0-9][0-9]*/pid ..../g'
\
+ -e 's/Thread [0-9][0-9]*/Thread ..../g'
\
+ -e '/\[Switching to Thread ....\]/d'
\
+diff --git a/gdbserver_tests/filter_vgdb b/gdbserver_tests/filter_vgdb
+index 2442ec5..f8028a3 100755
+--- a/gdbserver_tests/filter_vgdb
++++ b/gdbserver_tests/filter_vgdb
+@@ -11,7 +11,7 @@ $dir/../tests/filter_addresses |
+ # pid
+ # gdb 7.2 sometimes tries to access address 0x0 (same as with standard gdbserver)
+ # filter a debian 6.0/ppc32 line
+-sed -e 's/\(relaying data between gdb and process \)[0-9][0-9]*/\1..../' \
++sed -e '/relaying data between gdb and process/d' \
+ -e 's/\(sending command .* to pid \)[0-9][0-9]*/\1..../' \
+ -e '/Cannot access memory at address 0x......../d' \
+ -e '/^[1-9][0-9]* \.\.\/sysdeps\/powerpc\/powerpc32\/dl-start\.S: No such file
or directory\./d' |
+diff --git a/gdbserver_tests/hginfo.stderrB.exp b/gdbserver_tests/hginfo.stderrB.exp
+index df47f11..669ff92 100644
+--- a/gdbserver_tests/hginfo.stderrB.exp
++++ b/gdbserver_tests/hginfo.stderrB.exp
+@@ -1,4 +1,3 @@
+-relaying data between gdb and process ....
+ vgdb-error value changed from 0 to 999999
+ Lock ga 0x........ {
+ Address 0x........ is 0 bytes inside data symbol "mx"
+diff --git a/gdbserver_tests/mcblocklistsearch.stderrB.exp
b/gdbserver_tests/mcblocklistsearch.stderrB.exp
+index 312d776..1313321 100644
+--- a/gdbserver_tests/mcblocklistsearch.stderrB.exp
++++ b/gdbserver_tests/mcblocklistsearch.stderrB.exp
+@@ -1,4 +1,3 @@
+-relaying data between gdb and process ....
+ vgdb-error value changed from 0 to 999999
+ Breakpoint 1 at 0x........: file leak-tree.c, line 42.
+ Breakpoint 2 at 0x........: file leak-tree.c, line 67.
+diff --git a/gdbserver_tests/mcbreak.stderrB.exp b/gdbserver_tests/mcbreak.stderrB.exp
+index 65281d2..0f051d1 100644
+--- a/gdbserver_tests/mcbreak.stderrB.exp
++++ b/gdbserver_tests/mcbreak.stderrB.exp
+@@ -1,4 +1,3 @@
+-relaying data between gdb and process ....
+ vgdb-error value changed from 0 to 999999
+ vgdb-error value changed from 999999 to 0
+ n_errs_found 1 n_errs_shown 1 (vgdb-error 0)
+diff --git a/gdbserver_tests/mcclean_after_fork.stderrB.exp
b/gdbserver_tests/mcclean_after_fork.stderrB.exp
+index 995b42f..e812b8e 100644
+--- a/gdbserver_tests/mcclean_after_fork.stderrB.exp
++++ b/gdbserver_tests/mcclean_after_fork.stderrB.exp
+@@ -1,4 +1,3 @@
+-relaying data between gdb and process ....
+ vgdb-error value changed from 0 to 999999
+ monitor command request to kill this process
+ Remote connection closed
+diff --git a/gdbserver_tests/mcinfcallWSRU.stderrB.exp
b/gdbserver_tests/mcinfcallWSRU.stderrB.exp
+index 7789123..a2f2b87 100644
+--- a/gdbserver_tests/mcinfcallWSRU.stderrB.exp
++++ b/gdbserver_tests/mcinfcallWSRU.stderrB.exp
+@@ -1,4 +1,3 @@
+-relaying data between gdb and process ....
+ vgdb-error value changed from 0 to 999999
+ Breakpoint 1 at 0x........: file sleepers.c, line 74.
+ Continuing.
+diff --git a/gdbserver_tests/mcleak.stderrB.exp b/gdbserver_tests/mcleak.stderrB.exp
+index 7782119..7ed3920 100644
+--- a/gdbserver_tests/mcleak.stderrB.exp
++++ b/gdbserver_tests/mcleak.stderrB.exp
+@@ -1,4 +1,3 @@
+-relaying data between gdb and process ....
+ vgdb-error value changed from 0 to 999999
+ 10 bytes in 1 blocks are still reachable in loss record ... of ...
+ at 0x........: malloc (vg_replace_malloc.c:...)
+diff --git a/gdbserver_tests/mcmain_pic.stderrB.exp
b/gdbserver_tests/mcmain_pic.stderrB.exp
+index c90e1fa..53ec0ce 100644
+--- a/gdbserver_tests/mcmain_pic.stderrB.exp
++++ b/gdbserver_tests/mcmain_pic.stderrB.exp
+@@ -1,2 +1 @@
+-relaying data between gdb and process ....
+ vgdb-error value changed from 0 to 999999
+diff --git a/gdbserver_tests/mcvabits.stderrB.exp b/gdbserver_tests/mcvabits.stderrB.exp
+index bdabb1e..f9ced7a 100644
+--- a/gdbserver_tests/mcvabits.stderrB.exp
++++ b/gdbserver_tests/mcvabits.stderrB.exp
+@@ -1,4 +1,3 @@
+-relaying data between gdb and process ....
+ vgdb-error value changed from 0 to 999999
+ Address 0x........ len 10 addressable
+ Address 0x........ is 0 bytes inside data symbol "undefined"
+diff --git a/gdbserver_tests/mssnapshot.stderrB.exp
b/gdbserver_tests/mssnapshot.stderrB.exp
+index 8bee8fc..e419ce6 100644
+--- a/gdbserver_tests/mssnapshot.stderrB.exp
++++ b/gdbserver_tests/mssnapshot.stderrB.exp
+@@ -1,4 +1,3 @@
+-relaying data between gdb and process ....
+ vgdb-error value changed from 0 to 999999
+ general valgrind monitor commands:
+ help [debug] : monitor command help. With debug: + debugging commands
+diff --git a/gdbserver_tests/nlgone_abrt.stderrB.exp
b/gdbserver_tests/nlgone_abrt.stderrB.exp
+index c8b2024..e69de29 100644
+--- a/gdbserver_tests/nlgone_abrt.stderrB.exp
++++ b/gdbserver_tests/nlgone_abrt.stderrB.exp
+@@ -1 +0,0 @@
+-relaying data between gdb and process ....
+diff --git a/gdbserver_tests/nlgone_exit.stderrB.exp
b/gdbserver_tests/nlgone_exit.stderrB.exp
+index c8b2024..e69de29 100644
+--- a/gdbserver_tests/nlgone_exit.stderrB.exp
++++ b/gdbserver_tests/nlgone_exit.stderrB.exp
+@@ -1 +0,0 @@
+-relaying data between gdb and process ....
+diff --git a/gdbserver_tests/nlgone_return.stderrB.exp
b/gdbserver_tests/nlgone_return.stderrB.exp
+index c8b2024..e69de29 100644
+--- a/gdbserver_tests/nlgone_return.stderrB.exp
++++ b/gdbserver_tests/nlgone_return.stderrB.exp
+@@ -1 +0,0 @@
+-relaying data between gdb and process ....
+diff --git a/gdbserver_tests/nlpasssigalrm.stderrB.exp
b/gdbserver_tests/nlpasssigalrm.stderrB.exp
+index c90e1fa..53ec0ce 100644
+--- a/gdbserver_tests/nlpasssigalrm.stderrB.exp
++++ b/gdbserver_tests/nlpasssigalrm.stderrB.exp
+@@ -1,2 +1 @@
+-relaying data between gdb and process ....
+ vgdb-error value changed from 0 to 999999
+diff --git a/gdbserver_tests/nlself_invalidate.stderrB.exp
b/gdbserver_tests/nlself_invalidate.stderrB.exp
+index c8b2024..e69de29 100644
+--- a/gdbserver_tests/nlself_invalidate.stderrB.exp
++++ b/gdbserver_tests/nlself_invalidate.stderrB.exp
+@@ -1 +0,0 @@
+-relaying data between gdb and process ....
+diff --git a/gdbserver_tests/nlsigvgdb.stderrB.exp
b/gdbserver_tests/nlsigvgdb.stderrB.exp
+index 672fea5..ed5bb61 100644
+--- a/gdbserver_tests/nlsigvgdb.stderrB.exp
++++ b/gdbserver_tests/nlsigvgdb.stderrB.exp
+@@ -1,4 +1,3 @@
+-relaying data between gdb and process ....
+ vgdb-error value changed from 0 to 999999
+ gdbserver: continuing in 5000 ms ...
+ gdbserver: continuing after wait ...
diff --git a/valgrind-3.13.0-ucontext_t.patch b/valgrind-3.13.0-ucontext_t.patch
new file mode 100644
index 0000000..0abcef2
--- /dev/null
+++ b/valgrind-3.13.0-ucontext_t.patch
@@ -0,0 +1,25 @@
+commit 9b37074f7609cd496c067e88ef8c436981aa7267
+Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
+Date: Thu Jun 29 15:26:30 2017 +0000
+
+ memcheck/tests: Use ucontext_t instead of struct ucontext
+
+ glibc 2.26 does not expose struct ucontext anymore.
+
+ Signed-off-by: Khem Raj <raj.khem(a)gmail.com>
+
+ git-svn-id:
svn://svn.valgrind.org/valgrind/trunk@16457
a5019735-40e9-0310-863c-91ae7b9d1cf9
+
+diff --git a/memcheck/tests/linux/stack_changes.c b/memcheck/tests/linux/stack_changes.c
+index a978fc2..7f97b90 100644
+--- a/memcheck/tests/linux/stack_changes.c
++++ b/memcheck/tests/linux/stack_changes.c
+@@ -10,7 +10,7 @@
+ // This test is checking the libc context calls (setcontext, etc.) and
+ // checks that Valgrind notices their stack changes properly.
+
+-typedef struct ucontext mycontext;
++typedef ucontext_t mycontext;
+
+ mycontext ctx1, ctx2, oldc;
+ int count;
diff --git a/valgrind.spec b/valgrind.spec
index b955974..2e4ea58 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.13.0
-Release: 3%{?dist}
+Release: 4%{?dist}
Epoch: 1
License: GPLv2+
URL:
http://www.valgrind.org/
@@ -105,6 +105,19 @@ Patch6: valgrind-3.13.0-ppc64-diag.patch
# Workaround that masks CPUID support in HWCAP on aarch64 (#1464211)
Patch7: valgrind-3.13.0-arm64-hwcap.patch
+# RHBZ#1466017 ARM ld.so index warnings.
+# KDE#381805 arm32 needs ld.so index hardwire for new glibc security fixes
+Patch8: valgrind-3.13.0-arm-index-hardwire.patch
+
+# KDE#381769 Use ucontext_t instead of struct ucontext
+Patch9: valgrind-3.13.0-ucontext_t.patch
+
+# valgrind svn r16453 Fix some tests failure with GDB 8.0
+Patch10: valgrind-3.13.0-gdb-8-testfix.patch
+
+# valgrind svn r16454. disable vgdb poll in the child after fork
+Patch11: valgrind-3.13.0-disable-vgdb-child.patch
+
%if %{build_multilib}
# Ensure glibc{,-devel} is installed for both multilib arches
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
@@ -226,6 +239,10 @@ Valgrind User Manual for details.
%patch5 -p1
%patch6 -p1
%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
%build
# We need to use the software collection compiler and binutils if available.
@@ -428,6 +445,12 @@ echo ===============END TESTING===============
%endif
%changelog
+* Thu Jun 29 2017 Mark Wielaard <mjw(a)fedoraproject.org> 3.13.0-4
+- Add valgrind-3.13.0-arm-index-hardwire.patch (#1466017)
+- Add valgrind-3.13.0-ucontext_t.patch
+- Add valgrind-3.13.0-gdb-8-testfix.patch
+- Add valgrind-3.13.0-disable-vgdb-child.patch
+
* Fri Jun 23 2017 Mark Wielaard <mjw(a)fedoraproject.org> 3.13.0-3
- Add valgrind-3.13.0-arm64-hwcap.patch (#1464211)
commit 39ca09ac42f58d646f5e78ff78a00934aa14778c
Author: Mark Wielaard <mjw(a)fedoraproject.org>
Date: Fri Jun 23 12:18:37 2017 +0200
3.13.0-3 - Add valgrind-3.13.0-arm64-hwcap.patch (#1464211)
KDE#381556 arm64: Handle feature registers access on 4.11 Linux kernel
Workaround that masks CPUID support in HWCAP on aarch64 (#1464211)
diff --git a/valgrind-3.13.0-arm64-hwcap.patch b/valgrind-3.13.0-arm64-hwcap.patch
new file mode 100644
index 0000000..8f2a070
--- /dev/null
+++ b/valgrind-3.13.0-arm64-hwcap.patch
@@ -0,0 +1,17 @@
+diff --git a/coregrind/m_initimg/initimg-linux.c b/coregrind/m_initimg/initimg-linux.c
+index 30e1f85..387beae 100644
+--- a/coregrind/m_initimg/initimg-linux.c
++++ b/coregrind/m_initimg/initimg-linux.c
+@@ -703,6 +703,12 @@ Addr setup_client_stack( void* init_sp,
+ (and anything above) are not supported by Valgrind. */
+ auxv->u.a_val &= VKI_HWCAP_S390_TE - 1;
+ }
++# elif defined(VGP_arm64_linux)
++ {
++ /* Linux 4.11 started pupulating this for arm64, but we
++ currently don't support any. */
++ auxv->u.a_val = 0;
++ }
+ # endif
+ break;
+ # if defined(VGP_ppc64be_linux) || defined(VGP_ppc64le_linux)
diff --git a/valgrind.spec b/valgrind.spec
index 2b0bbbc..b955974 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.13.0
-Release: 2%{?dist}
+Release: 3%{?dist}
Epoch: 1
License: GPLv2+
URL:
http://www.valgrind.org/
@@ -101,6 +101,10 @@ Patch5: valgrind-3.13.0-epoll_pwait.patch
# KDE#381274 powerpc too chatty even with --sigill-diagnostics=no
Patch6: valgrind-3.13.0-ppc64-diag.patch
+# KDE#381556 arm64: Handle feature registers access on 4.11 Linux kernel
+# Workaround that masks CPUID support in HWCAP on aarch64 (#1464211)
+Patch7: valgrind-3.13.0-arm64-hwcap.patch
+
%if %{build_multilib}
# Ensure glibc{,-devel} is installed for both multilib arches
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
@@ -221,6 +225,7 @@ Valgrind User Manual for details.
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
%build
# We need to use the software collection compiler and binutils if available.
@@ -423,6 +428,9 @@ echo ===============END TESTING===============
%endif
%changelog
+* Fri Jun 23 2017 Mark Wielaard <mjw(a)fedoraproject.org> 3.13.0-3
+- Add valgrind-3.13.0-arm64-hwcap.patch (#1464211)
+
* Sat Jun 17 2017 Mark Wielaard <mjw(a)fedoraproject.org> 3.13.0-2
- Add valgrind-3.13.0-ppc64-check-no-vsx.patch
- Add valgrind-3.13.0-epoll_pwait.patch (#1462258)
commit 77431709e21c3b89bc4097b0683bddfa3bc3726d
Author: Mark Wielaard <mark(a)klomp.org>
Date: Sun Jun 18 17:18:32 2017 +0200
3.13.0-2
diff --git a/valgrind.spec b/valgrind.spec
index e8c04a9..2b0bbbc 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.13.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Epoch: 1
License: GPLv2+
URL:
http://www.valgrind.org/
@@ -423,7 +423,7 @@ echo ===============END TESTING===============
%endif
%changelog
-* Sat Jun 17 2017 Mark Wielaard <mjw(a)fedoraproject.org>
+* Sat Jun 17 2017 Mark Wielaard <mjw(a)fedoraproject.org> 3.13.0-2
- Add valgrind-3.13.0-ppc64-check-no-vsx.patch
- Add valgrind-3.13.0-epoll_pwait.patch (#1462258)
- Add valgrind-3.13.0-ppc64-diag.patch
commit 564e480369e273baaf6aec63906097e3ef47cad6
Author: Mark Wielaard <mark(a)klomp.org>
Date: Sun Jun 18 13:29:40 2017 +0200
Add valgrind-3.13.0-ppc64-diag.patch
diff --git a/valgrind-3.13.0-ppc64-diag.patch b/valgrind-3.13.0-ppc64-diag.patch
new file mode 100644
index 0000000..eba0acb
--- /dev/null
+++ b/valgrind-3.13.0-ppc64-diag.patch
@@ -0,0 +1,109 @@
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index e16e837..a8d4926 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -29356,62 +29356,70 @@ DisResult disInstr_PPC_WRK (
+
+ decode_noF:
+ vassert(!allow_F);
+- vex_printf("disInstr(ppc): found the Floating Point instruction 0x%x
that\n"
+- "can't be handled by Valgrind on this host. This instruction\n"
+- "requires a host that supports Floating Point instructions.\n",
+- theInstr);
++ if (sigill_diag)
++ vex_printf("disInstr(ppc): found the Floating Point instruction 0x%x
that\n"
++ "can't be handled by Valgrind on this host. This instruction\n"
++ "requires a host that supports Floating Point instructions.\n",
++ theInstr);
+ goto not_supported;
+ decode_noV:
+ vassert(!allow_V);
+- vex_printf("disInstr(ppc): found an AltiVec or an e500 instruction
0x%x\n"
+- "that can't be handled by Valgrind. If this instruction is an\n"
+- "Altivec instruction, Valgrind must be run on a host that supports"
+- "AltiVec instructions. If the application was compiled for e500, then\n"
+- "unfortunately Valgrind does not yet support e500 instructions.\n",
+- theInstr);
++ if (sigill_diag)
++ vex_printf("disInstr(ppc): found an AltiVec or an e500 instruction
0x%x\n"
++ "that can't be handled by Valgrind. If this instruction is an\n"
++ "Altivec instruction, Valgrind must be run on a host that supports"
++ "AltiVec instructions. If the application was compiled for e500,
then\n"
++ "unfortunately Valgrind does not yet support e500 instructions.\n",
++ theInstr);
+ goto not_supported;
+ decode_noVX:
+ vassert(!allow_VX);
+- vex_printf("disInstr(ppc): found the instruction 0x%x that is defined in
the\n"
+- "Power ISA 2.06 ABI but can't be handled by Valgrind on this host.\n"
+- "This instruction \nrequires a host that supports the ISA 2.06 ABI.\n",
+- theInstr);
++ if (sigill_diag)
++ vex_printf("disInstr(ppc): found the instruction 0x%x that is defined in
the\n"
++ "Power ISA 2.06 ABI but can't be handled by Valgrind on this
host.\n"
++ "This instruction \nrequires a host that supports the ISA 2.06 ABI.\n",
++ theInstr);
+ goto not_supported;
+ decode_noFX:
+ vassert(!allow_FX);
+- vex_printf("disInstr(ppc): found the General Purpose-Optional instruction
0x%x\n"
+- "that can't be handled by Valgrind on this host. This instruction\n"
+- "requires a host that supports the General Purpose-Optional
instructions.\n",
+- theInstr);
++ if (sigill_diag)
++ vex_printf("disInstr(ppc): found the General Purpose-Optional instruction
0x%x\n"
++ "that can't be handled by Valgrind on this host. This
instruction\n"
++ "requires a host that supports the General Purpose-Optional
instructions.\n",
++ theInstr);
+ goto not_supported;
+ decode_noGX:
+ vassert(!allow_GX);
+- vex_printf("disInstr(ppc): found the Graphics-Optional instruction
0x%x\n"
+- "that can't be handled by Valgrind on this host. This instruction\n"
+- "requires a host that supports the Graphic-Optional instructions.\n",
+- theInstr);
++ if (sigill_diag)
++ vex_printf("disInstr(ppc): found the Graphics-Optional instruction
0x%x\n"
++ "that can't be handled by Valgrind on this host. This
instruction\n"
++ "requires a host that supports the Graphic-Optional instructions.\n",
++ theInstr);
+ goto not_supported;
+ decode_noDFP:
+ vassert(!allow_DFP);
+- vex_printf("disInstr(ppc): found the decimal floating point (DFP) instruction
0x%x\n"
+- "that can't be handled by Valgrind on this host. This instruction\n"
+- "requires a host that supports DFP instructions.\n",
+- theInstr);
++ if (sigill_diag)
++ vex_printf("disInstr(ppc): found the decimal floating point (DFP)
instruction 0x%x\n"
++ "that can't be handled by Valgrind on this host. This
instruction\n"
++ "requires a host that supports DFP instructions.\n",
++ theInstr);
+ goto not_supported;
+ decode_noP8:
+ vassert(!allow_isa_2_07);
+- vex_printf("disInstr(ppc): found the Power 8 instruction 0x%x that can't
be handled\n"
+- "by Valgrind on this host. This instruction requires a host that\n"
+- "supports Power 8 instructions.\n",
+- theInstr);
++ if (sigill_diag)
++ vex_printf("disInstr(ppc): found the Power 8 instruction 0x%x that
can't be handled\n"
++ "by Valgrind on this host. This instruction requires a host that\n"
++ "supports Power 8 instructions.\n",
++ theInstr);
+ goto not_supported;
+
+ decode_noP9:
+ vassert(!allow_isa_3_0);
+- vex_printf("disInstr(ppc): found the Power 9 instruction 0x%x that can't
be handled\n"
+- "by Valgrind on this host. This instruction requires a host
that\n"
+- "supports Power 9 instructions.\n",
+- theInstr);
++ if (sigill_diag)
++ vex_printf("disInstr(ppc): found the Power 9 instruction 0x%x that
can't be handled\n"
++ "by Valgrind on this host. This instruction requires a host
that\n"
++ "supports Power 9 instructions.\n",
++ theInstr);
+ goto not_supported;
+
+ decode_failure:
diff --git a/valgrind.spec b/valgrind.spec
index 77ccb47..e8c04a9 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -98,6 +98,9 @@ Patch4: valgrind-3.13.0-ppc64-check-no-vsx.patch
# KDE#381289 epoll_pwait can have a NULL sigmask.
Patch5: valgrind-3.13.0-epoll_pwait.patch
+# KDE#381274 powerpc too chatty even with --sigill-diagnostics=no
+Patch6: valgrind-3.13.0-ppc64-diag.patch
+
%if %{build_multilib}
# Ensure glibc{,-devel} is installed for both multilib arches
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
@@ -217,6 +220,7 @@ Valgrind User Manual for details.
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
%build
# We need to use the software collection compiler and binutils if available.
@@ -422,6 +426,7 @@ echo ===============END TESTING===============
* Sat Jun 17 2017 Mark Wielaard <mjw(a)fedoraproject.org>
- Add valgrind-3.13.0-ppc64-check-no-vsx.patch
- Add valgrind-3.13.0-epoll_pwait.patch (#1462258)
+- Add valgrind-3.13.0-ppc64-diag.patch
* Thu Jun 15 2017 Mark Wielaard <mjw(a)fedoraproject.org> - 3.13.0-1
- valgrind 3.13.0 final.
commit 391aca8d88070e502daaf9daedad99c016cf30db
Author: Mark Wielaard <mark(a)klomp.org>
Date: Sat Jun 17 16:13:50 2017 +0200
Add valgrind-3.13.0-epoll_pwait.patch (#1462258)
diff --git a/valgrind-3.13.0-epoll_pwait.patch b/valgrind-3.13.0-epoll_pwait.patch
new file mode 100644
index 0000000..8a7516b
--- /dev/null
+++ b/valgrind-3.13.0-epoll_pwait.patch
@@ -0,0 +1,68 @@
+commit 79865f0eed7cf0e0ad687ee0a59d59a1d505b514
+Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
+Date: Sat Jun 17 13:49:22 2017 +0000
+
+ epoll_pwait can have a NULL sigmask.
+
+ According to the epoll_pwait(2) man page:
+
+ The sigmask argument may be specified as NULL, in which case
+ epoll_pwait() is equivalent to epoll_wait().
+
+ But doing that under valgrind gives:
+
+ ==13887== Syscall param epoll_pwait(sigmask) points to unaddressable byte(s)
+ ==13887== at 0x4F2B940: epoll_pwait (epoll_pwait.c:43)
+ ==13887== by 0x400ADE: main (syscalls-2007.c:89)
+ ==13887== Address 0x0 is not stack'd, malloc'd or (recently) free'd
+
+ This is because the sys_epoll_pwait wrapper has:
+
+ if (ARG4)
+ PRE_MEM_READ( "epoll_pwait(sigmask)", ARG5, sizeof(vki_sigset_t) );
+
+ Which looks like a typo (ARG4 is timeout and ARG5 is sigmask).
+
+ This shows up with newer glibc which translates an epoll_wait call into
+ an epoll_pwait call with NULL sigmask.
+
+ Fix typo and add a testcase.
+
+
https://bugs.kde.org/show_bug.cgi?id=381289
+
+ git-svn-id:
svn://svn.valgrind.org/valgrind/trunk@16451
a5019735-40e9-0310-863c-91ae7b9d1cf9
+
+diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c
+index 26e02fd..4120c1d 100644
+--- a/coregrind/m_syswrap/syswrap-linux.c
++++ b/coregrind/m_syswrap/syswrap-linux.c
+@@ -1901,7 +1901,7 @@ PRE(sys_epoll_pwait)
+ int, maxevents, int, timeout, vki_sigset_t *, sigmask,
+ vki_size_t, sigsetsize);
+ PRE_MEM_WRITE( "epoll_pwait(events)", ARG2, sizeof(struct
vki_epoll_event)*ARG3);
+- if (ARG4)
++ if (ARG5)
+ PRE_MEM_READ( "epoll_pwait(sigmask)", ARG5, sizeof(vki_sigset_t) );
+ }
+ POST(sys_epoll_pwait)
+diff --git a/memcheck/tests/linux/syscalls-2007.c b/memcheck/tests/linux/syscalls-2007.c
+index b61c6d5..5494623 100644
+--- a/memcheck/tests/linux/syscalls-2007.c
++++ b/memcheck/tests/linux/syscalls-2007.c
+@@ -79,5 +79,16 @@ int main (void)
+ }
+ #endif
+
++#if defined(HAVE_EPOLL_CREATE) && defined(HAVE_EPOLL_PWAIT)
++ {
++ int fd3;
++ struct epoll_event evs[10];
++
++ fd3 = epoll_create (10);
++ /* epoll_pwait can take a NULL sigmask. */
++ epoll_pwait (fd3, evs, 10, 1, NULL);
++ }
++#endif
++
+ return 0;
+ }
diff --git a/valgrind.spec b/valgrind.spec
index a2e8d5d..77ccb47 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -95,6 +95,9 @@ Patch3: valgrind-3.9.0-ldso-supp.patch
# KDE#381272 ppc64 doesn't compile test_isa_2_06_partx.c without VSX support
Patch4: valgrind-3.13.0-ppc64-check-no-vsx.patch
+# KDE#381289 epoll_pwait can have a NULL sigmask.
+Patch5: valgrind-3.13.0-epoll_pwait.patch
+
%if %{build_multilib}
# Ensure glibc{,-devel} is installed for both multilib arches
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
@@ -213,6 +216,7 @@ Valgrind User Manual for details.
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
%build
# We need to use the software collection compiler and binutils if available.
@@ -415,10 +419,13 @@ echo ===============END TESTING===============
%endif
%changelog
+* Sat Jun 17 2017 Mark Wielaard <mjw(a)fedoraproject.org>
+- Add valgrind-3.13.0-ppc64-check-no-vsx.patch
+- Add valgrind-3.13.0-epoll_pwait.patch (#1462258)
+
* Thu Jun 15 2017 Mark Wielaard <mjw(a)fedoraproject.org> - 3.13.0-1
- valgrind 3.13.0 final.
- Drop all upstreamed patches.
-- Add valgrind-3.13.0-ppc64-check-no-vsx.patch
* Tue Jun 6 2017 Mark Wielaard <mjw(a)fedoraproject.org> - 3.13.0-0.2.RC1
- Add valgrind-3.13.0-arm-dcache.patch
commit 345398b54c832db32e97435a73a63879b454c7cc
Author: Mark Wielaard <mark(a)klomp.org>
Date: Fri Jun 16 12:05:08 2017 +0200
Update valgrind-3.13.0-ppc64-check-no-vsx.patch to include ppc64.
diff --git a/valgrind-3.13.0-ppc64-check-no-vsx.patch
b/valgrind-3.13.0-ppc64-check-no-vsx.patch
index 8a8fe9f..8356773 100644
--- a/valgrind-3.13.0-ppc64-check-no-vsx.patch
+++ b/valgrind-3.13.0-ppc64-check-no-vsx.patch
@@ -85,3 +85,77 @@ index 8c74c09..5ebc1a5 100644
#ifndef __powerpc64__
typedef uint32_t HWord_t;
#else
+
+diff --git a/none/tests/ppc64/test_isa_2_06_part1.c
b/none/tests/ppc64/test_isa_2_06_part1.c
+index 7cd4930..7a14c6d 100644
+--- a/none/tests/ppc64/test_isa_2_06_part1.c
++++ b/none/tests/ppc64/test_isa_2_06_part1.c
+@@ -20,13 +20,14 @@
+ The GNU General Public License is contained in the file COPYING.
+ */
+
+-#ifdef HAS_VSX
+-
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <malloc.h>
++
++#ifdef HAS_VSX
++
+ #include <altivec.h>
+
+ #ifndef __powerpc64__
+diff --git a/none/tests/ppc64/test_isa_2_06_part2.c
b/none/tests/ppc64/test_isa_2_06_part2.c
+index c7bf4fe..2ee7b53 100644
+--- a/none/tests/ppc64/test_isa_2_06_part2.c
++++ b/none/tests/ppc64/test_isa_2_06_part2.c
+@@ -20,17 +20,18 @@
+ The GNU General Public License is contained in the file COPYING.
+ */
+
+-#ifdef HAS_VSX
+-
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <malloc.h>
+-#include <altivec.h>
+ #include <math.h>
+ #include <unistd.h> // getopt
+
++#ifdef HAS_VSX
++
++#include <altivec.h>
++
+ #ifndef __powerpc64__
+ typedef uint32_t HWord_t;
+ #else
+diff --git a/none/tests/ppc64/test_isa_2_06_part3.c
b/none/tests/ppc64/test_isa_2_06_part3.c
+index 8c74c09..5ebc1a5 100644
+--- a/none/tests/ppc64/test_isa_2_06_part3.c
++++ b/none/tests/ppc64/test_isa_2_06_part3.c
+@@ -20,17 +20,18 @@
+ The GNU General Public License is contained in the file COPYING.
+ */
+
+-#ifdef HAS_VSX
+-
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <malloc.h>
+-#include <altivec.h>
+ #include <math.h>
+ #include <unistd.h> // getopt
+
++#ifdef HAS_VSX
++
++#include <altivec.h>
++
+ #ifndef __powerpc64__
+ typedef uint32_t HWord_t;
+ #else
commit ae1b1f374a03fd0cb27112e935b5b7aa81247738
Author: Mark Wielaard <mark(a)klomp.org>
Date: Fri Jun 16 11:41:32 2017 +0200
Add valgrind-3.13.0-ppc64-check-no-vsx.patch
diff --git a/valgrind-3.13.0-ppc64-check-no-vsx.patch
b/valgrind-3.13.0-ppc64-check-no-vsx.patch
new file mode 100644
index 0000000..8a8fe9f
--- /dev/null
+++ b/valgrind-3.13.0-ppc64-check-no-vsx.patch
@@ -0,0 +1,87 @@
+commit 326d53c8378984c50f29bd124d3f2b4a1242306c
+Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
+Date: Fri Jun 16 09:33:35 2017 +0000
+
+ ppc64 doesn't compile test_isa_2_06_partx.c without VSX support
+
+ The #ifdef HAS_VSX guard is wrongly placed. It makes the standard
+ include headers not be used. Causing a build failure. Fix by moving
+ the #ifdef HAS_VSX after the standard includes.
+
+
https://bugs.kde.org/show_bug.cgi?id=381272
+
+ git-svn-id:
svn://svn.valgrind.org/valgrind/trunk@16450
a5019735-40e9-0310-863c-91ae7b9d1cf9
+
+diff --git a/none/tests/ppc32/test_isa_2_06_part1.c
b/none/tests/ppc32/test_isa_2_06_part1.c
+index 7cd4930..7a14c6d 100644
+--- a/none/tests/ppc32/test_isa_2_06_part1.c
++++ b/none/tests/ppc32/test_isa_2_06_part1.c
+@@ -20,13 +20,14 @@
+ The GNU General Public License is contained in the file COPYING.
+ */
+
+-#ifdef HAS_VSX
+-
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <malloc.h>
++
++#ifdef HAS_VSX
++
+ #include <altivec.h>
+
+ #ifndef __powerpc64__
+diff --git a/none/tests/ppc32/test_isa_2_06_part2.c
b/none/tests/ppc32/test_isa_2_06_part2.c
+index c7bf4fe..2ee7b53 100644
+--- a/none/tests/ppc32/test_isa_2_06_part2.c
++++ b/none/tests/ppc32/test_isa_2_06_part2.c
+@@ -20,17 +20,18 @@
+ The GNU General Public License is contained in the file COPYING.
+ */
+
+-#ifdef HAS_VSX
+-
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <malloc.h>
+-#include <altivec.h>
+ #include <math.h>
+ #include <unistd.h> // getopt
+
++#ifdef HAS_VSX
++
++#include <altivec.h>
++
+ #ifndef __powerpc64__
+ typedef uint32_t HWord_t;
+ #else
+diff --git a/none/tests/ppc32/test_isa_2_06_part3.c
b/none/tests/ppc32/test_isa_2_06_part3.c
+index 8c74c09..5ebc1a5 100644
+--- a/none/tests/ppc32/test_isa_2_06_part3.c
++++ b/none/tests/ppc32/test_isa_2_06_part3.c
+@@ -20,17 +20,18 @@
+ The GNU General Public License is contained in the file COPYING.
+ */
+
+-#ifdef HAS_VSX
+-
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <malloc.h>
+-#include <altivec.h>
+ #include <math.h>
+ #include <unistd.h> // getopt
+
++#ifdef HAS_VSX
++
++#include <altivec.h>
++
+ #ifndef __powerpc64__
+ typedef uint32_t HWord_t;
+ #else
diff --git a/valgrind.spec b/valgrind.spec
index ee9cb75..a2e8d5d 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -92,6 +92,9 @@ Patch2: valgrind-3.9.0-helgrind-race-supp.patch
# Make ld.so supressions slightly less specific.
Patch3: valgrind-3.9.0-ldso-supp.patch
+# KDE#381272 ppc64 doesn't compile test_isa_2_06_partx.c without VSX support
+Patch4: valgrind-3.13.0-ppc64-check-no-vsx.patch
+
%if %{build_multilib}
# Ensure glibc{,-devel} is installed for both multilib arches
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
@@ -209,6 +212,7 @@ Valgrind User Manual for details.
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
%build
# We need to use the software collection compiler and binutils if available.
@@ -414,6 +418,7 @@ echo ===============END TESTING===============
* Thu Jun 15 2017 Mark Wielaard <mjw(a)fedoraproject.org> - 3.13.0-1
- valgrind 3.13.0 final.
- Drop all upstreamed patches.
+- Add valgrind-3.13.0-ppc64-check-no-vsx.patch
* Tue Jun 6 2017 Mark Wielaard <mjw(a)fedoraproject.org> - 3.13.0-0.2.RC1
- Add valgrind-3.13.0-arm-dcache.patch
commit d4079c5340c9cc7c8d3bbfdcde3a92bd9c84e27f
Author: Mark Wielaard <mark(a)klomp.org>
Date: Sat Jun 17 15:21:48 2017 +0200
rpm -q acts strangely on copr EPEL6. Make sure it doesn't break the build.
diff --git a/valgrind.spec b/valgrind.spec
index 0cd04b5..ee9cb75 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -320,10 +320,12 @@ chmod 644
$RPM_BUILD_ROOT%{_libdir}/valgrind/vgpreload*-%{valarch}-*so
%check
# Make sure some info about the system is in the build.log
+# Add || true because rpm on copr EPEL6 acts weirdly and we don't want
+# to break the build.
uname -a
-rpm -q glibc gcc %{?scl_prefix}binutils
+rpm -q glibc gcc %{?scl_prefix}binutils || true
%if %{run_full_regtest}
-rpm -q %{?scl_prefix}gdb
+rpm -q %{?scl_prefix}gdb || true
%endif
LD_SHOW_AUXV=1 /bin/true
commit df3b58e7d010d4325cd4c6c7b47f8327d5ac428a
Author: Mark Wielaard <mark(a)klomp.org>
Date: Thu Jun 15 23:05:20 2017 +0200
Only request gdb when doing full regtest
diff --git a/valgrind.spec b/valgrind.spec
index 616d945..0cd04b5 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -113,7 +113,9 @@ BuildRequires: openmpi-devel >= 1.3.3
# For %%build and %%check.
# In case of a software collection, pick the matching gdb and binutils.
+%if %{run_full_regtest}
BuildRequires: %{?scl_prefix}gdb
+%endif
BuildRequires: %{?scl_prefix}binutils
# gdbserver_tests/filter_make_empty uses ps in test
@@ -319,7 +321,11 @@ chmod 644
$RPM_BUILD_ROOT%{_libdir}/valgrind/vgpreload*-%{valarch}-*so
%check
# Make sure some info about the system is in the build.log
uname -a
-rpm -q glibc gcc %{?scl_prefix}binutils %{?scl_prefix}gdb
+rpm -q glibc gcc %{?scl_prefix}binutils
+%if %{run_full_regtest}
+rpm -q %{?scl_prefix}gdb
+%endif
+
LD_SHOW_AUXV=1 /bin/true
cat /proc/cpuinfo
commit 6cf11557302254d20f25426f18ac3f1659263e87
Author: Mark Wielaard <mark(a)klomp.org>
Date: Sat Jun 17 15:28:36 2017 +0200
Add new run_full_regtest global.
diff --git a/valgrind.spec b/valgrind.spec
index d5ccbc5..616d945 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -51,6 +51,29 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u}
-n)
%endif
%endif
+# Whether to run the full regtest or only a limited set
+# The full regtest includes gdb_server integration tests.
+# On arm the gdb integration tests hang for unknown reasons.
+# On rhel6 the gdb_server tests hang.
+# On rhel7 they hang on ppc64 and ppc64le.
+%ifarch %{arm}
+ %global run_full_regtest 0
+%else
+ %if 0%{?rhel} == 6
+ %global run_full_regtest 0
+ %else
+ %if 0%{?rhel} == 7
+ %ifarch ppc64 ppc64le
+ %global run_full_regtest 0
+ %else
+ %global run_full_regtest 1
+ %endif
+ %else
+ %global run_full_regtest 1
+ %endif
+ %endif
+%endif
+
# Generating minisymtabs doesn't really work for the staticly linked
# tools. Note (below) that we don't strip the vgpreload libraries at all
# because valgrind might read and need the debuginfo in those (client)
@@ -314,11 +337,10 @@ make %{?_smp_mflags} CFLAGS="" CXXFLAGS=""
LDFLAGS="" check
export PYTHONCOERCECLOCALE=0
echo ===============TESTING===================
-# On arm the gdb integration tests hang for unknown reasons.
-%ifarch %{arm}
-./close_fds make nonexp-regtest || :
+%if %{run_full_regtest}
+ ./close_fds make regtest || :
%else
-./close_fds make regtest || :
+ ./close_fds make nonexp-regtest || :
%endif
# Make sure test failures show up in build.log