This commit is contained in:
Jakub Jelinek 2007-08-31 08:18:44 +00:00
parent 4963ef6088
commit 7c8238d569
3 changed files with 81 additions and 2 deletions

View File

@ -0,0 +1,59 @@
--- valgrind-3.2.3/include/vki-linux.h (revision 6760)
+++ valgrind-3.2.3/include/vki-linux.h (working copy)
@@ -1151,6 +1151,7 @@
#define VKI_FUTEX_FD (2)
#define VKI_FUTEX_REQUEUE (3)
#define VKI_FUTEX_CMP_REQUEUE (4)
+#define VKI_FUTEX_PRIVATE_FLAG (128)
struct vki_robust_list {
struct vki_robust_list __user *next;
--- valgrind-3.2.3/coregrind/m_syswrap/syswrap-linux.c (revision 6760)
+++ valgrind-3.2.3/coregrind/m_syswrap/syswrap-linux.c (working copy)
@@ -843,21 +843,25 @@
PRINT("sys_futex ( %p, %d, %d, %p, %p )", ARG1,ARG2,ARG3,ARG4,ARG5);
switch(ARG2) {
case VKI_FUTEX_CMP_REQUEUE:
+ case VKI_FUTEX_CMP_REQUEUE | VKI_FUTEX_PRIVATE_FLAG:
PRE_REG_READ6(long, "futex",
vki_u32 *, futex, int, op, int, val,
struct timespec *, utime, vki_u32 *, uaddr2, int, val3);
break;
case VKI_FUTEX_REQUEUE:
+ case VKI_FUTEX_REQUEUE | VKI_FUTEX_PRIVATE_FLAG:
PRE_REG_READ5(long, "futex",
vki_u32 *, futex, int, op, int, val,
struct timespec *, utime, vki_u32 *, uaddr2);
break;
case VKI_FUTEX_WAIT:
+ case VKI_FUTEX_WAIT | VKI_FUTEX_PRIVATE_FLAG:
PRE_REG_READ4(long, "futex",
vki_u32 *, futex, int, op, int, val,
struct timespec *, utime);
break;
case VKI_FUTEX_WAKE:
+ case VKI_FUTEX_WAKE | VKI_FUTEX_PRIVATE_FLAG:
case VKI_FUTEX_FD:
PRE_REG_READ3(long, "futex",
vki_u32 *, futex, int, op, int, val);
@@ -873,16 +877,20 @@
switch(ARG2) {
case VKI_FUTEX_WAIT:
+ case VKI_FUTEX_WAIT | VKI_FUTEX_PRIVATE_FLAG:
if (ARG4 != 0)
PRE_MEM_READ( "futex(timeout)", ARG4, sizeof(struct vki_timespec) );
break;
case VKI_FUTEX_REQUEUE:
+ case VKI_FUTEX_REQUEUE | VKI_FUTEX_PRIVATE_FLAG:
case VKI_FUTEX_CMP_REQUEUE:
+ case VKI_FUTEX_CMP_REQUEUE | VKI_FUTEX_PRIVATE_FLAG:
PRE_MEM_READ( "futex(futex2)", ARG5, sizeof(Int) );
break;
case VKI_FUTEX_WAKE:
+ case VKI_FUTEX_WAKE | VKI_FUTEX_PRIVATE_FLAG:
case VKI_FUTEX_FD:
/* no additional pointers */
break;

View File

@ -0,0 +1,11 @@
--- valgrind-3.2.3/VEX/priv/guest-amd64/toIR.c (revision 1776)
+++ valgrind-3.2.3/VEX/priv/guest-amd64/toIR.c (revision 1777)
@@ -8355,7 +8355,7 @@ DisResult disInstr_AMD64_WRK (
as many invalid combinations as possible. */
n_prefixes = 0;
while (True) {
- if (n_prefixes > 5) goto decode_failure;
+ if (n_prefixes > 7) goto decode_failure;
pre = getUChar(delta);
switch (pre) {
case 0x66: pfx |= PFX_66; break;

View File

@ -1,7 +1,7 @@
Summary: Tool for finding memory management bugs in programs
Name: valgrind
Version: 3.2.3
Release: 5
Release: 6
Epoch: 1
Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2
Patch1: valgrind-3.2.3-openat.patch
@ -10,7 +10,9 @@ Patch3: valgrind-3.2.3-pkg-config.patch
Patch4: valgrind-3.2.3-glibc2_6.patch
Patch5: valgrind-3.2.3-io_destroy.patch
Patch6: valgrind-3.2.3-power5+-6.patch
License: GPL
Patch7: valgrind-3.2.3-private-futex.patch
Patch8: valgrind-3.2.3-x86_64-nops.patch
License: GPLv2
URL: http://www.valgrind.org/
Group: Development/Debuggers
BuildRoot: %{_tmppath}/%{name}-root
@ -44,6 +46,8 @@ find/diagnose.
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%build
%ifarch x86_64 ppc64
@ -131,6 +135,11 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/valgrind*
%changelog
* Fri Aug 31 2007 Jakub Jelinek <jakub@redhat.com> 3.2.3-6
- handle new x86_64 nops (#256801, KDE#148447)
- add support for private futexes (KDE#146781)
- update License tag
* Fri Aug 3 2007 Jakub Jelinek <jakub@redhat.com> 3.2.3-5
- add ppc64-linux symlink in valgrind ppc.rpm, so that when
rpm prefers 32-bit binaries over 64-bit ones 32-bit