Accepting request 447939 from home:mathletic:branches:devel:tools
update to 3.12.0 OBS-URL: https://build.opensuse.org/request/show/447939 OBS-URL: https://build.opensuse.org/package/show/devel:tools/valgrind?expand=0&rev=149
This commit is contained in:
parent
9d1b3ab9be
commit
ac7ac5e535
70
r15702.diff
70
r15702.diff
@ -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
|
|
104
r15792.diff
104
r15792.diff
@ -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 <stdio.h>
|
|
||||||
+#include <stdint.h>
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+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;
|
|
||||||
+}
|
|
76
r15802.diff
76
r15802.diff
@ -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 )
|
|
133
svn-r15766.patch
133
svn-r15766.patch
@ -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);
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:6c396271a8c1ddd5a6fb9abe714ea1e8a86fce85b30ab26b4266aeb4c2413b42
|
|
||||||
size 11910809
|
|
3
valgrind-3.12.0.tar.bz2
Normal file
3
valgrind-3.12.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:67ca4395b2527247780f36148b084f5743a68ab0c850cb43e4a5b4b012cf76a1
|
||||||
|
size 12788556
|
@ -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:
|
||||||
|
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
|
Thu Oct 20 00:42:48 UTC 2016 - stefan.bruens@rwth-aachen.de
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
%define building_docs 0
|
%define building_docs 0
|
||||||
%endif
|
%endif
|
||||||
Name: valgrind
|
Name: valgrind
|
||||||
Version: 3.11.0
|
Version: 3.12.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Memory Management Debugger
|
Summary: Memory Management Debugger
|
||||||
License: GPL-2.0+
|
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
|
# 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
|
Patch1: jit-register-unregister.diff
|
||||||
Patch2: armv6-support.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: automake
|
||||||
BuildRequires: docbook-xsl-stylesheets
|
BuildRequires: docbook-xsl-stylesheets
|
||||||
BuildRequires: docbook_4
|
BuildRequires: docbook_4
|
||||||
@ -118,14 +110,6 @@ but it has been successfully used to optimize several KDE applications.
|
|||||||
# needs porting to 3.11
|
# needs porting to 3.11
|
||||||
##%patch1
|
##%patch1
|
||||||
%patch2
|
%patch2
|
||||||
%patch4
|
|
||||||
%patch5
|
|
||||||
%patch6
|
|
||||||
%patch7
|
|
||||||
%patch8
|
|
||||||
%patch100
|
|
||||||
%patch101
|
|
||||||
%patch102
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export FLAGS="%{optflags}"
|
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-fpu.xml
|
||||||
%{_libdir}/valgrind/power-linux-valgrind-s*.xml
|
%{_libdir}/valgrind/power-linux-valgrind-s*.xml
|
||||||
%{_libdir}/valgrind/power-linux.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-valgrind-s*.xml
|
||||||
%{_libdir}/valgrind/power64-core.xml
|
%{_libdir}/valgrind/power64-core.xml
|
||||||
|
%{_libdir}/valgrind/power64-core2-valgrind-s*.xml
|
||||||
%{_libdir}/valgrind/power64-linux-valgrind-s*.xml
|
%{_libdir}/valgrind/power64-linux-valgrind-s*.xml
|
||||||
%{_libdir}/valgrind/power64-linux.xml
|
%{_libdir}/valgrind/power64-linux.xml
|
||||||
%{_libdir}/valgrind/powerpc-altivec32l-valgrind.xml
|
%{_libdir}/valgrind/powerpc-altivec32l-valgrind.xml
|
||||||
|
@ -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);
|
|
@ -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;
|
|
@ -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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
|
Loading…
Reference in New Issue
Block a user