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
(6) |
|
2
(4) |
3
(9) |
4
(11) |
5
(16) |
6
(6) |
7
(1) |
8
(11) |
|
9
(11) |
10
(6) |
11
(10) |
12
(23) |
13
(23) |
14
(6) |
15
(10) |
|
16
(5) |
17
(13) |
18
(9) |
19
(4) |
20
(6) |
21
(16) |
22
(3) |
|
23
(5) |
24
(7) |
25
(6) |
26
(4) |
27
(8) |
28
|
29
(3) |
|
30
(2) |
31
(17) |
|
|
|
|
|
|
From: <sv...@va...> - 2015-08-18 19:55:24
|
Author: sewardj
Date: Tue Aug 18 20:55:16 2015
New Revision: 3178
Log:
Implement YIELD. Followup to #348377.
Modified:
trunk/priv/guest_arm64_toIR.c
trunk/priv/host_arm64_defs.c
trunk/priv/host_arm64_isel.c
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Tue Aug 18 20:55:16 2015
@@ -6859,6 +6859,19 @@
return True;
}
+ /* ------------------- YIELD ------------------- */
+ /* 31 23 15 7
+ 1101 0101 0000 0011 0010 0000 0011 1111
+ */
+ if (INSN(31,0) == 0xD503203F) {
+ /* Request yield followed by continuation at the next insn. */
+ putPC(mkU64(guest_PC_curr_instr + 4));
+ dres->whatNext = Dis_StopHere;
+ dres->jk_StopHere = Ijk_Yield;
+ DIP("yield\n");
+ return True;
+ }
+
//fail:
vex_printf("ARM64 front end: branch_etc\n");
return False;
Modified: trunk/priv/host_arm64_defs.c
==============================================================================
--- trunk/priv/host_arm64_defs.c (original)
+++ trunk/priv/host_arm64_defs.c Tue Aug 18 20:55:16 2015
@@ -3617,7 +3617,7 @@
case Ijk_ClientReq: trcval = VEX_TRC_JMP_CLIENTREQ; break;
case Ijk_Sys_syscall: trcval = VEX_TRC_JMP_SYS_SYSCALL; break;
//case Ijk_Sys_int128: trcval = VEX_TRC_JMP_SYS_INT128; break;
- //case Ijk_Yield: trcval = VEX_TRC_JMP_YIELD; break;
+ case Ijk_Yield: trcval = VEX_TRC_JMP_YIELD; break;
//case Ijk_EmWarn: trcval = VEX_TRC_JMP_EMWARN; break;
//case Ijk_MapFail: trcval = VEX_TRC_JMP_MAPFAIL; break;
case Ijk_NoDecode: trcval = VEX_TRC_JMP_NODECODE; break;
Modified: trunk/priv/host_arm64_isel.c
==============================================================================
--- trunk/priv/host_arm64_isel.c (original)
+++ trunk/priv/host_arm64_isel.c Tue Aug 18 20:55:16 2015
@@ -3975,6 +3975,7 @@
case Ijk_InvalICache:
case Ijk_FlushDCache:
case Ijk_SigTRAP:
+ case Ijk_Yield:
{
HReg r = iselIntExpr_R(env, next);
ARM64AMode* amPC = mk_baseblock_64bit_access_amode(offsIP);
|
|
From: Tom H. <to...@co...> - 2015-08-18 17:29:00
|
On 18/08/15 18:08, Mark Wielaard wrote: > On Tue, 2015-08-18 at 15:37 +0100, Tom Hughes wrote: >> On 18/08/15 15:34, Julian Seward wrote: >>> On 18/08/15 16:21, Rhys Kidd wrote: >>>> Seeing build failure with 'make check' on OS X as follows. Will get a >>> >>>> ./safe-pthread.h:29:19: error: token is not a valid binary operator in a >>>> preprocessor subexpression >>>> #if __GLIBC_PREREQ(2,20) && ( defined(__i386__) || defined(__x86_64__) ) >>>> ~~~~~~~~~~~~~~^ >>> >>> Yes, I imagine __GLIBC_PREREQ doesn't exist on OS X. What about this? >>> >>> #if defined(__GLIBC_PREREQ) \ >>> && __GLIBC_PREREQ(2,20) && ( defined(__i386__) || defined(__x86_64__) ) >>> >>> Will that fix it? >> >> Should do. Sorry, stole that from the main tc20 code without paying >> attention to all the humps it jumped through to define it on other >> platforms. > > Do we really need the #if? > Can't we just always install the sigill handler? That would work as well. I was just being conservative... Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: Mark W. <mj...@re...> - 2015-08-18 17:08:32
|
On Tue, 2015-08-18 at 15:37 +0100, Tom Hughes wrote:
> On 18/08/15 15:34, Julian Seward wrote:
> > On 18/08/15 16:21, Rhys Kidd wrote:
> >> Seeing build failure with 'make check' on OS X as follows. Will get a
> >
> >> ./safe-pthread.h:29:19: error: token is not a valid binary operator in a
> >> preprocessor subexpression
> >> #if __GLIBC_PREREQ(2,20) && ( defined(__i386__) || defined(__x86_64__) )
> >> ~~~~~~~~~~~~~~^
> >
> > Yes, I imagine __GLIBC_PREREQ doesn't exist on OS X. What about this?
> >
> > #if defined(__GLIBC_PREREQ) \
> > && __GLIBC_PREREQ(2,20) && ( defined(__i386__) || defined(__x86_64__) )
> >
> > Will that fix it?
>
> Should do. Sorry, stole that from the main tc20 code without paying
> attention to all the humps it jumped through to define it on other
> platforms.
Do we really need the #if?
Can't we just always install the sigill handler?
Currently the test will fail on glibc < 2.20 since the backtrace looks
slightly different:
--- tc12_rwl_trivial.stderr.exp 2015-08-18 15:25:07.011729981 +0200
+++ tc12_rwl_trivial.stderr.out 2015-08-18 15:37:12.187446390 +0200
@@ -1,7 +1,7 @@
Reader-writer lock not locked by calling thread: rwlock 0x.........
at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?)
- by 0x........: safe_pthread_rwlock_unlock (safe-pthread.h:43)
+ by 0x........: safe_pthread_rwlock_unlock (safe-pthread.h:52)
by 0x........: main (tc12_rwl_trivial.c:29)
rwlock 0x........ was first observed at:
at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?)
If we just always installed the handler then the line would always be
the same.
Cheers,
M ark
|
|
From: Tom H. <to...@co...> - 2015-08-18 14:37:33
|
On 18/08/15 15:34, Julian Seward wrote: > On 18/08/15 16:21, Rhys Kidd wrote: >> Seeing build failure with 'make check' on OS X as follows. Will get a > >> ./safe-pthread.h:29:19: error: token is not a valid binary operator in a >> preprocessor subexpression >> #if __GLIBC_PREREQ(2,20) && ( defined(__i386__) || defined(__x86_64__) ) >> ~~~~~~~~~~~~~~^ > > Yes, I imagine __GLIBC_PREREQ doesn't exist on OS X. What about this? > > #if defined(__GLIBC_PREREQ) \ > && __GLIBC_PREREQ(2,20) && ( defined(__i386__) || defined(__x86_64__) ) > > Will that fix it? Should do. Sorry, stole that from the main tc20 code without paying attention to all the humps it jumped through to define it on other platforms. Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: <sv...@va...> - 2015-08-18 14:34:56
|
Author: mjw
Date: Tue Aug 18 15:34:49 2015
New Revision: 15566
Log:
Handle (unwanted) line number info in filter_defcfaexpr.
This is just a testsuite cleanup. In the case defcfaexpr was compiled
with line number information (which might happen in some distro builds)
just throw it away because the expected output just wants to see the
function names.
Modified:
trunk/memcheck/tests/amd64-linux/filter_defcfaexpr
Modified: trunk/memcheck/tests/amd64-linux/filter_defcfaexpr
==============================================================================
--- trunk/memcheck/tests/amd64-linux/filter_defcfaexpr (original)
+++ trunk/memcheck/tests/amd64-linux/filter_defcfaexpr Tue Aug 18 15:34:49 2015
@@ -1,6 +1,9 @@
#! /bin/sh
-# change
+# In case the test binary contains debug line info first change
+# bad0.c:?? to a (bogus) binary path /foobar/tests/amd64-linux/defcfaexpr/
+#
+# then change
#
# ==6019== at 0x400512: bbb (in
# /home/sewardj/VgTRUNK/trunk/memcheck/tests/amd64/defcfaexpr)
@@ -23,6 +26,7 @@
# stack given the unusual CFAs describing it.
+sed "s/bad0.c:[0-9]\+/\/foobar\/tests\/amd64-linux\/defcfaexpr/" | \
./filter_stderr "$@" | \
sed "s/\/.*\/tests\/amd64-linux\/defcfaexpr/bogus.S:0/" | \
sed "s/(in /(/"
|
|
From: Julian S. <js...@ac...> - 2015-08-18 14:34:14
|
On 18/08/15 16:21, Rhys Kidd wrote:
> Seeing build failure with 'make check' on OS X as follows. Will get a
> ./safe-pthread.h:29:19: error: token is not a valid binary operator in a
> preprocessor subexpression
> #if __GLIBC_PREREQ(2,20) && ( defined(__i386__) || defined(__x86_64__) )
> ~~~~~~~~~~~~~~^
Yes, I imagine __GLIBC_PREREQ doesn't exist on OS X. What about this?
#if defined(__GLIBC_PREREQ) \
&& __GLIBC_PREREQ(2,20) && ( defined(__i386__) || defined(__x86_64__) )
Will that fix it?
J
|
|
From: Rhys K. <rhy...@gm...> - 2015-08-18 14:21:09
|
Seeing build failure with 'make check' on OS X as follows. Will get a
chance to look at fix within next day or so, unless others beat me to it.
depbase=`echo tc12_rwl_trivial.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include
-I../../coregrind -I../../include -I../../VEX/pub -I../../VEX/pub
-DVGA_amd64=1 -DVGO_darwin=1 -DVGP_amd64_darwin=1
-DVGPV_amd64_darwin_vanilla=1 -DVGA_SEC_x86=1 -DVGP_SEC_amd64_darwin=1
-Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector
-Wno-format-extra-args -Wno-literal-range
-Wno-tautological-constant-out-of-range-compare -Wno-self-assign
-Wno-string-plus-int -Wno-uninitialized -Wno-unused-value -arch x86_64
-MT tc12_rwl_trivial.o -MD -MP -MF $depbase.Tpo -c -o tc12_rwl_trivial.o
tc12_rwl_trivial.c &&\
mv -f $depbase.Tpo $depbase.Po
In file included from tc12_rwl_trivial.c:8:
./safe-pthread.h:29:19: error: token is not a valid binary operator in a
preprocessor subexpression
#if __GLIBC_PREREQ(2,20) && ( defined(__i386__) || defined(__x86_64__) )
~~~~~~~~~~~~~~^
1 error generated.
On 18 August 2015 at 20:29, <sv...@va...> wrote:
> Author: tom
> Date: Tue Aug 18 11:29:20 2015
> New Revision: 15565
>
> Log:
> Attempt to work around issues with xend being executed unconditionally
> when a pthread_rwlock is used in an invalid way.
>
> Recent glibcs use transactional memory instructions to do lock ellision
> but will sometimes, when locks are used in an invalid way, may calls to
> xend on systems which don't support it, on the grounds that the program
> is invalid anyway.
>
> So we try and catch and ignore the resulting SIGILL in our tests that
> deliberately work with invalid locks.
>
> Added:
> trunk/helgrind/tests/safe-pthread.h (with props)
> Modified:
> trunk/drd/tests/tc12_rwl_trivial.stderr.exp
> trunk/drd/tests/tc12_rwl_trivial.vgtest
> trunk/helgrind/tests/tc12_rwl_trivial.c
> trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp
> trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp-solaris
> trunk/helgrind/tests/tc12_rwl_trivial.vgtest
> trunk/helgrind/tests/tc20_verifywrap.c
> trunk/helgrind/tests/tc20_verifywrap.stderr.exp
> trunk/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18
> trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32
> trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32-b
> trunk/helgrind/tests/tc20_verifywrap.stderr.exp-s390x
> trunk/helgrind/tests/tc20_verifywrap.stderr.exp-solaris
> trunk/helgrind/tests/tc20_verifywrap.vgtest
>
> Modified: trunk/drd/tests/tc12_rwl_trivial.stderr.exp
>
> ==============================================================================
> --- trunk/drd/tests/tc12_rwl_trivial.stderr.exp (original)
> +++ trunk/drd/tests/tc12_rwl_trivial.stderr.exp Tue Aug 18 11:29:20 2015
> @@ -1,6 +1,7 @@
>
> Reader-writer lock not locked by calling thread: rwlock 0x.........
> at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?)
> + by 0x........: safe_pthread_rwlock_unlock (safe-pthread.h:43)
> by 0x........: main (tc12_rwl_trivial.c:29)
> rwlock 0x........ was first observed at:
> at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?)
>
> Modified: trunk/drd/tests/tc12_rwl_trivial.vgtest
>
> ==============================================================================
> --- trunk/drd/tests/tc12_rwl_trivial.vgtest (original)
> +++ trunk/drd/tests/tc12_rwl_trivial.vgtest Tue Aug 18 11:29:20 2015
> @@ -1,2 +1,3 @@
> prereq: ./supported_libpthread
> +vgopts: --sigill-diagnostics=no
> prog: ../../helgrind/tests/tc12_rwl_trivial
>
> Added: trunk/helgrind/tests/safe-pthread.h
>
> ==============================================================================
> --- trunk/helgrind/tests/safe-pthread.h (added)
> +++ trunk/helgrind/tests/safe-pthread.h Tue Aug 18 11:29:20 2015
> @@ -0,0 +1,56 @@
> +#include <pthread.h>
> +#include <signal.h>
> +#include <setjmp.h>
> +#include <errno.h>
> +#include <assert.h>
> +
> +static jmp_buf env;
> +
> +/*
> + * Starting with glibc 2.20 some pthread calls may execute
> + * an xend instruction unconditionally when a lock is used in
> + * a way that is invalid so defined a sigill handler that can
> + * convert these invalid instructions to a normal error.
> + */
> +static void sigill_handler( int signum, siginfo_t *siginfo, void
> *sigcontext ) {
> + unsigned char *pc = siginfo->si_addr;
> + assert( pc[0] == 0x0f && pc[1] == 0x01 && pc[2] == 0xd5 );
> + longjmp( env, EPERM );
> +}
> +
> +/*
> + * Wrapper for pthread_rwlock_unlock which may execute xend
> + * unconditionally when used on a lock that is not locked.
> + *
> + * Note that we return 0 instead of EPERM because that is what
> + * glibc normally does - error reporting is optional.
> + */
> +static int safe_pthread_rwlock_unlock( pthread_rwlock_t *rwlock ) {
> +#if __GLIBC_PREREQ(2,20) && ( defined(__i386__) || defined(__x86_64__) )
> + struct sigaction sa;
> + struct sigaction oldsa;
> + int r;
> +
> + sa.sa_handler = NULL;
> + sa.sa_sigaction = sigill_handler;
> + sigemptyset( &sa.sa_mask );
> + sa.sa_flags = SA_SIGINFO;
> + sa.sa_restorer = NULL;
> +
> + sigaction( SIGILL, &sa, &oldsa );
> +
> + if ( ( r = setjmp( env ) ) == 0 ) {
> + r = pthread_rwlock_unlock( rwlock );
> + } else {
> + r = 0;
> + }
> +
> + sigaction( SIGILL, &oldsa, NULL );
> +
> + return r;
> +#else
> + return pthread_rwlock_unlock( rwlock );
> +#endif
> +}
> +
> +#define pthread_rwlock_unlock safe_pthread_rwlock_unlock
>
> Modified: trunk/helgrind/tests/tc12_rwl_trivial.c
>
> ==============================================================================
> --- trunk/helgrind/tests/tc12_rwl_trivial.c (original)
> +++ trunk/helgrind/tests/tc12_rwl_trivial.c Tue Aug 18 11:29:20 2015
> @@ -5,7 +5,7 @@
> #define _GNU_SOURCE 1
>
> #include <stdio.h>
> -#include <pthread.h>
> +#include "safe-pthread.h"
> #include <assert.h>
>
> /* Do trivial stuff with a reader-writer lock. */
>
> Modified: trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp
>
> ==============================================================================
> --- trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp (original)
> +++ trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp Tue Aug 18 11:29:20
> 2015
> @@ -8,6 +8,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc12_rwl_trivial.c:29)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
>
> Modified: trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp-solaris
>
> ==============================================================================
> --- trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp-solaris (original)
> +++ trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp-solaris Tue Aug 18
> 11:29:20 2015
> @@ -8,6 +8,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc12_rwl_trivial.c:29)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
>
> Modified: trunk/helgrind/tests/tc12_rwl_trivial.vgtest
>
> ==============================================================================
> --- trunk/helgrind/tests/tc12_rwl_trivial.vgtest (original)
> +++ trunk/helgrind/tests/tc12_rwl_trivial.vgtest Tue Aug 18 11:29:20 2015
> @@ -1 +1,2 @@
> +vgopts: --sigill-diagnostics=no
> prog: tc12_rwl_trivial
>
> Modified: trunk/helgrind/tests/tc20_verifywrap.c
>
> ==============================================================================
> --- trunk/helgrind/tests/tc20_verifywrap.c (original)
> +++ trunk/helgrind/tests/tc20_verifywrap.c Tue Aug 18 11:29:20 2015
> @@ -15,7 +15,7 @@
> #include <string.h>
> #include <assert.h>
> #include <unistd.h>
> -#include <pthread.h>
> +#include "safe-pthread.h"
> #include <semaphore.h>
>
> #if !defined(__APPLE__)
>
> Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp
>
> ==============================================================================
> --- trunk/helgrind/tests/tc20_verifywrap.stderr.exp (original)
> +++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp Tue Aug 18 11:29:20
> 2015
> @@ -163,6 +163,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:189)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
> @@ -180,6 +181,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:206)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
> @@ -199,6 +201,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:227)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
>
> Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18
>
> ==============================================================================
> --- trunk/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18 (original)
> +++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18 Tue Aug 18
> 11:29:20 2015
> @@ -155,6 +155,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:189)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
> @@ -169,6 +170,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:206)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
>
> Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32
>
> ==============================================================================
> --- trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32 (original)
> +++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32 Tue Aug 18
> 11:29:20 2015
> @@ -165,6 +165,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:189)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
> @@ -179,6 +180,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:206)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
> @@ -195,6 +197,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:227)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
>
> Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32-b
>
> ==============================================================================
> --- trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32-b (original)
> +++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32-b Tue Aug 18
> 11:29:20 2015
> @@ -165,6 +165,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:189)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
> @@ -179,6 +180,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:206)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
> @@ -195,6 +197,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:227)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
>
> Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp-s390x
>
> ==============================================================================
> --- trunk/helgrind/tests/tc20_verifywrap.stderr.exp-s390x (original)
> +++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp-s390x Tue Aug 18
> 11:29:20 2015
> @@ -165,6 +165,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:189)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
> @@ -179,6 +180,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:206)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
> @@ -195,6 +197,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:227)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
>
> Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp-solaris
>
> ==============================================================================
> --- trunk/helgrind/tests/tc20_verifywrap.stderr.exp-solaris (original)
> +++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp-solaris Tue Aug 18
> 11:29:20 2015
> @@ -155,6 +155,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:189)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
> @@ -180,6 +181,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:206)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
> @@ -207,6 +209,7 @@
> Thread #x unlocked a not-locked lock at 0x........
> at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
> by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
> + ...
> by 0x........: main (tc20_verifywrap.c:227)
> Lock at 0x........ was first observed
> at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
>
> Modified: trunk/helgrind/tests/tc20_verifywrap.vgtest
>
> ==============================================================================
> --- trunk/helgrind/tests/tc20_verifywrap.vgtest (original)
> +++ trunk/helgrind/tests/tc20_verifywrap.vgtest Tue Aug 18 11:29:20 2015
> @@ -1,3 +1,3 @@
> prereq: test -e tc20_verifywrap
> prog: tc20_verifywrap
> -vgopts: --read-var-info=yes
> +vgopts: --read-var-info=yes --sigill-diagnostics=no
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Valgrind-developers mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-developers
>
|
|
From: <sv...@va...> - 2015-08-18 10:29:28
|
Author: tom
Date: Tue Aug 18 11:29:20 2015
New Revision: 15565
Log:
Attempt to work around issues with xend being executed unconditionally
when a pthread_rwlock is used in an invalid way.
Recent glibcs use transactional memory instructions to do lock ellision
but will sometimes, when locks are used in an invalid way, may calls to
xend on systems which don't support it, on the grounds that the program
is invalid anyway.
So we try and catch and ignore the resulting SIGILL in our tests that
deliberately work with invalid locks.
Added:
trunk/helgrind/tests/safe-pthread.h (with props)
Modified:
trunk/drd/tests/tc12_rwl_trivial.stderr.exp
trunk/drd/tests/tc12_rwl_trivial.vgtest
trunk/helgrind/tests/tc12_rwl_trivial.c
trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp
trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp-solaris
trunk/helgrind/tests/tc12_rwl_trivial.vgtest
trunk/helgrind/tests/tc20_verifywrap.c
trunk/helgrind/tests/tc20_verifywrap.stderr.exp
trunk/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18
trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32
trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32-b
trunk/helgrind/tests/tc20_verifywrap.stderr.exp-s390x
trunk/helgrind/tests/tc20_verifywrap.stderr.exp-solaris
trunk/helgrind/tests/tc20_verifywrap.vgtest
Modified: trunk/drd/tests/tc12_rwl_trivial.stderr.exp
==============================================================================
--- trunk/drd/tests/tc12_rwl_trivial.stderr.exp (original)
+++ trunk/drd/tests/tc12_rwl_trivial.stderr.exp Tue Aug 18 11:29:20 2015
@@ -1,6 +1,7 @@
Reader-writer lock not locked by calling thread: rwlock 0x.........
at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?)
+ by 0x........: safe_pthread_rwlock_unlock (safe-pthread.h:43)
by 0x........: main (tc12_rwl_trivial.c:29)
rwlock 0x........ was first observed at:
at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?)
Modified: trunk/drd/tests/tc12_rwl_trivial.vgtest
==============================================================================
--- trunk/drd/tests/tc12_rwl_trivial.vgtest (original)
+++ trunk/drd/tests/tc12_rwl_trivial.vgtest Tue Aug 18 11:29:20 2015
@@ -1,2 +1,3 @@
prereq: ./supported_libpthread
+vgopts: --sigill-diagnostics=no
prog: ../../helgrind/tests/tc12_rwl_trivial
Added: trunk/helgrind/tests/safe-pthread.h
==============================================================================
--- trunk/helgrind/tests/safe-pthread.h (added)
+++ trunk/helgrind/tests/safe-pthread.h Tue Aug 18 11:29:20 2015
@@ -0,0 +1,56 @@
+#include <pthread.h>
+#include <signal.h>
+#include <setjmp.h>
+#include <errno.h>
+#include <assert.h>
+
+static jmp_buf env;
+
+/*
+ * Starting with glibc 2.20 some pthread calls may execute
+ * an xend instruction unconditionally when a lock is used in
+ * a way that is invalid so defined a sigill handler that can
+ * convert these invalid instructions to a normal error.
+ */
+static void sigill_handler( int signum, siginfo_t *siginfo, void *sigcontext ) {
+ unsigned char *pc = siginfo->si_addr;
+ assert( pc[0] == 0x0f && pc[1] == 0x01 && pc[2] == 0xd5 );
+ longjmp( env, EPERM );
+}
+
+/*
+ * Wrapper for pthread_rwlock_unlock which may execute xend
+ * unconditionally when used on a lock that is not locked.
+ *
+ * Note that we return 0 instead of EPERM because that is what
+ * glibc normally does - error reporting is optional.
+ */
+static int safe_pthread_rwlock_unlock( pthread_rwlock_t *rwlock ) {
+#if __GLIBC_PREREQ(2,20) && ( defined(__i386__) || defined(__x86_64__) )
+ struct sigaction sa;
+ struct sigaction oldsa;
+ int r;
+
+ sa.sa_handler = NULL;
+ sa.sa_sigaction = sigill_handler;
+ sigemptyset( &sa.sa_mask );
+ sa.sa_flags = SA_SIGINFO;
+ sa.sa_restorer = NULL;
+
+ sigaction( SIGILL, &sa, &oldsa );
+
+ if ( ( r = setjmp( env ) ) == 0 ) {
+ r = pthread_rwlock_unlock( rwlock );
+ } else {
+ r = 0;
+ }
+
+ sigaction( SIGILL, &oldsa, NULL );
+
+ return r;
+#else
+ return pthread_rwlock_unlock( rwlock );
+#endif
+}
+
+#define pthread_rwlock_unlock safe_pthread_rwlock_unlock
Modified: trunk/helgrind/tests/tc12_rwl_trivial.c
==============================================================================
--- trunk/helgrind/tests/tc12_rwl_trivial.c (original)
+++ trunk/helgrind/tests/tc12_rwl_trivial.c Tue Aug 18 11:29:20 2015
@@ -5,7 +5,7 @@
#define _GNU_SOURCE 1
#include <stdio.h>
-#include <pthread.h>
+#include "safe-pthread.h"
#include <assert.h>
/* Do trivial stuff with a reader-writer lock. */
Modified: trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp
==============================================================================
--- trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp (original)
+++ trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp Tue Aug 18 11:29:20 2015
@@ -8,6 +8,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc12_rwl_trivial.c:29)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
Modified: trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp-solaris
==============================================================================
--- trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp-solaris (original)
+++ trunk/helgrind/tests/tc12_rwl_trivial.stderr.exp-solaris Tue Aug 18 11:29:20 2015
@@ -8,6 +8,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc12_rwl_trivial.c:29)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
Modified: trunk/helgrind/tests/tc12_rwl_trivial.vgtest
==============================================================================
--- trunk/helgrind/tests/tc12_rwl_trivial.vgtest (original)
+++ trunk/helgrind/tests/tc12_rwl_trivial.vgtest Tue Aug 18 11:29:20 2015
@@ -1 +1,2 @@
+vgopts: --sigill-diagnostics=no
prog: tc12_rwl_trivial
Modified: trunk/helgrind/tests/tc20_verifywrap.c
==============================================================================
--- trunk/helgrind/tests/tc20_verifywrap.c (original)
+++ trunk/helgrind/tests/tc20_verifywrap.c Tue Aug 18 11:29:20 2015
@@ -15,7 +15,7 @@
#include <string.h>
#include <assert.h>
#include <unistd.h>
-#include <pthread.h>
+#include "safe-pthread.h"
#include <semaphore.h>
#if !defined(__APPLE__)
Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp
==============================================================================
--- trunk/helgrind/tests/tc20_verifywrap.stderr.exp (original)
+++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp Tue Aug 18 11:29:20 2015
@@ -163,6 +163,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:189)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
@@ -180,6 +181,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:206)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
@@ -199,6 +201,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:227)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18
==============================================================================
--- trunk/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18 (original)
+++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18 Tue Aug 18 11:29:20 2015
@@ -155,6 +155,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:189)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
@@ -169,6 +170,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:206)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32
==============================================================================
--- trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32 (original)
+++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32 Tue Aug 18 11:29:20 2015
@@ -165,6 +165,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:189)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
@@ -179,6 +180,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:206)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
@@ -195,6 +197,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:227)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32-b
==============================================================================
--- trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32-b (original)
+++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp-mips32-b Tue Aug 18 11:29:20 2015
@@ -165,6 +165,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:189)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
@@ -179,6 +180,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:206)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
@@ -195,6 +197,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:227)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp-s390x
==============================================================================
--- trunk/helgrind/tests/tc20_verifywrap.stderr.exp-s390x (original)
+++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp-s390x Tue Aug 18 11:29:20 2015
@@ -165,6 +165,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:189)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
@@ -179,6 +180,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:206)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
@@ -195,6 +197,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:227)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
Modified: trunk/helgrind/tests/tc20_verifywrap.stderr.exp-solaris
==============================================================================
--- trunk/helgrind/tests/tc20_verifywrap.stderr.exp-solaris (original)
+++ trunk/helgrind/tests/tc20_verifywrap.stderr.exp-solaris Tue Aug 18 11:29:20 2015
@@ -155,6 +155,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:189)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
@@ -180,6 +181,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:206)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
@@ -207,6 +209,7 @@
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
+ ...
by 0x........: main (tc20_verifywrap.c:227)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
Modified: trunk/helgrind/tests/tc20_verifywrap.vgtest
==============================================================================
--- trunk/helgrind/tests/tc20_verifywrap.vgtest (original)
+++ trunk/helgrind/tests/tc20_verifywrap.vgtest Tue Aug 18 11:29:20 2015
@@ -1,3 +1,3 @@
prereq: test -e tc20_verifywrap
prog: tc20_verifywrap
-vgopts: --read-var-info=yes
+vgopts: --read-var-info=yes --sigill-diagnostics=no
|
|
From: <sv...@va...> - 2015-08-18 07:54:30
|
Author: sewardj
Date: Tue Aug 18 08:54:22 2015
New Revision: 15564
Log:
Fix a second format string error observed whilst building on OSX 10.10.
Modified:
trunk/coregrind/m_debuginfo/readpdb.c
Modified: trunk/coregrind/m_debuginfo/readpdb.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readpdb.c (original)
+++ trunk/coregrind/m_debuginfo/readpdb.c Tue Aug 18 08:54:22 2015
@@ -2384,15 +2384,15 @@
const DebugInfoMapping* map = VG_(indexXA)(di->fsm.maps, i);
if (map->rx)
VG_(dmsg)("LOAD_PDB_DEBUGINFO: "
- "rx_map: avma %#lx size %7lu foff %ld\n",
- map->avma, map->size, map->foff);
+ "rx_map: avma %#lx size %7lu foff %lld\n",
+ map->avma, map->size, (Long)map->foff);
}
for (i = 0; i < VG_(sizeXA)(di->fsm.maps); i++) {
const DebugInfoMapping* map = VG_(indexXA)(di->fsm.maps, i);
if (map->rw)
VG_(dmsg)("LOAD_PDB_DEBUGINFO: "
- "rw_map: avma %#lx size %7lu foff %ld\n",
- map->avma, map->size, map->foff);
+ "rw_map: avma %#lx size %7lu foff %lld\n",
+ map->avma, map->size, (Long)map->foff);
}
VG_(dmsg)("LOAD_PDB_DEBUGINFO: "
|