Upgrade to valgrind 3.10.1.TEST1.

This commit is contained in:
Mark Wielaard 2014-11-24 11:04:27 +01:00
parent a45fa36527
commit af5c79f851
9 changed files with 16 additions and 529 deletions

1
.gitignore vendored
View File

@ -17,3 +17,4 @@
/valgrind-3.10.0.BETA1.tar.bz2
/valgrind-3.10.0.BETA2.tar.bz2
/valgrind-3.10.0.tar.bz2
/valgrind-3.10.1.TEST1.tar.bz2

View File

@ -1 +1 @@
7c311a72a20388aceced1aa5573ce970 valgrind-3.10.0.tar.bz2
e32d23cad60ef4677af27efb15f247e2 valgrind-3.10.1.TEST1.tar.bz2

View File

@ -1,24 +0,0 @@
commit 5343bb38f44897fcb179b4756d75294719d75fbb
Author: mjw <mjw@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
Date: Sat Oct 11 19:13:35 2014 +0000
Bug 339858 arm64 recognize dmb sy. Data Memory Barrier full SYstem variant.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2975 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c
index 2aa145c..5ebe0a6 100644
--- a/VEX/priv/guest_arm64_toIR.c
+++ b/VEX/priv/guest_arm64_toIR.c
@@ -5537,6 +5537,11 @@ Bool dis_ARM64_branch_etc(/*MB_OUT*/DisResult* dres, UInt insn,
DIP("isb\n");
return True;
}
+ if (INSN(31,0) == 0xD5033FBF) {
+ stmt(IRStmt_MBE(Imbe_Fence));
+ DIP("dmb sy\n");
+ return True;
+ }
if (INSN(31,0) == 0xD5033BBF) {
stmt(IRStmt_MBE(Imbe_Fence));
DIP("dmb ish\n");

View File

@ -1,108 +0,0 @@
commit f9fae2ab83f7263f8d58f83ddd58921cd5d1dca8
Author: sewardj <sewardj@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
Date: Thu Oct 30 23:10:45 2014 +0000
Implement FCVTAS W_S and FCVTAU W_S. Fixes #340509.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2984 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c
index 2677211..acfdc02 100644
--- a/VEX/priv/guest_arm64_toIR.c
+++ b/VEX/priv/guest_arm64_toIR.c
@@ -12189,6 +12189,7 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
/* 31 30 29 28 23 21 20 18 15 9 4
sf 0 0 11110 type 1 rmode opcode 000000 n d
The first 3 bits are really "sf 0 S", but S is always zero.
+ Decode fields: sf,type,rmode,opcode
*/
# define INSN(_bMax,_bMin) SLICE_UInt(insn, (_bMax), (_bMin))
if (INSN(30,29) != BITS2(0,0)
@@ -12205,7 +12206,7 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
UInt dd = INSN(4,0);
// op = 000, 001
- /* -------- FCVT{N,P,M,Z}{S,U} (scalar, integer) -------- */
+ /* -------- FCVT{N,P,M,Z,A}{S,U} (scalar, integer) -------- */
/* 30 23 20 18 15 9 4
sf 00 11110 0x 1 00 000 000000 n d FCVTNS Rd, Fn (round to
sf 00 11110 0x 1 00 001 000000 n d FCVTNU Rd, Fn nearest)
@@ -12213,23 +12214,38 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
---------------- 10 -------------- FCVTM-------- (round to -inf)
---------------- 11 -------------- FCVTZ-------- (round to zero)
+ ---------------- 00 100 ---------- FCVTAS------- (nearest, ties away)
+ ---------------- 00 101 ---------- FCVTAU------- (nearest, ties away)
+
Rd is Xd when sf==1, Wd when sf==0
Fn is Dn when x==1, Sn when x==0
20:19 carry the rounding mode, using the same encoding as FPCR
*/
- if (ty <= X01 && (op == BITS3(0,0,0) || op == BITS3(0,0,1))) {
+ if (ty <= X01
+ && ( ((op == BITS3(0,0,0) || op == BITS3(0,0,1)) && True)
+ || ((op == BITS3(1,0,0) || op == BITS3(1,0,1)) && rm == BITS2(0,0))
+ )
+ ) {
Bool isI64 = bitSF == 1;
Bool isF64 = (ty & 1) == 1;
Bool isU = (op & 1) == 1;
/* Decide on the IR rounding mode to use. */
IRRoundingMode irrm = 8; /*impossible*/
HChar ch = '?';
- switch (rm) {
- case BITS2(0,0): ch = 'n'; irrm = Irrm_NEAREST; break;
- case BITS2(0,1): ch = 'p'; irrm = Irrm_PosINF; break;
- case BITS2(1,0): ch = 'm'; irrm = Irrm_NegINF; break;
- case BITS2(1,1): ch = 'z'; irrm = Irrm_ZERO; break;
- default: vassert(0);
+ if (op == BITS3(0,0,0) || op == BITS3(0,0,1)) {
+ switch (rm) {
+ case BITS2(0,0): ch = 'n'; irrm = Irrm_NEAREST; break;
+ case BITS2(0,1): ch = 'p'; irrm = Irrm_PosINF; break;
+ case BITS2(1,0): ch = 'm'; irrm = Irrm_NegINF; break;
+ case BITS2(1,1): ch = 'z'; irrm = Irrm_ZERO; break;
+ default: vassert(0);
+ }
+ } else {
+ vassert(op == BITS3(1,0,0) || op == BITS3(1,0,1));
+ switch (rm) {
+ case BITS2(0,0): ch = 'a'; irrm = Irrm_NEAREST; break;
+ default: vassert(0);
+ }
}
vassert(irrm != 8);
/* Decide on the conversion primop, based on the source size,
@@ -12254,9 +12270,11 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
(iop == Iop_F32toI32S && irrm == Irrm_ZERO) /* FCVTZS Wd,Sn */
|| (iop == Iop_F32toI32S && irrm == Irrm_NegINF) /* FCVTMS Wd,Sn */
|| (iop == Iop_F32toI32S && irrm == Irrm_PosINF) /* FCVTPS Wd,Sn */
+ || (iop == Iop_F32toI32S && irrm == Irrm_NEAREST)/* FCVT{A,N}S W,S */
/* F32toI32U */
|| (iop == Iop_F32toI32U && irrm == Irrm_ZERO) /* FCVTZU Wd,Sn */
|| (iop == Iop_F32toI32U && irrm == Irrm_NegINF) /* FCVTMU Wd,Sn */
+ || (iop == Iop_F32toI32U && irrm == Irrm_NEAREST)/* FCVT{A,N}U W,S */
/* F32toI64S */
|| (iop == Iop_F32toI64S && irrm == Irrm_ZERO) /* FCVTZS Xd,Sn */
/* F32toI64U */
commit 9f69352a36003c35cfe8ffe01ba8ef0f830b4198
Author: mjw <mjw@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
Date: Tue Nov 4 15:30:42 2014 +0000
Bug 340632 arm64: unhandled instruction fcvtas
git-svn-id: svn://svn.valgrind.org/vex/trunk@2987 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c
index 4229d6a..1426d00 100644
--- a/VEX/priv/guest_arm64_toIR.c
+++ b/VEX/priv/guest_arm64_toIR.c
@@ -12304,6 +12304,7 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
|| (iop == Iop_F64toI64S && irrm == Irrm_ZERO) /* FCVTZS Xd,Dn */
|| (iop == Iop_F64toI64S && irrm == Irrm_NegINF) /* FCVTMS Xd,Dn */
|| (iop == Iop_F64toI64S && irrm == Irrm_PosINF) /* FCVTPS Xd,Dn */
+ || (iop == Iop_F64toI64S && irrm == Irrm_NEAREST) /* FCVT{A,N}S Xd,Dn */
/* F64toI64U */
|| (iop == Iop_F64toI64U && irrm == Irrm_ZERO) /* FCVTZU Xd,Dn */
|| (iop == Iop_F64toI64U && irrm == Irrm_NegINF) /* FCVTMU Xd,Dn */

View File

@ -1,33 +0,0 @@
commit 35343350beb699e87bae86a5466895de6d9827e9
Author: sewardj <sewardj@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
Date: Thu Oct 30 15:37:16 2014 +0000
Implement frintx d_d and s_s. Fixes #339926.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2981 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c
index 7f22f13..0377139 100644
--- a/VEX/priv/guest_arm64_toIR.c
+++ b/VEX/priv/guest_arm64_toIR.c
@@ -11921,7 +11921,7 @@ Bool dis_AdvSIMD_fp_data_proc_1_source(/*MB_OUT*/DisResult* dres, UInt insn)
011 zero (FRINTZ)
000 tieeven
100 tieaway (FRINTA) -- !! FIXME KLUDGED !!
- 110 per FPCR + "exact = TRUE"
+ 110 per FPCR + "exact = TRUE" (FRINTX)
101 unallocated
*/
Bool isD = (ty & 1) == 1;
@@ -11935,6 +11935,10 @@ Bool dis_AdvSIMD_fp_data_proc_1_source(/*MB_OUT*/DisResult* dres, UInt insn)
case BITS3(0,0,1): ch = 'p'; irrmE = mkU32(Irrm_PosINF); break;
// The following is a kludge. Should be: Irrm_NEAREST_TIE_AWAY_0
case BITS3(1,0,0): ch = 'a'; irrmE = mkU32(Irrm_NEAREST); break;
+ // I am unsure about the following, due to the "integral exact"
+ // description in the manual. What does it mean?
+ case BITS3(1,1,0):
+ ch = 'x'; irrmE = mkexpr(mk_get_IR_rounding_mode()); break;
default: break;
}
if (irrmE) {

View File

@ -1,275 +0,0 @@
diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
index e3f736b..dd13bda 100644
--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
@@ -953,6 +953,7 @@ static SyscallTableEntry syscall_main_table[] = {
LINX_(__NR_setresuid, sys_setresuid), // 147
LINXY(__NR_getresuid, sys_getresuid), // 148
LINXY(__NR_getresgid, sys_getresgid), // 150
+ GENXY(__NR_times, sys_times), // 153
GENX_(__NR_setpgid, sys_setpgid), // 154
GENX_(__NR_getpgid, sys_getpgid), // 155
GENXY(__NR_uname, sys_newuname), // 160
@@ -1068,7 +1069,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ
//ZZ GENX_(__NR_rmdir, sys_rmdir), // 40
//ZZ LINXY(__NR_pipe, sys_pipe), // 42
-//ZZ GENXY(__NR_times, sys_times), // 43
//ZZ // GENX_(__NR_prof, sys_ni_syscall), // 44
//ZZ LINX_(__NR_setgid, sys_setgid16), // 46
diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
index dd13bda..045b9b9 100644
--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
@@ -956,6 +956,8 @@ static SyscallTableEntry syscall_main_table[] = {
GENXY(__NR_times, sys_times), // 153
GENX_(__NR_setpgid, sys_setpgid), // 154
GENX_(__NR_getpgid, sys_getpgid), // 155
+ GENX_(__NR_getsid, sys_getsid), // 156
+ GENX_(__NR_setsid, sys_setsid), // 157
GENXY(__NR_uname, sys_newuname), // 160
GENXY(__NR_getrlimit, sys_old_getrlimit), // 163
GENX_(__NR_setrlimit, sys_setrlimit), // 164
@@ -1092,7 +1094,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ GENX_(__NR_getppid, sys_getppid), // 64
//ZZ
//ZZ GENX_(__NR_getpgrp, sys_getpgrp), // 65
-//ZZ GENX_(__NR_setsid, sys_setsid), // 66
//ZZ LINXY(__NR_sigaction, sys_sigaction), // 67
//ZZ //zz // (__NR_sgetmask, sys_sgetmask), // 68 */* (ANSI C)
//ZZ //zz // (__NR_ssetmask, sys_ssetmask), // 69 */* (ANSI C)
@@ -1176,7 +1177,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ GENX_(__NR_flock, sys_flock), // 143
//ZZ GENX_(__NR_msync, sys_msync), // 144
//ZZ
-//ZZ GENX_(__NR_getsid, sys_getsid), // 147
//ZZ GENX_(__NR_fdatasync, sys_fdatasync), // 148
//ZZ LINXY(__NR__sysctl, sys_sysctl), // 149
//ZZ
commit 92379dfe8ab904b8f7ecfa2a6c9094cf3cc2481d
Author: sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Date: Thu Oct 30 13:54:24 2014 +0000
Bug 339940 - (arm64/aarch64) unhandled syscall: 83 (sys_fdatasync) + patch
Patch from David Abdurachmanov <davidlt@cern.ch>
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14675 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
index 045b9b9..69a997c 100644
--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
@@ -922,6 +922,7 @@ static SyscallTableEntry syscall_main_table[] = {
LINX_(__NR_utimensat, sys_utimensat), // 88
GENX_(__NR_fsync, sys_fsync), // 82
+ GENX_(__NR_fdatasync, sys_fdatasync), // 83
LINXY(__NR_timerfd_create, sys_timerfd_create), // 85
LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 86
LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 87
@@ -1177,7 +1178,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ GENX_(__NR_flock, sys_flock), // 143
//ZZ GENX_(__NR_msync, sys_msync), // 144
//ZZ
-//ZZ GENX_(__NR_fdatasync, sys_fdatasync), // 148
//ZZ LINXY(__NR__sysctl, sys_sysctl), // 149
//ZZ
//ZZ GENX_(__NR_munlock, sys_munlock), // 151
commit 20a8d68dec8168d8a3df1b73f8128212344bcab0
Author: sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Date: Thu Oct 30 14:11:32 2014 +0000
Bug 340028 - unhandled syscalls for arm64 (msync, pread64, setreuid
and setregid)
Patch from dimitry@google.com.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14676 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
index 69a997c..d0fe78d 100644
--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
@@ -910,6 +910,7 @@ static SyscallTableEntry syscall_main_table[] = {
GENX_(__NR_write, sys_write), // 64
GENXY(__NR_readv, sys_readv), // 65
GENX_(__NR_writev, sys_writev), // 66
+ GENXY(__NR_pread64, sys_pread64), // 67
GENX_(__NR_pwrite64, sys_pwrite64), // 68
LINX_(__NR_pselect6, sys_pselect6), // 72
LINXY(__NR_ppoll, sys_ppoll), // 73
@@ -951,6 +952,8 @@ static SyscallTableEntry syscall_main_table[] = {
PLAX_(__NR_rt_sigreturn, sys_rt_sigreturn), // 139
GENX_(__NR_setpriority, sys_setpriority), // 140
GENX_(__NR_getpriority, sys_getpriority), // 141
+ GENX_(__NR_setregid, sys_setregid), // 143
+ GENX_(__NR_setreuid, sys_setreuid), // 145
LINX_(__NR_setresuid, sys_setresuid), // 147
LINXY(__NR_getresuid, sys_getresuid), // 148
LINXY(__NR_getresgid, sys_getresgid), // 150
@@ -1017,6 +1020,7 @@ static SyscallTableEntry syscall_main_table[] = {
PLAX_(__NR3264_fadvise64, sys_fadvise64), // 223
GENXY(__NR_mprotect, sys_mprotect), // 226
+ GENX_(__NR_msync, sys_msync), // 227
GENX_(__NR_mlock, sys_mlock), // 228
GENX_(__NR_mlockall, sys_mlockall), // 230
GENX_(__NR_madvise, sys_madvise), // 233
@@ -1099,8 +1103,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ //zz // (__NR_sgetmask, sys_sgetmask), // 68 */* (ANSI C)
//ZZ //zz // (__NR_ssetmask, sys_ssetmask), // 69 */* (ANSI C)
//ZZ //zz
-//ZZ LINX_(__NR_setreuid, sys_setreuid16), // 70
-//ZZ LINX_(__NR_setregid, sys_setregid16), // 71
//ZZ PLAX_(__NR_sigsuspend, sys_sigsuspend), // 72
//ZZ LINXY(__NR_sigpending, sys_sigpending), // 73
//ZZ //zz // (__NR_sethostname, sys_sethostname), // 74 */*
@@ -1176,7 +1178,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ GENXY(__NR_getdents, sys_getdents), // 141
//ZZ GENX_(__NR__newselect, sys_select), // 142
//ZZ GENX_(__NR_flock, sys_flock), // 143
-//ZZ GENX_(__NR_msync, sys_msync), // 144
//ZZ
//ZZ LINXY(__NR__sysctl, sys_sysctl), // 149
//ZZ
@@ -1207,7 +1208,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ LINXY(__NR_rt_sigpending, sys_rt_sigpending), // 176
//ZZ LINXY(__NR_rt_sigtimedwait, sys_rt_sigtimedwait),// 177
//ZZ
-//ZZ GENXY(__NR_pread64, sys_pread64), // 180
//ZZ LINX_(__NR_chown, sys_chown16), // 182
//ZZ
//ZZ LINX_(__NR_capset, sys_capset), // 185
commit f78d99007454b34d0619cabc99c3f66613b05285
Author: sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Date: Thu Oct 30 14:28:14 2014 +0000
Bug 340236 - 4 unhandled syscalls on aarch64/arm64:
mknodat (33), fchdir (50), chroot (51), fchownat (54)
Patch from Miroslav Franc (mfranc@redhat.com)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14677 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
index d0fe78d..54238ed 100644
--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
@@ -880,6 +880,7 @@ static SyscallTableEntry syscall_main_table[] = {
LINX_(__NR_inotify_add_watch, sys_inotify_add_watch), // 27
LINX_(__NR_inotify_rm_watch, sys_inotify_rm_watch), // 28
LINXY(__NR_ioctl, sys_ioctl), // 29
+ LINX_(__NR_mknodat, sys_mknodat), // 33
LINX_(__NR_mkdirat, sys_mkdirat), // 34
LINX_(__NR_unlinkat, sys_unlinkat), // 35
LINX_(__NR_symlinkat, sys_symlinkat), // 36
@@ -896,7 +897,10 @@ static SyscallTableEntry syscall_main_table[] = {
LINX_(__NR_fallocate, sys_fallocate), // 47
LINX_(__NR_faccessat, sys_faccessat), // 48
GENX_(__NR_chdir, sys_chdir), // 49
+ GENX_(__NR_fchdir, sys_fchdir), // 50
+ GENX_(__NR_chroot, sys_chroot), // 51
LINX_(__NR_fchmodat, sys_fchmodat), // 53
+ LINX_(__NR_fchownat, sys_fchownat), // 54
LINXY(__NR_openat, sys_openat), // 56
GENXY(__NR_close, sys_close), // 57
LINXY(__NR_pipe2, sys_pipe2), // 59
@@ -1093,7 +1097,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ // GENX_(__NR_ulimit, sys_ni_syscall), // 58
//ZZ //zz // (__NR_oldolduname, sys_olduname), // 59 Linux -- obsolete
//ZZ //zz
-//ZZ GENX_(__NR_chroot, sys_chroot), // 61
//ZZ //zz // (__NR_ustat, sys_ustat) // 62 SVr4 -- deprecated
//ZZ GENXY(__NR_dup2, sys_dup2), // 63
//ZZ GENX_(__NR_getppid, sys_getppid), // 64
@@ -1165,7 +1168,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ //zz // Nb: get_kernel_syms() was removed 2.4-->2.6
//ZZ // GENX_(__NR_get_kernel_syms, sys_ni_syscall), // 130
//ZZ GENX_(__NR_getpgid, sys_getpgid), // 132
-//ZZ GENX_(__NR_fchdir, sys_fchdir), // 133
//ZZ //zz // (__NR_bdflush, sys_bdflush), // 134 */Linux
//ZZ //zz
//ZZ //zz // (__NR_sysfs, sys_sysfs), // 135 SVr4
@@ -1329,8 +1331,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ LINX_(__NR_inotify_init, sys_inotify_init), // 291
//ZZ // LINX_(__NR_migrate_pages, sys_migrate_pages), // 294
//ZZ
-//ZZ LINX_(__NR_mknodat, sys_mknodat), // 297
-//ZZ LINX_(__NR_fchownat, sys_fchownat), // 298
//ZZ LINX_(__NR_futimesat, sys_futimesat), // 326 on arm
//ZZ
//ZZ PLAXY(__NR_fstatat64, sys_fstatat64), // 300
commit 076d5f343c3753ea0db86701f922b7c84a83ec38
Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Date: Tue Nov 4 13:43:21 2014 +0000
Bug 340630 arm64: fchmod (52) and fchown (55) syscalls not recognized.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14686 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
index 54238ed..f8a59c1 100644
--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
@@ -899,8 +899,10 @@ static SyscallTableEntry syscall_main_table[] = {
GENX_(__NR_chdir, sys_chdir), // 49
GENX_(__NR_fchdir, sys_fchdir), // 50
GENX_(__NR_chroot, sys_chroot), // 51
+ GENX_(__NR_fchmod, sys_fchmod), // 52
LINX_(__NR_fchmodat, sys_fchmodat), // 53
LINX_(__NR_fchownat, sys_fchownat), // 54
+ GENX_(__NR_fchown, sys_fchown), // 55
LINXY(__NR_openat, sys_openat), // 56
GENXY(__NR_close, sys_close), // 57
LINXY(__NR_pipe2, sys_pipe2), // 59
@@ -1129,7 +1131,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ GENXY(__NR_munmap, sys_munmap), // 91
//ZZ GENX_(__NR_truncate, sys_truncate), // 92
//ZZ GENX_(__NR_ftruncate, sys_ftruncate), // 93
-//ZZ GENX_(__NR_fchmod, sys_fchmod), // 94
//ZZ
//ZZ LINX_(__NR_fchown, sys_fchown16), // 95
//ZZ // GENX_(__NR_profil, sys_ni_syscall), // 98
@@ -1237,7 +1238,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ
//ZZ GENXY(__NR_getgroups32, sys_getgroups), // 205
//ZZ GENX_(__NR_setgroups32, sys_setgroups), // 206
-//ZZ GENX_(__NR_fchown32, sys_fchown), // 207
//ZZ LINX_(__NR_setresuid32, sys_setresuid), // 208
//ZZ LINXY(__NR_getresuid32, sys_getresuid), // 209
//ZZ
commit 2562dd489ed5ff9d5eb73f7d2957eb3b2c5dc801
Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Date: Thu Nov 13 13:03:25 2014 +0000
Bug 340922 arm64: unhandled getgroups/setgroups syscalls.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14716 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
index 59e1cf6..cd27ad2 100644
--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
@@ -968,6 +968,8 @@ static SyscallTableEntry syscall_main_table[] = {
GENX_(__NR_getpgid, sys_getpgid), // 155
GENX_(__NR_getsid, sys_getsid), // 156
GENX_(__NR_setsid, sys_setsid), // 157
+ GENXY(__NR_getgroups, sys_getgroups), // 158
+ GENX_(__NR_setgroups, sys_setgroups), // 159
GENXY(__NR_uname, sys_newuname), // 160
GENXY(__NR_getrlimit, sys_old_getrlimit), // 163
GENX_(__NR_setrlimit, sys_setrlimit), // 164
@@ -1237,8 +1239,6 @@ static SyscallTableEntry syscall_main_table[] = {
//ZZ GENX_(__NR_setreuid32, sys_setreuid), // 203
//ZZ GENX_(__NR_setregid32, sys_setregid), // 204
//ZZ
-//ZZ GENXY(__NR_getgroups32, sys_getgroups), // 205
-//ZZ GENX_(__NR_setgroups32, sys_setgroups), // 206
//ZZ LINX_(__NR_setresuid32, sys_setresuid), // 208
//ZZ LINXY(__NR_getresuid32, sys_getresuid), // 209
//ZZ

View File

@ -1,21 +0,0 @@
commit 9a20b6daf975d94f24d8c2688eb0159c7e651ff6
Author: sewardj <sewardj@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
Date: Thu Oct 30 15:54:53 2014 +0000
Implement fcvtmu x_d. Fixes #339927.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2982 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c
index 0377139..23aea80 100644
--- a/VEX/priv/guest_arm64_toIR.c
+++ b/VEX/priv/guest_arm64_toIR.c
@@ -12241,6 +12241,7 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
|| (iop == Iop_F64toI64S && irrm == Irrm_PosINF) /* FCVTPS Xd,Dn */
/* F64toI64U */
|| (iop == Iop_F64toI64U && irrm == Irrm_ZERO) /* FCVTZU Xd,Dn */
+ || (iop == Iop_F64toI64U && irrm == Irrm_NegINF) /* FCVTMU Xd,Dn */
|| (iop == Iop_F64toI64U && irrm == Irrm_PosINF) /* FCVTPU Xd,Dn */
) {
/* validated */

View File

@ -1,31 +0,0 @@
diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
index adabf64..8f7e4aa 100644
--- a/VEX/priv/guest_ppc_toIR.c
+++ b/VEX/priv/guest_ppc_toIR.c
@@ -18783,10 +18783,26 @@ DisResult disInstr_PPC_WRK (
UInt word2 = mode64 ? 0x78006800 : 0x5400683E;
UInt word3 = mode64 ? 0x7800E802 : 0x5400E83E;
UInt word4 = mode64 ? 0x78009802 : 0x5400983E;
+ Bool is_special_preamble = False;
if (getUIntPPCendianly(code+ 0) == word1 &&
getUIntPPCendianly(code+ 4) == word2 &&
getUIntPPCendianly(code+ 8) == word3 &&
getUIntPPCendianly(code+12) == word4) {
+ is_special_preamble = True;
+ } else if (! mode64 &&
+ getUIntPPCendianly(code+ 0) == 0x54001800 &&
+ getUIntPPCendianly(code+ 4) == 0x54006800 &&
+ getUIntPPCendianly(code+ 8) == 0x5400E800 &&
+ getUIntPPCendianly(code+12) == 0x54009800) {
+ static Bool reported = False;
+ if (!reported) {
+ vex_printf("disInstr(ppc): old ppc32 instruction magic detected. Code might clobber r0.\n");
+ vex_printf("disInstr(ppc): source needs to be recompiled against latest valgrind.h.\n");
+ reported = True;
+ }
+ is_special_preamble = True;
+ }
+ if (is_special_preamble) {
/* Got a "Special" instruction preamble. Which one is it? */
if (getUIntPPCendianly(code+16) == 0x7C210B78 /* or 1,1,1 */) {
/* %R3 = client_request ( %R4 ) */

View File

@ -2,8 +2,8 @@
Summary: Tool for finding memory management bugs in programs
Name: %{?scl_prefix}valgrind
Version: 3.10.0
Release: 6%{?dist}
Version: 3.10.1
Release: 0.1.TEST1%{?dist}
Epoch: 1
License: GPLv2+
URL: http://www.valgrind.org/
@ -44,7 +44,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define _find_debuginfo_dwz_opts %{nil}
%undefine _include_minidebuginfo
Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2
Source0: http://www.valgrind.org/downloads/valgrind-%{version}.TEST1.tar.bz2
# Needs investigation and pushing upstream
Patch1: valgrind-3.9.0-cachegrind-improvements.patch
@ -58,32 +58,6 @@ Patch3: valgrind-3.9.0-stat_h.patch
# Make ld.so supressions slightly less specific.
Patch4: valgrind-3.9.0-ldso-supp.patch
# Recognize and warn about usage of old (broken) ppc32 magic instr preamble.
# https://bugs.kde.org/show_bug.cgi?id=278808#c6
Patch5: valgrind-3.10.0-old-ppc32-instr-magic.patch
# KDE#339853 arm64 times syscall unknown
# KDE#339856 arm64 unhandled getsid/setsid syscalls.
# KDE#339940 arm64 unhandled syscall: 83 (sys_fdatasync)
# KDE#340028 unhandled syscalls for arm64 (msync, pread64, setreuid, setregid)
# KDE#340236 arm64 mknodat (33), fchdir (50), chroot (51), fchownat (54)
# KDE#340630 arm64 fchmod (52) and fchown (55) syscalls not recognized.
# KDE#340922 arm64: unhandled getgroups/setgroups syscalls.
Patch6: valgrind-3.10.0-aarch64-syscalls.patch
# KDE#339858 arm64 recognize dmb sy. Data Memory Barrier full SYstem variant.
Patch7: valgrind-3.10.0-aarch64-dmb-sy.patch
# KDE#339926 Implement frintx d_d and s_s.
Patch8: valgrind-3.10.0-aarch64-frint.patch
# KDE#339927 Implement fcvtmu x_d.
Patch9: valgrind-3.10.0-fcvtmu.patch
# KDE#340509 Implement FCVTAS W_S and FCVTAU W_S.
# KDE#340632 arm64: unhandled instruction fcvtas
Patch10: valgrind-3.10.0-aarch64-fcvta.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
@ -180,18 +154,12 @@ See the section on Debugging MPI Parallel Programs with Valgrind in the
Valgrind User Manual for details.
%prep
%setup -q -n %{?scl:%{pkg_name}}%{!?scl:%{name}}-%{version}
%setup -q -n %{?scl:%{pkg_name}}%{!?scl:%{name}}-%{version}.TEST1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%build
# We need to use the software collection compiler and binutils if available.
@ -340,6 +308,16 @@ echo ===============END TESTING===============
%endif
%changelog
* Mon Nov 24 2014 Mark Wielaard <mjw@redhat.com> - 3.10.1-0.1.TEST1
- Upgrade to valgrind 3.10.1.TEST1
- Remove patches that are now upstream:
- valgrind-3.10.0-old-ppc32-instr-magic.patch
- valgrind-3.10.0-aarch64-syscalls.patch
- valgrind-3.10.0-aarch64-dmb-sy.patch
- valgrind-3.10.0-aarch64-frint.patch
- valgrind-3.10.0-fcvtmu.patch
- valgrind-3.10.0-aarch64-fcvta.patch
* Wed Nov 19 2014 Mark Wielaard <mjw@redhat.com> - 3.10.0-6
- Add getgroups/setgroups to valgrind-3.10.0-aarch64-syscalls.patch