From 4113c768ffbaf62e0e055599ce4fe4ba5e03b337 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Mar 05 2015 13:21:54 +0000 Subject: import valgrind-3.10.0-7.el7 --- diff --git a/.gitignore b/.gitignore index 16e4fba..25b6ceb 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/valgrind-3.9.0.tar.bz2 +SOURCES/valgrind-3.10.0.tar.bz2 diff --git a/.valgrind.metadata b/.valgrind.metadata index 5535f2e..33a21c5 100644 --- a/.valgrind.metadata +++ b/.valgrind.metadata @@ -1 +1 @@ -9415e28933de9d6687f993c4bb797e6bd49583f1 SOURCES/valgrind-3.9.0.tar.bz2 +aec0b8cd042ec36c8cce4f6027b98627ab202f26 SOURCES/valgrind-3.10.0.tar.bz2 diff --git a/SOURCES/valgrind-3.10.0-aarch64-dmb-sy.patch b/SOURCES/valgrind-3.10.0-aarch64-dmb-sy.patch new file mode 100644 index 0000000..7f1de8a --- /dev/null +++ b/SOURCES/valgrind-3.10.0-aarch64-dmb-sy.patch @@ -0,0 +1,24 @@ +commit 5343bb38f44897fcb179b4756d75294719d75fbb +Author: mjw +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"); diff --git a/SOURCES/valgrind-3.10.0-aarch64-fcvta.patch b/SOURCES/valgrind-3.10.0-aarch64-fcvta.patch new file mode 100644 index 0000000..8146c3b --- /dev/null +++ b/SOURCES/valgrind-3.10.0-aarch64-fcvta.patch @@ -0,0 +1,108 @@ +commit f9fae2ab83f7263f8d58f83ddd58921cd5d1dca8 +Author: sewardj +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 +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 */ diff --git a/SOURCES/valgrind-3.10.0-aarch64-frint.patch b/SOURCES/valgrind-3.10.0-aarch64-frint.patch new file mode 100644 index 0000000..41b67bb --- /dev/null +++ b/SOURCES/valgrind-3.10.0-aarch64-frint.patch @@ -0,0 +1,33 @@ +commit 35343350beb699e87bae86a5466895de6d9827e9 +Author: sewardj +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) { diff --git a/SOURCES/valgrind-3.10.0-aarch64-syscalls.patch b/SOURCES/valgrind-3.10.0-aarch64-syscalls.patch new file mode 100644 index 0000000..55475c3 --- /dev/null +++ b/SOURCES/valgrind-3.10.0-aarch64-syscalls.patch @@ -0,0 +1,275 @@ +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 +Date: Thu Oct 30 13:54:24 2014 +0000 + + Bug 339940 - (arm64/aarch64) unhandled syscall: 83 (sys_fdatasync) + patch + Patch from David Abdurachmanov + + + 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 +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 +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 +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 +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 diff --git a/SOURCES/valgrind-3.10.0-fcvtmu.patch b/SOURCES/valgrind-3.10.0-fcvtmu.patch new file mode 100644 index 0000000..617b088 --- /dev/null +++ b/SOURCES/valgrind-3.10.0-fcvtmu.patch @@ -0,0 +1,21 @@ +commit 9a20b6daf975d94f24d8c2688eb0159c7e651ff6 +Author: sewardj +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 */ diff --git a/SOURCES/valgrind-3.10.0-old-ppc32-instr-magic.patch b/SOURCES/valgrind-3.10.0-old-ppc32-instr-magic.patch new file mode 100644 index 0000000..8252e33 --- /dev/null +++ b/SOURCES/valgrind-3.10.0-old-ppc32-instr-magic.patch @@ -0,0 +1,31 @@ +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 ) */ diff --git a/SOURCES/valgrind-3.10.1-mempcpy.patch b/SOURCES/valgrind-3.10.1-mempcpy.patch new file mode 100644 index 0000000..aff3d23 --- /dev/null +++ b/SOURCES/valgrind-3.10.1-mempcpy.patch @@ -0,0 +1,20 @@ +commit a7abe3d4ad8757a65b53230755a12b9ae5e79ffa +Author: mjw +Date: Tue Jan 13 16:10:20 2015 +0000 + + BZ #342795 Internal glibc __GI_mempcpy call should be intercepted. + + git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14866 a5019735-40e9-0310-863c-91ae7b9d1cf9 + +diff --git a/shared/vg_replace_strmem.c b/shared/vg_replace_strmem.c +index 4ca652b..5203306 100644 +--- a/shared/vg_replace_strmem.c ++++ b/shared/vg_replace_strmem.c +@@ -1363,6 +1363,7 @@ static inline void my_exit ( int x ) + + #if defined(VGO_linux) + GLIBC25_MEMPCPY(VG_Z_LIBC_SONAME, mempcpy) ++ GLIBC25_MEMPCPY(VG_Z_LIBC_SONAME, __GI_mempcpy) + GLIBC25_MEMPCPY(VG_Z_LD_SO_1, mempcpy) /* ld.so.1 */ + GLIBC25_MEMPCPY(VG_Z_LD_LINUX_SO_3, mempcpy) /* ld-linux.so.3 */ + GLIBC25_MEMPCPY(VG_Z_LD_LINUX_X86_64_SO_2, mempcpy) /* ld-linux-x86-64.so.2 */ diff --git a/SOURCES/valgrind-3.9.0-amd64_gen_insn_test.patch b/SOURCES/valgrind-3.9.0-amd64_gen_insn_test.patch deleted file mode 100644 index c6dec0b..0000000 --- a/SOURCES/valgrind-3.9.0-amd64_gen_insn_test.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 56d49b46587a6faffc98662f7d22450df0294019 -Author: tom -Date: Fri Nov 1 10:46:28 2013 +0000 - - Clear direction flag after tests on amd64. BZ#326983. - - - git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13709 a5019735-40e9-0310-863c-91ae7b9d1cf9 - -diff --git a/none/tests/amd64/gen_insn_test.pl b/none/tests/amd64/gen_insn_test.pl -index 409249e..863e560 100644 ---- a/none/tests/amd64/gen_insn_test.pl -+++ b/none/tests/amd64/gen_insn_test.pl -@@ -850,6 +850,7 @@ while (<>) - } - - # print qq| \"frstor %$stateargnum\\n\"\n|; -+ print qq| \"cld\\n\"\n|; - - print qq| :|; - diff --git a/SOURCES/valgrind-3.9.0-dwz-alt-buildid.patch b/SOURCES/valgrind-3.9.0-dwz-alt-buildid.patch deleted file mode 100644 index ce30e3b..0000000 --- a/SOURCES/valgrind-3.9.0-dwz-alt-buildid.patch +++ /dev/null @@ -1,26 +0,0 @@ -commit 568d77ce8e0a508fbbd9e71e9938d6dab1639912 -Author: mjw -Date: Wed Nov 20 11:54:38 2013 +0000 - - dwz compressed alternate .debug_info and .debug_str not read correctly. - - Bug #327837. The buildid from the .gnu_debugaltlink section was parsed - incorrectly (from the wrong offset). Causing the debug alt file not to - be found. - - git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13715 a5019735-40e9-0310-863c-91ae7b9d1cf9 - -diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c -index e72e0d7..b7d574a 100644 ---- a/coregrind/m_debuginfo/readelf.c -+++ b/coregrind/m_debuginfo/readelf.c -@@ -2609,7 +2609,8 @@ Bool ML_(read_elf_debug_info) ( struct _DebugInfo* di ) - vg_assert(aimg == NULL); - - if (debugaltlink_escn.img != NULL) { -- UInt buildid_offset = ML_(img_strlen)(debugaltlink_escn.img, 0)+1; -+ UInt buildid_offset = ML_(img_strlen)(debugaltlink_escn.img, -+ debugaltlink_escn.ioff)+1; - - vg_assert(buildid_offset < debugaltlink_escn.szB); - diff --git a/SOURCES/valgrind-3.9.0-gdbserver_tests-mcinvoke-ppc64.patch b/SOURCES/valgrind-3.9.0-gdbserver_tests-mcinvoke-ppc64.patch deleted file mode 100644 index 9e6c3c9..0000000 --- a/SOURCES/valgrind-3.9.0-gdbserver_tests-mcinvoke-ppc64.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- valgrind/gdbserver_tests/mcinvokeWS.vgtest (revision 12990) -+++ valgrind/gdbserver_tests/mcinvokeWS.vgtest (working copy) -@@ -4,7 +4,8 @@ - args: 1 10000000 0 -S-S-S-S - vgopts: --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeWS - stderr_filter: filter_make_empty --prereq: test -f vgdb.ptraceinvoker -+# One some ppc64 installs this test just hangs -+prereq: test -f vgdb.ptraceinvoker && ! `../tests/arch_test ppc64` - progB: invoker - argsB: 10 --vgdb-prefix=./vgdb-prefix-mcinvokeWS --wait=60 -c v.wait 0 - # if the --wait is not enough, the test will fail or block -Index: gdbserver_tests/mcinvokeRU.vgtest -=================================================================== ---- valgrind/gdbserver_tests/mcinvokeRU.vgtest (revision 12990) -+++ valgrind/gdbserver_tests/mcinvokeRU.vgtest (working copy) -@@ -7,6 +7,8 @@ - # as the Valgrind process is always busy, we do not need the vgdb.ptraceinvoker prereq. - # We even disable ptrace invoker to avoid spurious attach error message - # on kernels where ptrace is restricted. -+# One some ppc64 installs this test just hangs -+prereq: ! `../tests/arch_test ppc64` - progB: invoker - argsB: 10 --vgdb-prefix=./vgdb-prefix-mcinvokeRU --max-invoke-ms=0 --wait=60 -c v.wait 0 - # if the --wait is not enough, the test will fail or block. diff --git a/SOURCES/valgrind-3.9.0-manpage-memcheck-options.patch b/SOURCES/valgrind-3.9.0-manpage-memcheck-options.patch deleted file mode 100644 index c50444e..0000000 --- a/SOURCES/valgrind-3.9.0-manpage-memcheck-options.patch +++ /dev/null @@ -1,245 +0,0 @@ -commit 323d397747ff81a5706cce63f45cc1b2109db252 -Author: mjw -Date: Thu Dec 12 21:20:48 2013 +0000 - - Bug 328711 valgrind.1 manpage "memcheck options" section is badly generated - - Add missing para tags inside listitems. (Miroslav Franc, mfranc@redhat.com) - - git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13758 a5019735-40e9-0310-863c-91ae7b9d1cf9 - -diff --git a/memcheck/docs/mc-manual.xml b/memcheck/docs/mc-manual.xml -index a53bf86..e913e89 100644 ---- a/memcheck/docs/mc-manual.xml -+++ b/memcheck/docs/mc-manual.xml -@@ -610,14 +610,14 @@ when is specified. - in one of the following ways: - - -- a comma separated list of one or more of -- . -+ a comma separated list of one or more of -+ . - - -- to specify the complete set (all leak kinds). -+ to specify the complete set (all leak kinds). - - -- for the empty set. -+ for the empty set. - - - -@@ -721,16 +721,16 @@ is - one of the following ways: - - -- a comma separated list of one or more of -- . -+ a comma separated list of one or more of -+ . - - -- to specify the complete set (all leak kinds). -+ to specify the complete set (all leak kinds). - It is equivalent to -- . -+ . - - -- for the empty set. -+ for the empty set. - - - -@@ -763,17 +763,17 @@ is - The heuristic set is specified in one of the following ways: - - -- a comma separated list of one or more of -- . -+ a comma separated list of one or more of -+ . - - -- to activate the complete set of -+ to activate the complete set of - heuristics. - It is equivalent to -- . -+ . - - -- for the empty set. -+ for the empty set. - - - -@@ -797,18 +797,24 @@ is - These options provide an alternative way to specify the leak kinds to show: - - -+ - is equivalent to - . -+ - - -+ - is equivalent to - . -+ - - -+ - is equivalent to - . - Note that has no effect - if is specified. -+ - - - ---- valgrind-3.9.0/docs/valgrind.1.orig 2013-12-12 22:34:11.912168437 +0100 -+++ valgrind-3.9.0/docs/valgrind.1 2013-12-12 22:34:18.686421525 +0100 -@@ -2,12 +2,12 @@ - .\" Title: VALGRIND - .\" Author: [see the "Author" section] - .\" Generator: DocBook XSL Stylesheets v1.78.1 --.\" Date: 11/01/2013 -+.\" Date: 12/12/2013 - .\" Manual: Release 3.9.0 - .\" Source: Release 3.9.0 - .\" Language: English - .\" --.TH "VALGRIND" "1" "11/01/2013" "Release 3.9.0" "Release 3.9.0" -+.TH "VALGRIND" "1" "12/12/2013" "Release 3.9.0" "Release 3.9.0" - .\" ----------------------------------------------------------------- - .\" * Define some portability stuff - .\" ----------------------------------------------------------------- -@@ -1080,8 +1080,8 @@ - .IP \(bu 2.3 - .\} - a comma separated list of one or more of -- \fBdefinite indirect possible reachable\fR\&. -- .RE -+\fBdefinite indirect possible reachable\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1091,10 +1091,10 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fBall\fR to specify the complete set (all leak kinds)\&. -- It is equivalent to -- \fB\-\-show\-leak\-kinds=definite,indirect,possible,reachable\fR\&. -- .RE -+\fBall\fR -+to specify the complete set (all leak kinds)\&. It is equivalent to -+\fB\-\-show\-leak\-kinds=definite,indirect,possible,reachable\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1104,8 +1104,9 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fBnone\fR for the empty set\&. -- .RE -+\fBnone\fR -+for the empty set\&. -+.RE - .sp - .RE - .PP -@@ -1130,8 +1131,8 @@ - .IP \(bu 2.3 - .\} - a comma separated list of one or more of -- \fBstdstring newarray multipleinheritance\fR\&. -- .RE -+\fBstdstring newarray multipleinheritance\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1141,11 +1142,10 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fBall\fR to activate the complete set of -- heuristics\&. -- It is equivalent to -- \fB\-\-leak\-check\-heuristics=stdstring,newarray,multipleinheritance\fR\&. -- .RE -+\fBall\fR -+to activate the complete set of heuristics\&. It is equivalent to -+\fB\-\-leak\-check\-heuristics=stdstring,newarray,multipleinheritance\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1155,8 +1155,9 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fBnone\fR for the empty set\&. -- .RE -+\fBnone\fR -+for the empty set\&. -+.RE - .sp - Note that these heuristics are dependent on the layout of the objects produced by the C++ compiler\&. They have been tested with some gcc versions (e\&.g\&. 4\&.4 and 4\&.7)\&. They might not work properly with other C++ compilers\&. - .RE -@@ -1173,9 +1174,10 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fB\-\-show\-reachable=no \-\-show\-possibly\-lost=yes\fR is equivalent to -- \fB\-\-show\-leak\-kinds=definite,possible\fR\&. -- .RE -+\fB\-\-show\-reachable=no \-\-show\-possibly\-lost=yes\fR -+is equivalent to -+\fB\-\-show\-leak\-kinds=definite,possible\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1185,9 +1187,10 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fB\-\-show\-reachable=no \-\-show\-possibly\-lost=no\fR is equivalent to -- \fB\-\-show\-leak\-kinds=definite\fR\&. -- .RE -+\fB\-\-show\-reachable=no \-\-show\-possibly\-lost=no\fR -+is equivalent to -+\fB\-\-show\-leak\-kinds=definite\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1197,11 +1200,14 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fB\-\-show\-reachable=yes\fR is equivalent to -- \fB\-\-show\-leak\-kinds=all\fR\&. -- Note that \fB\-\-show\-possibly\-lost=no\fR has no effect -- if \fB\-\-show\-reachable=yes\fR is specified\&. -- .RE -+\fB\-\-show\-reachable=yes\fR -+is equivalent to -+\fB\-\-show\-leak\-kinds=all\fR\&. Note that -+\fB\-\-show\-possibly\-lost=no\fR -+has no effect if -+\fB\-\-show\-reachable=yes\fR -+is specified\&. -+.RE - .sp - .RE - .PP diff --git a/SOURCES/valgrind-3.9.0-ppc-fppo.patch b/SOURCES/valgrind-3.9.0-ppc-fppo.patch index dc3ecab..cb33270 100644 --- a/SOURCES/valgrind-3.9.0-ppc-fppo.patch +++ b/SOURCES/valgrind-3.9.0-ppc-fppo.patch @@ -1,20 +1,6 @@ -diff -ur valgrind-3.8.1.orig/config.h.in valgrind-3.8.1/config.h.in ---- valgrind-3.8.1.orig/config.h.in 2013-09-25 22:52:25.980836795 +0200 -+++ valgrind-3.8.1/config.h.in 2013-09-25 22:53:56.000000000 +0200 -@@ -84,9 +84,6 @@ - /* Define to 1 if you have the header file. */ - #undef HAVE_ASM_UNISTD_H - --/* Define to 1 if as supports floating point phased out category. */ --#undef HAVE_AS_PPC_FPPO -- - /* Define to 1 if as supports mtocrf/mfocrf. */ - #undef HAVE_AS_PPC_MFTOCRF - -diff -ur valgrind-3.8.1.orig/configure valgrind-3.8.1/configure ---- valgrind-3.8.1.orig/configure 2013-09-25 22:52:26.344839791 +0200 -+++ valgrind-3.8.1/configure 2013-09-25 22:54:01.976626186 +0200 -@@ -8182,9 +8182,8 @@ +--- valgrind-3.10.0.BETA1/configure.orig 2014-09-02 13:49:58.125269536 +0200 ++++ valgrind-3.10.0.BETA1/configure 2014-09-02 13:54:08.188701144 +0200 +@@ -8978,9 +8978,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test x$ac_have_as_ppc_fpPO = xyes ; then @@ -25,11 +11,22 @@ diff -ur valgrind-3.8.1.orig/configure valgrind-3.8.1/configure +$as_echo "$as_me: HAVE_AS_PPC_FPPO found, but ignoring." >&6;} fi - CFLAGS=$safe_CFLAGS -diff -ur valgrind-3.8.1.orig/configure.ac valgrind-3.8.1/configure.ac ---- valgrind-3.8.1.orig/configure.ac 2013-09-25 22:52:25.980836795 +0200 -+++ valgrind-3.8.1/configure.in 2013-09-25 22:53:01.827131737 +0200 -@@ -1740,7 +1740,7 @@ + +--- valgrind-3.10.0.BETA1/config.h.in.orig 2014-09-02 12:34:44.000000000 +0200 ++++ valgrind-3.10.0.BETA1/config.h.in 2014-09-02 13:48:03.331525994 +0200 +@@ -93,9 +93,6 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_ASM_UNISTD_H + +-/* Define to 1 if as supports floating point phased out category. */ +-#undef HAVE_AS_PPC_FPPO +- + /* Define to 1 if as supports mtocrf/mfocrf. */ + #undef HAVE_AS_PPC_MFTOCRF + +--- valgrind-3.10.0.BETA1/configure.ac.orig 2014-09-02 14:01:04.443754937 +0200 ++++ valgrind-3.10.0.BETA1/configure.ac 2014-09-02 14:01:16.483727639 +0200 +@@ -2022,7 +2022,7 @@ AC_MSG_RESULT([no]) ]) if test x$ac_have_as_ppc_fpPO = xyes ; then @@ -37,4 +34,4 @@ diff -ur valgrind-3.8.1.orig/configure.ac valgrind-3.8.1/configure.ac + AC_MSG_NOTICE([HAVE_AS_PPC_FPPO found, but ignoring.]) fi - CFLAGS=$safe_CFLAGS + diff --git a/SOURCES/valgrind-3.9.0-ppc64-priority.patch b/SOURCES/valgrind-3.9.0-ppc64-priority.patch deleted file mode 100644 index cf593e4..0000000 --- a/SOURCES/valgrind-3.9.0-ppc64-priority.patch +++ /dev/null @@ -1,24 +0,0 @@ -commit df77b4d9c15823519165f6e9a206b2c40ac68389 -Author: mjw -Date: Mon Mar 10 14:45:32 2014 +0000 - - Enable sys_getpriority and sys_setpriority for ppc64. - - Bug 331830 - ppc64: WARNING: unhandled syscall: 96/97 - (Miroslav Franc, mfranc@redhat.com) - - git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13861 a5019735-40e9-0310-863c-91ae7b9d1cf9 - ---- a/coregrind/m_syswrap/syswrap-ppc64-linux.c -+++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c -@@ -792,8 +792,8 @@ static SyscallTableEntry syscall_table[] = { - GENX_(__NR_fchmod, sys_fchmod), // 94 - - GENX_(__NR_fchown, sys_fchown), // 95 --// _____(__NR_getpriority, sys_getpriority), // 96 --// _____(__NR_setpriority, sys_setpriority), // 97 -+ GENX_(__NR_getpriority, sys_getpriority), // 96 -+ GENX_(__NR_setpriority, sys_setpriority), // 97 - // _____(__NR_profil, sys_profil), // 98 - GENXY(__NR_statfs, sys_statfs), // 99 - diff --git a/SOURCES/valgrind-3.9.0-s390-dup3.patch b/SOURCES/valgrind-3.9.0-s390-dup3.patch deleted file mode 100644 index 06578f6..0000000 --- a/SOURCES/valgrind-3.9.0-s390-dup3.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c -index f9bc136..58ed0f8 100644 ---- a/coregrind/m_syswrap/syswrap-s390x-linux.c -+++ b/coregrind/m_syswrap/syswrap-s390x-linux.c -@@ -1044,7 +1044,7 @@ static SyscallTableEntry syscall_table[] = { - LINXY(__NR_inotify_init1, sys_inotify_init1), // 324 - - LINXY(__NR_pipe2, sys_pipe2), // 325 -- // (__NR_dup3, ), -+ LINXY(__NR_dup3, sys_dup3), // 326 - LINXY(__NR_epoll_create1, sys_epoll_create1), // 327 - LINXY(__NR_preadv, sys_preadv), // 328 - LINX_(__NR_pwritev, sys_pwritev), // 329 diff --git a/SOURCES/valgrind-3.9.0-s390-fpr-pair.patch b/SOURCES/valgrind-3.9.0-s390-fpr-pair.patch deleted file mode 100644 index 5d9a9a1..0000000 --- a/SOURCES/valgrind-3.9.0-s390-fpr-pair.patch +++ /dev/null @@ -1,201 +0,0 @@ -commit 9b28d5ecf72accc80d267a3fcfd0bd4212ff34d8 -Author: florian -Date: Tue Dec 10 16:51:15 2013 +0000 - - The result of rounding a 128-bit BFP/DFP value to 32/64 bit needs to - be stored in a register pair. This constraint was not observed previously - and the result was stored in any FPR that happened to be chosen. If the - selected FPR was not identifying a proper FPR pair, a SIGILL was delivered. - Fixes BZ #328455. - - - git-svn-id: svn://svn.valgrind.org/vex/trunk@2801 8f6e269a-dfd6-0310-a8e1-e2731360e62c - -diff --git a/priv/host_s390_defs.c b/priv/host_s390_defs.c -index 0b61a5d..ce76285 100644 ---- a/VEX/priv/host_s390_defs.c -+++ b/VEX/priv/host_s390_defs.c -@@ -5861,7 +5861,6 @@ s390_insn_bfp128_convert(UChar size, s390_bfp_conv_t tag, HReg dst_hi, - } else { - /* From 16 bytes to smaller size */ - vassert(is_valid_fp128_regpair(op_hi, op_lo)); -- vassert(hregIsInvalid(dst_lo)); - } - - insn->tag = S390_INSN_BFP_CONVERT; -@@ -5891,11 +5890,11 @@ s390_insn_bfp128_convert_to(UChar size, s390_bfp_conv_t tag, HReg dst_hi, - - - s390_insn * --s390_insn_bfp128_convert_from(UChar size, s390_bfp_conv_t tag, HReg dst, -- HReg op_hi, HReg op_lo, -+s390_insn_bfp128_convert_from(UChar size, s390_bfp_conv_t tag, HReg dst_hi, -+ HReg dst_lo, HReg op_hi, HReg op_lo, - s390_bfp_round_t rounding_mode) - { -- return s390_insn_bfp128_convert(size, tag, dst, INVALID_HREG, op_hi, op_lo, -+ return s390_insn_bfp128_convert(size, tag, dst_hi, dst_lo, op_hi, op_lo, - rounding_mode); - } - -@@ -6192,7 +6191,6 @@ s390_insn_dfp128_convert(UChar size, s390_dfp_conv_t tag, HReg dst_hi, - } else { - /* From 16 bytes to smaller size */ - vassert(is_valid_fp128_regpair(op_hi, op_lo)); -- vassert(hregIsInvalid(dst_lo)); - } - - insn->tag = S390_INSN_DFP_CONVERT; -@@ -6222,11 +6220,11 @@ s390_insn_dfp128_convert_to(UChar size, s390_dfp_conv_t tag, HReg dst_hi, - - - s390_insn * --s390_insn_dfp128_convert_from(UChar size, s390_dfp_conv_t tag, HReg dst, -- HReg op_hi, HReg op_lo, -+s390_insn_dfp128_convert_from(UChar size, s390_dfp_conv_t tag, HReg dst_hi, -+ HReg dst_lo, HReg op_hi, HReg op_lo, - s390_dfp_round_t rounding_mode) - { -- return s390_insn_dfp128_convert(size, tag, dst, INVALID_HREG, op_hi, op_lo, -+ return s390_insn_dfp128_convert(size, tag, dst_hi, dst_lo, op_hi, op_lo, - rounding_mode); - } - -diff --git a/priv/host_s390_defs.h b/priv/host_s390_defs.h -index dafc8ae..5b6fc1f 100644 ---- a/VEX/priv/host_s390_defs.h -+++ b/VEX/priv/host_s390_defs.h -@@ -665,8 +665,8 @@ s390_insn *s390_insn_bfp128_compare(UChar size, HReg dst, HReg op1_hi, - s390_insn *s390_insn_bfp128_convert_to(UChar size, s390_bfp_conv_t, - HReg dst_hi, HReg dst_lo, HReg op); - s390_insn *s390_insn_bfp128_convert_from(UChar size, s390_bfp_conv_t, -- HReg dst, HReg op_hi, HReg op_lo, -- s390_bfp_round_t); -+ HReg dst_hi, HReg dst_lo, HReg op_hi, -+ HReg op_lo, s390_bfp_round_t); - s390_insn *s390_insn_dfp_binop(UChar size, s390_dfp_binop_t, HReg dst, - HReg op2, HReg op3, - s390_dfp_round_t rounding_mode); -@@ -699,8 +699,8 @@ s390_insn *s390_insn_dfp128_compare(UChar size, s390_dfp_cmp_t, HReg dst, - s390_insn *s390_insn_dfp128_convert_to(UChar size, s390_dfp_conv_t, - HReg dst_hi, HReg dst_lo, HReg op); - s390_insn *s390_insn_dfp128_convert_from(UChar size, s390_dfp_conv_t, -- HReg dst, HReg op_hi, HReg op_lo, -- s390_dfp_round_t); -+ HReg dst_hi, HReg dst_lo, HReg op_hi, -+ HReg op_lo, s390_dfp_round_t); - s390_insn *s390_insn_dfp128_reround(UChar size, HReg dst_hi, HReg dst_lo, - HReg op2, HReg op3_hi, HReg op3_lo, - s390_dfp_round_t); -diff --git a/priv/host_s390_isel.c b/priv/host_s390_isel.c -index aaccff6..3662ffd 100644 ---- a/VEX/priv/host_s390_isel.c -+++ b/VEX/priv/host_s390_isel.c -@@ -1257,7 +1257,8 @@ s390_isel_int_expr_wrk(ISelEnv *env, IRExpr *expr) - addInstr(env, s390_insn_move(8, f15, op_lo)); - - rounding_mode = get_bfp_rounding_mode(env, arg1); -- addInstr(env, s390_insn_bfp128_convert_from(size, conv, res, f13, f15, -+ addInstr(env, s390_insn_bfp128_convert_from(size, conv, res, -+ INVALID_HREG, f13, f15, - rounding_mode)); - return res; - } -@@ -1290,7 +1291,8 @@ s390_isel_int_expr_wrk(ISelEnv *env, IRExpr *expr) - addInstr(env, s390_insn_move(8, f15, op_lo)); - - rounding_mode = get_dfp_rounding_mode(env, arg1); -- addInstr(env, s390_insn_dfp128_convert_from(size, dconv, res, f13, -+ addInstr(env, s390_insn_dfp128_convert_from(size, dconv, res, -+ INVALID_HREG, f13, - f15, rounding_mode)); - return res; - } -@@ -2455,7 +2457,7 @@ s390_isel_float_expr_wrk(ISelEnv *env, IRExpr *expr) - - case Iop_F128toF64: - case Iop_F128toF32: { -- HReg op_hi, op_lo, f13, f15; -+ HReg op_hi, op_lo, f12, f13, f14, f15; - s390_bfp_round_t rounding_mode; - - conv = op == Iop_F128toF32 ? S390_BFP_F128_TO_F32 -@@ -2463,15 +2465,18 @@ s390_isel_float_expr_wrk(ISelEnv *env, IRExpr *expr) - - s390_isel_float128_expr(&op_hi, &op_lo, env, left); - -- /* We use non-virtual registers as pairs (f13, f15) */ -+ /* We use non-virtual registers as pairs (f13, f15) and (f12, f14)) */ -+ f12 = make_fpr(12); - f13 = make_fpr(13); -+ f14 = make_fpr(14); - f15 = make_fpr(15); - - /* operand --> (f13, f15) */ - addInstr(env, s390_insn_move(8, f13, op_hi)); - addInstr(env, s390_insn_move(8, f15, op_lo)); - -- dst = newVRegF(env); -+ /* result --> (f12, f14) */ -+ - /* load-rounded has a rounding mode field when the floating point - extension facility is installed. */ - if (s390_host_has_fpext) { -@@ -2480,8 +2485,12 @@ s390_isel_float_expr_wrk(ISelEnv *env, IRExpr *expr) - set_bfp_rounding_mode_in_fpc(env, irrm); - rounding_mode = S390_BFP_ROUND_PER_FPC; - } -- addInstr(env, s390_insn_bfp128_convert_from(size, conv, dst, f13, f15, -- rounding_mode)); -+ -+ addInstr(env, s390_insn_bfp128_convert_from(size, conv, f12, f14, -+ f13, f15, rounding_mode)); -+ dst = newVRegF(env); -+ addInstr(env, s390_insn_move(8, dst, f12)); -+ - return dst; - } - } -@@ -3044,22 +3053,25 @@ s390_isel_dfp_expr_wrk(ISelEnv *env, IRExpr *expr) - } - - case Iop_D128toD64: { -- HReg op_hi, op_lo, f13, f15; -+ HReg op_hi, op_lo, f12, f13, f14, f15; - s390_dfp_round_t rounding_mode; - - conv = S390_DFP_D128_TO_D64; - - s390_isel_dfp128_expr(&op_hi, &op_lo, env, left); - -- /* We use non-virtual registers as pairs (f13, f15) */ -+ /* We use non-virtual registers as pairs (f13, f15) and (f12, f14) */ -+ f12 = make_fpr(12); - f13 = make_fpr(13); -+ f14 = make_fpr(14); - f15 = make_fpr(15); - - /* operand --> (f13, f15) */ - addInstr(env, s390_insn_move(8, f13, op_hi)); - addInstr(env, s390_insn_move(8, f15, op_lo)); - -- dst = newVRegF(env); -+ /* result --> (f12, f14) */ -+ - /* load-rounded has a rounding mode field when the floating point - extension facility is installed. */ - if (s390_host_has_fpext) { -@@ -3068,8 +3080,11 @@ s390_isel_dfp_expr_wrk(ISelEnv *env, IRExpr *expr) - set_dfp_rounding_mode_in_fpc(env, irrm); - rounding_mode = S390_DFP_ROUND_PER_FPC_0; - } -- addInstr(env, s390_insn_dfp128_convert_from(size, conv, dst, f13, f15, -- rounding_mode)); -+ addInstr(env, s390_insn_dfp128_convert_from(size, conv, f12, f14, -+ f13, f15, rounding_mode)); -+ dst = newVRegF(env); -+ addInstr(env, s390_insn_move(8, dst, f12)); -+ - return dst; - } - diff --git a/SOURCES/valgrind-3.9.0-s390-risbg.patch b/SOURCES/valgrind-3.9.0-s390-risbg.patch deleted file mode 100644 index 781ae29..0000000 --- a/SOURCES/valgrind-3.9.0-s390-risbg.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- valgrind-3.9.0/VEX/priv/guest_s390_toIR.c.orig 2013-11-07 22:45:58.021660641 +0100 -+++ valgrind-3.9.0/VEX/priv/guest_s390_toIR.c 2013-11-07 22:46:12.319772145 +0100 -@@ -7606,7 +7606,7 @@ - put_gpr_dw0(r1, binop(Iop_And64, mkexpr(op2), mkU64(mask))); - } - assign(result, get_gpr_dw0(r1)); -- s390_cc_thunk_putS(S390_CC_OP_LOAD_AND_TEST, op2); -+ s390_cc_thunk_putS(S390_CC_OP_LOAD_AND_TEST, result); - - return "risbg"; - } diff --git a/SOURCES/valgrind-3.9.0-s390x-ld-supp.patch b/SOURCES/valgrind-3.9.0-s390x-ld-supp.patch deleted file mode 100644 index 4004a90..0000000 --- a/SOURCES/valgrind-3.9.0-s390x-ld-supp.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- valgrind-3.9.0/glibc-2.X.supp.in.orig 2013-11-24 20:39:55.165152689 +0100 -+++ valgrind-3.9.0/glibc-2.X.supp.in 2013-11-24 20:46:04.919736611 +0100 -@@ -236,3 +236,11 @@ - Memcheck:Cond - fun:_dl_relocate_object - } -+ -+# KDE#327943 - s390x missing index/strchr suppression for ld.so bad backtrace? -+{ -+ s390x-ld-so-index-dl_open_worker -+ Memcheck:Addr8 -+ fun:index -+ fun:dl_open_worker -+} diff --git a/SOURCES/valgrind-3.9.0-xabort.patch b/SOURCES/valgrind-3.9.0-xabort.patch deleted file mode 100644 index 1d0b43f..0000000 --- a/SOURCES/valgrind-3.9.0-xabort.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ae58d7305de27aa96abf715456a07045018cda98 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Tue, 26 Nov 2013 22:49:55 +0100 -Subject: [PATCH] Bug 328100 XABORT not implemented. - -XABORT can be called even when there is no current transaction. -In such a case XABORT acts as a NOP. Implement xabort as nop. ---- - priv/guest_amd64_toIR.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c -index a17c8f4..7ea5748 100644 ---- a/VEX/priv/guest_amd64_toIR.c -+++ b/VEX/priv/guest_amd64_toIR.c -@@ -20270,6 +20270,16 @@ Long dis_ESC_NONE ( - return delta; - } - /* END HACKY SUPPORT FOR xbegin */ -+ /* BEGIN HACKY SUPPORT FOR xabort */ -+ if (modrm == 0xF8 && !have66orF2orF3(pfx) && sz == 1 -+ && (archinfo->hwcaps & VEX_HWCAPS_AMD64_AVX)) { -+ delta++; /* mod/rm byte */ -+ abyte = getUChar(delta); delta++; -+ /* There is never a real transaction in progress, so do nothing. */ -+ DIP("xabort $%d", (Int)abyte); -+ return delta; -+ } -+ /* END HACKY SUPPORT FOR xabort */ - goto decode_failure; - - case 0xC8: /* ENTER */ --- -1.8.3.1 - diff --git a/SPECS/valgrind.spec b/SPECS/valgrind.spec index 6eac59a..9660a4d 100644 --- a/SPECS/valgrind.spec +++ b/SPECS/valgrind.spec @@ -2,8 +2,8 @@ Summary: Tool for finding memory management bugs in programs Name: %{?scl_prefix}valgrind -Version: 3.9.0 -Release: 6%{?dist} +Version: 3.10.0 +Release: 7%{?dist} Epoch: 1 License: GPLv2+ URL: http://www.valgrind.org/ @@ -12,6 +12,38 @@ Group: Development/Debuggers # Only necessary for RHEL, will be ignored on Fedora BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +# Only arches that are supported upstream as multilib and that the distro +# has multilib builds for should set build_multilib 1. In practice that +# is only x86_64 and ppc64 (but not in fedora 21 and later, and never +# for ppc64le). +%global build_multilib 0 + +%ifarch x86_64 + %global build_multilib 1 +%endif + +%ifarch ppc64 + %if 0%{?rhel} + %global build_multilib 1 + %endif + %if 0%{?fedora} + %global build_multilib (%fedora < 21) + %endif +%endif + +# Note s390x doesn't have an openmpi port available. +%ifarch %{ix86} x86_64 ppc ppc64 ppc64le %{arm} aarch64 +%global build_openmpi 1 +%else +%global build_openmpi 0 +%endif + +# Don't run dwz or generate minisymtab, valgrind doesn't handle compressed +# DWARF very well and it might read its own vgpreload libraries. Generating +# minisymtabs doesn't really work for the staticly linked tools. +%define _find_debuginfo_dwz_opts %{nil} +%undefine _include_minidebuginfo + Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2 # Needs investigation and pushing upstream @@ -26,18 +58,34 @@ Patch3: valgrind-3.9.0-stat_h.patch # Make ld.so supressions slightly less specific. Patch4: valgrind-3.9.0-ldso-supp.patch -# On some ppc64 installs these test just hangs -Patch5: valgrind-3.9.0-gdbserver_tests-mcinvoke-ppc64.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#326983 - insn_basic test might crash because of setting DF flag -Patch6: valgrind-3.9.0-amd64_gen_insn_test.patch +# KDE#339858 arm64 recognize dmb sy. Data Memory Barrier full SYstem variant. +Patch7: valgrind-3.10.0-aarch64-dmb-sy.patch -# KDE#327837 - dwz compressed alternate .debug_info/str not read correctly. -Patch7: valgrind-3.9.0-dwz-alt-buildid.patch +# KDE#339926 Implement frintx d_d and s_s. +Patch8: valgrind-3.10.0-aarch64-frint.patch -# KDE#327284 s390x VEX miscompilation of -march=z10 binary -Patch8: valgrind-3.9.0-s390-risbg.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 + +# KDE#342795 Internal glibc __GI_mempcpy call should be intercepted +Patch11: valgrind-3.10.1-mempcpy.patch # RHEL7 specific patches. @@ -47,28 +95,11 @@ Patch8: valgrind-3.9.0-s390-risbg.patch # The result would only be used for two test cases. Patch7001: valgrind-3.9.0-ppc-fppo.patch -# KDE#327943 - s390x missing index/strchr suppression for ld.so bad backtrace? -Patch10: valgrind-3.9.0-s390x-ld-supp.patch - -# KDE#328100 - XABORT not implemented -Patch11: valgrind-3.9.0-xabort.patch - -# KDE#328711 - valgrind.1 manpage "memcheck options" section is bad -Patch12: valgrind-3.9.0-manpage-memcheck-options.patch - -# KDE#328455 - s390x SIGILL after emitting wrong register pair for ldxbr -Patch13: valgrind-3.9.0-s390-fpr-pair.patch - -# KDE#331337 - s390x WARNING: unhandled syscall: 326 (dup3) -Patch14: valgrind-3.9.0-s390-dup3.patch - -# KDE#331830 - ppc64: WARNING: unhandled syscall: 96/97 -Patch15: valgrind-3.9.0-ppc64-priority.patch - -%ifarch x86_64 ppc64 +%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 %endif + %if 0%{?fedora} >= 15 BuildRequires: glibc-devel >= 2.14 %else @@ -78,7 +109,8 @@ BuildRequires: glibc-devel >= 2.12 BuildRequires: glibc-devel >= 2.5 %endif %endif -%ifarch %{ix86} x86_64 ppc ppc64 %{arm} + +%if %{build_openmpi} BuildRequires: openmpi-devel >= 1.3.3 %endif @@ -92,7 +124,7 @@ BuildRequires: procps %{?scl:Requires:%scl_runtime} -ExclusiveArch: %{ix86} x86_64 ppc ppc64 s390x %{arm} +ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64 %ifarch %{ix86} %define valarch x86 %define valsecarch %{nil} @@ -103,22 +135,38 @@ ExclusiveArch: %{ix86} x86_64 ppc ppc64 s390x %{arm} %endif %ifarch ppc %define valarch ppc32 -%define valsecarch ppc64 +%define valsecarch %{nil} %endif %ifarch ppc64 -%define valarch ppc64 -%define valsecarch ppc32 + %define valarch ppc64be + %if %{build_multilib} + %define valsecarch ppc32 + %else + %define valsecarch %{nil} + %endif +%endif +%ifarch ppc64le +%define valarch ppc64le +%define valsecarch %{nil} +%endif +%ifarch ppc64le +%define valarch ppc64le +%define valsecarch %{nil} %endif %ifarch s390x %define valarch s390x %define valsecarch %{nil} %endif %ifarch armv7hl -%define valarch armv7hl +%define valarch arm %define valsecarch %{nil} %endif -%ifarch armv5tel -%define valarch armv5tel +%ifarch aarch64 +%define valarch arm64 +%define valsecarch %{nil} +%endif +%ifarch aarch64 +%define valarch arm64 %define valsecarch %{nil} %endif @@ -161,21 +209,13 @@ Valgrind User Manual for details. %patch6 -p1 %patch7 -p1 %patch8 -p1 - +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 # RHEL7 specific patches %patch7001 -p1 -%ifarch s390x -%patch10 -p1 -%endif - -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 - %build # We need to use the software collection compiler and binutils if available. # The configure checks might otherwise miss support for various newer @@ -183,12 +223,12 @@ Valgrind User Manual for details. %{?scl:PATH=%{_bindir}${PATH:+:${PATH}}} CC=gcc -%ifarch x86_64 ppc64 +%if %{build_multilib} # Ugly hack - libgcc 32-bit package might not be installed -mkdir -p libgcc/32 -ar r libgcc/32/libgcc_s.a -ar r libgcc/libgcc_s_32.a -CC="gcc -B `pwd`/libgcc/" +mkdir -p shared/libgcc/32 +ar r shared/libgcc/32/libgcc_s.a +ar r shared/libgcc/libgcc_s_32.a +CC="gcc -B `pwd`/shared/libgcc/" %endif # Old openmpi-devel has version depended paths for mpicc. @@ -206,7 +246,7 @@ CC="gcc -B `pwd`/libgcc/" # and the test suite. OPTFLAGS="`echo " %{optflags} " | sed 's/ -m\(64\|3[21]\) / /g;s/ -fexceptions / /g;s/ -fstack-protector / / g;s/ -Wp,-D_FORTIFY_SOURCE=2 / /g;s/ -O2 / /g;s/ -mcpu=\([a-z0-9]\+\) / /g;s/^ //;s/ $//'`" %configure CC="$CC" CFLAGS="$OPTFLAGS" CXXFLAGS="$OPTFLAGS" \ -%ifarch %{ix86} x86_64 ppc ppc64 %{arm} +%if %{build_openmpi} --with-mpicc=%{mpiccpath} \ %endif GDB=%{_bindir}/gdb @@ -243,11 +283,7 @@ pushd $RPM_BUILD_ROOT%{_libdir}/valgrind/ rm -f *-%{valsecarch}-* || : for i in *-%{valarch}-*; do j=`echo $i | sed 's/-%{valarch}-/-%{valsecarch}-/'` -%ifarch ppc - ln -sf ../../lib64/valgrind/$j $j -%else ln -sf ../../lib/valgrind/$j $j -%endif done popd %endif @@ -268,19 +304,18 @@ done %endif %check +# Make sure a basic binary runs. +./vg-in-place /bin/true + # Build the test files with the software collection compiler if available. %{?scl:PATH=%{_bindir}${PATH:+:${PATH}}} # Make sure no extra CFLAGS leak through, the testsuite sets all flags # necessary. See also configure above. make %{?_smp_mflags} CFLAGS="" check || : -# Remove and cleanup fake 32-bit libgcc package created in %%build. -%ifarch x86_64 ppc64 -rm -rf libgcc -%endif - echo ===============TESTING=================== ./close_fds make regtest || : + # Make sure test failures show up in build.log # Gather up the diffs (at most the first 20 lines for each one) MAX_LINES=20 @@ -320,7 +355,7 @@ echo ===============END TESTING=============== %{_libdir}/valgrind/*.a %{_libdir}/pkgconfig/* -%ifarch %{ix86} x86_64 ppc ppc64 %{arm} +%if %{build_openmpi} %files openmpi %defattr(-,root,root) %dir %{_libdir}/valgrind @@ -328,6 +363,45 @@ echo ===============END TESTING=============== %endif %changelog +* Tue Jan 13 2015 Mark Wielaard - 3.10.0-7 +- Add valgrind-3.10.1-mempcpy.patch (#1178813) + +* Wed Nov 19 2014 Mark Wielaard - 3.10.0-6 +- Add getgroups/setgroups to valgrind-3.10.0-aarch64-syscalls.patch + +* Tue Nov 4 2014 Mark Wielaard - 3.10.0-5 +- Merge valgrind-3.10.0-aarch64-times.patch + and valgrind-3.10.0-aarch64-getsetsid.patch + into valgrind-3.10.0-aarch64-syscalls.patch + add fdatasync, msync, pread64, setreuid, setregid, + mknodat, fchdir, chroot, fchownat, fchmod and fchown. +- Add valgrind-3.10.0-aarch64-frint.patch +- Add valgrind-3.10.0-fcvtmu.patch +- Add valgrind-3.10.0-aarch64-fcvta.patch + +* Sat Oct 11 2014 Mark Wielaard - 3.10.0-4 +- Add valgrind-3.10.0-aarch64-times.patch +- Add valgrind-3.10.0-aarch64-getsetsid.patch +- Add valgrind-3.10.0-aarch64-dmb-sy.patch + +* Mon Sep 15 2014 Mark Wielaard - 3.10.0-3 +- Add valgrind-3.10.0-old-ppc32-instr-magic.patch. + +* Fri Sep 12 2014 Mark Wielaard - 3.10.0-2 +- Fix ppc32 multilib handling on ppc64[be]. +- Drop ppc64 secondary for ppc32 primary support. +- Except for armv7hl we don't support any other arm[32] arch. + +* Thu Sep 11 2014 Mark Wielaard - 3.10.0-1 +- Update to 3.10.0 final. +- Don't run dwz or generate minisymtab. +- Remove valgrind-3.9.0-s390x-ld-supp.patch fixed upstream. +- Add valgrind-openmpi for ppc64le. + +* Tue Sep 2 2014 Mark Wielaard - 3.10.0-0.1.BETA1 +- Update to official upstream 3.10.0 BETA1. + - Enables inlined frames in stacktraces. + * Mon Mar 10 2014 Mark Wielaard - 3.9.0-6 - Add valgrind-3.9.0-ppc64-priority.patch. (#1073613)