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
(13) |
2
(15) |
|
3
(16) |
4
(42) |
5
(9) |
6
(20) |
7
(22) |
8
(24) |
9
(12) |
|
10
(24) |
11
(11) |
12
(2) |
13
(13) |
14
(8) |
15
|
16
(16) |
|
17
(24) |
18
(36) |
19
(100) |
20
(94) |
21
(50) |
22
(39) |
23
(10) |
|
24
(14) |
25
(19) |
26
(2) |
27
(6) |
28
(17) |
29
(9) |
30
(8) |
|
31
(21) |
|
|
|
|
|
|
|
From: Bart V. A. <bar...@gm...> - 2009-05-30 11:15:26
|
On Sat, May 30, 2009 at 1:02 PM, Julian Seward <js...@ac...> wrote: > > Ok in principle, but some comments: > >> > Adding support for the ANNOTATE_*() macro's in drd/drd.h is probably >> > not too hard. I'll have a look at it. >> >> Implementation-wise you need to support Annotate*() functions, or >> rewrite ANNOTATE*() macro's using client requests and support those >> client requests. >> I find the approach with Annotate*() functions simpler to maintain. > > I prefer that the basic thing that is implemented and documented to > be the ANNOTATE_* macros, not the Annotate*() functions. The macros > can be implemented with just a header file, like the Memcheck macros. > The functions require shared objects etc and therefore create a > dependency on a new library (IIUC), which isn't desirable. > > There are a lot of these requests, which is a big overhead w.r.t. > verifying that the implementation is correct and keeping it correct. > Are they all really necessary? I wonder if you can implement these > using a smaller subset, based on the idea of sending an abstract message > between threads. > > Suppose you had a > > ANNOTATE_SENDTO_SYNC_OBJECT(address) and > ANNOTATE_RECVFROM_SYNC_OBJECT(address) > > which create a h-b edge through the sync object. How many of these > requests could be implemented using just those two? Implementing some of the ANNOTATE_* macro's using the above two macro's would limit the usefulness of a thread checker tool because no information is passed to the tool about the type of synchronization object that resides at 'address'. Hence the tool cannot check whether the synchronization object has been used properly. Furthermore, implementing the ANNOTATE_RWLOCK_REQUIRED() / ANNOTATE_RWLOCK_RELEASED() macro's using ANNOTATE_SENDTO_SYNC_OBJECT() / ANNOTATE_RECVFROM_SYNC_OBJECT() would require that the client tracks the set of threads that hold a reader lock. This is something that should not be done by the client but by the tool. Bart. |
|
From: Julian S. <js...@ac...> - 2009-05-30 11:00:27
|
Ok in principle, but some comments: > > Adding support for the ANNOTATE_*() macro's in drd/drd.h is probably > > not too hard. I'll have a look at it. > > Implementation-wise you need to support Annotate*() functions, or > rewrite ANNOTATE*() macro's using client requests and support those > client requests. > I find the approach with Annotate*() functions simpler to maintain. I prefer that the basic thing that is implemented and documented to be the ANNOTATE_* macros, not the Annotate*() functions. The macros can be implemented with just a header file, like the Memcheck macros. The functions require shared objects etc and therefore create a dependency on a new library (IIUC), which isn't desirable. There are a lot of these requests, which is a big overhead w.r.t. verifying that the implementation is correct and keeping it correct. Are they all really necessary? I wonder if you can implement these using a smaller subset, based on the idea of sending an abstract message between threads. Suppose you had a ANNOTATE_SENDTO_SYNC_OBJECT(address) and ANNOTATE_RECVFROM_SYNC_OBJECT(address) which create a h-b edge through the sync object. How many of these requests could be implemented using just those two? J |
|
From: Tom H. <th...@cy...> - 2009-05-30 02:44:32
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2009-05-30 03:05:08 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 481 tests, 0 stderr failures, 0 stdout failures, 0 post failures == |
|
From: Tom H. <th...@cy...> - 2009-05-30 02:28:26
|
Nightly build on mg ( x86_64, Fedora 9 ) started at 2009-05-30 03:10:04 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 487 tests, 0 stderr failures, 1 stdout failure, 0 post failures == none/tests/linux/mremap2 (stdout) |
|
From: Nicholas N. <n.n...@gm...> - 2009-05-29 16:25:14
|
Nightly build on ocean ( Ubuntu 9.04, Intel x86-64 ) started at 2009-05-30 02:00:01 EST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 486 tests, 0 stderr failures, 1 stdout failure, 0 post failures == none/tests/linux/mremap2 (stdout) ================================================= ./valgrind/none/tests/linux/mremap2.stdout.diff ================================================= --- mremap2.stdout.exp 2009-05-30 02:12:48.000000000 +1000 +++ mremap2.stdout.out 2009-05-30 02:24:44.000000000 +1000 @@ -27,38 +27,38 @@ .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. @@ -173,40 +173,40 @@ .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. <truncated beyond 100 lines> ================================================= ./valgrind/none/tests/linux/mremap2.stdout.diff-glibc28-amd64 ================================================= --- mremap2.stdout.exp-glibc28-amd64 2009-05-30 02:12:48.000000000 +1000 +++ mremap2.stdout.out 2009-05-30 02:24:44.000000000 +1000 @@ -188,37 +188,37 @@ maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. maymv 1 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. maymv 1 fixed 0 newsz 31 dstpo 0 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX................... .................................................. maymv 1 fixed 0 newsz 31 dstpo 1 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX................... .................................................. ================================================= ./valgrind/none/tests/linux/mremap2.stdout.diff2 ================================================= --- mremap2.stdout.exp2 2009-05-30 02:12:48.000000000 +1000 +++ mremap2.stdout.out 2009-05-30 02:24:44.000000000 +1000 @@ -27,38 +27,38 @@ .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. @@ -173,52 +173,52 @@ .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. <truncated beyond 100 lines> |
|
From: <sv...@va...> - 2009-05-29 15:30:16
|
Author: weidendo
Date: 2009-05-29 16:30:08 +0100 (Fri, 29 May 2009)
New Revision: 10169
Log:
Callgrind: fix (part of?) bug 191992.
Matching of function names was wrong.
Thanks to Timo Lindfors
Modified:
trunk/callgrind/clo.c
Modified: trunk/callgrind/clo.c
===================================================================
--- trunk/callgrind/clo.c 2009-05-29 08:19:22 UTC (rev 10168)
+++ trunk/callgrind/clo.c 2009-05-29 15:30:08 UTC (rev 10169)
@@ -264,13 +264,13 @@
while(name[offset] && (!is_wild(name[offset]))) offset++;
new_sub = new_config(name, offset);
- new_sub->next = n->sub_node[ name[offset]%NODE_DEGREE ];
- n->sub_node[ name[offset]%NODE_DEGREE ] = new_sub;
+ new_sub->next = n->sub_node[ name[0]%NODE_DEGREE ];
+ n->sub_node[ name[0]%NODE_DEGREE ] = new_sub;
return get_fnc2(new_sub, name+offset);
}
-static void print_config_node(int s, config_node* node)
+static void print_config_node(int depth, int hash, config_node* node)
{
config_node* n;
int i;
@@ -278,19 +278,22 @@
if (node != fn_configs) {
char sp[] = " ";
- if (s>40) s=40;
- VG_(printf)("%s", sp+40-s);
- VG_(printf)("'%s'/%d\n", node->name, node->length);
+ if (depth>40) depth=40;
+ VG_(printf)("%s", sp+40-depth);
+ if (hash >=0) VG_(printf)(" [hash %2d]", hash);
+ else if (hash == -2) VG_(printf)(" [wildc ?]");
+ else if (hash == -3) VG_(printf)(" [wildc *]");
+ VG_(printf)(" '%s' (len %d)\n", node->name, node->length);
}
for(i=0;i<NODE_DEGREE;i++) {
n = node->sub_node[i];
while(n) {
- print_config_node(s+1, n);
+ print_config_node(depth+1, i, n);
n = n->next;
}
}
- if (node->wild_char) print_config_node(s+1, node->wild_char);
- if (node->wild_star) print_config_node(s+1, node->wild_star);
+ if (node->wild_char) print_config_node(depth+1, -2, node->wild_char);
+ if (node->wild_star) print_config_node(depth+1, -3, node->wild_star);
}
/* get a function config for a name pattern (from command line) */
@@ -305,7 +308,7 @@
CLG_DEBUGIF(3) {
CLG_DEBUG(3, " -get_fnc(%s):\n", name);
- print_config_node(3, fn_configs);
+ print_config_node(3, -1, fn_configs);
}
return fnc;
}
@@ -358,7 +361,7 @@
CLG_DEBUG(3, " update_fn_config2('%s', node '%s'): \n",
name, node->name);
if ((*name == 0) && node->config) {
- CLG_DEBUG(3, "Found!\n");
+ CLG_DEBUG(3, " found!\n");
update_fn_config1(fn, node->config);
return;
}
@@ -368,12 +371,19 @@
if (VG_(strncmp)(name, n->name, n->length)==0) break;
n = n->next;
}
- if (n) update_fn_config2(fn, name+n->length, n);
+ if (n) {
+ CLG_DEBUG(3, " '%s' matching at hash %d\n",
+ n->name, name[0]%NODE_DEGREE);
+ update_fn_config2(fn, name+n->length, n);
+ }
- if (node->wild_char)
- update_fn_config2(fn, name+1, node->wild_char);
+ if (node->wild_char) {
+ CLG_DEBUG(3, " skip '%c' for wildcard '?'\n", *name);
+ update_fn_config2(fn, name+1, node->wild_char);
+ }
if (node->wild_star) {
+ CLG_DEBUG(3, " wildcard '*'\n");
while(*name) {
update_fn_config2(fn, name, node->wild_star);
name++;
|
|
From: Konstantin S. <kon...@gm...> - 2009-05-29 11:50:26
|
On Fri, May 29, 2009 at 3:19 PM, Bart Van Assche <bar...@gm...> wrote: > On Fri, May 29, 2009 at 12:58 PM, Konstantin Serebryany > <kon...@gm...> wrote: >> [changed subject] >> >> Do you plan to support annotations (aka client requests) in Helgrind >> and DRD in a compatible way (and possibly, in a way compatible with >> ThreadSanitizer)? >> Something like http://code.google.com/p/google-perftools/source/browse/trunk/src/base/dynamic_annotations.h, >> or completely different. >> Our experience shows that even a pure-happens-before race detector is >> completely useless w/o annotations if your code has lock-less >> synchronization and hundreds of benign races. > > Regarding the dynamic_annotations.h header file: which parts are > generic and which parts are ThreadSanitizer-specific ? Most are generic. But some of the annotations are usually required only with hybrid detectors. E.g. ANNOTATE_PUBLISH_MEMORY will be needed with a pure-h-b detector only if you publish your objects w/o locks. > I assume that > client programs should use the ANNOTATE_*() macro's and not the > Annotate*() functions ? Correct. Annotate*() functions are implementation details and may change. (comment at line 267) > > I assume that you have already developed unit tests for these macro's > in ThreadSanitizer. http://code.google.com/p/data-race-test/source/browse/trunk/unittest/racecheck_unittest.cc is a set of unittests for ThreadSanitizer. Some of the tests specifically test the annotations. > Are available under the GPL ? Yes, GPL v2+ As for annotations, I think they should go under a BSD-like license (as valgrind.h does) > > One aspect of the dynamic_annotations.h header file that I do not like > is that enabling / disabling the ANNOTATE*() macro's is controlled by > the NDEBUG macro. IMHO a new macro should be defined that allows to > enable / disable the ANNOTATE*() macro's. I don't have a strong opinion here. > > Adding support for the ANNOTATE_*() macro's in drd/drd.h is probably > not too hard. I'll have a look at it. Implementation-wise you need to support Annotate*() functions, or rewrite ANNOTATE*() macro's using client requests and support those client requests. I find the approach with Annotate*() functions simpler to maintain. --kcc > > Bart. > |
|
From: Bart V. A. <bar...@gm...> - 2009-05-29 11:19:49
|
On Fri, May 29, 2009 at 12:58 PM, Konstantin Serebryany <kon...@gm...> wrote: > [changed subject] > > Do you plan to support annotations (aka client requests) in Helgrind > and DRD in a compatible way (and possibly, in a way compatible with > ThreadSanitizer)? > Something like http://code.google.com/p/google-perftools/source/browse/trunk/src/base/dynamic_annotations.h, > or completely different. > Our experience shows that even a pure-happens-before race detector is > completely useless w/o annotations if your code has lock-less > synchronization and hundreds of benign races. Regarding the dynamic_annotations.h header file: which parts are generic and which parts are ThreadSanitizer-specific ? I assume that client programs should use the ANNOTATE_*() macro's and not the Annotate*() functions ? I assume that you have already developed unit tests for these macro's in ThreadSanitizer. Are available under the GPL ? One aspect of the dynamic_annotations.h header file that I do not like is that enabling / disabling the ANNOTATE*() macro's is controlled by the NDEBUG macro. IMHO a new macro should be defined that allows to enable / disable the ANNOTATE*() macro's. Adding support for the ANNOTATE_*() macro's in drd/drd.h is probably not too hard. I'll have a look at it. Bart. |
|
From: Konstantin S. <kon...@gm...> - 2009-05-29 10:58:34
|
[changed subject] Julian, Bart, Do you plan to support annotations (aka client requests) in Helgrind and DRD in a compatible way (and possibly, in a way compatible with ThreadSanitizer)? Something like http://code.google.com/p/google-perftools/source/browse/trunk/src/base/dynamic_annotations.h, or completely different. Our experience shows that even a pure-happens-before race detector is completely useless w/o annotations if your code has lock-less synchronization and hundreds of benign races. Thanks, --kcc On Thu, Feb 12, 2009 at 12:00 AM, Konstantin Serebryany <kon...@gm...> wrote: > On Wed, Feb 11, 2009 at 8:53 PM, Bart Van Assche > <bar...@gm...> wrote: >> On Tue, Feb 10, 2009 at 7:42 AM, Konstantin Serebryany >> <kon...@gm...> wrote: >>> On Mon, Feb 9, 2009 at 9:48 PM, Bart Van Assche >>> <bar...@gm...> wrote: >>>> IMHO it would be a significant advantage for Valgrind users if there >>>> would be a single set of source code annotations that is understood by >>>> all data race detectors built on top of Valgrind (Helgrind, DRD and >>>> ThreadSanitizer). >>> >>> Yes. >>> Another question: should these client requests be binary compatible >>> with each other, or only source compatible? >>> (source compatible == macro definitions with different >>> implementations for different tools) >>> If we push for binary compatibility, we may loose the ability to be >>> compatible with non-valgrind-based tools. >> >> Do you think it is possible to define the annotations such that >> recompilation would only be needed when switching between >> Valgrind-tools and non-Valgrind tools ? > > Yes, sure. > either define the same client requests in all three tools or intercept > the same functions (like AnnotateBlahBlahBlah()) > --kcc > > --kcc >> >> Bart. >> > |
|
From: Bart V. A. <bar...@gm...> - 2009-05-29 08:06:16
|
On Fri, May 29, 2009 at 9:06 AM, Nicholas Nethercote <n.n...@gm...> wrote: > On Wed, May 20, 2009 at 10:05 AM, Nicholas Nethercote > <n.n...@gm...> wrote: >> On Tue, May 19, 2009 at 6:06 PM, Julian Seward <js...@ac...> wrote: >>> Anyway, this leads to the current question, which is what to do about >>> the sources for check_PROGRAMS components which are only conditionally >>> defined, eg >>> >>> if HAVE_PTHREAD_BARRIER >>> check_PROGRAMS += matinv pth_barrier pth_barrier_race pth_barrier_reinit >>> endif >> >> Maybe we need this: >> >> if HAVE_PTHREAD_BARRIER >> check_PROGRAMS += matinv pth_barrier pth_barrier_race pth_barrier_reinit >> else >> EXTRA_DIST += matinv.c pth_barrier.c pth_barrier_race.c pth_barrier_reinit.c >> endif > > I just looked into this. It seems that automake includes the source > files for the programs listed in check_PROGRAMS above, even if > HAVE_PTHREAD_BARRIER isn't true. Which makes sense really, otherwise > everyone would face this problem. > > In other words, we don't have to do anything. Hooray! Thanks for figuring this out. Bart. |
|
From: Nicholas N. <n.n...@gm...> - 2009-05-29 07:06:14
|
On Wed, May 20, 2009 at 10:05 AM, Nicholas Nethercote <n.n...@gm...> wrote: > On Tue, May 19, 2009 at 6:06 PM, Julian Seward <js...@ac...> wrote: >> Anyway, this leads to the current question, which is what to do about >> the sources for check_PROGRAMS components which are only conditionally >> defined, eg >> >> if HAVE_PTHREAD_BARRIER >> check_PROGRAMS += matinv pth_barrier pth_barrier_race pth_barrier_reinit >> endif > > Maybe we need this: > > if HAVE_PTHREAD_BARRIER > check_PROGRAMS += matinv pth_barrier pth_barrier_race pth_barrier_reinit > else > EXTRA_DIST += matinv.c pth_barrier.c pth_barrier_race.c pth_barrier_reinit.c > endif I just looked into this. It seems that automake includes the source files for the programs listed in check_PROGRAMS above, even if HAVE_PTHREAD_BARRIER isn't true. Which makes sense really, otherwise everyone would face this problem. In other words, we don't have to do anything. Hooray! Nick |
|
From: Tom H. <th...@cy...> - 2009-05-29 02:45:03
|
Nightly build on mg ( x86_64, Fedora 9 ) started at 2009-05-29 03:10:02 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 487 tests, 0 stderr failures, 1 stdout failure, 0 post failures == none/tests/linux/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2009-05-29 02:44:56
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2009-05-29 03:05:04 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 481 tests, 0 stderr failures, 0 stdout failures, 0 post failures == |
|
From: Nicholas N. <n.n...@gm...> - 2009-05-28 22:33:48
|
On Thu, May 28, 2009 at 5:12 PM, Filipe Cabecinhas <fi...@gm...> wrote: > Thank you! Now I can use the trunk :-) > > Just a thought: Couldn't the DARWIN merge abort in configure, so people > wouldn't have to compile it just to know it's defunct? It could, I didn't think of that. I've added an abort there too. I kept the one in m_main.c too in case people update without rerunning autoconf. Nick |
|
From: <sv...@va...> - 2009-05-28 19:17:59
|
Author: bart
Date: 2009-05-28 20:17:52 +0100 (Thu, 28 May 2009)
New Revision: 10163
Log:
- Segments now contain a struct bitmap instead of a pointer to a struct
bitmap.
- Inlined DRD_(sg_get_refcnt)().
- Optimized DRD_(thread_update_conflict_set)(). Added DRD_(bm_mark)(),
DRD_(bm_unmark)(), DRD_(bm_is_marked)(), DRD_(bm_clear_marked)() and
DRD(bm_merge2_marked)().
- Cleanup.
Modified:
branches/DRDDEV/drd/drd_bitmap.c
branches/DRDDEV/drd/drd_bitmap.h
branches/DRDDEV/drd/drd_segment.c
branches/DRDDEV/drd/drd_segment.h
branches/DRDDEV/drd/drd_thread.c
branches/DRDDEV/drd/drd_thread_bitmap.h
branches/DRDDEV/drd/pub_drd_bitmap.h
Modified: branches/DRDDEV/drd/drd_bitmap.c
===================================================================
--- branches/DRDDEV/drd/drd_bitmap.c 2009-05-28 17:39:56 UTC (rev 10162)
+++ branches/DRDDEV/drd/drd_bitmap.c 2009-05-28 19:17:52 UTC (rev 10163)
@@ -55,7 +55,6 @@
struct bitmap* DRD_(bm_new)()
{
- unsigned i;
struct bitmap* bm;
/* If this assert fails, fix the definition of BITS_PER_BITS_PER_UWORD */
@@ -63,7 +62,27 @@
tl_assert((1 << BITS_PER_BITS_PER_UWORD) == BITS_PER_UWORD);
bm = VG_(malloc)("drd.bitmap.bn.1", sizeof(*bm));
+ DRD_(bm_init)(bm);
+
+ s_bitmap_creation_count++;
+
+ return bm;
+}
+
+void DRD_(bm_delete)(struct bitmap* const bm)
+{
tl_assert(bm);
+
+ DRD_(bm_cleanup)(bm);
+ VG_(free)(bm);
+}
+
+/** Initialize *bm. */
+void DRD_(bm_init)(struct bitmap* const bm)
+{
+ unsigned i;
+
+ tl_assert(bm);
/* Cache initialization. a1 is initialized with a value that never can
* match any valid address: the upper (ADDR_LSB_BITS + ADDR_IGNORED_BITS)
* bits of a1 are always zero for a valid cache entry.
@@ -75,18 +94,12 @@
}
bm->oset = VG_(OSetGen_Create)(0, 0, DRD_(bm2_alloc_node),
"drd.bitmap.bn.2", DRD_(bm2_free_node));
-
- s_bitmap_creation_count++;
-
- return bm;
}
-void DRD_(bm_delete)(struct bitmap* const bm)
+/** Free the memory allocated by DRD_(bm_init)(). */
+void DRD_(bm_cleanup)(struct bitmap* const bm)
{
- tl_assert(bm);
-
VG_(OSetGen_Destroy)(bm->oset);
- VG_(free)(bm);
}
/**
@@ -465,6 +478,10 @@
for (b0 = address_lsb(b_start); b0 <= address_lsb(b_end - 1); b0++)
{
+ /*
+ * Note: the statement below uses a binary or instead of a logical
+ * or on purpose.
+ */
if (bm0_is_set(p1->bm0_r, b0) | bm0_is_set(p1->bm0_w, b0))
{
return True;
@@ -962,14 +979,15 @@
}
/** Merge bitmaps *lhs and *rhs into *lhs. */
-void DRD_(bm_merge2)(struct bitmap* const lhs,
- struct bitmap* const rhs)
+void DRD_(bm_merge2)(struct bitmap* const lhs, struct bitmap* const rhs)
{
struct bitmap2* bm2l;
struct bitmap2* bm2r;
- /* It's not possible to have two independent iterators over the same OSet, */
- /* so complain if lhs == rhs. */
+ /*
+ * It's not possible to have two independent iterators over the same OSet,
+ * so complain if lhs == rhs.
+ */
tl_assert(lhs != rhs);
s_bitmap_merge_count++;
@@ -991,7 +1009,100 @@
}
}
+/** Clear bitmap2::recalc. */
+void DRD_(bm_unmark)(struct bitmap* bm)
+{
+ struct bitmap2* bm2;
+
+ for (VG_(OSetGen_ResetIter)(bm->oset);
+ (bm2 = VG_(OSetGen_Next)(bm->oset)) != 0;
+ )
+ {
+ bm2->recalc = False;
+ }
+}
+
/**
+ * Report whether bitmap2::recalc has been set for the second level bitmap
+ * corresponding to address a.
+ */
+Bool DRD_(bm_is_marked)(struct bitmap* bm, const Addr a)
+{
+ const struct bitmap2* bm2;
+
+ bm2 = bm2_lookup(bm, a);
+ return bm2 && bm2->recalc;
+}
+
+/**
+ * Set bitmap2::recalc in bml for each second level bitmap in bmr that contains
+ * at least one access.
+ *
+ * @note Any new second-level bitmaps inserted in bml by this function are
+ * uninitialized.
+ */
+void DRD_(bm_mark)(struct bitmap* bml, struct bitmap* bmr)
+{
+ struct bitmap2* bm2l;
+ struct bitmap2* bm2r;
+
+ for (VG_(OSetGen_ResetIter)(bmr->oset);
+ (bm2r = VG_(OSetGen_Next)(bmr->oset)) != 0;
+ )
+ {
+ /*if (DRD_(bm_has_any_access(bmr, make_address(bm2r->addr, 0),
+ make_address(bm2r->addr + 1, 0))))*/
+ {
+ bm2l = bm2_lookup_or_insert(bml, bm2r->addr);
+ bm2l->recalc = True;
+ }
+ }
+}
+
+/** Clear all second-level bitmaps for which bitmap2::recalc == True. */
+void DRD_(bm_clear_marked)(struct bitmap* bm)
+{
+ struct bitmap2* bm2;
+
+ for (VG_(OSetGen_ResetIter)(bm->oset);
+ (bm2 = VG_(OSetGen_Next)(bm->oset)) != 0;
+ )
+ {
+ if (bm2->recalc)
+ bm2_clear(bm2);
+ }
+}
+
+/** Merge the second level bitmaps from *rhs into *lhs for which recalc == True. */
+void DRD_(bm_merge2_marked)(struct bitmap* const lhs, struct bitmap* const rhs)
+{
+ struct bitmap2* bm2l;
+ struct bitmap2* bm2r;
+
+ tl_assert(lhs != rhs);
+
+ /*
+ * It's not possible to have two independent iterators over the same OSet,
+ * so complain if lhs == rhs.
+ */
+ tl_assert(lhs != rhs);
+
+ s_bitmap_merge_count++;
+
+ VG_(OSetGen_ResetIter)(rhs->oset);
+
+ for ( ; (bm2r = VG_(OSetGen_Next)(rhs->oset)) != 0; )
+ {
+ bm2l = VG_(OSetGen_Lookup)(lhs->oset, &bm2r->addr);
+ if (bm2l && bm2l->recalc)
+ {
+ tl_assert(bm2l != bm2r);
+ bm2_merge(bm2l, bm2r);
+ }
+ }
+}
+
+/**
* Report whether there are any RW / WR / WW patterns in lhs and rhs.
* @param lhs First bitmap.
* @param rhs Bitmap to be compared with lhs.
Modified: branches/DRDDEV/drd/drd_bitmap.h
===================================================================
--- branches/DRDDEV/drd/drd_bitmap.h 2009-05-28 17:39:56 UTC (rev 10162)
+++ branches/DRDDEV/drd/drd_bitmap.h 2009-05-28 19:17:52 UTC (rev 10163)
@@ -329,25 +329,11 @@
struct bitmap2
{
Addr addr; ///< address_msb(...)
+ Bool recalc;
struct bitmap1 bm1;
};
-struct bm_cache_elem
-{
- Addr a1;
- struct bitmap2* bm2;
-};
-#define N_CACHE_ELEM 4
-
-/* Complete bitmap. */
-struct bitmap
-{
- struct bm_cache_elem cache[N_CACHE_ELEM];
- OSet* oset;
-};
-
-
static void bm2_clear(struct bitmap2* const bm2);
static __inline__
struct bitmap2* bm2_insert(struct bitmap* const bm, const UWord a1);
@@ -555,6 +541,8 @@
*
* @param bm bitmap pointer.
* @param a1 client address shifted right by ADDR_LSB_BITS.
+ *
+ * @note bitmap2::recalc isn't initialized here on purpose.
*/
static __inline__
struct bitmap2* bm2_insert(struct bitmap* const bm, const UWord a1)
@@ -591,8 +579,8 @@
* Look up the address a1 in bitmap bm, and insert it if not found.
* The returned second level bitmap may not be modified.
*
- * @param a1 client address shifted right by ADDR_LSB_BITS.
* @param bm bitmap pointer.
+ * @param a1 client address shifted right by ADDR_LSB_BITS.
*/
static __inline__
struct bitmap2* bm2_lookup_or_insert(struct bitmap* const bm, const UWord a1)
Modified: branches/DRDDEV/drd/drd_segment.c
===================================================================
--- branches/DRDDEV/drd/drd_segment.c 2009-05-28 17:39:56 UTC (rev 10162)
+++ branches/DRDDEV/drd/drd_segment.c 2009-05-28 19:17:52 UTC (rev 10163)
@@ -85,7 +85,7 @@
else
DRD_(vc_init)(&sg->vc, 0, 0);
DRD_(vc_increment)(&sg->vc, created);
- sg->bm = DRD_(bm_new)();
+ DRD_(bm_init)(&sg->bm);
if (s_trace_segment)
{
@@ -109,8 +109,7 @@
tl_assert(sg->refcnt == 0);
DRD_(vc_cleanup)(&sg->vc);
- DRD_(bm_delete)(sg->bm);
- sg->bm = 0;
+ DRD_(bm_cleanup)(&sg->bm);
}
/** Allocate and initialize a new segment. */
@@ -150,14 +149,6 @@
VG_(free)(sg);
}
-/** Query the reference count of the specified segment. */
-int DRD_(sg_get_refcnt)(const Segment* const sg)
-{
- tl_assert(sg);
-
- return sg->refcnt;
-}
-
/** Increment the reference count of the specified segment. */
Segment* DRD_(sg_get)(Segment* const sg)
{
@@ -196,7 +187,7 @@
}
/** Merge sg1 and sg2 into sg1. */
-void DRD_(sg_merge)(const Segment* const sg1, Segment* const sg2)
+void DRD_(sg_merge)(Segment* const sg1, Segment* const sg2)
{
tl_assert(sg1);
tl_assert(sg1->refcnt == 1);
@@ -222,17 +213,17 @@
// Keep sg1->stacktrace.
// Keep sg1->vc.
// Merge sg2->bm into sg1->bm.
- DRD_(bm_merge2)(sg1->bm, sg2->bm);
+ DRD_(bm_merge2)(&sg1->bm, &sg2->bm);
}
/** Print the vector clock and the bitmap of the specified segment. */
-void DRD_(sg_print)(const Segment* const sg)
+void DRD_(sg_print)(Segment* const sg)
{
tl_assert(sg);
VG_(printf)("vc: ");
DRD_(vc_print)(&sg->vc);
VG_(printf)("\n");
- DRD_(bm_print)(sg->bm);
+ DRD_(bm_print)(&sg->bm);
}
/** Query whether segment tracing has been enabled. */
Modified: branches/DRDDEV/drd/drd_segment.h
===================================================================
--- branches/DRDDEV/drd/drd_segment.h 2009-05-28 17:39:56 UTC (rev 10162)
+++ branches/DRDDEV/drd/drd_segment.h 2009-05-28 19:17:52 UTC (rev 10163)
@@ -56,16 +56,17 @@
* Bitmap representing the memory accesses by the instructions associated
* with the segment.
*/
- struct bitmap* bm;
+ struct bitmap bm;
} Segment;
Segment* DRD_(sg_new)(const DrdThreadId creator, const DrdThreadId created);
-int DRD_(sg_get_refcnt)(const Segment* const sg);
+static int DRD_(sg_get_refcnt)(const Segment* const sg);
Segment* DRD_(sg_get)(Segment* const sg);
void DRD_(sg_put)(Segment* const sg);
-void DRD_(sg_merge)(const Segment* const sg1, Segment* const sg2);
-void DRD_(sg_print)(const Segment* const sg);
+static struct bitmap* DRD_(sg_bm)(Segment* const sg);
+void DRD_(sg_merge)(Segment* const sg1, Segment* const sg2);
+void DRD_(sg_print)(Segment* const sg);
Bool DRD_(sg_get_trace)(void);
void DRD_(sg_set_trace)(const Bool trace_segment);
ULong DRD_(sg_get_segments_created_count)(void);
@@ -74,4 +75,26 @@
ULong DRD_(sg_get_segment_merge_count)(void);
+/** Query the reference count of the specified segment. */
+static __inline__ int DRD_(sg_get_refcnt)(const Segment* const sg)
+{
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
+ tl_assert(sg);
+#endif
+
+ return sg->refcnt;
+}
+
+/** Return the pointer to the bitmap of the segment. */
+static __inline__ struct bitmap* DRD_(sg_bm)(Segment* const sg)
+{
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
+ tl_assert(sg);
+#endif
+
+ return &sg->bm;
+}
+
+
+
#endif // __SEGMENT_H
Modified: branches/DRDDEV/drd/drd_thread.c
===================================================================
--- branches/DRDDEV/drd/drd_thread.c 2009-05-28 17:39:56 UTC (rev 10162)
+++ branches/DRDDEV/drd/drd_thread.c 2009-05-28 19:17:52 UTC (rev 10163)
@@ -210,12 +210,13 @@
{
tl_assert(0 <= (int)tid && tid < DRD_N_THREADS
&& tid != DRD_INVALID_THREADID);
+
return (DRD_(g_threadinfo)[tid].vg_thread_exists
? DRD_(g_threadinfo)[tid].vg_threadid
: VG_INVALID_THREADID);
}
-#if 0
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
/**
* Sanity check of the doubly linked list of segments referenced by a
* ThreadInfo struct.
@@ -224,6 +225,7 @@
static Bool DRD_(sane_ThreadInfo)(const ThreadInfo* const ti)
{
Segment* p;
+
for (p = ti->first; p; p = p->next) {
if (p->next && p->next->prev != p)
return False;
@@ -595,7 +597,11 @@
{
tl_assert(0 <= (int)tid && tid < DRD_N_THREADS
&& tid != DRD_INVALID_THREADID);
- // tl_assert(DRD_(sane_ThreadInfo)(&DRD_(g_threadinfo)[tid]));
+
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
+ tl_assert(DRD_(sane_ThreadInfo)(&DRD_(g_threadinfo)[tid]));
+#endif
+
sg->prev = DRD_(g_threadinfo)[tid].last;
sg->next = 0;
if (DRD_(g_threadinfo)[tid].last)
@@ -603,7 +609,10 @@
DRD_(g_threadinfo)[tid].last = sg;
if (DRD_(g_threadinfo)[tid].first == 0)
DRD_(g_threadinfo)[tid].first = sg;
- // tl_assert(DRD_(sane_ThreadInfo)(&DRD_(g_threadinfo)[tid]));
+
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
+ tl_assert(DRD_(sane_ThreadInfo)(&DRD_(g_threadinfo)[tid]));
+#endif
}
/**
@@ -615,7 +624,8 @@
{
tl_assert(0 <= (int)tid && tid < DRD_N_THREADS
&& tid != DRD_INVALID_THREADID);
-#if 0
+
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
tl_assert(DRD_(sane_ThreadInfo)(&DRD_(g_threadinfo)[tid]));
#endif
@@ -629,7 +639,7 @@
DRD_(g_threadinfo)[tid].last = sg->prev;
DRD_(sg_put)(sg);
-#if 0
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
tl_assert(DRD_(sane_ThreadInfo)(&DRD_(g_threadinfo)[tid]));
#endif
}
@@ -673,8 +683,7 @@
Segment* latest_sg;
first = True;
- for (i = 0; i < sizeof(DRD_(g_threadinfo)) / sizeof(DRD_(g_threadinfo)[0]);
- i++)
+ for (i = 0; i < DRD_N_THREADS; i++)
{
latest_sg = DRD_(g_threadinfo)[i].last;
if (latest_sg)
@@ -700,8 +709,7 @@
Segment* latest_sg;
first = True;
- for (i = 0; i < sizeof(DRD_(g_threadinfo)) / sizeof(DRD_(g_threadinfo)[0]);
- i++)
+ for (i = 0; i < DRD_N_THREADS; i++)
{
latest_sg = DRD_(g_threadinfo)[i].last;
if (latest_sg)
@@ -748,8 +756,7 @@
DRD_(vc_cleanup)(&thread_vc_max);
}
- for (i = 0; i < sizeof(DRD_(g_threadinfo)) / sizeof(DRD_(g_threadinfo)[0]);
- i++)
+ for (i = 0; i < DRD_N_THREADS; i++)
{
Segment* sg;
Segment* sg_next;
@@ -773,8 +780,7 @@
* all segments for which the reference count is strictly greater than one.
* The code below is an optimized version of the following:
*
- * for (i = 0; i < sizeof(DRD_(g_threadinfo)) / sizeof(DRD_(g_threadinfo)[0]);
- * i++)
+ * for (i = 0; i < DRD_N_THREADS; i++)
* {
* Segment* sg;
*
@@ -804,8 +810,7 @@
tl_assert(sg1->next == sg2);
tl_assert(DRD_(vc_lte)(&sg1->vc, &sg2->vc));
- for (i = 0; i < sizeof(DRD_(g_threadinfo)) / sizeof(DRD_(g_threadinfo)[0]);
- i++)
+ for (i = 0; i < DRD_N_THREADS; i++)
{
Segment* sg;
@@ -858,12 +863,11 @@
s_new_segments_since_last_merge = 0;
- for (i = 0; i < sizeof(DRD_(g_threadinfo)) / sizeof(DRD_(g_threadinfo)[0]);
- i++)
+ for (i = 0; i < DRD_N_THREADS; i++)
{
Segment* sg;
-#if 0
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
tl_assert(DRD_(sane_ThreadInfo)(&DRD_(g_threadinfo)[i]));
#endif
@@ -881,66 +885,13 @@
}
}
-#if 0
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
tl_assert(DRD_(sane_ThreadInfo)(&DRD_(g_threadinfo)[i]));
#endif
}
}
/**
- * Every change in the vector clock of a thread may cause segments that
- * were previously ordered to this thread to become unordered. Hence,
- * it may be necessary to recalculate the conflict set if the vector clock
- * of the current thread is updated. This function checks whether such a
- * recalculation is necessary.
- *
- * @param tid Thread ID of the thread to which a new segment has been
- * appended.
- * @param new_sg Pointer to the most recent segment of thread tid.
- */
-static Bool conflict_set_update_needed(const DrdThreadId tid,
- const VectorClock* const old_vc,
- const VectorClock* const new_vc)
-{
- unsigned j;
-
- tl_assert(old_vc);
- tl_assert(new_vc);
-
- /*
- * If a new segment has been added to another thread than the running
- * thread, tell the caller to update the conflict set.
- */
- if (tid != DRD_(g_drd_running_tid))
- return True;
-
- tl_assert(tid == DRD_(g_drd_running_tid));
-
- for (j = 0; j < sizeof(DRD_(g_threadinfo)) / sizeof(DRD_(g_threadinfo)[0]);
- j++)
- {
- Segment* q;
-
- if (j == tid || ! DRD_(IsValidDrdThreadId)(j))
- continue;
-
- for (q = DRD_(g_threadinfo)[j].last; q; q = q->prev)
- {
- const int included_in_old_conflict_set
- = ! DRD_(vc_lte)(&q->vc, old_vc)
- && ! DRD_(vc_lte)(old_vc, &q->vc);
- const int included_in_new_conflict_set
- = ! DRD_(vc_lte)(&q->vc, new_vc)
- && ! DRD_(vc_lte)(new_vc, &q->vc);
- if (included_in_old_conflict_set != included_in_new_conflict_set)
- return True;
- }
- }
-
- return False;
-}
-
-/**
* Create a new segment for the specified thread, and discard any segments
* that cannot cause races anymore.
*/
@@ -962,11 +913,10 @@
* tl_assert(thread_conflict_set_up_to_date(DRD_(g_drd_running_tid)));
*/
- thread_discard_ordered_segments();
-
if (s_segment_merging
&& ++s_new_segments_since_last_merge >= s_segment_merge_interval)
{
+ thread_discard_ordered_segments();
thread_merge_segments();
}
}
@@ -1035,8 +985,7 @@
/* For all threads, mark the range [ a1, a2 [ as no longer in use. */
other_user = DRD_INVALID_THREADID;
- for (i = 0; i < sizeof(DRD_(g_threadinfo)) / sizeof(DRD_(g_threadinfo)[0]);
- i++)
+ for (i = 0; i < DRD_N_THREADS; i++)
{
Segment* p;
for (p = DRD_(g_threadinfo)[i].first; p; p = p->next)
@@ -1044,13 +993,13 @@
if (other_user == DRD_INVALID_THREADID
&& i != DRD_(g_drd_running_tid))
{
- if (UNLIKELY(DRD_(bm_test_and_clear)(p->bm, a1, a2)))
+ if (UNLIKELY(DRD_(bm_test_and_clear)(DRD_(sg_bm)(p), a1, a2)))
{
other_user = i;
}
continue;
}
- DRD_(bm_clear)(p->bm, a1, a2);
+ DRD_(bm_clear)(DRD_(sg_bm)(p), a1, a2);
}
}
@@ -1094,8 +1043,7 @@
unsigned i;
Segment* p;
- for (i = 0; i < sizeof(DRD_(g_threadinfo)) / sizeof(DRD_(g_threadinfo)[0]);
- i++)
+ for (i = 0; i < DRD_N_THREADS; i++)
{
if (DRD_(g_threadinfo)[i].first)
{
@@ -1157,8 +1105,7 @@
&& tid != DRD_INVALID_THREADID);
tl_assert(p);
- for (i = 0; i < sizeof(DRD_(g_threadinfo)) / sizeof(DRD_(g_threadinfo)[0]);
- i++)
+ for (i = 0; i < DRD_N_THREADS; i++)
{
if (i != tid)
{
@@ -1175,7 +1122,7 @@
break;
if (! DRD_(vc_lte)(&p->vc, &q->vc))
{
- if (DRD_(bm_has_conflict_with)(q->bm, addr, addr + size,
+ if (DRD_(bm_has_conflict_with)(DRD_(sg_bm)(q), addr, addr + size,
access_type))
{
tl_assert(q->stacktrace);
@@ -1203,7 +1150,7 @@
for (p = DRD_(g_threadinfo)[tid].first; p; p = p->next)
{
- if (DRD_(bm_has)(p->bm, addr, addr + size, access_type))
+ if (DRD_(bm_has)(DRD_(sg_bm)(p), addr, addr + size, access_type))
{
thread_report_conflicting_segments_segment(tid, addr, size,
access_type, p);
@@ -1298,13 +1245,11 @@
VG_(message)(Vg_UserMsg, "%s", msg);
}
- for (j = 0;
- j < sizeof(DRD_(g_threadinfo)) / sizeof(DRD_(g_threadinfo)[0]);
- j++)
+ for (j = 0; j < DRD_N_THREADS; j++)
{
if (j != tid && DRD_(IsValidDrdThreadId)(j))
{
- const Segment* q;
+ Segment* q;
for (q = DRD_(g_threadinfo)[j].last; q; q = q->prev)
{
if (! DRD_(vc_lte)(&q->vc, &p->vc)
@@ -1320,7 +1265,7 @@
&q->vc);
VG_(message)(Vg_UserMsg, "%s", msg);
}
- DRD_(bm_merge2)(*conflict_set, q->bm);
+ DRD_(bm_merge2)(*conflict_set, DRD_(sg_bm)(q));
}
else
{
@@ -1362,20 +1307,64 @@
const VectorClock* const old_vc)
{
const VectorClock* new_vc;
+ Segment* p;
+ unsigned j;
tl_assert(0 <= (int)tid && tid < DRD_N_THREADS
&& tid != DRD_INVALID_THREADID);
tl_assert(old_vc);
+ tl_assert(tid == DRD_(g_drd_running_tid));
+ tl_assert(DRD_(g_conflict_set));
-
new_vc = &DRD_(g_threadinfo)[tid].last->vc;
- if (conflict_set_update_needed(tid, old_vc, new_vc))
+ DRD_(bm_unmark)(DRD_(g_conflict_set));
+
+ for (j = 0; j < DRD_N_THREADS; j++)
{
- thread_compute_conflict_set(&DRD_(g_conflict_set), tid);
- s_conflict_set_combine_vc_count++;
+ Segment* q;
+
+ if (j == tid || ! DRD_(IsValidDrdThreadId)(j))
+ continue;
+
+ for (q = DRD_(g_threadinfo)[j].last; q; q = q->prev)
+ {
+ const int included_in_old_conflict_set
+ = ! DRD_(vc_lte)(&q->vc, old_vc)
+ && ! DRD_(vc_lte)(old_vc, &q->vc);
+ const int included_in_new_conflict_set
+ = ! DRD_(vc_lte)(&q->vc, new_vc)
+ && ! DRD_(vc_lte)(new_vc, &q->vc);
+ if (included_in_old_conflict_set != included_in_new_conflict_set)
+ {
+ DRD_(bm_mark)(DRD_(g_conflict_set), DRD_(sg_bm)(q));
+ }
+ }
}
+ DRD_(bm_clear_marked)(DRD_(g_conflict_set));
+
+ p = DRD_(g_threadinfo)[tid].last;
+ {
+ for (j = 0; j < DRD_N_THREADS; j++)
+ {
+ if (j != tid && DRD_(IsValidDrdThreadId)(j))
+ {
+ Segment* q;
+ for (q = DRD_(g_threadinfo)[j].last; q; q = q->prev)
+ {
+ if (! DRD_(vc_lte)(&q->vc, &p->vc)
+ && ! DRD_(vc_lte)(&p->vc, &q->vc))
+ {
+ DRD_(bm_merge2_marked)(DRD_(g_conflict_set), DRD_(sg_bm)(q));
+ }
+ }
+ }
+ }
+ }
+
+ s_conflict_set_combine_vc_count++;
+
tl_assert(thread_conflict_set_up_to_date(DRD_(g_drd_running_tid)));
}
Modified: branches/DRDDEV/drd/drd_thread_bitmap.h
===================================================================
--- branches/DRDDEV/drd/drd_thread_bitmap.h 2009-05-28 17:39:56 UTC (rev 10162)
+++ branches/DRDDEV/drd/drd_thread_bitmap.h 2009-05-28 19:17:52 UTC (rev 10163)
@@ -35,7 +35,7 @@
static __inline__
Bool bm_access_load_1_triggers_conflict(const Addr a1)
{
- DRD_(bm_access_load_1)(DRD_(running_thread_get_segment)()->bm, a1);
+ DRD_(bm_access_load_1)(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1);
return DRD_(bm_load_1_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1);
}
@@ -45,13 +45,13 @@
{
if ((a1 & 1) == 0)
{
- bm_access_aligned_load(DRD_(running_thread_get_segment)()->bm, a1, 2);
+ bm_access_aligned_load(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1, 2);
return bm_aligned_load_has_conflict_with(DRD_(thread_get_conflict_set)(),
a1, 2);
}
else
{
- DRD_(bm_access_range)(DRD_(running_thread_get_segment)()->bm,
+ DRD_(bm_access_range)(DRD_(sg_bm)(DRD_(running_thread_get_segment)()),
a1, a1 + 2, eLoad);
return DRD_(bm_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1, a1 + 2, eLoad);
@@ -63,13 +63,13 @@
{
if ((a1 & 3) == 0)
{
- bm_access_aligned_load(DRD_(running_thread_get_segment)()->bm, a1, 4);
+ bm_access_aligned_load(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1, 4);
return bm_aligned_load_has_conflict_with(DRD_(thread_get_conflict_set)(),
a1, 4);
}
else
{
- DRD_(bm_access_range)(DRD_(running_thread_get_segment)()->bm,
+ DRD_(bm_access_range)(DRD_(sg_bm)(DRD_(running_thread_get_segment)()),
a1, a1 + 4, eLoad);
return DRD_(bm_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1, a1 + 4, eLoad);
@@ -81,20 +81,20 @@
{
if ((a1 & 7) == 0)
{
- bm_access_aligned_load(DRD_(running_thread_get_segment)()->bm, a1, 8);
+ bm_access_aligned_load(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1, 8);
return bm_aligned_load_has_conflict_with(DRD_(thread_get_conflict_set)(),
a1, 8);
}
else if ((a1 & 3) == 0)
{
- bm_access_aligned_load(DRD_(running_thread_get_segment)()->bm, a1 + 0, 4);
- bm_access_aligned_load(DRD_(running_thread_get_segment)()->bm, a1 + 4, 4);
+ bm_access_aligned_load(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1 + 0, 4);
+ bm_access_aligned_load(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1 + 4, 4);
return DRD_(bm_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1, a1 + 8, eLoad);
}
else
{
- DRD_(bm_access_range)(DRD_(running_thread_get_segment)()->bm,
+ DRD_(bm_access_range)(DRD_(sg_bm)(DRD_(running_thread_get_segment)()),
a1, a1 + 8, eLoad);
return DRD_(bm_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1, a1 + 8, eLoad);
@@ -104,7 +104,7 @@
static __inline__
Bool bm_access_load_triggers_conflict(const Addr a1, const Addr a2)
{
- DRD_(bm_access_range_load)(DRD_(running_thread_get_segment)()->bm, a1, a2);
+ DRD_(bm_access_range_load)(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1, a2);
return DRD_(bm_load_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1, a2);
}
@@ -112,7 +112,7 @@
static __inline__
Bool bm_access_store_1_triggers_conflict(const Addr a1)
{
- DRD_(bm_access_store_1)(DRD_(running_thread_get_segment)()->bm, a1);
+ DRD_(bm_access_store_1)(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1);
return DRD_(bm_store_1_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1);
}
@@ -122,13 +122,13 @@
{
if ((a1 & 1) == 0)
{
- bm_access_aligned_store(DRD_(running_thread_get_segment)()->bm, a1, 2);
+ bm_access_aligned_store(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1, 2);
return bm_aligned_store_has_conflict_with(DRD_(thread_get_conflict_set)(),
a1, 2);
}
else
{
- DRD_(bm_access_range)(DRD_(running_thread_get_segment)()->bm,
+ DRD_(bm_access_range)(DRD_(sg_bm)(DRD_(running_thread_get_segment)()),
a1, a1 + 2, eStore);
return DRD_(bm_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1, a1 + 2, eStore);
@@ -140,13 +140,13 @@
{
if ((a1 & 3) == 0)
{
- bm_access_aligned_store(DRD_(running_thread_get_segment)()->bm, a1, 4);
+ bm_access_aligned_store(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1, 4);
return bm_aligned_store_has_conflict_with(DRD_(thread_get_conflict_set)(),
a1, 4);
}
else
{
- DRD_(bm_access_range)(DRD_(running_thread_get_segment)()->bm,
+ DRD_(bm_access_range)(DRD_(sg_bm)(DRD_(running_thread_get_segment)()),
a1, a1 + 4, eStore);
return DRD_(bm_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1, a1 + 4, eStore);
@@ -158,22 +158,22 @@
{
if ((a1 & 7) == 0)
{
- bm_access_aligned_store(DRD_(running_thread_get_segment)()->bm, a1, 8);
+ bm_access_aligned_store(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1, 8);
return bm_aligned_store_has_conflict_with(DRD_(thread_get_conflict_set)(),
a1, 8);
}
else if ((a1 & 3) == 0)
{
- bm_access_aligned_store(DRD_(running_thread_get_segment)()->bm,
+ bm_access_aligned_store(DRD_(sg_bm)(DRD_(running_thread_get_segment)()),
a1 + 0, 4);
- bm_access_aligned_store(DRD_(running_thread_get_segment)()->bm,
+ bm_access_aligned_store(DRD_(sg_bm)(DRD_(running_thread_get_segment)()),
a1 + 4, 4);
return DRD_(bm_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1, a1 + 8, eStore);
}
else
{
- DRD_(bm_access_range)(DRD_(running_thread_get_segment)()->bm,
+ DRD_(bm_access_range)(DRD_(sg_bm)(DRD_(running_thread_get_segment)()),
a1, a1 + 8, eStore);
return DRD_(bm_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1, a1 + 8, eStore);
@@ -183,7 +183,7 @@
static __inline__
Bool bm_access_store_triggers_conflict(const Addr a1, const Addr a2)
{
- DRD_(bm_access_range_store)(DRD_(running_thread_get_segment)()->bm, a1, a2);
+ DRD_(bm_access_range_store)(DRD_(sg_bm)(DRD_(running_thread_get_segment)()), a1, a2);
return DRD_(bm_store_has_conflict_with)(DRD_(thread_get_conflict_set)(),
a1, a2);
}
Modified: branches/DRDDEV/drd/pub_drd_bitmap.h
===================================================================
--- branches/DRDDEV/drd/pub_drd_bitmap.h 2009-05-28 17:39:56 UTC (rev 10162)
+++ branches/DRDDEV/drd/pub_drd_bitmap.h 2009-05-28 19:17:52 UTC (rev 10163)
@@ -57,11 +57,28 @@
typedef enum { eLoad, eStore, eStart, eEnd } BmAccessTypeT;
+struct bm_cache_elem
+{
+ Addr a1;
+ struct bitmap2* bm2;
+};
+#define N_CACHE_ELEM 4
+
+/* Complete bitmap. */
+struct bitmap
+{
+ struct bm_cache_elem cache[N_CACHE_ELEM];
+ struct _OSet* oset;
+};
+
+
/* Function declarations. */
struct bitmap* DRD_(bm_new)(void);
void DRD_(bm_delete)(struct bitmap* const bm);
+void DRD_(bm_init)(struct bitmap* const bm);
+void DRD_(bm_cleanup)(struct bitmap* const bm);
void DRD_(bm_access_range)(struct bitmap* const bm,
const Addr a1, const Addr a2,
const BmAccessTypeT access_type);
@@ -113,8 +130,12 @@
const Addr a1, const Addr a2);
Bool DRD_(bm_equal)(struct bitmap* const lhs, struct bitmap* const rhs);
void DRD_(bm_swap)(struct bitmap* const bm1, struct bitmap* const bm2);
-void DRD_(bm_merge2)(struct bitmap* const lhs,
- struct bitmap* const rhs);
+void DRD_(bm_merge2)(struct bitmap* const lhs, struct bitmap* const rhs);
+void DRD_(bm_unmark)(struct bitmap* bm);
+Bool DRD_(bm_is_marked)(struct bitmap* bm, const Addr a);
+void DRD_(bm_mark)(struct bitmap* bm1, struct bitmap* bm2);
+void DRD_(bm_clear_marked)(struct bitmap* bm);
+void DRD_(bm_merge2_marked)(struct bitmap* const lhs, struct bitmap* const rhs);
int DRD_(bm_has_races)(struct bitmap* const bm1,
struct bitmap* const bm2);
void DRD_(bm_report_races)(ThreadId const tid1, ThreadId const tid2,
|
|
From: Julian S. <js...@ac...> - 2009-05-28 17:50:39
|
On Thursday 28 May 2009, Nicholas Nethercote wrote: > On Tue, May 26, 2009 at 10:31 AM, Nicholas Nethercote > > <n.n...@gm...> wrote: > > Hi, > > > > I think the DARWIN branch is in a good enough state that it's ready to > > be merged with the trunk. > > [...] > > I propose doing the merge in two day's time, ie. some time Thursday > > (Melbourne time). > > This is now done, Amazing stuff; great work. Good to finally have it done. J |
|
From: <sv...@va...> - 2009-05-28 17:40:05
|
Author: sewardj Date: 2009-05-28 18:39:56 +0100 (Thu, 28 May 2009) New Revision: 10162 Log: Use --gen-suppressions=all rather than =yes, since the latter causes the entire regtest system to hang if in fact a suppression does need to be generated (since V stops to ask). Not sure why this flag is really in here, tho. Modified: trunk/memcheck/tests/nanoleak2.vgtest Modified: trunk/memcheck/tests/nanoleak2.vgtest =================================================================== --- trunk/memcheck/tests/nanoleak2.vgtest 2009-05-28 17:15:41 UTC (rev 10161) +++ trunk/memcheck/tests/nanoleak2.vgtest 2009-05-28 17:39:56 UTC (rev 10162) @@ -1,2 +1,2 @@ -vgopts: --leak-check=yes --gen-suppressions=yes --show-reachable=no -q +vgopts: --leak-check=yes --gen-suppressions=all --show-reachable=no -q prog: nanoleak2 |
|
From: Nicholas N. <n.n...@gm...> - 2009-05-28 17:31:37
|
Nightly build on ocean32 ( Ubuntu 9.04, Intel x86-64 (32-bit only) ) started at 2009-05-29 03:00:01 EST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 449 tests, 8 stderr failures, 3 stdout failures, 0 post failures ==
memcheck/tests/linux/stack_switch (stderr)
memcheck/tests/origin1-yes (stderr)
memcheck/tests/origin5-bz2 (stderr)
none/tests/linux/mremap2 (stdout)
none/tests/nestedfns (stdout)
none/tests/nestedfns (stderr)
none/tests/shell (stdout)
none/tests/shell (stderr)
none/tests/shell_valid1 (stderr)
none/tests/shell_valid2 (stderr)
none/tests/shell_valid3 (stderr)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... failed
Last 20 lines of verbose log follow echo
A valgrind/memcheck/tests/fwrite.vgtest
A valgrind/memcheck/tests/badaddrvalue.stderr.exp
A valgrind/memcheck/tests/wrap8.vgtest
A valgrind/memcheck/tests/manuel2.vgtest
A valgrind/memcheck/tests/badjump.stderr.exp
A valgrind/memcheck/tests/realloc3.vgtest
A valgrind/memcheck/tests/strchr.vgtest
A valgrind/memcheck/tests/origin1-yes.vgtest
A valgrind/memcheck/tests/fwrite.c
A valgrind/memcheck/tests/custom_alloc.stderr.exp
A valgrind/memcheck/tests/varinfo1.stderr.exp
A valgrind/memcheck/tests/overlap.vgtest
A valgrind/memcheck/tests/strchr.stderr.exp2
A valgrind/memcheck/tests/sigaltstack.vgtest
A valgrind/memcheck/tests/addressable.vgtest
A valgrind/memcheck/tests/x86
svn: Berkeley DB error for filesystem '/home/svn/repos/valgrind/db' while checkpointing after Berkeley DB transaction:
No space left on device
svn: bdb: write: 0x1ddde90, 49632: No space left on device
svn: bdb: txn_checkpoint: log failed at LSN [7447 1497306] No space left on device
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Fri May 29 03:04:49 2009
--- new.short Fri May 29 03:31:30 2009
***************
*** 1,24 ****
! Checking out valgrind source tree ... failed
- Last 20 lines of verbose log follow echo
- A valgrind/memcheck/tests/fwrite.vgtest
- A valgrind/memcheck/tests/badaddrvalue.stderr.exp
- A valgrind/memcheck/tests/wrap8.vgtest
- A valgrind/memcheck/tests/manuel2.vgtest
- A valgrind/memcheck/tests/badjump.stderr.exp
- A valgrind/memcheck/tests/realloc3.vgtest
- A valgrind/memcheck/tests/strchr.vgtest
- A valgrind/memcheck/tests/origin1-yes.vgtest
- A valgrind/memcheck/tests/fwrite.c
- A valgrind/memcheck/tests/custom_alloc.stderr.exp
- A valgrind/memcheck/tests/varinfo1.stderr.exp
- A valgrind/memcheck/tests/overlap.vgtest
- A valgrind/memcheck/tests/strchr.stderr.exp2
- A valgrind/memcheck/tests/sigaltstack.vgtest
- A valgrind/memcheck/tests/addressable.vgtest
- A valgrind/memcheck/tests/x86
- svn: Berkeley DB error for filesystem '/home/svn/repos/valgrind/db' while checkpointing after Berkeley DB transaction:
- No space left on device
- svn: bdb: write: 0x1ddde90, 49632: No space left on device
- svn: bdb: txn_checkpoint: log failed at LSN [7447 1497306] No space left on device
--- 1,21 ----
! Checking out valgrind source tree ... done
! Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 449 tests, 8 stderr failures, 3 stdout failures, 0 post failures ==
! memcheck/tests/linux/stack_switch (stderr)
! memcheck/tests/origin1-yes (stderr)
! memcheck/tests/origin5-bz2 (stderr)
! none/tests/linux/mremap2 (stdout)
! none/tests/nestedfns (stdout)
! none/tests/nestedfns (stderr)
! none/tests/shell (stdout)
! none/tests/shell (stderr)
! none/tests/shell_valid1 (stderr)
! none/tests/shell_valid2 (stderr)
! none/tests/shell_valid3 (stderr)
=================================================
./valgrind/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2009-05-29 03:09:06.000000000 +1000
+++ stack_switch.stderr.out 2009-05-29 03:29:23.000000000 +1000
@@ -0,0 +1,2 @@
+Syscall param clone(child_tidptr) contains uninitialised byte(s)
+ ...
=================================================
./valgrind/memcheck/tests/origin1-yes.stderr.diff
=================================================
--- origin1-yes.stderr.exp 2009-05-29 03:09:32.000000000 +1000
+++ origin1-yes.stderr.out 2009-05-29 03:29:41.000000000 +1000
@@ -47,7 +47,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin1-yes.c:101)
Uninitialised value was created
- at 0x........: brk (in /...libc...)
+ at 0x........: ??? (in /lib32/ld-2.9.so)
by 0x........: sbrk (in /...libc...)
by 0x........: main (origin1-yes.c:98)
=================================================
./valgrind/memcheck/tests/origin1-yes.stderr.diff-darwin
=================================================
--- origin1-yes.stderr.exp-darwin 2009-05-29 03:09:32.000000000 +1000
+++ origin1-yes.stderr.out 2009-05-29 03:29:41.000000000 +1000
@@ -44,7 +44,12 @@
Undef 7 of 8 (brk)
-(no complaint; sbrk initialises memory on Darwin)
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:101)
+ Uninitialised value was created
+ at 0x........: ??? (in /lib32/ld-2.9.so)
+ by 0x........: sbrk (in /...libc...)
+ by 0x........: main (origin1-yes.c:98)
Undef 8 of 8 (MAKE_MEM_UNDEFINED)
=================================================
./valgrind/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2009-05-29 03:09:32.000000000 +1000
+++ origin5-bz2.stderr.out 2009-05-29 03:29:45.000000000 +1000
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,7 +27,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -38,7 +38,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -49,7 +49,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -60,7 +60,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -71,7 +71,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -82,7 +82,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -93,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -104,7 +104,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
=================================================
./valgrind/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2009-05-29 03:09:32.000000000 +1000
+++ origin5-bz2.stderr.out 2009-05-29 03:29:45.000000000 +1000
@@ -28,7 +28,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -38,7 +39,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -48,7 +50,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -58,7 +61,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -68,7 +72,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -78,7 +83,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
=================================================
./valgrind/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2009-05-29 03:09:32.000000000 +1000
+++ origin5-bz2.stderr.out 2009-05-29 03:29:45.000000000 +1000
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,85 +9,91 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2854)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2858)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
<truncated beyond 100 lines>
=================================================
./valgrind/none/tests/linux/mremap2.stdout.diff
=================================================
--- mremap2.stdout.exp 2009-05-29 03:13:24.000000000 +1000
+++ mremap2.stdout.out 2009-05-29 03:30:57.000000000 +1000
@@ -27,38 +27,38 @@
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
@@ -173,40 +173,40 @@
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
<truncated beyond 100 lines>
=================================================
./valgrind/none/tests/linux/mremap2.stdout.diff-glibc28-amd64
=================================================
--- mremap2.stdout.exp-glibc28-amd64 2009-05-29 03:13:24.000000000 +1000
+++ mremap2.stdout.out 2009-05-29 03:30:57.000000000 +1000
@@ -188,37 +188,37 @@
maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
maymv 1 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
maymv 1 fixed 0 newsz 31 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...................
..................................................
maymv 1 fixed 0 newsz 31 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...................
..................................................
=================================================
./valgrind/none/tests/linux/mremap2.stdout.diff2
=================================================
--- mremap2.stdout.exp2 2009-05-29 03:13:24.000000000 +1000
+++ mremap2.stdout.out 2009-05-29 03:30:57.000000000 +1000
@@ -27,38 +27,38 @@
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
@@ -173,52 +173,52 @@
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
<truncated beyond 100 lines>
=================================================
./valgrind/none/tests/nestedfns.stderr.diff
=================================================
--- nestedfns.stderr.exp 2009-05-29 03:13:56.000000000 +1000
+++ nestedfns.stderr.out 2009-05-29 03:31:03.000000000 +1000
@@ -1,2 +1 @@
-
-
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind/none/tests/nestedfns.stdout.diff
=================================================
--- nestedfns.stdout.exp 2009-05-29 03:13:56.000000000 +1000
+++ nestedfns.stdout.out 2009-05-29 03:31:03.000000000 +1000
@@ -1,2 +0,0 @@
-Inside test1
-Inside test2
=================================================
./valgrind/none/tests/shell.stderr.diff
=================================================
--- shell.stderr.exp 2009-05-29 03:13:56.000000000 +1000
+++ shell.stderr.out 2009-05-29 03:31:13.000000000 +1000
@@ -1,8 +1 @@
-./shell: ./x86/: is a directory
-./shell: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell: ./shell_binaryfile: cannot execute binary file
-./shell: ./shell_nosuchfile: No such file or directory
-./shell: shell_nosuchfile: command not found
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind/none/tests/shell.stderr.diff-dash
=================================================
--- shell.stderr.exp-dash 2009-05-29 03:13:56.000000000 +1000
+++ shell.stderr.out 2009-05-29 03:31:13.000000000 +1000
@@ -1,8 +1 @@
-./shell: 10: ./x86/: Permission denied
-./shell: 13: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell_binaryfile: 4: Syntax error: ")" unexpected
-./shell: 22: ./shell_nosuchfile: not found
-./shell: 25: shell_nosuchfile: not found
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind/none/tests/shell.stdout.diff
=================================================
--- shell.stdout.exp 2009-05-29 03:13:56.000000000 +1000
+++ shell.stdout.out 2009-05-29 03:31:13.000000000 +1000
@@ -1,10 +0,0 @@
-Execute a directory
-Execute a non-executable file
-Execute a script with a bad interpreter name
-Execute a binary file
-Execute a non-existent file
-Execute a non-existent file (2)
-Execute a valid script with a #! line
-Execute a valid script without a #! line
-Execute a valid script with #! but no interpname
-Execute a zero-length file
=================================================
./valgrind/none/tests/shell_valid1.stderr.diff
=================================================
--- shell_valid1.stderr.exp 2009-05-29 03:13:56.000000000 +1000
+++ shell_valid1.stderr.out 2009-05-29 03:31:13.000000000 +1000
@@ -0,0 +1 @@
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind/none/tests/shell_valid2.stderr.diff
=================================================
--- shell_valid2.stderr.exp 2009-05-29 03:13:56.000000000 +1000
+++ shell_valid2.stderr.out 2009-05-29 03:31:13.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid2: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind/none/tests/shell_valid3.stderr.diff
=================================================
--- shell_valid3.stderr.exp 2009-05-29 03:13:56.000000000 +1000
+++ shell_valid3.stderr.out 2009-05-29 03:31:13.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid3: bad interpreter (/bin/sh): VG_(strerror): unknown error
|
|
From: <sv...@va...> - 2009-05-28 17:15:56
|
Author: sewardj
Date: 2009-05-28 18:15:41 +0100 (Thu, 28 May 2009)
New Revision: 10161
Log:
Reinstate an include needed on ppc{32,64}-linux.
Modified:
trunk/coregrind/m_machine.c
Modified: trunk/coregrind/m_machine.c
===================================================================
--- trunk/coregrind/m_machine.c 2009-05-28 12:51:24 UTC (rev 10160)
+++ trunk/coregrind/m_machine.c 2009-05-28 17:15:41 UTC (rev 10161)
@@ -36,6 +36,7 @@
#include "pub_core_machine.h"
#include "pub_core_cpuid.h"
#include "pub_core_libcsignal.h" // for ppc32 messing with SIGILL and SIGFPE
+#include "pub_core_debuglog.h"
#define INSTR_PTR(regs) ((regs).vex.VG_INSTR_PTR)
|
|
From: Nicholas N. <n.n...@gm...> - 2009-05-28 17:02:46
|
Nightly build on ocean ( Ubuntu 9.04, Intel x86-64 ) started at 2009-05-29 02:00:01 EST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 486 tests, 1 stderr failure, 2 stdout failures, 0 post failures == none/tests/linux/mremap2 (stdout) none/tests/stackgrowth (stdout) none/tests/stackgrowth (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 486 tests, 0 stderr failures, 1 stdout failure, 0 post failures == none/tests/linux/mremap2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri May 29 02:30:29 2009 --- new.short Fri May 29 03:02:41 2009 *************** *** 8,11 **** ! == 486 tests, 0 stderr failures, 1 stdout failure, 0 post failures == none/tests/linux/mremap2 (stdout) --- 8,13 ---- ! == 486 tests, 1 stderr failure, 2 stdout failures, 0 post failures == none/tests/linux/mremap2 (stdout) + none/tests/stackgrowth (stdout) + none/tests/stackgrowth (stderr) ================================================= ./valgrind/none/tests/linux/mremap2.stdout.diff ================================================= --- mremap2.stdout.exp 2009-05-29 02:41:34.000000000 +1000 +++ mremap2.stdout.out 2009-05-29 03:02:08.000000000 +1000 @@ -27,38 +27,38 @@ .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. @@ -173,40 +173,40 @@ .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. <truncated beyond 100 lines> ================================================= ./valgrind/none/tests/linux/mremap2.stdout.diff-glibc28-amd64 ================================================= --- mremap2.stdout.exp-glibc28-amd64 2009-05-29 02:41:34.000000000 +1000 +++ mremap2.stdout.out 2009-05-29 03:02:08.000000000 +1000 @@ -188,37 +188,37 @@ maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. maymv 1 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. maymv 1 fixed 0 newsz 31 dstpo 0 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX................... .................................................. maymv 1 fixed 0 newsz 31 dstpo 1 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX................... .................................................. ================================================= ./valgrind/none/tests/linux/mremap2.stdout.diff2 ================================================= --- mremap2.stdout.exp2 2009-05-29 02:41:34.000000000 +1000 +++ mremap2.stdout.out 2009-05-29 03:02:08.000000000 +1000 @@ -27,38 +27,38 @@ .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. @@ -173,52 +173,52 @@ .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. <truncated beyond 100 lines> ================================================= ./valgrind/none/tests/stackgrowth.stderr.diff ================================================= --- stackgrowth.stderr.exp 2009-05-29 02:42:08.000000000 +1000 +++ stackgrowth.stderr.out 2009-05-29 03:02:24.000000000 +1000 @@ -1,2 +1,127 @@ +valgrind: m_scheduler/scheduler.c:1211 (vgPlain_scheduler): the 'impossible' happened. +valgrind: VG_(scheduler), phase 3: run_innerloop detected host state invariant failure + at 0x........: report_and_quit (m_libcassert.c:142) + by 0x........: vgPlain_assert_fail (m_libcassert.c:213) + by 0x........: vgPlain_scheduler (scheduler.c:1236) + by 0x........: run_a_thread_NORETURN (syswrap-linux.c:89) + +sched status: + running_tid=1 + +Thread 1: status = VgTs_Runnable + at 0x........: test (stackgrowth.c:15) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) + by 0x........: test (stackgrowth.c:14) <truncated beyond 100 lines> ================================================= ./valgrind/none/tests/stackgrowth.stdout.diff ================================================= --- stackgrowth.stdout.exp 2009-05-29 02:42:08.000000000 +1000 +++ stackgrowth.stdout.out 2009-05-29 03:02:24.000000000 +1000 @@ -1 +0,0 @@ -PASSED |
|
From: <sv...@va...> - 2009-05-28 16:54:01
|
Author: tom
Date: 2009-05-28 13:51:24 +0100 (Thu, 28 May 2009)
New Revision: 10160
Log:
Add support for AT_RANDOM to keep glibc happy when it is built
to assume kernel 2.6.29 or later. Closes #194429.
Modified:
trunk/coregrind/m_initimg/initimg-linux.c
Modified: trunk/coregrind/m_initimg/initimg-linux.c
===================================================================
--- trunk/coregrind/m_initimg/initimg-linux.c 2009-05-28 03:24:39 UTC (rev 10159)
+++ trunk/coregrind/m_initimg/initimg-linux.c 2009-05-28 12:51:24 UTC (rev 10160)
@@ -248,6 +248,10 @@
#define AT_UCACHEBSIZE 21
#endif /* AT_UCACHEBSIZE */
+#ifndef AT_RANDOM
+#define AT_RANDOM 25
+#endif /* AT_RANDOM */
+
#ifndef AT_SYSINFO
#define AT_SYSINFO 32
#endif /* AT_SYSINFO */
@@ -426,6 +430,8 @@
for (cauxv = orig_auxv; cauxv->a_type != AT_NULL; cauxv++) {
if (cauxv->a_type == AT_PLATFORM)
stringsize += VG_(strlen)(cauxv->u.a_ptr) + 1;
+ else if (cauxv->a_type == AT_RANDOM)
+ stringsize += 16;
auxsize += sizeof(*cauxv);
}
@@ -686,6 +692,15 @@
auxv->a_type = AT_IGNORE;
break;
+ case AT_RANDOM:
+ /* points to 16 random bytes - we need to ensure this is
+ propagated to the client as glibc will assume it is
+ present if it is built for kernel 2.6.29 or later */
+ auxv->u.a_ptr = strtab;
+ VG_(memcpy)(strtab, orig_auxv->u.a_ptr, 16);
+ strtab += 16;
+ break;
+
default:
/* stomp out anything we don't know about */
VG_(debugLog)(2, "initimg",
|
|
From: Filipe C. <fi...@gm...> - 2009-05-28 07:12:29
|
Thank you! Now I can use the trunk :-) Just a thought: Couldn't the DARWIN merge abort in configure, so people wouldn't have to compile it just to know it's defunct? Keep up the good work! F On Thu, May 28, 2009 at 05:34, Nicholas Nethercote <n.n...@gm...>wrote: > On Thu, May 28, 2009 at 1:36 PM, Nicholas Nethercote > <n.n...@gm...> wrote: > > On Tue, May 26, 2009 at 10:31 AM, Nicholas Nethercote > > <n.n...@gm...> wrote: > >> Hi, > >> > >> I think the DARWIN branch is in a good enough state that it's ready to > >> be merged with the trunk. > >> [...] > >> I propose doing the merge in two day's time, ie. some time Thursday > >> (Melbourne time). > > > > This is now done, and I've added code to the branch so it aborts on > > start-up with a message saying you should use the trunk instead. > > > > Any existing Valgrind-on-Mac users should check out the trunk like so: > > > > svn co svn://svn.valgrind.org/valgrind/branches/DARWIN <dirname> > > That should be: > > svn co svn://svn.valgrind.org/valgrind/trunk <dirname> > > Nick > > > ------------------------------------------------------------------------------ > Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT > is a gathering of tech-side developers & brand creativity professionals. > Meet > the minds behind Google Creative Lab, Visual Complexity, Processing, & > iPhoneDevCamp as they present alongside digital heavyweights like Barbarian > Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
|
From: Nicholas N. <n.n...@gm...> - 2009-05-28 04:34:11
|
On Thu, May 28, 2009 at 1:36 PM, Nicholas Nethercote <n.n...@gm...> wrote: > On Tue, May 26, 2009 at 10:31 AM, Nicholas Nethercote > <n.n...@gm...> wrote: >> Hi, >> >> I think the DARWIN branch is in a good enough state that it's ready to >> be merged with the trunk. >> [...] >> I propose doing the merge in two day's time, ie. some time Thursday >> (Melbourne time). > > This is now done, and I've added code to the branch so it aborts on > start-up with a message saying you should use the trunk instead. > > Any existing Valgrind-on-Mac users should check out the trunk like so: > > svn co svn://svn.valgrind.org/valgrind/branches/DARWIN <dirname> That should be: svn co svn://svn.valgrind.org/valgrind/trunk <dirname> Nick |
|
From: Nicholas N. <n.n...@gm...> - 2009-05-28 03:36:16
|
On Tue, May 26, 2009 at 10:31 AM, Nicholas Nethercote <n.n...@gm...> wrote: > Hi, > > I think the DARWIN branch is in a good enough state that it's ready to > be merged with the trunk. > [...] > I propose doing the merge in two day's time, ie. some time Thursday > (Melbourne time). This is now done, and I've added code to the branch so it aborts on start-up with a message saying you should use the trunk instead. Any existing Valgrind-on-Mac users should check out the trunk like so: svn co svn://svn.valgrind.org/valgrind/branches/DARWIN <dirname> cd <dirname> and build according to the instructions in the README. Nick |
|
From: <sv...@va...> - 2009-05-28 03:24:53
|
Author: njn
Date: 2009-05-28 04:24:39 +0100 (Thu, 28 May 2009)
New Revision: 10159
Log:
Stop people from using this branch now that it's been merged to the trunk.
Modified:
branches/DARWIN/coregrind/m_main.c
Modified: branches/DARWIN/coregrind/m_main.c
===================================================================
--- branches/DARWIN/coregrind/m_main.c 2009-05-28 02:24:28 UTC (rev 10158)
+++ branches/DARWIN/coregrind/m_main.c 2009-05-28 03:24:39 UTC (rev 10159)
@@ -1194,6 +1194,12 @@
VG_(debugLog)(1, "main", "Welcome to Valgrind version "
VERSION " debug logging\n");
+
+ VG_UMSG("The DARWIN branch has been merged onto the trunk");
+ VG_UMSG("and is now defunct.");
+ VG_UMSG("Please check-out the trunk and use that instead.");
+ VG_(exit)(1);
+
//--------------------------------------------------------------
// AIX5 only: register the system call numbers
// p: logging
|