You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
1
(14) |
|
2
|
3
(6) |
4
(9) |
5
(23) |
6
(6) |
7
(10) |
8
(2) |
|
9
(1) |
10
(5) |
11
(2) |
12
(5) |
13
(2) |
14
(2) |
15
(4) |
|
16
(3) |
17
(22) |
18
(21) |
19
(15) |
20
(24) |
21
(5) |
22
(5) |
|
23
(14) |
24
(2) |
25
(2) |
26
(1) |
27
|
28
|
29
(1) |
|
30
|
31
|
|
|
|
|
|
|
From: Petar J. <mip...@gm...> - 2016-10-21 22:08:57
|
Results from the tarball look fine on selected MIPS targets. Regards, Petar |
|
From: Jakub B. <ber...@gm...> - 2016-10-21 21:26:46
|
Hello,
is it possible to pass more than 3 parameters to (dirty) helper calls
during instrumentation?
When I used VG_REGPARM(4), Valgrind crashed on assert that requires the
regparm count to be >=0 and <= 3 (I understand why is it so, it's probably
hard to pass more than 3 parameters in registers on x86 etc.).
I tried instead to create a vector of several integers and add it to the
argument vector, but Valgrind didn't like that either (it crashed during
ppIRExpr).
// this didn't work
IRExpr** args = mkIRExprVec_3(
mkIRExpr_HWord(exprType),
addr,
mkIRExprVec_2(mkIRExpr_HWord(i1), mkIRExpr_HWord(i2))
);
IRDirty* di = unsafeIRDirty_0_N(3, name, VG_(fnptr_to_fnentry)(fn), args);
Am I doing it wrong or is this something that is not supported at all in
Valgrind?
Thanks,
Kuba Beranek
|
|
From: <sv...@va...> - 2016-10-21 10:42:23
|
Author: sewardj
Date: Fri Oct 21 11:42:14 2016
New Revision: 16098
Log:
-> 3.12.0
Modified:
branches/VALGRIND_3_12_BRANCH/NEWS
branches/VALGRIND_3_12_BRANCH/configure.ac
Modified: branches/VALGRIND_3_12_BRANCH/NEWS
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/NEWS (original)
+++ branches/VALGRIND_3_12_BRANCH/NEWS Fri Oct 21 11:42:14 2016
@@ -261,6 +261,7 @@
(3.12.0.RC1: 20 October 2016, vex r3282, valgrind r16094)
(3.12.0.RC2: 20 October 2016, vex r3282, valgrind r16096)
+(3.12.0: 21 October 2016, vex r3282, valgrind r16098)
Modified: branches/VALGRIND_3_12_BRANCH/configure.ac
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/configure.ac (original)
+++ branches/VALGRIND_3_12_BRANCH/configure.ac Fri Oct 21 11:42:14 2016
@@ -8,7 +8,7 @@
##------------------------------------------------------------##
# Process this file with autoconf to produce a configure script.
-AC_INIT([Valgrind],[3.12.0.RC2],[val...@li...])
+AC_INIT([Valgrind],[3.12.0],[val...@li...])
AC_CONFIG_SRCDIR(coregrind/m_main.c)
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([foreign subdir-objects])
|
|
From: Mark W. <mj...@re...> - 2016-10-21 01:10:10
|
On Thu, 2016-10-20 at 16:35 +0200, Julian Seward wrote: > A release candidate tarball for 3.12.0 is now available for testing, at > > http://valgrind.org/downloads/valgrind-3.12.0.RC2.tar.bz2 > (md5sum = b057a598b2e7298918308dfc6903c141) > > Please give it a try in configurations that are important to you, and report > any problems (and also successes!) to this list. If no critical problems > emerge I'll create the 3.12.0 final tarball tomorrow afternoon. It is looking pretty good on RHEL7 (ppc, x86_64, ppc64le, ppc64, aarch64, i686 and s390x). On Fedora rawhide I hit bug 371396. I checked in a workaround as valgrind svn r16097. But you might find that too risky to add to the release branch (I only tested it on glibc based systems). At the moment the new pthread cond var implementation is Fedora rawhide only (the upcoming Fedora 25 is fine), so I don't mind having to carry a patch for it. Eventually it will go into glibc upstream at which point others might hit it. But that might take some time, so it can maybe wait till 3.12.1 in a couple of months. Cheers, Mark |
Author: mjw
Date: Fri Oct 21 01:02:10 2016
New Revision: 16097
Log:
Add libc_test to workaround pth_cond_destroy_busy test hangs.
This is a workaround for bug #371396. It adds a new test program
that can be used skip tests given a specific libc implementation
and optionally a specific minimum version. Currently only glibc
is recognized. This is used for the drd and helgrind tests
pth_cond_destroy_busy to be skipped on glibc 2.24.90+.
Added:
trunk/tests/libc_test.c
Modified:
trunk/drd/tests/pth_cond_destroy_busy.vgtest
trunk/helgrind/tests/pth_cond_destroy_busy.vgtest
trunk/tests/Makefile.am
Modified: trunk/drd/tests/pth_cond_destroy_busy.vgtest
==============================================================================
--- trunk/drd/tests/pth_cond_destroy_busy.vgtest (original)
+++ trunk/drd/tests/pth_cond_destroy_busy.vgtest Fri Oct 21 01:02:10 2016
@@ -1,2 +1,2 @@
-prereq: ./supported_libpthread
+prereq: ./supported_libpthread && ! ../../tests/libc_test glibc 2.24.90
prog: pth_cond_destroy_busy
Modified: trunk/helgrind/tests/pth_cond_destroy_busy.vgtest
==============================================================================
--- trunk/helgrind/tests/pth_cond_destroy_busy.vgtest (original)
+++ trunk/helgrind/tests/pth_cond_destroy_busy.vgtest Fri Oct 21 01:02:10 2016
@@ -1,2 +1,2 @@
-prereq: ! ../../tests/os_test darwin
+prereq: ! ../../tests/os_test darwin && ! ../../tests/libc_test glibc 2.24.90
prog: ../../drd/tests/pth_cond_destroy_busy
Modified: trunk/tests/Makefile.am
==============================================================================
--- trunk/tests/Makefile.am (original)
+++ trunk/tests/Makefile.am Fri Oct 21 01:02:10 2016
@@ -44,6 +44,7 @@
check_PROGRAMS = \
arch_test \
os_test \
+ libc_test \
true \
x86_amd64_features \
s390x_features \
Added: trunk/tests/libc_test.c
==============================================================================
--- trunk/tests/libc_test.c (added)
+++ trunk/tests/libc_test.c Fri Oct 21 01:02:10 2016
@@ -0,0 +1,78 @@
+// Compare given libc name and version number to system name and version.
+
+// Returns
+// - 0 if the libc name matches is at least the minimum version (if given).
+// - 1 if the libc name doesn't match or the version is lower than requested.
+// - 2 if the requested libc name isn't recognised.
+// - 3 if there was a usage error (it also prints an error message).
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef __GLIBC__
+#include <gnu/libc-version.h>
+#endif
+
+#define False 0
+#define True 1
+typedef int Bool;
+
+/* Assumes the versions are x.y.z, with y and z optional. */
+static Bool matches_version(char *min_version) {
+ int a1=0, a2=0, a3=0, g1=0, g2=0, g3=0; // 'a' = actual; 'g' = given
+ const char *aversion;
+
+ if (min_version == NULL) return True; // no version specified
+
+ // get actual version number
+#ifdef __GLIBC__
+ aversion = gnu_get_libc_version();
+#else
+ aversion = "unknown";
+#endif
+ // We expect at least one number.
+ if (sscanf(aversion, "%d.%d.%d", &a1, &a2, &a3) < 1) return False;
+
+ // parse given version number.
+ if (sscanf(min_version, "%d.%d.%d", &g1, &g2, &g3) < 1) return False;
+
+ if (a1 > g1) return True;
+ if (a1 < g1) return False;
+ if (a2 > g2) return True;
+ if (a2 < g2) return False;
+ if (a3 >= g3) return True;
+
+ return False;
+}
+
+static Bool go(char* libc, char *min_version)
+{
+#ifdef __GLIBC__
+ if ( 0 == strcmp( libc, "glibc" )
+ && matches_version( min_version ))
+ return True;
+#endif
+
+ return False;
+}
+
+//---------------------------------------------------------------------------
+// main
+//---------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+ if ( argc < 2 ) {
+ fprintf( stderr, "usage: libc_test <libc-name> [<min-version>]\n" );
+ exit(3); // Usage error.
+ }
+ if (go( argv[1], argv[2] )) {
+ return 0; // Matched.
+ }
+
+ if ( 0 == strcmp ( argv[1], "glibc" ) ) {
+ return 1; // Requested libc name known, but this isn't it.
+ // Or it wasn't the minimum requested version.
+ }
+ return 2; // Didn't match any known libc name.
+}
|
|
From: Christian B. <bor...@de...> - 2016-10-20 18:47:55
|
On 10/20/2016 04:35 PM, Julian Seward wrote: > > A release candidate tarball for 3.12.0 is now available for testing, at > > http://valgrind.org/downloads/valgrind-3.12.0.RC2.tar.bz2 > (md5sum = b057a598b2e7298918308dfc6903c141) > > Please give it a try in configurations that are important to you, and report > any problems (and also successes!) to this list. If no critical problems > emerge I'll create the 3.12.0 final tarball tomorrow afternoon. Looks ok for s390x on SLES12SP1. |
|
From: Julian S. <js...@ac...> - 2016-10-20 14:35:46
|
A release candidate tarball for 3.12.0 is now available for testing, at http://valgrind.org/downloads/valgrind-3.12.0.RC2.tar.bz2 (md5sum = b057a598b2e7298918308dfc6903c141) Please give it a try in configurations that are important to you, and report any problems (and also successes!) to this list. If no critical problems emerge I'll create the 3.12.0 final tarball tomorrow afternoon. Thanks. J |
|
From: Julian S. <js...@ac...> - 2016-10-20 14:24:47
|
On 18/10/16 09:06, Christian Borntraeger wrote: > Julian, > > after you have picked several commits (all look good, thanks), are you > going to send out a new beta or rc tarball before the release? Yes, I have made a RC2 tarball. I'll send out details in a separate message. J |
|
From: <sv...@va...> - 2016-10-20 12:13:13
|
Author: sewardj
Date: Thu Oct 20 13:13:04 2016
New Revision: 16096
Log:
-> 3.12.0.RC2
Modified:
branches/VALGRIND_3_12_BRANCH/NEWS
branches/VALGRIND_3_12_BRANCH/configure.ac
Modified: branches/VALGRIND_3_12_BRANCH/NEWS
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/NEWS (original)
+++ branches/VALGRIND_3_12_BRANCH/NEWS Thu Oct 20 13:13:04 2016
@@ -260,6 +260,7 @@
n-i-bz DHAT: added collection of the metric "tot-blocks-allocd"
(3.12.0.RC1: 20 October 2016, vex r3282, valgrind r16094)
+(3.12.0.RC2: 20 October 2016, vex r3282, valgrind r16096)
Modified: branches/VALGRIND_3_12_BRANCH/configure.ac
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/configure.ac (original)
+++ branches/VALGRIND_3_12_BRANCH/configure.ac Thu Oct 20 13:13:04 2016
@@ -8,7 +8,7 @@
##------------------------------------------------------------##
# Process this file with autoconf to produce a configure script.
-AC_INIT([Valgrind],[3.12.0.RC1],[val...@li...])
+AC_INIT([Valgrind],[3.12.0.RC2],[val...@li...])
AC_CONFIG_SRCDIR(coregrind/m_main.c)
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([foreign subdir-objects])
|
|
From: <sv...@va...> - 2016-10-20 11:47:23
|
Author: sewardj
Date: Thu Oct 20 12:47:15 2016
New Revision: 16095
Log:
Build fixes for MacOS X 10.10.5.
Modified:
branches/VALGRIND_3_12_BRANCH/Makefile.all.am
branches/VALGRIND_3_12_BRANCH/coregrind/link_tool_exe_darwin.in
branches/VALGRIND_3_12_BRANCH/coregrind/m_main.c
Modified: branches/VALGRIND_3_12_BRANCH/Makefile.all.am
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/Makefile.all.am (original)
+++ branches/VALGRIND_3_12_BRANCH/Makefile.all.am Thu Oct 20 12:47:15 2016
@@ -210,7 +210,7 @@
AM_FLAG_M3264_X86_DARWIN = -arch i386
AM_CFLAGS_X86_DARWIN = $(WERROR) -arch i386 $(AM_CFLAGS_BASE) \
- -mmacosx-version-min=10.5 \
+ -mmacosx-version-min=10.6 \
-fno-stack-protector -fno-pic -fno-PIC
AM_CFLAGS_PSO_X86_DARWIN = $(AM_CFLAGS_X86_DARWIN) $(AM_CFLAGS_PSO_BASE)
@@ -218,7 +218,7 @@
AM_FLAG_M3264_AMD64_DARWIN = -arch x86_64
AM_CFLAGS_AMD64_DARWIN = $(WERROR) -arch x86_64 $(AM_CFLAGS_BASE) \
- -mmacosx-version-min=10.5 -fno-stack-protector
+ -mmacosx-version-min=10.6 -fno-stack-protector
AM_CFLAGS_PSO_AMD64_DARWIN = $(AM_CFLAGS_AMD64_DARWIN) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_AMD64_DARWIN = -arch x86_64 -g
Modified: branches/VALGRIND_3_12_BRANCH/coregrind/link_tool_exe_darwin.in
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/coregrind/link_tool_exe_darwin.in (original)
+++ branches/VALGRIND_3_12_BRANCH/coregrind/link_tool_exe_darwin.in Thu Oct 20 12:47:15 2016
@@ -36,7 +36,7 @@
#
# (64-bit):
#
-# /usr/bin/ld -static -arch x86_64 -macosx_version_min 10.5 \
+# /usr/bin/ld -static -arch x86_64 -macosx_version_min 10.6 \
# -o memcheck-amd64-darwin -u __start -e __start \
# -image_base 0x138000000 -stack_addr 0x13c000000 \
# -stack_size 0x800000 \
@@ -46,7 +46,7 @@
#
# (32-bit)
#
-# /usr/bin/ld -static -arch i386 -macosx_version_min 10.5 \
+# /usr/bin/ld -static -arch i386 -macosx_version_min 10.6 \
# -o memcheck-x86-darwin -u __start -e __start \
# -image_base 0x38000000 -stack_addr 0x3c000000 \
# -stack_size 0x800000 \
@@ -150,7 +150,7 @@
}
$cmd = "$cmd -arch $archstr";
-$cmd = "$cmd -macosx_version_min 10.5";
+$cmd = "$cmd -macosx_version_min 10.6";
$cmd = "$cmd -o $outname";
$cmd = "$cmd -u __start -e __start";
Modified: branches/VALGRIND_3_12_BRANCH/coregrind/m_main.c
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/coregrind/m_main.c (original)
+++ branches/VALGRIND_3_12_BRANCH/coregrind/m_main.c Thu Oct 20 12:47:15 2016
@@ -4058,6 +4058,19 @@
#endif
+#if defined(VGO_darwin) && DARWIN_VERS == DARWIN_10_10
+
+/* This might also be needed for > DARWIN_10_10, but I have no way
+ to test for that. Hence '==' rather than '>=' in the version
+ test above. */
+void __bzero ( void* s, UWord n );
+void __bzero ( void* s, UWord n )
+{
+ (void) VG_(memset)( s, 0, n );
+}
+
+#endif
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
|
|
From: <sv...@va...> - 2016-10-20 08:44:49
|
Author: sewardj
Date: Thu Oct 20 09:44:40 2016
New Revision: 16094
Log:
-> 3.12.0.RC1
Modified:
branches/VALGRIND_3_12_BRANCH/NEWS
branches/VALGRIND_3_12_BRANCH/configure.ac
branches/VALGRIND_3_12_BRANCH/docs/xml/vg-entities.xml
Modified: branches/VALGRIND_3_12_BRANCH/NEWS
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/NEWS (original)
+++ branches/VALGRIND_3_12_BRANCH/NEWS Thu Oct 20 09:44:40 2016
@@ -259,7 +259,7 @@
n-i-bz arm: Fix incorrect register-number constraint check for LDAEX{,B,H,D}
n-i-bz DHAT: added collection of the metric "tot-blocks-allocd"
-(3.12.0.RC1: 20 October 2016, vex r3282, valgrind r16092)
+(3.12.0.RC1: 20 October 2016, vex r3282, valgrind r16094)
Modified: branches/VALGRIND_3_12_BRANCH/configure.ac
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/configure.ac (original)
+++ branches/VALGRIND_3_12_BRANCH/configure.ac Thu Oct 20 09:44:40 2016
@@ -8,7 +8,7 @@
##------------------------------------------------------------##
# Process this file with autoconf to produce a configure script.
-AC_INIT([Valgrind],[3.12.BRANCH],[val...@li...])
+AC_INIT([Valgrind],[3.12.0.RC1],[val...@li...])
AC_CONFIG_SRCDIR(coregrind/m_main.c)
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([foreign subdir-objects])
Modified: branches/VALGRIND_3_12_BRANCH/docs/xml/vg-entities.xml
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/docs/xml/vg-entities.xml (original)
+++ branches/VALGRIND_3_12_BRANCH/docs/xml/vg-entities.xml Thu Oct 20 09:44:40 2016
@@ -6,8 +6,8 @@
<!-- valgrind release + version stuff -->
<!ENTITY rel-type "Release">
-<!ENTITY rel-version "3.12.0.SVN">
-<!ENTITY rel-date "?? ??????? 2016">
+<!ENTITY rel-version "3.12.0">
+<!ENTITY rel-date "20 October 2016">
<!-- where the docs are installed -->
<!ENTITY vg-docs-path "$INSTALL/share/doc/valgrind/html/index.html">
|
|
From: <sv...@va...> - 2016-10-20 08:31:17
|
Author: sewardj
Date: Thu Oct 20 09:31:08 2016
New Revision: 16093
Log:
Resync these (copy from) the trunk.
Modified:
branches/VALGRIND_3_12_BRANCH/NEWS
branches/VALGRIND_3_12_BRANCH/docs/internals/3_11_BUGSTATUS.txt
Modified: branches/VALGRIND_3_12_BRANCH/NEWS
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/NEWS (original)
+++ branches/VALGRIND_3_12_BRANCH/NEWS Thu Oct 20 09:31:08 2016
@@ -1,10 +1,39 @@
-Release 3.12.0 (?? ????????? 201?)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Release 3.12.0 is under development, not yet released.
+
+Release 3.12.0 (20 October 2016)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+3.12.0 is a feature release with many improvements and the usual
+collection of bug fixes.
+
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux,
+ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux,
+MIPS32/Linux, MIPS64/Linux, ARM/Android, ARM64/Android,
+MIPS32/Android, X86/Android, X86/Solaris, AMD64/Solaris, X86/MacOSX
+10.10 and AMD64/MacOSX 10.10. There is also preliminary support for
+X86/MacOSX 10.11/12, AMD64/MacOSX 10.11/12 and TILEGX/Linux.
* ================== PLATFORM CHANGES =================
-* Preliminary support for macOS 10.12 (Sierra) has been added.
+* POWER: Support for ISA 3.0 has been added
+
+* mips: support for O32 FPXX ABI has been added.
+* mips: improved recognition of different processors
+* mips: determination of page size now done at run time
+
+* amd64: Partial support for AMD FMA4 instructions.
+
+* arm, arm64: Support for v8 crypto and CRC instructions.
+
+* Improvements and robustification of the Solaris port.
+
+* Preliminary support for MacOS 10.12 (Sierra) has been added.
+
+Whilst 3.12.0 continues to support the 32-bit x86 instruction set, we
+would prefer users to migrate to 64-bit x86 (a.k.a amd64 or x86_64)
+where possible. Valgrind's support for 32-bit x86 has stagnated in
+recent years and has fallen far behind that for 64-bit x86
+instructions. By contrast 64-bit x86 is well supported, up to and
+including AVX2.
* ==================== TOOL CHANGES ====================
@@ -15,33 +44,39 @@
objects in the pool
- Uses itself to allocate other memory blocks
-* Helgrind:
-
-* Callgrind:
+ - New flag --ignore-range-below-sp to ignore memory accesses below
+ the stack pointer, if you really have to. The related flag
+ --workaround-gcc296-bugs=yes is now deprecated. Use
+ --ignore-range-below-sp=1024-1 as a replacement.
* DRD:
-n-i-bz Improved thread startup time significantly on non-Linux platforms.
+
+ - Improved thread startup time significantly on non-Linux platforms.
+
+* DHAT
+
+ - Added collection of the metric "tot-blocks-allocd"
* ==================== OTHER CHANGES ====================
* Replacement/wrapping of malloc/new related functions is now done not just
for system libraries by default, but for any globally defined malloc/new
- related function (both in shared libraries and staticly linked alternative
- malloc implementations). Dynamic (runtime) linker is excluded, though.
+ related function (both in shared libraries and statically linked alternative
+ malloc implementations). The dynamic (runtime) linker is excluded, though.
To only intercept malloc/new related functions in
system libraries use --soname-synonyms=somalloc=nouserintercepts (where
"nouserintercepts" can be any non-existing library name).
- This new functionality is not implemented for darwin/macosx.
+ This new functionality is not implemented for MacOS X.
* The maximum number of callers in a suppression entry is now equal to
the maximum size for --num-callers (500).
- Note that --gen-suppressions=yes|all similarly generate suppression
+ Note that --gen-suppressions=yes|all similarly generates suppressions
containing up to --num-callers frames.
* New and modified GDB server monitor features:
- Valgrind's gdbserver now accepts the command 'catch syscall'.
- Note that you must have a GDB >= 7.11 to use 'catch syscall' with
+ Note that you must have GDB >= 7.11 to use 'catch syscall' with
gdbserver.
* New option --run-cxx-freeres=<yes|no> can be used to change whether
@@ -56,6 +91,13 @@
for the most common use case (x86_64-linux, Memcheck) has been
reduced by 10%-15%.
+* Improved performance for programs that do a lot of discarding of
+ instruction address ranges of 8KB or less.
+
+* The C++ symbol demangler has been updated.
+
+* More robustness against invalid syscall parameters on Linux.
+
* ==================== FIXED BUGS ====================
The following bugs have been fixed or resolved. Note that "n-i-bz"
@@ -70,13 +112,17 @@
where XXXXXX is the bug number as listed below.
191069 Exiting due to signal not reported in XML output
-199468 Suppressions: stack size limited to 25 while --num-callers allows more frames
+199468 Suppressions: stack size limited to 25
+ while --num-callers allows more frames
212352 vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM)
278744 cvtps2pd with redundant RexW
303877 valgrind doesn't support compressed debuginfo sections.
345307 Warning about "still reachable" memory when using libstdc++ from gcc 5
348345 Assertion fails for negative lineno
+351282 V 3.10.1 MIPS softfloat build broken with GCC 4.9.3 / binutils 2.25.1
+351692 Dumps created by valgrind are not readable by gdb (mips32 specific)
351804 Crash on generating suppressions for "printf" call on OS X 10.10
+352197 mips: mmap2() not wrapped correctly for page size > 4096
353083 arm64 doesn't implement various xattr system calls
353084 arm64 doesn't support sigpending system call
353137 www: update info for Supported Platforms
@@ -93,6 +139,7 @@
353891 Assert 'bad_scanned_addr < VG_ROUNDDN(start+len, sizeof(Addr))' failed
353917 unhandled amd64-solaris syscall fchdir(120)
353920 unhandled amd64-solaris syscall: 170
+354274 arm: unhandled instruction: 0xEBAD 0x0AC1 (sub.w sl, sp, r1, lsl #3)
354392 unhandled amd64-solaris syscall: 171
354797 Vbit test does not include Iops for Power 8 instruction support
354883 tst->os_state.pthread - magic_delta assertion failure on OSX 10.11
@@ -104,16 +151,21 @@
355454 do not intercept malloc related symbols from the runtime linker
355455 stderr.exp of test cases wrapmalloc and wrapmallocstatic overconstrained
356044 Dwarf line info reader misinterprets is_stmt register
+356112 mips: replace addi with addiu
356393 valgrind (vex) crashes because isZeroU happened
== 363497
== 364497
356676 arm64-linux: unhandled syscalls 125, 126 (sched_get_priority_max/min)
356678 arm64-linux: unhandled syscall 232 (mincore)
356817 valgrind.h triggers compiler errors on MSVC when defining NVALGRIND
+356823 Unsupported ARM instruction: stlex
+357059 x86/amd64: SSE cvtpi2ps with memory source does transition to MMX state
357338 Unhandled instruction for SHA instructions libcrypto Boring SSL
+357673 crash if I try to run valgrind with a binary link with libcurl
357833 Setting RLIMIT_DATA to zero breaks with linux 4.5+
357871 pthread_spin_destroy not properly wrapped
357887 Calls to VG_(fclose) do not close the file descriptor
+357932 amd64->IR: accept redundant REX prefixes for {minsd,maxsd} m128, xmm.
358030 support direct socket calls on x86 32bit (new in linux 4.3)
358478 drd/tests/std_thread.cpp doesn't build with GCC6
359133 Assertion 'eltSzB <= ddpa->poolSzB' failed
@@ -122,10 +174,11 @@
359289 s390x: popcnt (B9E1) not implemented
359472 The Power PC vsubuqm instruction doesn't always give the correct result
359503 Add missing syscalls for aarch64 (arm64)
+359645 "You need libc6-dbg" help message could be more helpful
359703 s390: wire up separate socketcalls system calls
359724 getsockname might crash - deref_UInt should call safe_to_deref
359733 amd64 implement ld.so strchr/index override like x86
-359767 Valgrind does not support the IBM POWER ISA 3.0 instructions
+359767 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 1/5
359829 Power PC test suite none/tests/ppc64/test_isa_2_07.c uses
uninitialized data
359838 arm64: Unhandled instruction 0xD5033F5F (clrex)
@@ -139,46 +192,44 @@
360425 arm64 unsupported instruction ldpsw
== 364435
360519 none/tests/arm64/memory.vgtest might fail with newer gcc
+360571 Error about the Android Runtime reading below the stack pointer on ARM
360574 Wrong parameter type for an ashmem ioctl() call on Android and ARM64
360749 kludge for multiple .rodata sections on Solaris no longer needed
360752 raise the number of reserved fds in m_main.c from 10 to 12
-361207 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2
+361207 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2/5
361226 s390x: risbgn (EC59) not implemented
+361253 [s390x] ex_clone.c:42: undefined reference to `pthread_create'
361354 ppc64[le]: wire up separate socketcalls system calls
361615 Inconsistent termination for multithreaded process terminated by signal
361926 Unhandled Solaris syscall: sysfs(84)
-362009 Valgrind dumps core on unimplemented functionality before threads are created
-362329 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3
+362009 V dumps core on unimplemented functionality before threads are created
+362329 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3/5
362894 missing (broken) support for wbit field on mtfsfi instruction (ppc64)
362935 [AsusWRT] Assertion 'sizeof(TTEntryC) <= 88' failed
+362953 Request for an update to the Valgrind Developers page
363680 add renameat2() support
363705 arm64 missing syscall name_to_handle_at and open_by_handle_at
363714 ppc64 missing syscalls sync, waitid and name_to/open_by_handle_at
-363858 Add IBM ISA 3.0 support, patch set 4
+363858 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 4/5
364058 clarify in manual limitations of array overruns detections
364413 pselect sycallwrapper mishandles NULL sigmask
364728 Power PC, missing support for several HW registers in
get_otrack_shadow_offset_wrk()
-365273 Invalid write to stack location reported after signal handler runs
-365912 ppc64BE segfault during jm-insns test (RELRO)
-366344 Multiple unhandled instruction for Aarch64
-359767 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 1/5
-361207 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2/5
-362329 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3/5
-363858 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 4/5
364948 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 5/5
+365273 Invalid write to stack location reported after signal handler runs
365912 ppc64BE segfault during jm-insns test (RELRO)
+366079 FPXX Support for MIPS32 Valgrind
366138 Fix configure errors out when using Xcode 8 (clang 8.0.0)
366344 Multiple unhandled instruction for Aarch64
(0x0EE0E020, 0x1AC15800, 0x4E284801, 0x5E040023, 0x5E056060)
367995 Integration of memcheck with custom memory allocator
+368120 x86_linux asm _start functions do not keep 16-byte aligned stack pointer
368412 False positive result for altivec capability check
-368461 mmapunmap test fails on ppc64
368416 Add tc06_two_races_xml.exp output for ppc64
-368412 False positive result for altivec capability check
+368419 Perf Events ioctls not implemented
368461 mmapunmap test fails on ppc64
+368823 run_a_thread_NORETURN assembly code typo for VGP_arm64_linux target
369000 AMD64 fma4 instructions unsupported.
-361253 [s390x] ex_clone.c:42: undefined reference to `pthread_create'
369169 ppc64 fails jm_int_isa_2_07 test
369175 jm_vec_isa_2_07 test crashes on ppc64
369209 valgrind loops and eats up all memory if cwd doesn't exist.
@@ -192,20 +243,25 @@
369441 bad lvec argument crashes process_vm_readv/writev syscall wrappers
369446 valgrind crashes on unknown fcntl command
369439 S390x: Unhandled insns RISBLG/RISBHG and LDE/LDER
-369468 Remove quadratic metapool alg. using VG_(HT_remove_at_Iter)
- (VgHashTable *table)
+369468 Remove quadratic metapool algorithm using VG_(HT_remove_at_Iter)
370265 ISA 3.0 HW cap stuff needs updating
371128 BCD add and subtract instructions on Power BE in 32-bit mode do not work
+n-i-bz Fix incorrect (or infinite loop) unwind on RHEL7 x86 and amd64
+n-i-bz massif --pages-as-heap=yes does not report peak caused by mmap+munmap
+n-i-bz false positive leaks due to aspacemgr merging heap & non heap segments
+n-i-bz Fix ppoll_alarm exclusion on OS X
+n-i-bz Document brk segment limitation, reference manual in limit reached msg.
+n-i-bz Fix clobber list in none/tests/amd64/xacq_xrel.c [valgrind r15737]
+n-i-bz Bump allowed shift value for "add.w reg, sp, reg, lsl #N" [vex r3206]
+n-i-bz amd64: memcheck false positive with shr %edx
+n-i-bz arm3: Allow early writeback of SP base register in "strd rD, [sp, #-16]"
+n-i-bz ppc: Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion
+n-i-bz arm: Fix incorrect register-number constraint check for LDAEX{,B,H,D}
+n-i-bz DHAT: added collection of the metric "tot-blocks-allocd"
+
+(3.12.0.RC1: 20 October 2016, vex r3282, valgrind r16092)
+
-n-i-bz Fix incorrect (or infinite loop) unwind on RHEL7 x86 and amd64
-n-i-bz massif --pages-as-heap=yes does not report peak caused by mmap+munmap
-n-i-bz false positive leaks due to aspacemgr merging non heap segments
- with heap segments.
-n-i-bz Fix ppoll_alarm exclusion on OS X
-n-i-bz Document brk segment limitation, reference manual in limit reached msg.
-n-i-bz Fix clobber list in none/tests/amd64/xacq_xrel.c [valgrind r15737]
-n-i-bz Bump allowed shift value for "add.w reg, sp, reg, lsl #N" [vex r3206]
-n-i-bz amd64: memcheck false positive with shr %edx
Release 3.11.0 (22 September 2015)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modified: branches/VALGRIND_3_12_BRANCH/docs/internals/3_11_BUGSTATUS.txt
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/docs/internals/3_11_BUGSTATUS.txt (original)
+++ branches/VALGRIND_3_12_BRANCH/docs/internals/3_11_BUGSTATUS.txt Thu Oct 20 09:31:08 2016
@@ -8,11 +8,6 @@
356715 vex amd64->IR: 0xC4 0xE2 0x7D 0x13 0x4 0x4A 0xC5 0xFC
vcvtph2ps (%rdx,%rcx,2),%ymm0
-357932 vex amd64->IR: 0xF2 0x49 0xF 0x5D and 0xF2 0x49 0xF 0x5F
- rex.WB minsd (%r8),%xmm0
- rex.WB maxsd (%r8),%xmm0
- redundant rex prefixes
-
360415 amd64 instructions ADCX and ADOX are not implemented in VEX
[has patch, could possibly take it, but needs cleanup/verification]
@@ -31,29 +26,23 @@
=== VEX/arm ============================================================
352630 valgrind: Unrecognised instruction at address 0x4fc4d33.
-354274 arm: unhandled instruction: 0xEBAD 0x0AC1 (sub.w sl, sp, r1, lsl #3)
+ [what insn is this?]
+
355526 disInstr(arm): unhandled instruction: 0x1823E91
+ [what insn is this?]
+
n-i-bz Remove limit on strd's negative immediates
[dev@, Michael Daniels, 19 Nov 2015, easy fix, should land]
-356823 Unsupported ARM instruction: stlex
-357673 crash if I try to run valgrind with a binary link with libcurl
- [IR sanity check failure]
+
362934 [AsusWRT] Arm v7 illegal instruction
+ [unclear what this is; a SIGILL on generated code]
=== VEX/arm64 ==========================================================
=== VEX/x86 ============================================================
-355231 Unhandled Instruction Bytes (SSE4, vmovdqu, "0xC5 0xFA 0x6F 0x2")
-357059 x86: SSE cvtpi2ps with memory source does transition to MMX state
- [Also relevant for amd64. Not sure this is really a bug.]
-358856 unhandled instruction bytes: 0xC4 0xE2 0x7B 0xF7
-
=== VEX/mips ===========================================================
-356112 mips: replace addi with addiu
-366079 FPXX Support for MIPS32 Valgrind
-
=== VEX/ppc ============================================================
361405 disInstr(ppc): unhandled instruction: 0xFF81010C
@@ -61,6 +50,7 @@
=== VEX/s390x ==========================================================
366413 s390x: New z13 instructions not implemented
+ [Per cborntraeger, is not important for 3.12.0]
=== VEX general ========================================================
@@ -80,8 +70,7 @@
359705 memcheck causes segfault on a dynamically-linked test from
rustlang's test suite on i686
360429 Warning: noted but unhandled ioctl 0x530d with no size/direction hints.
-361615 Inconsistent termination when an instrumented multithreaded process
- is terminated by signal
+ (has patch, should take)
361726 WARNING:unhandled syscall on ppc64
361770 Missing F_ADD_SEALS
362892 test apk in android5.0.2,after fix the bug 344802,android log
@@ -92,8 +81,8 @@
[initimg problems on Android]
364359 Valgrind crashes on fcntl(F_SETFL, O_NONBLOCK, fd)
367942 Segfault vgPlain_do_sys_sigaction (m_signals.c:1138)
-368419 Perf Events ioctls not implemented
368791 unhandled syscall: 167 (swapon, amd64-linux)
+ (should fix this for 3.12.1)
=== Syscalls/ioctls on OSX =============================================
@@ -105,8 +94,11 @@
=== Debuginfo reader ===================================================
353192 Debug info/data section not detected on AMD64
+ [To do with rwx, combined code+data sections]
+
355197 Too strong assert in variable debug info code
-359181 Buffer Overflow during Demangling
+ [Still relevant?]
+
365750 Valgrind fails on binary with .text section not in default place
[Horrible hack to do with relocating .text section]
@@ -120,8 +112,8 @@
364279 False "Uninitialized" on atomic_compare_exchange
366035 valgrind misses buffer overflow, segfaults in malloc in localtime
366817 VALGRIND_MEMPOOL_CHANGE has a performance bug
-367995 Integration of memcheck with custom memory allocator
368507 valgrind throws std::bad_alloc on memory allocations larger than 34255421416 bytes
+ (increase usable address space post release, on trunk)
=== Tools/DRD ==========================================================
@@ -152,14 +144,8 @@
=== other/x86 ==========================================================
-368120 x86_linux asm _start functions do not keep 16-byte aligned stack pointer
-
=== other/mips =========================================================
-351282 valgrind 3.10.1 MIPS softfloat build broken with GCC 4.9.3 /
- binutils 2.25.1
-352197 mips: mmap2() not wrapped correctly for page size > 4096
-
=== other/ppc ==========================================================
365208 valgrind stuck after redirecting "memcpy"
@@ -170,15 +156,12 @@
core, : at 0x4000E7C: ??? (in /lib/ld-uClibc.so.0)
368529 Android arm target link error, missing atexit and pthread_atfork
+ (should take patch)
=== other/arm64 ========================================================
-368823 run_a_thread_NORETURN assembly code typo for VGP_arm64_linux target
-
=== other/s390 =========================================================
-361253 [s390x] ex_clone.c:42: undefined reference to `pthread_create'
-
=== other/tilegx =======================================================
=== other/Android ======================================================
@@ -216,24 +199,18 @@
352395 Please provide SVN revision info in --version
358569 Unhandled instructions cause creation of "orphan" stack traces
in XML output
-359645 [patch] "You need libc6-dbg" help message could be more helpful
- with 32-bit target on-64-bit arch
=== MPI ================================================================
=== Documentation ======================================================
-362953 Request for an update to the Valgrind Developers page
-
=== Uncategorised/run ==================================================
-351692 Dumps created by valgrind are not readable by gdb
356457 valgrind: m_mallocfree.c:2042 (vgPlain_arena_free):
Assertion 'blockSane(a, b)' failed.
[Possible V memory corruption?]
359249 valgrind unable to load 64-bit linux executable
linked with -mcmodel=medium
-360571 Error about the Android Runtime reading below the stack pointer on ARM
362223 valgrind: m_commandline.c:79 (read_dot_valgrindrc):
Assertion 'n >= 0 && n <= stat_buf.size+1' failed.
362680 --error-exitcode not honored when file descriptor leaks are found
@@ -241,6 +218,7 @@
=== Uncategorised/build ================================================
358697 valgrind.h: Some code remains even when defining NVALGRIND
+ (we should fix this)
359202 Add musl libc configure/compile
359920 Configure fails with relative DESTDIR
362033 undeclared identifier build failures for getpid(), usleep(),
@@ -264,3 +242,191 @@
========================================================================
Thu 15 Sep 12:55:21 CEST 2016
+
+368863 WARNING: unhandled arm64-linux syscall: 100
+368864 WARNING: unhandled arm64-linux syscall: 262
+368865 WARNING: unhandled arm64-linux syscall: 272
+368866 WARNING: unhandled arm64-linux syscall: 238
+368868 disInstr(arm64): unhandled instruction 0xD53BE000 = cntfrq_el0 (ARMv8)
+ (should fix this for 3.12.1)
+368873 Please add FreeBSD to supported OS list
+368913 WARNING: unhandled arm64-linux syscall: 117
+368914 WARNING: unhandled arm64-linux syscall: 142
+368916 WARNING: unhandled arm64-linux syscall: 234
+368917 WARNING: unhandled arm64-linux syscall: 218
+368918 WARNING: unhandled arm64-linux syscall: 127
+368919 WARNING: unhandled arm64-linux syscall: 274
+368920 WARNING: unhandled arm64-linux syscall: 275
+368921 WARNING: unhandled arm64-linux syscall: 162
+368922 WARNING: unhandled arm64-linux syscall: 161
+368923 WARNING: unhandled arm64-linux syscall: 268
+368924 WARNING: unhandled arm64-linux syscall: 84
+368925 WARNING: unhandled arm64-linux syscall: 130
+368926 WARNING: unhandled arm64-linux syscall: 97
+368960 WARNING: unhandled amd64-linux syscall: 163
+369026 WARNING: unhandled amd64-linux syscall: 169
+369027 WARNING: unhandled amd64-linux syscall: 216 (remap_file_pages)
+369028 WARNING: unhandled amd64-linux syscall: 314 (sched_setattr)
+369029 WARNING: unhandled amd64-linux syscall: 315 (sched_getattr)
+369030 WARNING: unhandled amd64-linux syscall: 171 (setdomainname)
+369031 WARNING: unhandled amd64-linux syscall: 308 (setns)
+369032 WARNING: unhandled amd64-linux syscall: 205 (set_thread_area)
+369033 WARNING: unhandled amd64-linux syscall: 139 (sysfs)
+369034 WARNING: unhandled amd64-linux syscall: 136 (ustat)
+369053 AMD64 fma4 instructions missing 256 bit support
+
+369409 null pointer dereference in vgPlain_do_syscall
+ possibly a dup of (fixed) 353370
+
+369456 callgrind_control failed to find an active callgrind run.
+ OSX specific
+
+369459 valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)
+
+369509 ARMv8.1 LSE instructions are not supported
+369723 __builtin_longjmp not supported in clang/llvm on Android arm64 target
+ Has patch
+
+369854 Valgrind reports an Invalid Read in __intel_new_memcpy
+ Should be handled by --partial-loads-ok=yes
+
+370028 Reduce the number of compiler warnings on MIPS platforms
+370635 arm64 missing syscall getcpu
+ (should fix this for 3.12.1)
+
+371065 www: add CfP for FOSDEM 2017 in valgrind.org NEWS section
+
+Wed 19 Oct 17:07:42 CEST 2016
+
+========================================================================
+========================================================================
+
+
+3_12_BRANCH: vex 3250 is a copy of trunk 3249
+ val 15963 is a copy of trunk 15962
+
+3.12.0.BETA1 is 3_12_BRANCHes at 15973/3250.
+
+MERGED (trunk -> 3_12_BRANCH unless otherwise indicated):
+
+15966 -> 15967 a missing helgrind test file
+15968 -> 15969 Add none/tests/ppc64/ppc64_helpers.h to noinst_HEADERS.
+15970 -> 15972 fix for bugzilla 361253 [s390x]
+15971 -> 15973 Add feature check for tests that use -march=armv8-a+crc.
+15975 -> 16007 Avoid unused variable warning.
+15976 -> 16071 Prelim support for macOS Sierra (10.12).
+ Partial fix for #365327.
+15977 -> 16008 ppcBE, fix the expected output file for
+ none/tests/ppc64/jm_int_isa_2_07.stdout.exp
+15978 -> 16009 Use proper compiler flags on Solaris for fma4 test.
+15979 -> 16010 Fix expected error output of drd/tests/bar_bad* on Solaris.
+15980 -> 16009 Fix none/tests/amd64/Makefile.am typo s/AM_CFKAGS/AM_CFLAGS/
+15981 -> 16016 Add ioctl wrapper for MNTIOC_GETEXTMNTENT.
+15982 -> 16011 Fix #361615 - Inconsistent termination for multithreaded process
+ terminated by signal
+15983 -> 16011 Fix warning introduced by revision 15982
+15984 -> 16012 Added meta mempool support into memcheck Fixes BZ#367995
+15985 -> 16012 Fix test so that leaked bytes is the same in 32 and 64 bits
+15986 -> 16012 Add an optional 2nd arg to leak-autofreepool to test performance
+15987 -> 16012 mc-manual.xml: Fix some mismatched open/close tags.
+15988 -> 16013 Use AM_LDFLAGS instead of LDFLAGS in exp-bbv/tests Makefiles.
+15989 -> 16014 Don't require the current working directory to exist. #369209.
+15990 -> 16015 Fix pre_mem_read_sockaddr crash on invalid syscall arguments.
+ Bug #369356.
+15991 -> 16015 Fix crash in msghdr_foreachfield when iov_len isn't safe to
+ dereference. #369359
+15992 -> 16015 Fix crash when old/new sigprocmask isn't safe to dereference.
+ Bug #369360.
+15993 -> 16015 Fix crash in vmsplice linux kernel wrapper when iovec is bad.
+ Bug #369361.
+15994 -> 16015 Fix crash in linux [rt_]sigaction wrapper with bad old/new
+ sigaction handler. #369362
+15995 -> 16015 Fix crash in sys_modify_ldt wrapper on bad ptr. Bug #369383.
+15996 -> 16015 linux-x86 check get/set_thread_area pointer before use.
+ Bug #369402.
+15997 -> 16015 Don't check bad iovec array in process_vm_readv/writev.
+ Bug #369441.
+15998 -> 16015 Don't crash, but warn and return EINVAL on unknown fcntl command.
+15999 -> 16017 Replace --wait-for-gdb=yes memory loop by a call to VG_(poll)
+ (5000 milliseconds)
+16000 -> 16017 Well, 5 seconds is too short for me to type a attach pid command
+ so increase to 8 seconds.
+3251 -> 3254 Fix for clean helpers on BE
+3252 -> 3255 Fix rounding mode check and instruction stxvl
+16001 -> 16019 mips32: test for syscalls prctl(GET/SET_FP_MODE)
+
+16002 Update svn:ignore list
+
+3253 -> 3256 mips64: support for fp32 mode
+16003 -> 16020 mips64: support for prctl(GET/SET_FP_MODE) syscalls
+16004 -> 16021 mips64: support for prctl(GET/SET_FP_MODE) syscalls
+
+16005 mips: update svn:ignore list
+
+16006 -> 16022 dhat: add "tot-blocks-allocd" metric
+16018 -> 16047 mips: replace use of (d)addi with (d)addiu
+3257 -> 3264 Relax the overly-restrictive implementation of (T3) SUB{S}.W Rd,
+ SP, Rm, {shift}. #354274
+
+16023 Update 3_11_BUGSTATUS.txt
+
+16024 -> 16048 Fix n-i-bz bug in auto free pool: a block using the last byte
+ of the meta pool was not auto-freed.
+16025 -> 16049 Add a warning to the get/set_thread_area wrapper
+ for bad info pointers.
+3258 -> 3265 mips: remove support for mfc0/dmfc0
+16026 -> 16050 mips32: fix the wrong offset for mmap2()
+3259 -> 3266 s390: support RISBLG/RISBHG, MVCIN, LDE/LDER
+16027 -> 16051 s390: support RISBLG/RISBHG, MVCIN, LDE/LDER
+16028 -> 16052 s390/highword fix compile warning with some compilers
+16029 -> 16053 actually test high-word by providing the plumbing...
+16030 -> 16054 fix building the dfp testcase
+16031 -> 16055 mips32: add pselect6 to the list of supported syscalls
+
+3260 -> 3267 ISA 3.0 BE fixes for various new instructions
+16032 -> 16056 ISA 3.0 BE testsuite fixes
+16034 -> 16057 Power configure fixes.
+16035 -> 16058 Update NEWS file for bugzillas 369175 and 370265
+16037 -> 16059 Fix for missing ISA changes in HW cap stuff needs updating patch
+
+16033 -> 16060 Fix some (small) leaks found by self-hosting valgrind
+16036 -> 16061 Fix corruption introduced by revision 16033
+16044 -> 16062 Further fixes following fix of leak in 16033
+16045 -> 16063 Follow up for r16044. Fix compilation problem on Solaris.
+
+16038 -> 16064 mips: clear fcc bits in fcsr after calling printf()
+
+3261 -> 3268 mips: allow VEX to be compiled for soft-float
+16039 -> 16065 mips: allow Valgrind to be compiled for soft-float
+
+3262 -> 3269 mips: fix incorrect implementation of luxc1/suxc1 instructions
+3263 -> 3270 mips64: fix error introduced by r3262
+16040 -> 16066 mips32: add the test cases for luxc1/suxc1 instructions
+
+16041 -> 16067 fix 369468 Remove quadratic metapool alg.
+ using VG_(HT_remove_at_Iter)(VgHashTable *table)
+16042 -> 16068 Clarify name and description/manual for meta mempool
+16043 -> 16069 Introduce leak-pool-3.* back into EXTRA_DIST as they are not
+ related to leak-autofreepool tests. This is a follow up
+ fix for r16042.
+
+3271 -> 3277 Fix PPC BE in 32-bit mode (Iop_CmpXX64 not supported)
+16072 -> 16082 Fix PPC BE in 32-bit mode (Iop_CmpXX64 not supported)
+16073 -> 16083 Add --ignore-range-below-sp=<offset>-<offset>
+16074 -> 16084 Fix run_a_thread_NORETURN assembly code typo for VGP_arm64_linux
+16075 -> 16085 x86_linux asm _start functions do not keep 16-byte aligned %esp.
+3272 -> 3278 Fix incorrect register-number constraint check for LDAEX{,B,H,D}
+3273 -> 3279 Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion.
+3274 -> 3280 Accept redundant REX prefixes for {minsd,maxsd} m128, xmm.
+3275 -> 3281 CVTPI2PS: Only switch to MMX mode if the source is a MMX reg
+16077 -> 16086 Add support for Linux perf-events ioctls.
+16078 -> 16087 "You need libc6-dbg" help message could be more helpful.
+3276 -> 3282 Allow early wback of SP base register in "strd rD, [sp, #-16]"
+16079 -> 16088 Update memcheck/tests/ppc64/power_ISA2_05.vgtest
+16080 -> 16089 mips: fix coredump creation in Valgrind
+16081 -> 16090 Add another incompatibility between illumos and Solaris kernels.
+
+(tracked up to and including 16090/3282)
+
+========================================================================
+========================================================================
|
|
From: <sv...@va...> - 2016-10-20 08:27:14
|
Author: sewardj
Date: Thu Oct 20 09:27:08 2016
New Revision: 16092
Log:
Update.
Modified:
trunk/docs/internals/3_11_BUGSTATUS.txt
Modified: trunk/docs/internals/3_11_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_11_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_11_BUGSTATUS.txt Thu Oct 20 09:27:08 2016
@@ -8,11 +8,6 @@
356715 vex amd64->IR: 0xC4 0xE2 0x7D 0x13 0x4 0x4A 0xC5 0xFC
vcvtph2ps (%rdx,%rcx,2),%ymm0
-357932 vex amd64->IR: 0xF2 0x49 0xF 0x5D and 0xF2 0x49 0xF 0x5F
- rex.WB minsd (%r8),%xmm0
- rex.WB maxsd (%r8),%xmm0
- redundant rex prefixes
-
360415 amd64 instructions ADCX and ADOX are not implemented in VEX
[has patch, could possibly take it, but needs cleanup/verification]
@@ -46,9 +41,6 @@
=== VEX/x86 ============================================================
-357059 x86: SSE cvtpi2ps with memory source does transition to MMX state
- [Also relevant for amd64. Not sure this is really a bug.]
-
=== VEX/mips ===========================================================
=== VEX/ppc ============================================================
@@ -89,8 +81,8 @@
[initimg problems on Android]
364359 Valgrind crashes on fcntl(F_SETFL, O_NONBLOCK, fd)
367942 Segfault vgPlain_do_sys_sigaction (m_signals.c:1138)
-368419 Perf Events ioctls not implemented
368791 unhandled syscall: 167 (swapon, amd64-linux)
+ (should fix this for 3.12.1)
=== Syscalls/ioctls on OSX =============================================
@@ -121,6 +113,7 @@
366035 valgrind misses buffer overflow, segfaults in malloc in localtime
366817 VALGRIND_MEMPOOL_CHANGE has a performance bug
368507 valgrind throws std::bad_alloc on memory allocations larger than 34255421416 bytes
+ (increase usable address space post release, on trunk)
=== Tools/DRD ==========================================================
@@ -153,9 +146,6 @@
=== other/mips =========================================================
-351692 Dumps created by valgrind are not readable by gdb
- [mips32 specific?]
-
=== other/ppc ==========================================================
365208 valgrind stuck after redirecting "memcpy"
@@ -209,8 +199,6 @@
352395 Please provide SVN revision info in --version
358569 Unhandled instructions cause creation of "orphan" stack traces
in XML output
-359645 [patch] "You need libc6-dbg" help message could be more helpful
- with 32-bit target on-64-bit arch
=== MPI ================================================================
@@ -248,9 +236,6 @@
if compiled with intel compiler
========================================================================
-
-* mention that x86-linux is deprecated
-
========================================================================
========================================================================
========================================================================
@@ -310,7 +295,6 @@
(should fix this for 3.12.1)
371065 www: add CfP for FOSDEM 2017 in valgrind.org NEWS section
-371128 BCD add/sub instructions on Power BE in 32-bit mode do not work.
Wed 19 Oct 17:07:42 CEST 2016
@@ -426,15 +410,23 @@
related to leak-autofreepool tests. This is a follow up
fix for r16042.
-3271 M Fix PPC BE in 32-bit mode (Iop_CmpXX64 not supported in 32-bit mode)
-16072 M Fix PPC BE in 32-bit mode (Iop_CmpXX64 not supported in 32-bit mode)
-16073 M Add --ignore-range-below-sp=<offset>-<offset>
-16074 M Fix run_a_thread_NORETURN assembly code typo for VGP_arm64_linux
-16075 M x86_linux asm _start functions do not keep 16-byte aligned %esp.
-3272 M Fix incorrect register-number constraint check for LDAEX{,B,H,D}
-3273 M Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion.
+3271 -> 3277 Fix PPC BE in 32-bit mode (Iop_CmpXX64 not supported)
+16072 -> 16082 Fix PPC BE in 32-bit mode (Iop_CmpXX64 not supported)
+16073 -> 16083 Add --ignore-range-below-sp=<offset>-<offset>
+16074 -> 16084 Fix run_a_thread_NORETURN assembly code typo for VGP_arm64_linux
+16075 -> 16085 x86_linux asm _start functions do not keep 16-byte aligned %esp.
+3272 -> 3278 Fix incorrect register-number constraint check for LDAEX{,B,H,D}
+3273 -> 3279 Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion.
+3274 -> 3280 Accept redundant REX prefixes for {minsd,maxsd} m128, xmm.
+3275 -> 3281 CVTPI2PS: Only switch to MMX mode if the source is a MMX reg
+16077 -> 16086 Add support for Linux perf-events ioctls.
+16078 -> 16087 "You need libc6-dbg" help message could be more helpful.
+3276 -> 3282 Allow early wback of SP base register in "strd rD, [sp, #-16]"
+16079 -> 16088 Update memcheck/tests/ppc64/power_ISA2_05.vgtest
+16080 -> 16089 mips: fix coredump creation in Valgrind
+16081 -> 16090 Add another incompatibility between illumos and Solaris kernels.
-(tracked up to and including 16075/3273)
+(tracked up to and including 16090/3282)
========================================================================
========================================================================
|
|
From: <sv...@va...> - 2016-10-20 08:23:40
|
Author: sewardj
Date: Thu Oct 20 09:23:32 2016
New Revision: 16091
Log:
Initial finalisation for 3.12.0.
Modified:
trunk/NEWS
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Oct 20 09:23:32 2016
@@ -1,11 +1,39 @@
-Release 3.12.0 (?? ????????? 201?)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Release 3.12.0 is under development, not yet released.
+
+Release 3.12.0 (20 October 2016)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+3.12.0 is a feature release with many improvements and the usual
+collection of bug fixes.
+
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux,
+ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux,
+MIPS32/Linux, MIPS64/Linux, ARM/Android, ARM64/Android,
+MIPS32/Android, X86/Android, X86/Solaris, AMD64/Solaris, X86/MacOSX
+10.10 and AMD64/MacOSX 10.10. There is also preliminary support for
+X86/MacOSX 10.11/12, AMD64/MacOSX 10.11/12 and TILEGX/Linux.
* ================== PLATFORM CHANGES =================
-* Preliminary support for macOS 10.12 (Sierra) has been added.
+* POWER: Support for ISA 3.0 has been added
+
* mips: support for O32 FPXX ABI has been added.
+* mips: improved recognition of different processors
+* mips: determination of page size now done at run time
+
+* amd64: Partial support for AMD FMA4 instructions.
+
+* arm, arm64: Support for v8 crypto and CRC instructions.
+
+* Improvements and robustification of the Solaris port.
+
+* Preliminary support for MacOS 10.12 (Sierra) has been added.
+
+Whilst 3.12.0 continues to support the 32-bit x86 instruction set, we
+would prefer users to migrate to 64-bit x86 (a.k.a amd64 or x86_64)
+where possible. Valgrind's support for 32-bit x86 has stagnated in
+recent years and has fallen far behind that for 64-bit x86
+instructions. By contrast 64-bit x86 is well supported, up to and
+including AVX2.
* ==================== TOOL CHANGES ====================
@@ -16,33 +44,39 @@
objects in the pool
- Uses itself to allocate other memory blocks
-* Helgrind:
-
-* Callgrind:
+ - New flag --ignore-range-below-sp to ignore memory accesses below
+ the stack pointer, if you really have to. The related flag
+ --workaround-gcc296-bugs=yes is now deprecated. Use
+ --ignore-range-below-sp=1024-1 as a replacement.
* DRD:
-n-i-bz Improved thread startup time significantly on non-Linux platforms.
+
+ - Improved thread startup time significantly on non-Linux platforms.
+
+* DHAT
+
+ - Added collection of the metric "tot-blocks-allocd"
* ==================== OTHER CHANGES ====================
* Replacement/wrapping of malloc/new related functions is now done not just
for system libraries by default, but for any globally defined malloc/new
- related function (both in shared libraries and staticly linked alternative
- malloc implementations). Dynamic (runtime) linker is excluded, though.
+ related function (both in shared libraries and statically linked alternative
+ malloc implementations). The dynamic (runtime) linker is excluded, though.
To only intercept malloc/new related functions in
system libraries use --soname-synonyms=somalloc=nouserintercepts (where
"nouserintercepts" can be any non-existing library name).
- This new functionality is not implemented for darwin/macosx.
+ This new functionality is not implemented for MacOS X.
* The maximum number of callers in a suppression entry is now equal to
the maximum size for --num-callers (500).
- Note that --gen-suppressions=yes|all similarly generate suppression
+ Note that --gen-suppressions=yes|all similarly generates suppressions
containing up to --num-callers frames.
* New and modified GDB server monitor features:
- Valgrind's gdbserver now accepts the command 'catch syscall'.
- Note that you must have a GDB >= 7.11 to use 'catch syscall' with
+ Note that you must have GDB >= 7.11 to use 'catch syscall' with
gdbserver.
* New option --run-cxx-freeres=<yes|no> can be used to change whether
@@ -57,6 +91,13 @@
for the most common use case (x86_64-linux, Memcheck) has been
reduced by 10%-15%.
+* Improved performance for programs that do a lot of discarding of
+ instruction address ranges of 8KB or less.
+
+* The C++ symbol demangler has been updated.
+
+* More robustness against invalid syscall parameters on Linux.
+
* ==================== FIXED BUGS ====================
The following bugs have been fixed or resolved. Note that "n-i-bz"
@@ -71,13 +112,15 @@
where XXXXXX is the bug number as listed below.
191069 Exiting due to signal not reported in XML output
-199468 Suppressions: stack size limited to 25 while --num-callers allows more frames
+199468 Suppressions: stack size limited to 25
+ while --num-callers allows more frames
212352 vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM)
278744 cvtps2pd with redundant RexW
303877 valgrind doesn't support compressed debuginfo sections.
345307 Warning about "still reachable" memory when using libstdc++ from gcc 5
348345 Assertion fails for negative lineno
351282 V 3.10.1 MIPS softfloat build broken with GCC 4.9.3 / binutils 2.25.1
+351692 Dumps created by valgrind are not readable by gdb (mips32 specific)
351804 Crash on generating suppressions for "printf" call on OS X 10.10
352197 mips: mmap2() not wrapped correctly for page size > 4096
353083 arm64 doesn't implement various xattr system calls
@@ -116,11 +159,13 @@
356678 arm64-linux: unhandled syscall 232 (mincore)
356817 valgrind.h triggers compiler errors on MSVC when defining NVALGRIND
356823 Unsupported ARM instruction: stlex
+357059 x86/amd64: SSE cvtpi2ps with memory source does transition to MMX state
357338 Unhandled instruction for SHA instructions libcrypto Boring SSL
357673 crash if I try to run valgrind with a binary link with libcurl
357833 Setting RLIMIT_DATA to zero breaks with linux 4.5+
357871 pthread_spin_destroy not properly wrapped
357887 Calls to VG_(fclose) do not close the file descriptor
+357932 amd64->IR: accept redundant REX prefixes for {minsd,maxsd} m128, xmm.
358030 support direct socket calls on x86 32bit (new in linux 4.3)
358478 drd/tests/std_thread.cpp doesn't build with GCC6
359133 Assertion 'eltSzB <= ddpa->poolSzB' failed
@@ -129,6 +174,7 @@
359289 s390x: popcnt (B9E1) not implemented
359472 The Power PC vsubuqm instruction doesn't always give the correct result
359503 Add missing syscalls for aarch64 (arm64)
+359645 "You need libc6-dbg" help message could be more helpful
359703 s390: wire up separate socketcalls system calls
359724 getsockname might crash - deref_UInt should call safe_to_deref
359733 amd64 implement ld.so strchr/index override like x86
@@ -156,7 +202,7 @@
361354 ppc64[le]: wire up separate socketcalls system calls
361615 Inconsistent termination for multithreaded process terminated by signal
361926 Unhandled Solaris syscall: sysfs(84)
-362009 Valgrind dumps core on unimplemented functionality before threads are created
+362009 V dumps core on unimplemented functionality before threads are created
362329 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3/5
362894 missing (broken) support for wbit field on mtfsfi instruction (ppc64)
362935 [AsusWRT] Assertion 'sizeof(TTEntryC) <= 88' failed
@@ -179,9 +225,8 @@
367995 Integration of memcheck with custom memory allocator
368120 x86_linux asm _start functions do not keep 16-byte aligned stack pointer
368412 False positive result for altivec capability check
-368461 mmapunmap test fails on ppc64
368416 Add tc06_two_races_xml.exp output for ppc64
-368412 False positive result for altivec capability check
+368419 Perf Events ioctls not implemented
368461 mmapunmap test fails on ppc64
368823 run_a_thread_NORETURN assembly code typo for VGP_arm64_linux target
369000 AMD64 fma4 instructions unsupported.
@@ -198,20 +243,25 @@
369441 bad lvec argument crashes process_vm_readv/writev syscall wrappers
369446 valgrind crashes on unknown fcntl command
369439 S390x: Unhandled insns RISBLG/RISBHG and LDE/LDER
-369468 Remove quadratic metapool alg. using VG_(HT_remove_at_Iter)
- (VgHashTable *table)
+369468 Remove quadratic metapool algorithm using VG_(HT_remove_at_Iter)
370265 ISA 3.0 HW cap stuff needs updating
371128 BCD add and subtract instructions on Power BE in 32-bit mode do not work
+n-i-bz Fix incorrect (or infinite loop) unwind on RHEL7 x86 and amd64
+n-i-bz massif --pages-as-heap=yes does not report peak caused by mmap+munmap
+n-i-bz false positive leaks due to aspacemgr merging heap & non heap segments
+n-i-bz Fix ppoll_alarm exclusion on OS X
+n-i-bz Document brk segment limitation, reference manual in limit reached msg.
+n-i-bz Fix clobber list in none/tests/amd64/xacq_xrel.c [valgrind r15737]
+n-i-bz Bump allowed shift value for "add.w reg, sp, reg, lsl #N" [vex r3206]
+n-i-bz amd64: memcheck false positive with shr %edx
+n-i-bz arm3: Allow early writeback of SP base register in "strd rD, [sp, #-16]"
+n-i-bz ppc: Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion
+n-i-bz arm: Fix incorrect register-number constraint check for LDAEX{,B,H,D}
+n-i-bz DHAT: added collection of the metric "tot-blocks-allocd"
+
+(3.12.0.RC1: 20 October 2016, vex r3282, valgrind r16092)
+
-n-i-bz Fix incorrect (or infinite loop) unwind on RHEL7 x86 and amd64
-n-i-bz massif --pages-as-heap=yes does not report peak caused by mmap+munmap
-n-i-bz false positive leaks due to aspacemgr merging non heap segments
- with heap segments.
-n-i-bz Fix ppoll_alarm exclusion on OS X
-n-i-bz Document brk segment limitation, reference manual in limit reached msg.
-n-i-bz Fix clobber list in none/tests/amd64/xacq_xrel.c [valgrind r15737]
-n-i-bz Bump allowed shift value for "add.w reg, sp, reg, lsl #N" [vex r3206]
-n-i-bz amd64: memcheck false positive with shr %edx
Release 3.11.0 (22 September 2015)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
From: <sv...@va...> - 2016-10-20 05:49:16
|
Author: sewardj
Date: Thu Oct 20 06:49:10 2016
New Revision: 16090
Log:
Merge from trunk:
16081 Add another incompatibility between illumos and Solaris kernels.
Modified:
branches/VALGRIND_3_12_BRANCH/ (props changed)
branches/VALGRIND_3_12_BRANCH/README.solaris
Modified: branches/VALGRIND_3_12_BRANCH/README.solaris
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/README.solaris (original)
+++ branches/VALGRIND_3_12_BRANCH/README.solaris Thu Oct 20 06:49:10 2016
@@ -52,6 +52,8 @@
syscalls [3]
- posix_spawn() functionality is backed up by true spawn() syscall on Solaris 12
whereas illumos and Solaris 11 leverage vfork()
+- illumos and older Solaris use utimesys() syscall whereas newer Solaris
+ uses utimensat()
[1] http://docs.oracle.com/cd/E26502_01/html/E28556/gkzlf.html#gkzip
[2] https://www.illumos.org/issues/521
|
Author: sewardj
Date: Thu Oct 20 06:48:12 2016
New Revision: 16089
Log:
Merge from trunk:
16080 mips: fix coredump creation in Valgrind
Modified:
branches/VALGRIND_3_12_BRANCH/ (props changed)
branches/VALGRIND_3_12_BRANCH/coregrind/m_coredump/coredump-elf.c
branches/VALGRIND_3_12_BRANCH/include/vki/vki-mips32-linux.h
branches/VALGRIND_3_12_BRANCH/include/vki/vki-mips64-linux.h
Modified: branches/VALGRIND_3_12_BRANCH/coregrind/m_coredump/coredump-elf.c
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/coregrind/m_coredump/coredump-elf.c (original)
+++ branches/VALGRIND_3_12_BRANCH/coregrind/m_coredump/coredump-elf.c Thu Oct 20 06:48:12 2016
@@ -226,7 +226,11 @@
/*OUT*/struct vki_elf_prstatus *prs,
const vki_siginfo_t *si)
{
+#if defined(VGP_mips32_linux) || defined(VGP_mips64_linux)
+ vki_elf_greg_t *regs;
+#else
struct vki_user_regs_struct *regs;
+#endif
const ThreadArchState* arch = &tst->arch;
VG_(memset)(prs, 0, sizeof(*prs));
@@ -245,6 +249,8 @@
#if defined(VGP_s390x_linux)
/* prs->pr_reg has struct type. Need to take address. */
regs = (struct vki_user_regs_struct *)&(prs->pr_reg);
+#elif defined(VGP_mips32_linux) || defined(VGP_mips64_linux)
+ regs = (vki_elf_greg_t *)prs->pr_reg;
#else
regs = (struct vki_user_regs_struct *)prs->pr_reg;
vg_assert(sizeof(*regs) == sizeof(prs->pr_reg));
@@ -389,24 +395,27 @@
regs->orig_gpr2 = arch->vex.guest_r2;
#elif defined(VGP_mips32_linux)
-# define DO(n) regs->MIPS_r##n = arch->vex.guest_r##n
- DO(0); DO(1); DO(2); DO(3); DO(4); DO(5); DO(6); DO(7);
- DO(8); DO(9); DO(10); DO(11); DO(12); DO(13); DO(14); DO(15);
- DO(16); DO(17); DO(18); DO(19); DO(20); DO(21); DO(22); DO(23);
- DO(24); DO(25); DO(26); DO(27); DO(28); DO(29); DO(30); DO(31);
-# undef DO
- regs->MIPS_hi = arch->vex.guest_HI;
- regs->MIPS_lo = arch->vex.guest_LO;
-
+# define DO(n) regs[VKI_MIPS32_EF_R##n] = arch->vex.guest_r##n
+ DO(1); DO(2); DO(3); DO(4); DO(5); DO(6); DO(7); DO(8);
+ DO(9); DO(10); DO(11); DO(12); DO(13); DO(14); DO(15); DO(16);
+ DO(17); DO(18); DO(19); DO(20); DO(21); DO(22); DO(23); DO(24);
+ DO(25); DO(28); DO(29); DO(30); DO(31);
+# undef DO
+ regs[VKI_MIPS32_EF_LO] = arch->vex.guest_LO;
+ regs[VKI_MIPS32_EF_HI] = arch->vex.guest_HI;
+ regs[VKI_MIPS32_EF_CP0_STATUS] = arch->vex.guest_CP0_status;
+ regs[VKI_MIPS32_EF_CP0_EPC] = arch->vex.guest_PC;
#elif defined(VGP_mips64_linux)
-# define DO(n) regs->MIPS_r##n = arch->vex.guest_r##n
- DO(0); DO(1); DO(2); DO(3); DO(4); DO(5); DO(6); DO(7);
- DO(8); DO(9); DO(10); DO(11); DO(12); DO(13); DO(14); DO(15);
- DO(16); DO(17); DO(18); DO(19); DO(20); DO(21); DO(22); DO(23);
- DO(24); DO(25); DO(26); DO(27); DO(28); DO(29); DO(30); DO(31);
-# undef DO
- regs->MIPS_hi = arch->vex.guest_HI;
- regs->MIPS_lo = arch->vex.guest_LO;
+# define DO(n) regs[VKI_MIPS64_EF_R##n] = arch->vex.guest_r##n
+ DO(1); DO(2); DO(3); DO(4); DO(5); DO(6); DO(7); DO(8);
+ DO(9); DO(10); DO(11); DO(12); DO(13); DO(14); DO(15); DO(16);
+ DO(17); DO(18); DO(19); DO(20); DO(21); DO(22); DO(23); DO(24);
+ DO(25); DO(28); DO(29); DO(30); DO(31);
+# undef DO
+ regs[VKI_MIPS64_EF_LO] = arch->vex.guest_LO;
+ regs[VKI_MIPS64_EF_HI] = arch->vex.guest_HI;
+ regs[VKI_MIPS64_EF_CP0_STATUS] = arch->vex.guest_CP0_status;
+ regs[VKI_MIPS64_EF_CP0_EPC] = arch->vex.guest_PC;
#elif defined(VGP_tilegx_linux)
# define DO(n) regs->regs[n] = arch->vex.guest_r##n
DO(0); DO(1); DO(2); DO(3); DO(4); DO(5); DO(6); DO(7);
Modified: branches/VALGRIND_3_12_BRANCH/include/vki/vki-mips32-linux.h
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/include/vki/vki-mips32-linux.h (original)
+++ branches/VALGRIND_3_12_BRANCH/include/vki/vki-mips32-linux.h Thu Oct 20 06:48:12 2016
@@ -815,56 +815,60 @@
#endif
} __attribute__ ((aligned (8)));
-
-#define vki_user_regs_struct vki_pt_regs
-
-#define MIPS_lo lo
-#define MIPS_hi hi
-//#define MIPS_pc regs[32]
-#define MIPS_r31 regs[31]
-#define MIPS_r30 regs[30]
-#define MIPS_r29 regs[29]
-#define MIPS_r28 regs[28]
-#define MIPS_r27 regs[27]
-#define MIPS_r26 regs[26]
-#define MIPS_r25 regs[25]
-#define MIPS_r24 regs[24]
-#define MIPS_r23 regs[23]
-#define MIPS_r22 regs[22]
-#define MIPS_r21 regs[21]
-#define MIPS_r20 regs[20]
-#define MIPS_r19 regs[19]
-#define MIPS_r18 regs[18]
-#define MIPS_r17 regs[17]
-#define MIPS_r16 regs[16]
-#define MIPS_r15 regs[15]
-#define MIPS_r14 regs[14]
-#define MIPS_r13 regs[13]
-#define MIPS_r12 regs[12]
-#define MIPS_r11 regs[11]
-#define MIPS_r10 regs[10]
-#define MIPS_r9 regs[9]
-#define MIPS_r8 regs[8]
-#define MIPS_r7 regs[7]
-#define MIPS_r6 regs[6]
-#define MIPS_r5 regs[5]
-#define MIPS_r4 regs[4]
-#define MIPS_r3 regs[3]
-#define MIPS_r2 regs[2]
-#define MIPS_r1 regs[1]
-#define MIPS_r0 regs[0]
-
#define VKI_PTRACE_GETREGS 12
#define VKI_PTRACE_SETREGS 13
#define VKI_PTRACE_GETFPREGS 14
#define VKI_PTRACE_SETFPREGS 15
//----------------------------------------------------------------------
-// From linux-2.6.35.5/include/asm-mips/elf.h
+// From linux-4.5/arch/mips/include/uapi/asm/reg.h
+//----------------------------------------------------------------------
+#define VKI_MIPS32_EF_R0 6
+#define VKI_MIPS32_EF_R1 7
+#define VKI_MIPS32_EF_R2 8
+#define VKI_MIPS32_EF_R3 9
+#define VKI_MIPS32_EF_R4 10
+#define VKI_MIPS32_EF_R5 11
+#define VKI_MIPS32_EF_R6 12
+#define VKI_MIPS32_EF_R7 13
+#define VKI_MIPS32_EF_R8 14
+#define VKI_MIPS32_EF_R9 15
+#define VKI_MIPS32_EF_R10 16
+#define VKI_MIPS32_EF_R11 17
+#define VKI_MIPS32_EF_R12 18
+#define VKI_MIPS32_EF_R13 19
+#define VKI_MIPS32_EF_R14 20
+#define VKI_MIPS32_EF_R15 21
+#define VKI_MIPS32_EF_R16 22
+#define VKI_MIPS32_EF_R17 23
+#define VKI_MIPS32_EF_R18 24
+#define VKI_MIPS32_EF_R19 25
+#define VKI_MIPS32_EF_R20 26
+#define VKI_MIPS32_EF_R21 27
+#define VKI_MIPS32_EF_R22 28
+#define VKI_MIPS32_EF_R23 29
+#define VKI_MIPS32_EF_R24 30
+#define VKI_MIPS32_EF_R25 31
+#define VKI_MIPS32_EF_R26 32
+#define VKI_MIPS32_EF_R27 33
+#define VKI_MIPS32_EF_R28 34
+#define VKI_MIPS32_EF_R29 35
+#define VKI_MIPS32_EF_R30 36
+#define VKI_MIPS32_EF_R31 37
+#define VKI_MIPS32_EF_LO 38
+#define VKI_MIPS32_EF_HI 39
+#define VKI_MIPS32_EF_CP0_EPC 40
+#define VKI_MIPS32_EF_CP0_BADVADDR 41
+#define VKI_MIPS32_EF_CP0_STATUS 42
+#define VKI_MIPS32_EF_CP0_CAUSE 43
+#define VKI_MIPS32_EF_UNUSED0 44
+
+//----------------------------------------------------------------------
+// From linux-4.5/arch/mips/include/asm/elf.h
//----------------------------------------------------------------------
typedef unsigned long vki_elf_greg_t;
-#define VKI_ELF_NGREG (sizeof (struct vki_user_regs_struct) / sizeof(vki_elf_greg_t))
-#define VKI_ELF_NFPREG 33 /* includes fpscr */
+#define VKI_ELF_NGREG 45
+#define VKI_ELF_NFPREG 33 /* includes fpscr */
typedef vki_elf_greg_t vki_elf_gregset_t[VKI_ELF_NGREG];
Modified: branches/VALGRIND_3_12_BRANCH/include/vki/vki-mips64-linux.h
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/include/vki/vki-mips64-linux.h (original)
+++ branches/VALGRIND_3_12_BRANCH/include/vki/vki-mips64-linux.h Thu Oct 20 06:48:12 2016
@@ -841,43 +841,48 @@
#endif
} __attribute__ ((aligned (8)));
+//----------------------------------------------------------------------
+// From linux-4.5/arch/mips/include/uapi/asm/reg.h
+//----------------------------------------------------------------------
-#define vki_user_regs_struct vki_pt_regs
-
-#define MIPS_lo lo
-#define MIPS_hi hi
-#define MIPS_r31 regs[31]
-#define MIPS_r30 regs[30]
-#define MIPS_r29 regs[29]
-#define MIPS_r28 regs[28]
-#define MIPS_r27 regs[27]
-#define MIPS_r26 regs[26]
-#define MIPS_r25 regs[25]
-#define MIPS_r24 regs[24]
-#define MIPS_r23 regs[23]
-#define MIPS_r22 regs[22]
-#define MIPS_r21 regs[21]
-#define MIPS_r20 regs[20]
-#define MIPS_r19 regs[19]
-#define MIPS_r18 regs[18]
-#define MIPS_r17 regs[17]
-#define MIPS_r16 regs[16]
-#define MIPS_r15 regs[15]
-#define MIPS_r14 regs[14]
-#define MIPS_r13 regs[13]
-#define MIPS_r12 regs[12]
-#define MIPS_r11 regs[11]
-#define MIPS_r10 regs[10]
-#define MIPS_r9 regs[9]
-#define MIPS_r8 regs[8]
-#define MIPS_r7 regs[7]
-#define MIPS_r6 regs[6]
-#define MIPS_r5 regs[5]
-#define MIPS_r4 regs[4]
-#define MIPS_r3 regs[3]
-#define MIPS_r2 regs[2]
-#define MIPS_r1 regs[1]
-#define MIPS_r0 regs[0]
+#define VKI_MIPS64_EF_R0 0
+#define VKI_MIPS64_EF_R1 1
+#define VKI_MIPS64_EF_R2 2
+#define VKI_MIPS64_EF_R3 3
+#define VKI_MIPS64_EF_R4 4
+#define VKI_MIPS64_EF_R5 5
+#define VKI_MIPS64_EF_R6 6
+#define VKI_MIPS64_EF_R7 7
+#define VKI_MIPS64_EF_R8 8
+#define VKI_MIPS64_EF_R9 9
+#define VKI_MIPS64_EF_R10 10
+#define VKI_MIPS64_EF_R11 11
+#define VKI_MIPS64_EF_R12 12
+#define VKI_MIPS64_EF_R13 13
+#define VKI_MIPS64_EF_R14 14
+#define VKI_MIPS64_EF_R15 15
+#define VKI_MIPS64_EF_R16 16
+#define VKI_MIPS64_EF_R17 17
+#define VKI_MIPS64_EF_R18 18
+#define VKI_MIPS64_EF_R19 19
+#define VKI_MIPS64_EF_R20 20
+#define VKI_MIPS64_EF_R21 21
+#define VKI_MIPS64_EF_R22 22
+#define VKI_MIPS64_EF_R23 23
+#define VKI_MIPS64_EF_R24 24
+#define VKI_MIPS64_EF_R25 25
+#define VKI_MIPS64_EF_R26 26
+#define VKI_MIPS64_EF_R27 27
+#define VKI_MIPS64_EF_R28 28
+#define VKI_MIPS64_EF_R29 29
+#define VKI_MIPS64_EF_R30 30
+#define VKI_MIPS64_EF_R31 31
+#define VKI_MIPS64_EF_LO 32
+#define VKI_MIPS64_EF_HI 33
+#define VKI_MIPS64_EF_CP0_EPC 34
+#define VKI_MIPS64_EF_CP0_BADVADDR 35
+#define VKI_MIPS64_EF_CP0_STATUS 36
+#define VKI_MIPS64_EF_CP0_CAUSE 37
//----------------------------------------------------------------------
// From linux-2.6.35.9/include/asm-i386/ptrace.h
|
|
From: <sv...@va...> - 2016-10-20 05:47:13
|
Author: sewardj
Date: Thu Oct 20 06:47:06 2016
New Revision: 16088
Log:
Merge from trunk:
16079 Update memcheck/tests/ppc64/power_ISA2_05.vgtest
Modified:
branches/VALGRIND_3_12_BRANCH/ (props changed)
branches/VALGRIND_3_12_BRANCH/memcheck/tests/ppc64/power_ISA2_05.vgtest
Modified: branches/VALGRIND_3_12_BRANCH/memcheck/tests/ppc64/power_ISA2_05.vgtest
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/memcheck/tests/ppc64/power_ISA2_05.vgtest (original)
+++ branches/VALGRIND_3_12_BRANCH/memcheck/tests/ppc64/power_ISA2_05.vgtest Thu Oct 20 06:47:06 2016
@@ -1,2 +1,3 @@
prog: power_ISA2_05
-vgopts: --workaround-gcc296-bugs=yes
+## depricated option --workaround-gcc296-bugs=yes
+vgopts: --ignore-range-below-sp=1024-1
|
|
From: <sv...@va...> - 2016-10-20 05:45:24
|
Author: sewardj
Date: Thu Oct 20 06:45:18 2016
New Revision: 16087
Log:
Merge from trunk:
16078 "You need libc6-dbg" help message could be more helpful.
Modified:
branches/VALGRIND_3_12_BRANCH/ (props changed)
branches/VALGRIND_3_12_BRANCH/coregrind/m_redir.c
Modified: branches/VALGRIND_3_12_BRANCH/coregrind/m_redir.c
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/coregrind/m_redir.c (original)
+++ branches/VALGRIND_3_12_BRANCH/coregrind/m_redir.c Thu Oct 20 06:45:18 2016
@@ -1297,6 +1297,10 @@
"",
" On Debian, Ubuntu: libc6-dbg",
" On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo",
+ "",
+ "Note that if you are debugging a 32 bit process on a",
+ "64 bit system, you will need a corresponding 32 bit debuginfo",
+ "package (e.g. libc6-dbg:i386).",
NULL
};
|
|
From: <sv...@va...> - 2016-10-20 05:44:34
|
Author: sewardj
Date: Thu Oct 20 06:44:27 2016
New Revision: 16086
Log:
Merge from trunk:
16077 Add support for Linux perf-events ioctls.
Modified:
branches/VALGRIND_3_12_BRANCH/ (props changed)
branches/VALGRIND_3_12_BRANCH/coregrind/m_syswrap/syswrap-linux.c
branches/VALGRIND_3_12_BRANCH/include/vki/vki-linux.h
Modified: branches/VALGRIND_3_12_BRANCH/coregrind/m_syswrap/syswrap-linux.c
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/coregrind/m_syswrap/syswrap-linux.c (original)
+++ branches/VALGRIND_3_12_BRANCH/coregrind/m_syswrap/syswrap-linux.c Thu Oct 20 06:44:27 2016
@@ -5640,6 +5640,10 @@
case VKI_FIONCLEX:
case VKI_TIOCNOTTY:
+ /* linux perf_event ioctls */
+ case VKI_PERF_EVENT_IOC_ENABLE:
+ case VKI_PERF_EVENT_IOC_DISABLE:
+
/* linux/soundcard interface (ALSA) */
case VKI_SNDRV_PCM_IOCTL_HW_FREE:
case VKI_SNDRV_PCM_IOCTL_HWSYNC:
@@ -8496,6 +8500,25 @@
break;
}
+ case VKI_PERF_EVENT_IOC_RESET:
+ case VKI_PERF_EVENT_IOC_REFRESH:
+ case VKI_PERF_EVENT_IOC_SET_OUTPUT:
+ case VKI_PERF_EVENT_IOC_SET_BPF:
+ /* These take scalar arguments, so already handled above */
+ break;
+
+ case VKI_PERF_EVENT_IOC_PERIOD:
+ PRE_MEM_READ("ioctl(VKI_PERF_EVENT_IOC_PERIOD)", (Addr)ARG3, sizeof(__vki_u64));
+ break;
+
+ case VKI_PERF_EVENT_IOC_SET_FILTER:
+ PRE_MEM_RASCIIZ("ioctl(VKI_PERF_EVENT_IOC_SET_FILTER).filter", ARG3);
+ break;
+
+ case VKI_PERF_EVENT_IOC_ID:
+ PRE_MEM_WRITE("ioctl(VKI_PERF_EVENT_IOC_ID)", (Addr)ARG3, sizeof(__vki_u64));
+ break;
+
default:
/* EVIOC* are variable length and return size written on success */
switch (ARG2 & ~(_VKI_IOC_SIZEMASK << _VKI_IOC_SIZESHIFT)) {
@@ -10388,6 +10411,20 @@
case VKI_TIOCSSERIAL:
break;
+ case VKI_PERF_EVENT_IOC_ENABLE:
+ case VKI_PERF_EVENT_IOC_DISABLE:
+ case VKI_PERF_EVENT_IOC_REFRESH:
+ case VKI_PERF_EVENT_IOC_RESET:
+ case VKI_PERF_EVENT_IOC_PERIOD:
+ case VKI_PERF_EVENT_IOC_SET_OUTPUT:
+ case VKI_PERF_EVENT_IOC_SET_FILTER:
+ case VKI_PERF_EVENT_IOC_SET_BPF:
+ break;
+
+ case VKI_PERF_EVENT_IOC_ID:
+ POST_MEM_WRITE((Addr)ARG3, sizeof(__vki_u64));
+ break;
+
default:
/* EVIOC* are variable length and return size written on success */
switch (ARG2 & ~(_VKI_IOC_SIZEMASK << _VKI_IOC_SIZESHIFT)) {
Modified: branches/VALGRIND_3_12_BRANCH/include/vki/vki-linux.h
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/include/vki/vki-linux.h (original)
+++ branches/VALGRIND_3_12_BRANCH/include/vki/vki-linux.h Thu Oct 20 06:44:27 2016
@@ -2946,6 +2946,16 @@
};
};
+#define VKI_PERF_EVENT_IOC_ENABLE _VKI_IO ('$', 0)
+#define VKI_PERF_EVENT_IOC_DISABLE _VKI_IO ('$', 1)
+#define VKI_PERF_EVENT_IOC_REFRESH _VKI_IO ('$', 2)
+#define VKI_PERF_EVENT_IOC_RESET _VKI_IO ('$', 3)
+#define VKI_PERF_EVENT_IOC_PERIOD _VKI_IOW('$', 4, __vki_u64)
+#define VKI_PERF_EVENT_IOC_SET_OUTPUT _VKI_IO ('$', 5)
+#define VKI_PERF_EVENT_IOC_SET_FILTER _VKI_IOW('$', 6, char *)
+#define VKI_PERF_EVENT_IOC_ID _VKI_IOR('$', 7, __vki_u64 *)
+#define VKI_PERF_EVENT_IOC_SET_BPF _VKI_IOW('$', 8, __vki_u32)
+
/*--------------------------------------------------------------------*/
// From linux-2.6.32.4/include/linux/getcpu.h
/*--------------------------------------------------------------------*/
|
|
From: <sv...@va...> - 2016-10-20 05:41:51
|
Author: sewardj
Date: Thu Oct 20 06:41:44 2016
New Revision: 3282
Log:
Merge from trunk:
3276 Allow early writeback of SP base register in "strd rD, [sp, #-16]"
Modified:
branches/VEX_3_12_BRANCH/ (props changed)
branches/VEX_3_12_BRANCH/priv/guest_arm_toIR.c
Modified: branches/VEX_3_12_BRANCH/priv/guest_arm_toIR.c
==============================================================================
--- branches/VEX_3_12_BRANCH/priv/guest_arm_toIR.c (original)
+++ branches/VEX_3_12_BRANCH/priv/guest_arm_toIR.c Thu Oct 20 06:41:44 2016
@@ -17431,15 +17431,17 @@
ignore alignment issues for the time being. */
/* For almost all cases, we do the writeback after the transfers.
- However, that leaves the stack "uncovered" in this case:
+ However, that leaves the stack "uncovered" in cases like:
strd rD, [sp, #-8]
+ strd rD, [sp, #-16]
In which case, do the writeback to SP now, instead of later.
This is bad in that it makes the insn non-restartable if the
accesses fault, but at least keeps Memcheck happy. */
Bool writeback_already_done = False;
if (bS == 1 /*store*/ && summary == (2 | 16)
&& rN == 13 && rN != rD && rN != rD+1
- && bU == 0/*minus*/ && imm8 == 8) {
+ && bU == 0/*minus*/
+ && (imm8 == 8 || imm8 == 16)) {
putIRegA( rN, mkexpr(eaT), condT, Ijk_Boring );
writeback_already_done = True;
}
@@ -21521,15 +21523,17 @@
IRTemp transAddr = bP == 1 ? postAddr : preAddr;
/* For almost all cases, we do the writeback after the transfers.
- However, that leaves the stack "uncovered" in this case:
+ However, that leaves the stack "uncovered" in cases like:
strd rD, [sp, #-8]
+ strd rD, [sp, #-16]
In which case, do the writeback to SP now, instead of later.
This is bad in that it makes the insn non-restartable if the
accesses fault, but at least keeps Memcheck happy. */
Bool writeback_already_done = False;
if (bL == 0/*store*/ && bW == 1/*wb*/
&& rN == 13 && rN != rT && rN != rT2
- && bU == 0/*minus*/ && (imm8 << 2) == 8) {
+ && bU == 0/*minus*/
+ && ((imm8 << 2) == 8 || (imm8 << 2) == 16)) {
putIRegT(rN, mkexpr(postAddr), condT);
writeback_already_done = True;
}
|
|
From: <sv...@va...> - 2016-10-20 05:40:41
|
Author: sewardj
Date: Thu Oct 20 06:40:34 2016
New Revision: 3281
Log:
Merge from trunk:
3275 CVTPI2PS: Only switch to MMX mode if the source is a MMX register.
Modified:
branches/VEX_3_12_BRANCH/ (props changed)
branches/VEX_3_12_BRANCH/priv/guest_amd64_toIR.c
branches/VEX_3_12_BRANCH/priv/guest_x86_toIR.c
Modified: branches/VEX_3_12_BRANCH/priv/guest_amd64_toIR.c
==============================================================================
--- branches/VEX_3_12_BRANCH/priv/guest_amd64_toIR.c (original)
+++ branches/VEX_3_12_BRANCH/priv/guest_amd64_toIR.c Thu Oct 20 06:40:34 2016
@@ -12848,8 +12848,10 @@
IRTemp rmode = newTemp(Ity_I32);
modrm = getUChar(delta);
- do_MMX_preamble();
if (epartIsReg(modrm)) {
+ /* Only switch to MMX mode if the source is a MMX register.
+ See comments on CVTPI2PD for details. Fixes #357059. */
+ do_MMX_preamble();
assign( arg64, getMMXReg(eregLO3ofRM(modrm)) );
delta += 1;
DIP("cvtpi2ps %s,%s\n", nameMMXReg(eregLO3ofRM(modrm)),
Modified: branches/VEX_3_12_BRANCH/priv/guest_x86_toIR.c
==============================================================================
--- branches/VEX_3_12_BRANCH/priv/guest_x86_toIR.c (original)
+++ branches/VEX_3_12_BRANCH/priv/guest_x86_toIR.c Thu Oct 20 06:40:34 2016
@@ -8565,8 +8565,10 @@
vassert(sz == 4);
modrm = getIByte(delta+2);
- do_MMX_preamble();
if (epartIsReg(modrm)) {
+ /* Only switch to MMX mode if the source is a MMX register.
+ See comments on CVTPI2PD for details. Fixes #357059. */
+ do_MMX_preamble();
assign( arg64, getMMXReg(eregOfRM(modrm)) );
delta += 2+1;
DIP("cvtpi2ps %s,%s\n", nameMMXReg(eregOfRM(modrm)),
|
|
From: <sv...@va...> - 2016-10-20 05:39:25
|
Author: sewardj
Date: Thu Oct 20 06:39:18 2016
New Revision: 3280
Log:
Merge from trunk:
3274 Accept redundant REX prefixes for {minsd,maxsd} m128, xmm.
Modified:
branches/VEX_3_12_BRANCH/ (props changed)
branches/VEX_3_12_BRANCH/priv/guest_amd64_toIR.c
Modified: branches/VEX_3_12_BRANCH/priv/guest_amd64_toIR.c
==============================================================================
--- branches/VEX_3_12_BRANCH/priv/guest_amd64_toIR.c (original)
+++ branches/VEX_3_12_BRANCH/priv/guest_amd64_toIR.c Thu Oct 20 06:39:18 2016
@@ -13520,7 +13520,8 @@
goto decode_success;
}
/* F2 0F 5D = MINSD -- min 64F0x2 from R/M to R */
- if (haveF2no66noF3(pfx) && sz == 4) {
+ if (haveF2no66noF3(pfx)
+ && (sz == 4 || /* ignore redundant REX.W */ sz == 8)) {
delta = dis_SSE_E_to_G_lo64( vbi, pfx, delta, "minsd", Iop_Min64F0x2 );
goto decode_success;
}
@@ -13566,7 +13567,8 @@
goto decode_success;
}
/* F2 0F 5F = MAXSD -- max 64F0x2 from R/M to R */
- if (haveF2no66noF3(pfx) && sz == 4) {
+ if (haveF2no66noF3(pfx)
+ && (sz == 4 || /* ignore redundant REX.W */ sz == 8)) {
delta = dis_SSE_E_to_G_lo64( vbi, pfx, delta, "maxsd", Iop_Max64F0x2 );
goto decode_success;
}
|
|
From: <sv...@va...> - 2016-10-20 05:38:10
|
Author: sewardj
Date: Thu Oct 20 06:38:04 2016
New Revision: 3279
Log:
Merge from trunk:
3273 Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion.
Modified:
branches/VEX_3_12_BRANCH/ (props changed)
branches/VEX_3_12_BRANCH/priv/host_ppc_isel.c
Modified: branches/VEX_3_12_BRANCH/priv/host_ppc_isel.c
==============================================================================
--- branches/VEX_3_12_BRANCH/priv/host_ppc_isel.c (original)
+++ branches/VEX_3_12_BRANCH/priv/host_ppc_isel.c Thu Oct 20 06:38:04 2016
@@ -4210,7 +4210,7 @@
HReg tmp = newVRegV(env);
PPCAMode* zero_r1 = PPCAMode_IR( 0, StackFramePtr(env->mode64) );
PPCAMode* eight_r1 = PPCAMode_IR( 8, StackFramePtr(env->mode64) );
- PPCAvFpOp fpop = Pavfp_INVALID;
+ PPCFpOp fpop = Pfp_INVALID;
if (FPU_rounding_mode_isOdd(e->Iex.Binop.arg1)) {
/* use rounding mode specified by RN. Issue inst with R0 = 0 */
@@ -4495,7 +4495,7 @@
static HReg iselFp128Expr_wrk( ISelEnv* env, IRExpr* e, IREndness IEndianess)
{
Bool mode64 = env->mode64;
- PPCAvFpOp fpop = Pavfp_INVALID;
+ PPCFpOp fpop = Pfp_INVALID;
IRType ty = typeOfIRExpr(env->type_env,e);
vassert(e);
|
|
From: <sv...@va...> - 2016-10-20 05:37:14
|
Author: sewardj
Date: Thu Oct 20 06:37:07 2016
New Revision: 3278
Log:
Merge from trunk:
3272 Fix incorrect register-number constraint check for LDAEX{,B,H,D}
Modified:
branches/VEX_3_12_BRANCH/ (props changed)
branches/VEX_3_12_BRANCH/priv/guest_arm_toIR.c
Modified: branches/VEX_3_12_BRANCH/priv/guest_arm_toIR.c
==============================================================================
--- branches/VEX_3_12_BRANCH/priv/guest_arm_toIR.c (original)
+++ branches/VEX_3_12_BRANCH/priv/guest_arm_toIR.c Thu Oct 20 06:37:07 2016
@@ -13329,7 +13329,7 @@
if (szBlg2 < 3) {
if (! (tt != 15 && nn != 15)) gate = False;
} else {
- if (! (tt & 1) == 0 && tt != 14 && nn != 15) gate = False;
+ if (! ((tt & 1) == 0 && tt != 14 && nn != 15)) gate = False;
vassert(tt2 == 16/*invalid*/);
tt2 = tt + 1;
}
|
|
From: <sv...@va...> - 2016-10-20 05:35:54
|
Author: sewardj
Date: Thu Oct 20 06:35:47 2016
New Revision: 16085
Log:
Merge from trunk:
16075 x86_linux asm _start functions do not keep 16-byte aligned %esp.
Modified:
branches/VALGRIND_3_12_BRANCH/ (props changed)
branches/VALGRIND_3_12_BRANCH/coregrind/m_main.c
branches/VALGRIND_3_12_BRANCH/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: branches/VALGRIND_3_12_BRANCH/coregrind/m_main.c
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/coregrind/m_main.c (original)
+++ branches/VALGRIND_3_12_BRANCH/coregrind/m_main.c Thu Oct 20 06:35:47 2016
@@ -2985,12 +2985,13 @@
"\tmovl $vgPlain_interim_stack, %eax\n"
"\taddl $"VG_STRINGIFY(VG_STACK_GUARD_SZB)", %eax\n"
"\taddl $"VG_STRINGIFY(VG_DEFAULT_STACK_ACTIVE_SZB)", %eax\n"
+ /* allocate at least 16 bytes on the new stack, and aligned */
"\tsubl $16, %eax\n"
"\tandl $~15, %eax\n"
/* install it, and collect the original one */
"\txchgl %eax, %esp\n"
/* call _start_in_C_linux, passing it the startup %esp */
- "\tpushl %eax\n"
+ "\tmovl %eax, (%esp)\n"
"\tcall _start_in_C_linux\n"
"\thlt\n"
".previous\n"
Modified: branches/VALGRIND_3_12_BRANCH/coregrind/m_syswrap/syswrap-x86-linux.c
==============================================================================
--- branches/VALGRIND_3_12_BRANCH/coregrind/m_syswrap/syswrap-x86-linux.c (original)
+++ branches/VALGRIND_3_12_BRANCH/coregrind/m_syswrap/syswrap-x86-linux.c Thu Oct 20 06:35:47 2016
@@ -83,8 +83,9 @@
".globl vgModuleLocal_call_on_new_stack_0_1\n"
"vgModuleLocal_call_on_new_stack_0_1:\n"
" movl %esp, %esi\n" // remember old stack pointer
-" movl 4(%esi), %esp\n" // set stack
-" pushl 16(%esi)\n" // arg1 to stack
+" movl 4(%esi), %esp\n" // set stack, assume %esp is now 16-byte aligned
+" subl $12, %esp\n" // skip 12 bytes
+" pushl 16(%esi)\n" // arg1 to stack, %esp is 16-byte aligned
" pushl 8(%esi)\n" // retaddr to stack
" pushl 12(%esi)\n" // f to stack
" movl $0, %eax\n" // zero all GP regs
@@ -150,7 +151,8 @@
" movl 4+"FSZ"(%esp), %ecx\n" /* syscall arg2: child stack */
" movl 12+"FSZ"(%esp), %ebx\n" /* fn arg */
" movl 0+"FSZ"(%esp), %eax\n" /* fn */
-" lea -8(%ecx), %ecx\n" /* make space on stack */
+" andl $-16, %ecx\n" /* align to 16-byte */
+" lea -20(%ecx), %ecx\n" /* allocate 16*n+4 bytes on stack */
" movl %ebx, 4(%ecx)\n" /* fn arg */
" movl %eax, 0(%ecx)\n" /* fn */
@@ -165,7 +167,7 @@
" jnz 1f\n"
/* CHILD - call thread function */
-" popl %eax\n"
+" popl %eax\n" /* child %esp is 16-byte aligned */
" call *%eax\n" /* call fn */
/* exit with result */
|