diff --git a/gcc5.patch b/gcc5.patch deleted file mode 100644 index 0715ac1..0000000 --- a/gcc5.patch +++ /dev/null @@ -1,58 +0,0 @@ ------------------------------------------------------------------------- -r15773 | bart | 2016-01-25 05:27:25 +0100 (Mo, 25. Jan 2016) | 7 Zeilen - -configure.ac: Port to gcc 5 - -Apparently gcc 5 behaves as follows: -$ gcc -dumpversion -5 - - ------------------------------------------------------------------------- -Index: configure.ac -=================================================================== ---- configure.ac (Revision 15772) -+++ configure.ac (Revision 15773) -@@ -160,7 +160,7 @@ case "${is_clang}-${gcc_version}" in - icc-1[[3-9]].*) - AC_MSG_RESULT([ok (ICC version ${gcc_version})]) - ;; -- notclang-[[3-9]].*|notclang-[[1-9][0-9]]*) -+ notclang-[[3-9]]|notclang-[[3-9]].*|notclang-[[1-9][0-9]]*) - AC_MSG_RESULT([ok (${gcc_version})]) - ;; - clang-2.9|clang-[[3-9]].*|clang-[[1-9][0-9]]*) -Index: drd/tests/std_thread2.cpp -=================================================================== ---- drd/tests/std_thread2.cpp (Revision 15772) -+++ drd/tests/std_thread2.cpp (Revision 15773) -@@ -26,6 +26,7 @@ int main(int argc, char** argv) - return 0; - } - -+#if defined(__GNUC__) && __GNUC__ -0 < 6 - // - // From libstdc++-v3/src/c++11/thread.cc - // -@@ -70,3 +71,4 @@ namespace std - } - } - } -+#endif -Index: drd/tests/std_thread.cpp -=================================================================== ---- drd/tests/std_thread.cpp (Revision 15772) -+++ drd/tests/std_thread.cpp (Revision 15773) -@@ -21,6 +21,7 @@ int main(int argc, char** argv) - return 0; - } - -+#if defined(__GNUC__) && __GNUC__ -0 < 6 - // - // From libstdc++-v3/src/c++11/thread.cc - // -@@ -65,3 +66,4 @@ namespace std - } - } - } -+#endif diff --git a/r15702.diff b/r15702.diff deleted file mode 100644 index ed404c6..0000000 --- a/r15702.diff +++ /dev/null @@ -1,70 +0,0 @@ ------------------------------------------------------------------------- -r15702 | florian | 2015-10-12 22:35:56 +0200 (Mo, 12. Okt 2015) | 14 Zeilen - -On a zEC12 or z13, a glibc with lock elision enabled infers from HWCAP -that the prerequisites for lock elision are met. Then it may use TBEGIN -and other transactional-execution instructions which are not implemented -by Valgrind. Likewise, the upcoming glibc 2.23 will exploit vector -instructions if they are advertised by HWCAP; and those are currently -not implemented by Valgrind either. In general, the increased use of -ifunc may lead to more such cases in the future. - -This patch suppresses the advertising of those hardware features via -HWCAP which are either not known to Valgrind or currently unsupported. - -Patch by Andreas Arnez (arnez@linux.vnet.ibm.com). -Fixes BZ #353680. - ------------------------------------------------------------------------- -Index: include/vki/vki-s390x-linux.h -=================================================================== ---- include/vki/vki-s390x-linux.h.orig -+++ include/vki/vki-s390x-linux.h -@@ -800,12 +800,15 @@ typedef struct - #define VKI_PTRACE_POKEUSR_AREA 0x5001 - - //---------------------------------------------------------------------- --// From linux-2.6.16.60/include/asm-s390/elf.h -+// From linux-3.18/include/asm-s390/elf.h - //---------------------------------------------------------------------- - - typedef vki_s390_fp_regs vki_elf_fpregset_t; - typedef vki_s390_regs vki_elf_gregset_t; - -+#define VKI_HWCAP_S390_TE 1024 -+#define VKI_HWCAP_S390_VXRS 2048 -+ - - //---------------------------------------------------------------------- - // From linux-2.6.16.60/include/asm-s390/ucontext.h -Index: coregrind/m_initimg/initimg-linux.c -=================================================================== ---- coregrind/m_initimg/initimg-linux.c.orig -+++ coregrind/m_initimg/initimg-linux.c -@@ -701,6 +701,12 @@ Addr setup_client_stack( void* init_sp, - in syswrap-arm-linux.c rather than to base this on - conditional compilation. */ - } -+# elif defined(VGP_s390x_linux) -+ { -+ /* Advertise hardware features "below" TE only. TE and VXRS -+ (and anything above) are not supported by Valgrind. */ -+ auxv->u.a_val &= VKI_HWCAP_S390_TE - 1; -+ } - # endif - break; - # if defined(VGP_ppc64be_linux) || defined(VGP_ppc64le_linux) -Index: README.s390 -=================================================================== ---- README.s390.orig -+++ README.s390 -@@ -22,6 +22,9 @@ Limitations - - Some gcc versions use mvc to copy 4/8 byte values. This will affect - certain debug messages. For example, memcheck will complain about - 4 one-byte reads/writes instead of just a single read/write. -+- The transactional-execution facility is not supported; it is masked -+ off from HWCAP. -+- The vector facility is not supported; it is masked off from HWCAP. - - - Hardware facilities diff --git a/r15792.diff b/r15792.diff deleted file mode 100644 index 5620231..0000000 --- a/r15792.diff +++ /dev/null @@ -1,104 +0,0 @@ ------------------------------------------------------------------------- -r15792 | florian | 2016-02-17 21:00:59 +0100 (Mi, 17. Feb 2016) | 4 Zeilen - -s390: Fix BZ #359289, adding support for popcnt insn. -Companion patch is VEX r3210. -Patch by Andreas Arnez (arnez@linux.vnet.ibm.com). - ------------------------------------------------------------------------- -Index: tests/s390x_features.c -=================================================================== ---- tests/s390x_features.c.orig -+++ tests/s390x_features.c -@@ -231,6 +231,8 @@ static int go(char *feature, char *cpu) - match = facilities & FAC_BIT(42); - } else if (strcmp(feature, "s390x-pfpo") == 0 ) { - match = facilities & FAC_BIT(44); -+ } else if (strcmp(feature, "s390x-highw") == 0 ) { -+ match = facilities & FAC_BIT(45); - } else { - return 2; // Unrecognised feature. - } -Index: none/tests/s390x/popcnt.stderr.exp -=================================================================== ---- /dev/null -+++ none/tests/s390x/popcnt.stderr.exp -@@ -0,0 +1,2 @@ -+ -+ -Index: none/tests/s390x/Makefile.am -=================================================================== ---- none/tests/s390x/Makefile.am.orig -+++ none/tests/s390x/Makefile.am -@@ -11,7 +11,7 @@ INSN_TESTS = clc clcle cvb cvd icm lpr t - ex_sig ex_clone cu14 cu14_1 cu41 fpconv ecag fpext_warn \ - rounding-1 rounding-2 rounding-3 rounding-4 rounding-5 bfp-1 \ - bfp-2 bfp-3 bfp-4 srnm srnmb comp-1 comp-2 exrl tmll tm stmg \ -- ex clst mvc test_fork test_sig rounding-6 rxsbg\ -+ ex clst mvc test_fork test_sig rounding-6 rxsbg popcnt \ - spechelper-alr spechelper-algr \ - spechelper-slr spechelper-slgr \ - spechelper-cr spechelper-clr \ -Index: none/tests/s390x/opcodes.h -=================================================================== ---- none/tests/s390x/opcodes.h.orig -+++ none/tests/s390x/opcodes.h -@@ -324,6 +324,7 @@ - #define OY(r1,x2,b2,dl2,dh2) RXY_RRRD(e3,r1,x2,b2,dl2,dh2,56) - #define PFD(r1,x2,b2,dl2,dh2) RXY_URRD(e3,r1,x2,b2,dl2,dh2,36) - #define PFDRL(r1,i2) RIL_UP(c6,r1,2,i2) -+#define POPCNT(r1,r2) RRE_RR(b9e1,00,r1,r2) - #define RISBG(r1,r2,i3,i4,i5) RIE_RRUUU(ec,r1,r2,i3,i4,i5,55) - #define RNSBG(r1,r2,i3,i4,i5) RIE_RRUUU(ec,r1,r2,i3,i4,i5,54) - #define ROSBG(r1,r2,i3,i4,i5) RIE_RRUUU(ec,r1,r2,i3,i4,i5,56) -Index: none/tests/s390x/popcnt.stdout.exp -=================================================================== ---- /dev/null -+++ none/tests/s390x/popcnt.stdout.exp -@@ -0,0 +1,5 @@ -+popcnt 0 -> 0 cc=0 -+popcnt 1 -> 1 cc=1 -+popcnt 8000000000000000 -> 100000000000000 cc=1 -+popcnt ffffffffffffffff -> 808080808080808 cc=1 -+popcnt ff427e3800556bcd -> 802060300040505 cc=1 -Index: none/tests/s390x/popcnt.vgtest -=================================================================== ---- /dev/null -+++ none/tests/s390x/popcnt.vgtest -@@ -0,0 +1 @@ -+prog: popcnt -Index: none/tests/s390x/popcnt.c -=================================================================== ---- /dev/null -+++ none/tests/s390x/popcnt.c -@@ -0,0 +1,30 @@ -+#include -+#include -+ -+ -+static void check_popcnt(uint64_t in, uint64_t expected_result, -+ int expected_cc) -+{ -+ uint64_t out = ~expected_result; -+ int cc = ~expected_cc; -+ -+ asm volatile(".insn rre, 0xb9e10000, %[out], %[in]\n\t" -+ "ipm %[cc]\n\t" -+ "srl %[cc],28\n\t" -+ : [cc]"=d" (cc), [out]"=d" (out) -+ : [in]"d" (in) -+ : "cc"); -+ printf("popcnt %16lx -> %16lx %s cc=%d %s\n", -+ in, out, (out == expected_result ? " " : "ERR"), -+ cc, (cc == expected_cc ? " " : "ERR")); -+} -+ -+int main() -+{ -+ check_popcnt(0, 0, 0); -+ check_popcnt(1, 1, 1); -+ check_popcnt(0x8000000000000000ULL, 0x0100000000000000ULL, 1); -+ check_popcnt(0xffffffffffffffffULL, 0x0808080808080808ULL, 1); -+ check_popcnt(0xff427e3800556bcdULL, 0x0802060300040505ULL, 1); -+ return 0; -+} diff --git a/r15802.diff b/r15802.diff deleted file mode 100644 index 99853b4..0000000 --- a/r15802.diff +++ /dev/null @@ -1,76 +0,0 @@ ------------------------------------------------------------------------- -r15802 | mjw | 2016-02-23 16:19:49 +0100 (Di, 23. Feb 2016) | 9 Zeilen - -Bug 359703 s390: wire up separate socketcalls system calls - -The linux 4.3 s390 kernel has separate system calls that were originally -hidden behind the socketcall multiplexer system call. Newer glibc versions -will use these direct system calls instead of socketcall when available. -Causing several regtest failures. - -This fix simply wires up the split out system calls directly to the -existing syswrap handlers for s390. ------------------------------------------------------------------------- -Index: include/vki/vki-scnums-s390x-linux.h -=================================================================== ---- include/vki/vki-scnums-s390x-linux.h (Revision 15801) -+++ include/vki/vki-scnums-s390x-linux.h (Revision 15802) -@@ -316,7 +316,26 @@ - #define __NR_seccomp 348 - #define __NR_getrandom 349 - #define __NR_memfd_create 350 --#define NR_syscalls 351 -+ -+#define __NR_recvmmsg 357 -+#define __NR_sendmmsg 358 -+#define __NR_socket 359 -+#define __NR_socketpair 360 -+#define __NR_bind 361 -+#define __NR_connect 362 -+#define __NR_listen 363 -+#define __NR_accept4 364 -+#define __NR_getsockopt 365 -+#define __NR_setsockopt 366 -+#define __NR_getsockname 367 -+#define __NR_getpeername 368 -+#define __NR_sendto 369 -+#define __NR_sendmsg 370 -+#define __NR_recvfrom 371 -+#define __NR_recvmsg 372 -+#define __NR_shutdown 373 -+ -+#define NR_syscalls 374 - - /* - * There are some system calls that are not present on 64 bit, some -Index: coregrind/m_syswrap/syswrap-s390x-linux.c -=================================================================== ---- coregrind/m_syswrap/syswrap-s390x-linux.c (Revision 15801) -+++ coregrind/m_syswrap/syswrap-s390x-linux.c (Revision 15802) -@@ -1051,7 +1051,25 @@ static SyscallTableEntry syscall_table[] - // ?????(__NR_seccomp, ), // 348 - LINXY(__NR_getrandom, sys_getrandom), // 349 - -- LINXY(__NR_memfd_create, sys_memfd_create) // 350 -+ LINXY(__NR_memfd_create, sys_memfd_create), // 350 -+ -+ LINXY(__NR_recvmmsg, sys_recvmmsg), // 357 -+ LINXY(__NR_sendmmsg, sys_sendmmsg), // 358 -+ LINXY(__NR_socket, sys_socket), // 359 -+ LINXY(__NR_socketpair, sys_socketpair), // 360 -+ LINX_(__NR_bind, sys_bind), // 361 -+ LINX_(__NR_connect, sys_connect), // 362 -+ LINX_(__NR_listen, sys_listen), // 363 -+ LINXY(__NR_accept4, sys_accept4), // 364 -+ LINXY(__NR_getsockopt, sys_getsockopt), // 365 -+ LINX_(__NR_setsockopt, sys_setsockopt), // 366 -+ LINXY(__NR_getsockname, sys_getsockname), // 367 -+ LINXY(__NR_getpeername, sys_getpeername), // 368 -+ LINX_(__NR_sendto, sys_sendto), // 369 -+ LINX_(__NR_sendmsg, sys_sendmsg), // 270 -+ LINXY(__NR_recvfrom, sys_recvfrom), // 371 -+ LINXY(__NR_recvmsg, sys_recvmsg), // 372 -+ LINX_(__NR_shutdown, sys_shutdown) // 373 - }; - - SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno ) diff --git a/svn-r15766.patch b/svn-r15766.patch deleted file mode 100644 index 3fa4f21..0000000 --- a/svn-r15766.patch +++ /dev/null @@ -1,133 +0,0 @@ ------------------------------------------------------------------------- -r15766 | mjw | 2016-01-21 12:37:43 +0100 (Do, 21. Jan 2016) | 13 Zeilen - -Bug #357833 Setting RLIMIT_DATA to zero breaks with linux 4.5+ - -We used to set the process datasize rlimit to zero to prevent -any internal use of brk() from having any effect. But later -linux kernels redefine RLIMIT_DATA as the size of any data -areas, including some dynamic mmap memory allocations. - -See bug #357833 for the commit that went into linux 4.5 -changing the definition of RLIMIT_DATA. So don't mess with -RLIMIT_DATA anymore. Just remember it for use in the syscall -wrappers. - -This also cleans up some hacks around the execv and spawn wrappers. ------------------------------------------------------------------------- -Index: coregrind/m_syswrap/syswrap-generic.c -=================================================================== ---- coregrind/m_syswrap/syswrap-generic.c.orig -+++ coregrind/m_syswrap/syswrap-generic.c -@@ -3014,9 +3014,6 @@ PRE(sys_execve) - vg_assert(j == tot_args+1); - } - -- /* restore the DATA rlimit for the child */ -- VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data)); -- - /* - Set the signal state up for exec. - -Index: coregrind/m_syswrap/syswrap-solaris.c -=================================================================== ---- coregrind/m_syswrap/syswrap-solaris.c.orig -+++ coregrind/m_syswrap/syswrap-solaris.c -@@ -1539,21 +1539,12 @@ PRE(sys_spawn) - #undef COPY_CHAR_TO_ARGENV - #undef COPY_STRING_TOARGENV - -- /* HACK: Temporarily restore the DATA rlimit for spawned child. -- This is a terrible hack to provide sensible brk limit for child. */ -- VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data)); -- - /* Actual spawn() syscall. */ - SysRes res = VG_(do_syscall5)(__NR_spawn, (UWord) path, (UWord) attrs, - attrs_size, (UWord) argenv, argenv_size); - SET_STATUS_from_SysRes(res); - VG_(free)(argenv); - -- /* Restore DATA rlimit back to its previous value set in m_main.c. */ -- struct vki_rlimit zero = { 0, 0 }; -- zero.rlim_max = VG_(client_rlimit_data).rlim_max; -- VG_(setrlimit)(VKI_RLIMIT_DATA, &zero); -- - if (SUCCESS) { - PRINT(" spawn: process %d spawned child %ld\n", VG_(getpid)(), RES); - } -@@ -3619,9 +3610,6 @@ PRE(sys_execve) - VG_(sigprocmask)(VKI_SIG_SETMASK, &tst->sig_mask, NULL); - } - -- /* Restore the DATA rlimit for the child. */ -- VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data)); -- - /* Debug-only printing. */ - if (0) { - HChar **cpp; -Index: coregrind/m_main.c -=================================================================== ---- coregrind/m_main.c.orig -+++ coregrind/m_main.c -@@ -1627,7 +1627,6 @@ Int valgrind_main ( Int argc, HChar **ar - Bool logging_to_fd = False; - const HChar* xml_fname_unexpanded = NULL; - Int loglevel, i; -- struct vki_rlimit zero = { 0, 0 }; - XArray* addr2dihandle = NULL; - - //============================================================ -@@ -1800,13 +1799,15 @@ Int valgrind_main ( Int argc, HChar **ar - VG_(debugLog)(1, "main", "... %s\n", VG_(name_of_launcher)); - - //-------------------------------------------------------------- -- // Get the current process datasize rlimit, and set it to zero. -- // This prevents any internal uses of brk() from having any effect. -- // We remember the old value so we can restore it on exec, so that -- // child processes will have a reasonable brk value. -+ // We used to set the process datasize rlimit to zero to prevent -+ // any internal use of brk() from having any effect. But later -+ // linux kernels redefine RLIMIT_DATA as the size of any data -+ // areas, including some dynamic mmap memory allocations. -+ // See bug #357833 for the commit that went into linux 4.5 -+ // changing the definition of RLIMIT_DATA. So don't mess with -+ // RLIMIT_DATA here now anymore. Just remember it for use in -+ // the syscall wrappers. - VG_(getrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data)); -- zero.rlim_max = VG_(client_rlimit_data).rlim_max; -- VG_(setrlimit)(VKI_RLIMIT_DATA, &zero); - - // Get the current process stack rlimit. - VG_(getrlimit)(VKI_RLIMIT_STACK, &VG_(client_rlimit_stack)); -Index: coregrind/m_libcproc.c -=================================================================== ---- coregrind/m_libcproc.c.orig -+++ coregrind/m_libcproc.c -@@ -450,9 +450,6 @@ void VG_(execv) ( const HChar* filename, - HChar** envp; - SysRes res; - -- /* restore the DATA rlimit for the child */ -- VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data)); -- - envp = VG_(env_clone)(VG_(client_envp)); - VG_(env_remove_valgrind_env_stuff)( envp, True /*ro_strings*/, NULL ); - -@@ -511,17 +508,9 @@ Int VG_(spawn) ( const HChar *filename, - # undef COPY_CHAR_TO_ARGENV - # undef COPY_STRING_TOARGENV - -- /* HACK: Temporarily restore the DATA rlimit for spawned child. */ -- VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data)); -- - SysRes res = VG_(do_syscall5)(__NR_spawn, (UWord) filename, (UWord) NULL, 0, - (UWord) argenv, argenv_size); - -- /* Restore DATA rlimit back to its previous value set in m_main.c. */ -- struct vki_rlimit zero = { 0, 0 }; -- zero.rlim_max = VG_(client_rlimit_data).rlim_max; -- VG_(setrlimit)(VKI_RLIMIT_DATA, &zero); -- - VG_(free)(argenv); - for (HChar **p = envp; *p != NULL; p++) { - VG_(free)(*p); diff --git a/valgrind-3.11.0.tar.bz2 b/valgrind-3.11.0.tar.bz2 deleted file mode 100644 index e023234..0000000 --- a/valgrind-3.11.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6c396271a8c1ddd5a6fb9abe714ea1e8a86fce85b30ab26b4266aeb4c2413b42 -size 11910809 diff --git a/valgrind-3.12.0.tar.bz2 b/valgrind-3.12.0.tar.bz2 new file mode 100644 index 0000000..b5bc16f --- /dev/null +++ b/valgrind-3.12.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67ca4395b2527247780f36148b084f5743a68ab0c850cb43e4a5b4b012cf76a1 +size 12788556 diff --git a/valgrind.changes b/valgrind.changes index 5dceb93..7d77172 100644 --- a/valgrind.changes +++ b/valgrind.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Tue Dec 27 21:48:56 UTC 2016 - foss@grueninger.de + +- update to 3.12.0 + * 3.12.0 is a feature release with many improvements and the usual + collection of bug fixes. The full changelog can be found at + http://valgrind.org/docs/manual/dist.news.html + or + /usr/share/doc/packages/valgrind/NEWS +- droped patches which are part of the release: + gcc5.patch, r15702.diff, r15792.diff, r15802.diff, svn-r15766.patch, + vex-r3197.diff, vex-r3210.diff, vex-r3213.diff + ------------------------------------------------------------------- Thu Oct 20 00:42:48 UTC 2016 - stefan.bruens@rwth-aachen.de diff --git a/valgrind.spec b/valgrind.spec index ac0cf2a..e71ba87 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -25,7 +25,7 @@ %define building_docs 0 %endif Name: valgrind -Version: 3.11.0 +Version: 3.12.0 Release: 0 Summary: Memory Management Debugger License: GPL-2.0+ @@ -36,14 +36,6 @@ Source0: http://valgrind.org/downloads/%{name}-%{version}.tar.bz2 # svn di svn://svn.valgrind.org/vex/tags/VEX_3_5_0 svn://svn.valgrind.org/vex/branches/VEX_3_5_BRANCH > VEX_3_5_BRANCH.diff Patch1: jit-register-unregister.diff Patch2: armv6-support.diff -Patch4: gcc5.patch -Patch5: svn-r15766.patch -Patch6: r15702.diff -Patch7: r15792.diff -Patch8: r15802.diff -Patch100: vex-r3197.diff -Patch101: vex-r3210.diff -Patch102: vex-r3213.diff BuildRequires: automake BuildRequires: docbook-xsl-stylesheets BuildRequires: docbook_4 @@ -118,14 +110,6 @@ but it has been successfully used to optimize several KDE applications. # needs porting to 3.11 ##%patch1 %patch2 -%patch4 -%patch5 -%patch6 -%patch7 -%patch8 -%patch100 -%patch101 -%patch102 %build export FLAGS="%{optflags}" @@ -229,8 +213,12 @@ cp -a README* NEWS AUTHORS COPYING COPYING.DOCS %{buildroot}/%{_defaultdocdir}/% %{_libdir}/valgrind/power-fpu.xml %{_libdir}/valgrind/power-linux-valgrind-s*.xml %{_libdir}/valgrind/power-linux.xml +%{_libdir}/valgrind/power-vsx-valgrind-s1.xml +%{_libdir}/valgrind/power-vsx-valgrind-s2.xml +%{_libdir}/valgrind/power-vsx.xml %{_libdir}/valgrind/power64-core-valgrind-s*.xml %{_libdir}/valgrind/power64-core.xml +%{_libdir}/valgrind/power64-core2-valgrind-s*.xml %{_libdir}/valgrind/power64-linux-valgrind-s*.xml %{_libdir}/valgrind/power64-linux.xml %{_libdir}/valgrind/powerpc-altivec32l-valgrind.xml diff --git a/vex-r3197.diff b/vex-r3197.diff deleted file mode 100644 index 43f5198..0000000 --- a/vex-r3197.diff +++ /dev/null @@ -1,23 +0,0 @@ ------------------------------------------------------------------------- -r3197 | mjw | 2015-10-01 14:31:19 +0200 (Do, 01. Okt 2015) | 5 Zeilen - -Don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine. - -Bug#353370. In amd64g_dirtyhelper_CPUID_avx2 we set the RDRAND bit -but we don't implement support for RDRAND. Turn the bit off so programs -don't try to use RDRAND when running under valgrind. ------------------------------------------------------------------------- -Index: priv/guest_amd64_helpers.c -=================================================================== ---- VEX/priv/guest_amd64_helpers.c (Revision 3196) -+++ VEX/priv/guest_amd64_helpers.c (Revision 3197) -@@ -3101,7 +3101,8 @@ void amd64g_dirtyhelper_CPUID_avx2 ( Vex - SET_ABCD(0x0000000d, 0x756e6547, 0x6c65746e, 0x49656e69); - break; - case 0x00000001: -- SET_ABCD(0x000306c3, 0x02100800, 0x7ffafbff, 0xbfebfbff); -+ /* Don't advertise RDRAND support, bit 30 in ECX. */ -+ SET_ABCD(0x000306c3, 0x02100800, 0x3ffafbff, 0xbfebfbff); - break; - case 0x00000002: - SET_ABCD(0x76036301, 0x00f0b6ff, 0x00000000, 0x00c10000); diff --git a/vex-r3210.diff b/vex-r3210.diff deleted file mode 100644 index 6167f23..0000000 --- a/vex-r3210.diff +++ /dev/null @@ -1,69 +0,0 @@ ------------------------------------------------------------------------- -r3210 | florian | 2016-02-17 20:57:01 +0100 (Mi, 17. Feb 2016) | 3 Zeilen - -s390: Implement popcnt insn. Part of fixing BZ #359289. -Patch by Andreas Arnez (arnez@linux.vnet.ibm.com) - ------------------------------------------------------------------------- -Index: priv/guest_s390_toIR.c -=================================================================== ---- VEX/priv/guest_s390_toIR.c (Revision 3209) -+++ VEX/priv/guest_s390_toIR.c (Revision 3210) -@@ -8,7 +8,7 @@ - This file is part of Valgrind, a dynamic binary instrumentation - framework. - -- Copyright IBM Corp. 2010-2015 -+ Copyright IBM Corp. 2010-2016 - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as -@@ -12938,6 +12938,38 @@ s390_irgen_FLOGR(UChar r1, UChar r2) - } - - static const HChar * -+s390_irgen_POPCNT(UChar r1, UChar r2) -+{ -+ Int i; -+ IRTemp val = newTemp(Ity_I64); -+ IRTemp mask[3]; -+ -+ assign(val, get_gpr_dw0(r2)); -+ for (i = 0; i < 3; i++) { -+ mask[i] = newTemp(Ity_I64); -+ } -+ assign(mask[0], mkU64(0x5555555555555555ULL)); -+ assign(mask[1], mkU64(0x3333333333333333ULL)); -+ assign(mask[2], mkU64(0x0F0F0F0F0F0F0F0FULL)); -+ for (i = 0; i < 3; i++) { -+ IRTemp tmp = newTemp(Ity_I64); -+ -+ assign(tmp, -+ binop(Iop_Add64, -+ binop(Iop_And64, -+ mkexpr(val), -+ mkexpr(mask[i])), -+ binop(Iop_And64, -+ binop(Iop_Shr64, mkexpr(val), mkU8(1 << i)), -+ mkexpr(mask[i])))); -+ val = tmp; -+ } -+ s390_cc_thunk_putZ(S390_CC_OP_BITWISE, val); -+ put_gpr_dw0(r1, mkexpr(val)); -+ return "popcnt"; -+} -+ -+static const HChar * - s390_irgen_STCK(IRTemp op2addr) - { - IRDirty *d; -@@ -14999,7 +15031,8 @@ s390_decode_4byte_and_irgen(const UChar - ovl.fmt.RRE.r2); goto ok; - case 0xb9df: s390_format_RRE_RR(s390_irgen_CLHLR, ovl.fmt.RRE.r1, - ovl.fmt.RRE.r2); goto ok; -- case 0xb9e1: /* POPCNT */ goto unimplemented; -+ case 0xb9e1: s390_format_RRE_RR(s390_irgen_POPCNT, ovl.fmt.RRE.r1, -+ ovl.fmt.RRE.r2); goto ok; - case 0xb9e2: s390_format_RRF_U0RR(s390_irgen_LOCGR, ovl.fmt.RRF3.r3, - ovl.fmt.RRF3.r1, ovl.fmt.RRF3.r2, - S390_XMNM_LOCGR); goto ok; diff --git a/vex-r3213.diff b/vex-r3213.diff deleted file mode 100644 index 484ef51..0000000 --- a/vex-r3213.diff +++ /dev/null @@ -1,21 +0,0 @@ -svn log --diff -c r3213 svn://svn.valgrind.org/vex ------------------------------------------------------------------------- -r3213 | sewardj | 2016-03-21 20:29:20 +0100 (Mo, 21. Mär 2016) | 2 Zeilen - -Make isZeroU handle the V256 case. Fixes #356393. - - -Index: trunk/priv/ir_opt.c -=================================================================== ---- VEX/priv/ir_opt.c (Revision 3212) -+++ VEX/priv/ir_opt.c (Revision 3213) -@@ -1223,6 +1223,7 @@ - case Ico_U16: return toBool( e->Iex.Const.con->Ico.U16 == 0); - case Ico_U32: return toBool( e->Iex.Const.con->Ico.U32 == 0); - case Ico_U64: return toBool( e->Iex.Const.con->Ico.U64 == 0); -+ case Ico_V256: return toBool( e->Iex.Const.con->Ico.V256 == 0x00000000); - default: vpanic("isZeroU"); - } - } - -------------------------------------------------------------------------