Update valgrind-3.11.0-futex.patch.

This commit is contained in:
Mark Wielaard 2016-02-18 12:48:59 +01:00
parent eee38c276f
commit 523f8250a2
2 changed files with 23 additions and 3 deletions

View File

@ -6,11 +6,27 @@ Date: Wed Feb 17 20:53:34 2016 +0000
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15793 a5019735-40e9-0310-863c-91ae7b9d1cf9
commit f71fd226f26ab49a615d7886ff2aeadc9915c7c1
Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Date: Thu Feb 18 11:14:47 2016 +0000
Bug 359201 followup. futex skips argument 5 if op is FUTEX_WAIT_BITSET.
The original fix in svn r15793 read argument 6 separately by using PRA6
unconditionally. This is wrong. We need to first check whether a
track_pre_reg_read callback is registered (only memcheck does).
The PRE_REG_READX macro already had this check. Just add the same
before calling PRA6. Thanks to Tom Hughes for noticing. Without this
helgrind/tests/cond_timedwait_test and drd/tests/pth_inconsistent_cond_wait
regtests would fail.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15795 a5019735-40e9-0310-8
diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c
index f796969..b57436c 100644
index f796969..f2d1076 100644
--- a/coregrind/m_syswrap/syswrap-linux.c
+++ b/coregrind/m_syswrap/syswrap-linux.c
@@ -1154,13 +1154,16 @@ PRE(sys_futex)
@@ -1154,13 +1154,17 @@ PRE(sys_futex)
return;
}
if (*(vki_u32 *)ARG1 != ARG3) {
@ -27,7 +43,8 @@ index f796969..b57436c 100644
vki_u32 *, futex, int, op, int, val,
- struct timespec *, utime, int, dummy, int, val3);
+ struct timespec *, utime);
+ PRA6("futex",int,val3);
+ if (VG_(tdict).track_pre_reg_read)
+ PRA6("futex",int,val3);
}
break;
case VKI_FUTEX_WAKE_BITSET:

View File

@ -423,6 +423,9 @@ echo ===============END TESTING===============
%endif
%changelog
* Thu Feb 18 2016 Mark Wielaard <mjw@redhat.com>
- Update valgrind-3.11.0-futex.patch.
* Wed Feb 17 2016 Mark Wielaard <mjw@redhat.com> - 3.11.0-13
- Remove valgrind-3.11.0-no-stv.patch (gcc6 has been fixed).
- Add valgrind-3.11.0-futex.patch