You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
1
(6) |
2
(3) |
3
|
4
(3) |
5
(10) |
6
(4) |
7
(5) |
|
8
(1) |
9
(3) |
10
(11) |
11
(18) |
12
(13) |
13
(4) |
14
(11) |
|
15
(12) |
16
(6) |
17
(1) |
18
(13) |
19
(14) |
20
(12) |
21
(3) |
|
22
(17) |
23
(18) |
24
(17) |
25
(24) |
26
(15) |
27
(7) |
28
(23) |
|
29
(31) |
|
|
|
|
|
|
|
From: Nicholas N. <nj...@ca...> - 2004-02-24 23:58:51
|
CVS commit by nethercote:
Check new fds are not within Valgrind's reserved range. Still one case for
recvmsg() where I'm not sure if it should be checked, and if so, what error
should be returned if the check fails.
M +49 -18 coregrind/vg_syscalls.c 1.90
M +1 -0 include/vg_kerneliface.h 1.15
--- valgrind/coregrind/vg_syscalls.c #1.89:1.90
@@ -858,4 +858,6 @@ void check_cmsg_for_fds(Int tid, struct
for (i = 0; i < fdc; i++)
if(VG_(clo_track_fds))
+ // XXX: must we check the range on these fds with
+ // fd_allowed()?
record_fd_open (tid, fds[i], VG_(resolve_filename)(fds[i]));
}
@@ -2146,7 +2148,13 @@ PRE(fcntl)
POST(fcntl)
{
- if (arg2 == VKI_F_DUPFD)
+ if (arg2 == VKI_F_DUPFD) {
+ if (!fd_allowed(res, "fcntl(DUPFD)", tid)) {
+ VG_(close)(res);
+ res = -VKI_EMFILE;
+ } else {
if (VG_(clo_track_fds))
record_fd_open(tid, res, VG_(resolve_filename)(res));
+ }
+ }
}
@@ -2179,7 +2187,13 @@ PRE(fcntl64)
POST(fcntl64)
{
- if (arg2 == VKI_F_DUPFD)
- if(VG_(clo_track_fds))
+ if (arg2 == VKI_F_DUPFD) {
+ if (!fd_allowed(res, "fcntl64(DUPFD)", tid)) {
+ VG_(close)(res);
+ res = -VKI_EMFILE;
+ } else {
+ if (VG_(clo_track_fds))
record_fd_open(tid, res, VG_(resolve_filename)(res));
+ }
+ }
}
@@ -3879,5 +3893,5 @@ POST(open)
res = -VKI_EMFILE;
} else {
- if(VG_(clo_track_fds))
+ if (VG_(clo_track_fds))
record_fd_open(tid, res, VG_(arena_strdup)(VG_AR_CORE, (Char*)arg1));
}
@@ -3923,5 +3937,5 @@ POST(creat)
res = -VKI_EMFILE;
} else {
- if(VG_(clo_track_fds))
+ if (VG_(clo_track_fds))
record_fd_open(tid, res, VG_(arena_strdup)(VG_AR_CORE, (Char*)arg1));
}
@@ -3948,5 +3962,5 @@ POST(pipe)
} else {
VG_TRACK( post_mem_write, arg1, 2*sizeof(int) );
- if(VG_(clo_track_fds)) {
+ if (VG_(clo_track_fds)) {
record_fd_open(tid, p[0], NULL);
record_fd_open(tid, p[1], NULL);
@@ -4497,12 +4511,22 @@ POST(socketcall)
switch (arg1 /* request */) {
- case SYS_SOCKETPAIR:
- /* XXX TODO: check return fd against VG_(max_fd) */
+ case SYS_SOCKETPAIR: {
+ Int fd1 = ((UInt*)((UInt*)arg2)[3])[0];
+ Int fd2 = ((UInt*)((UInt*)arg2)[3])[1];
VG_TRACK( post_mem_write, ((UInt*)arg2)[3], 2*sizeof(int) );
- if(VG_(clo_track_fds)) {
- record_fd_open(tid, ((UInt*)((UInt*)arg2)[3])[0], NULL);
- record_fd_open(tid, ((UInt*)((UInt*)arg2)[3])[1], NULL);
+ if (!fd_allowed(fd1, "socketcall.socketpair", tid) ||
+ !fd_allowed(fd2, "socketcall.socketpair", tid)) {
+ VG_(close)(fd1);
+ VG_(close)(fd2);
+ res = -VKI_EMFILE;
+ } else {
+ VG_TRACK( post_mem_write, ((UInt*)arg2)[3], 2*sizeof(int) );
+ if (VG_(clo_track_fds)) {
+ record_fd_open(tid, fd1, NULL);
+ record_fd_open(tid, fd2, NULL);
+ }
}
break;
+ }
case SYS_SOCKET:
@@ -4511,5 +4535,5 @@ POST(socketcall)
res = -VKI_EMFILE;
} else {
- if(VG_(clo_track_fds))
+ if (VG_(clo_track_fds))
record_fd_open(tid, res, NULL);
}
@@ -4537,5 +4561,5 @@ POST(socketcall)
buf_and_len_post_check ( tid, res, addr_p, addrlen_p,
"socketcall.accept(addrlen_out)" );
- if(VG_(clo_track_fds))
+ if (VG_(clo_track_fds))
record_fd_open(tid, res, NULL);
}
@@ -4933,6 +4957,13 @@ POST(futex)
if (!VG_(is_kerror)(res)) {
VG_TRACK( post_mem_write, arg1, sizeof(int) );
- if (arg2 == VKI_FUTEX_FD && VG_(clo_track_fds))
- record_fd_open(tid, res, NULL);
+ if (arg2 == VKI_FUTEX_FD) {
+ if (!fd_allowed(res, "futex", tid)) {
+ VG_(close)(res);
+ res = -VKI_ENFILE;
+ } else {
+ if (VG_(clo_track_fds))
+ record_fd_open(tid, res, VG_(arena_strdup)(VG_AR_CORE, (Char*)arg1));
+ }
+ }
}
}
--- valgrind/include/vg_kerneliface.h #1.14:1.15
@@ -375,4 +375,5 @@ struct vki_ucontext {
#define VKI_EEXIST 17 /* File exists */
#define VKI_EINVAL 22 /* Invalid argument */
+#define VKI_ENFILE 23 /* File table overflow */
#define VKI_EMFILE 24 /* Too many open files */
#define VKI_ENOSYS 38 /* Function not implemented */
|
|
From: Jeremy F. <je...@go...> - 2004-02-24 23:47:06
|
CVS commit by fitzhardinge:
This fixes bug 75614. It seems that a symbol can be named
"foo<bar::blat>"; normally stabs names are terminated by ':', but we
also need to keep track of <> pairs so we can ignore nested colons.
M +19 -2 vg_stabs.c 1.6
--- valgrind/coregrind/vg_stabs.c #1.5:1.6
@@ -776,7 +776,24 @@ static SymType *stabtype_parser(SegInfo
UInt off, sz;
SymType *fieldty;
+ Int templ=0;
+
+ /* Skip past field name, which ends with ':' or '::' - but
+ '::' can appear within a template-mangled name, so keep
+ track of '<' and '>'. */
+ end = p;
+ while(*end) {
+ Char ch = *end++;
+
+ if (ch == '<')
+ templ++;
+ else if (ch == '>')
+ templ--;
+ else if (templ == 0 && ch == ':') {
+ end--;
+ break;
+ }
+ }
+ /* XXX check for *end != ':' */
- end = SKIPPAST(p, ':', "struct/union field NAME");
- end--; /* want to point to (first) ':' */
if (end[1] == ':') {
/* c++ method names end in :: */
|
|
From: Jeremy F. <je...@go...> - 2004-02-24 23:44:05
|
CVS commit by fitzhardinge:
Fix the use of brk. This change removes the requirement for the "real" brk
segment to be moved up to stage2's brk segment. Instead, Valgrind's
use of brk is simulated with mmap. In order to prevent any unwanted use
of the process brk segment, it also sets the RLIMIT_DATA to 0, which will
make brk always fail. glibc's malloc will use mmap to allocate if brk
fails. We try to intercept glibc's brk, but malloc seems to always use the
library-internal version. (The client's use of brk has always been simulated,
and is unaffected by this change.)
A coregrind/vg_glibc.c 1.1 [no copyright]
M +1 -0 coregrind/Makefile.am 1.67
M +0 -1 coregrind/stage1.c 1.7
M +4 -30 coregrind/ume.c 1.9
M +1 -2 coregrind/ume.h 1.5
M +2 -0 coregrind/vg_include.h 1.182
M +11 -1 coregrind/vg_main.c 1.146
M +70 -28 coregrind/vg_mylibc.c 1.70
M +20 -6 coregrind/vg_syscalls.c 1.89
M +11 -1 include/vg_kerneliface.h 1.14
--- valgrind/coregrind/Makefile.am #1.66:1.67
@@ -51,4 +51,5 @@
vg_execontext.c \
vg_from_ucode.c \
+ vg_glibc.c \
vg_hashtable.c \
vg_helpers.S \
--- valgrind/coregrind/stage1.c #1.6:1.7
@@ -163,5 +163,4 @@ static void hoops(void)
*/
info.map_base = 0xb0000000;
- info.setbrk = 1; /* ask do_exec to move the brk-base */
info.argv = NULL;
--- valgrind/coregrind/ume.c #1.8:1.9
@@ -91,4 +91,5 @@
#include "ume.h"
+#include "vg_include.h"
static int padfile = -1;
@@ -310,5 +311,5 @@ struct elfinfo *readelf(int fd, const ch
/* Map an ELF file. Returns the brk address. */
-ESZ(Addr) mapelf(struct elfinfo *e, ESZ(Addr) base, int setbrk)
+ESZ(Addr) mapelf(struct elfinfo *e, ESZ(Addr) base)
{
int i;
@@ -331,31 +332,4 @@ ESZ(Addr) mapelf(struct elfinfo *e, ESZ(
}
- if (setbrk) {
- /* sneaking up on the brk limit works better than actually
- jumping directly there. Unfortunately, setting the brk is
- tested against the datasize rlimit, even though we're not
- actually using any memory. */
- char *b = sbrk(0);
- char *initb = (char *)PGROUNDUP(b);
-
- while(b < (char *)elfbrk) {
- unsigned delta = (char *)elfbrk - b;
- static const unsigned limit = 256*1024*1024;
- char *bb;
-
- if (delta > limit)
- delta = limit;
- //printf("elfbrk=%p b=%p delta=%u\n", elfbrk, b, delta);
- bb = sbrk(delta);
- if (bb != b) {
- fprintf(stderr, "sbrk failed while adjusting brk base: "
- "perhaps we hit the datasize ulimit?\n");
- return 0;
- }
- b += delta;
- }
- munmap(initb, (char *)PGROUNDDN(elfbrk)-initb);
- }
-
for(i = 0; i < e->e.e_phnum; i++) {
ESZ(Phdr) *ph = &e->p[i];
@@ -509,5 +483,5 @@ static int load_ELF(char *hdr, int len,
}
- info->brkbase = mapelf(e, 0, info->setbrk); /* map the executable */
+ info->brkbase = mapelf(e, 0); /* map the executable */
if (info->brkbase == 0)
@@ -529,5 +503,5 @@ static int load_ELF(char *hdr, int len,
baseoff = base - interp_addr;
- mapelf(interp, (ESZ(Addr))baseoff, 0);
+ mapelf(interp, (ESZ(Addr))baseoff);
close(interp->fd);
--- valgrind/coregrind/ume.h #1.4:1.5
@@ -44,5 +44,4 @@ typedef ESZ(Addr) addr_t;
struct exeinfo
{
- int setbrk; /* INPUT: if true, set the brk segment base */
addr_t map_base; /* INPUT: if non-zero, base address of mappings */
@@ -83,5 +82,5 @@ struct elfinfo
struct elfinfo *readelf(int fd, const char *filename);
-ESZ(Addr) mapelf(struct elfinfo *e, ESZ(Addr) base, int setbrk);
+ESZ(Addr) mapelf(struct elfinfo *e, ESZ(Addr) base);
struct ume_auxv
--- valgrind/coregrind/vg_include.h #1.181:1.182
@@ -1360,4 +1360,6 @@ extern Addr VG_(valgrind_mmap_end);
extern Addr VG_(valgrind_end);
+extern vki_rlimit VG_(client_rlimit_data); /* client's original rlimit data */
+
/* stage1 executable file descriptor */
extern Int VG_(vgexecfd);
--- valgrind/coregrind/vg_main.c #1.145:1.146
@@ -106,4 +106,6 @@ Addr VG_(valgrind_mmap_end); /* valgrin
Addr VG_(valgrind_end);
+vki_rlimit VG_(client_rlimit_data);
+
/* This is set early to indicate whether this CPU has the
SSE/fxsave/fxrestor features. */
@@ -1365,5 +1367,4 @@ static void load_client(char* cl_argv[],
info->map_base = VG_(client_mapbase);
- info->setbrk = False;
info->exe_base = VG_(client_base);
@@ -2665,4 +2666,5 @@ int main(int argc, char **argv)
UInt * client_auxv;
VgSchedReturnCode src;
+ vki_rlimit zero = { 0, 0 };
//============================================================
@@ -2672,4 +2674,12 @@ int main(int argc, char **argv)
//============================================================
+ // Get the current process datasize rlimit, and set it to zero.
+ // This prevents any internal uses of brk() from having any effect.
+ // We remember the old value so we can restore it on exec, so that
+ // child processes will have a reasonable brk value.
+ VG_(getrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data));
+ zero.rlim_max = VG_(client_rlimit_data).rlim_max;
+ VG_(setrlimit)(VKI_RLIMIT_DATA, &zero);
+
//--------------------------------------------------------------
// Check we were launched by stage1
--- valgrind/coregrind/vg_mylibc.c #1.69:1.70
@@ -245,4 +245,23 @@ Int VG_(gettid)(void)
------------------------------------------------------------------ */
+static Int munmap_inner(void *start, UInt length)
+{
+ return VG_(do_syscall)(__NR_munmap, (UInt)start, (UInt)length );
+}
+
+static Addr mmap_inner(void *start, UInt length, UInt prot, UInt flags, UInt fd, UInt offset)
+{
+ UInt args[6];
+
+ args[0] = (UInt)start;
+ args[1] = length;
+ args[2] = prot;
+ args[3] = flags & ~(VKI_MAP_NOSYMS|VKI_MAP_CLIENT);
+ args[4] = fd;
+ args[5] = offset;
+
+ return VG_(do_syscall)(__NR_mmap, (UInt)(&(args[0])) );
+}
+
/* Returns -1 on failure. */
void* VG_(mmap)( void* start, UInt length,
@@ -250,5 +269,4 @@ void* VG_(mmap)( void* start, UInt lengt
{
Addr res;
- UInt args[6];
if (!(flags & VKI_MAP_FIXED)) {
@@ -260,11 +278,5 @@ void* VG_(mmap)( void* start, UInt lengt
}
- args[0] = (UInt)start;
- args[1] = length;
- args[2] = prot;
- args[3] = flags & ~(VKI_MAP_NOSYMS|VKI_MAP_CLIENT);
- args[4] = fd;
- args[5] = offset;
- res = VG_(do_syscall)(__NR_mmap, (UInt)(&(args[0])) );
+ res = mmap_inner(start, length, prot, flags, fd, offset);
if (!VG_(is_kerror)(res)) {
@@ -306,5 +318,5 @@ void* VG_(mmap)( void* start, UInt lengt
Int VG_(munmap)( void* start, Int length )
{
- Int res = VG_(do_syscall)(__NR_munmap, (UInt)start, (UInt)length );
+ Int res = munmap_inner(start, length);
if (!VG_(is_kerror)(res))
VG_(unmap_range)((Addr)start, length);
@@ -373,9 +385,47 @@ Int VG_(nanosleep)( const struct vki_tim
}
+extern Char _end;
+Char *VG_(curbrk) = NULL;
+extern void *__curbrk; /* in glibc */
+
void* VG_(brk) ( void* end_data_segment )
{
- Int res;
- res = VG_(do_syscall)(__NR_brk, (UInt)end_data_segment);
- return (void*)( VG_(is_kerror)(res) ? -1 : res );
+ Addr end;
+ Addr brkpage;
+ Addr endpage;
+
+ if (VG_(curbrk) == NULL) {
+ VG_(curbrk) = &_end;
+ __curbrk = (void *)VG_(curbrk);
+ }
+
+ end = (Addr)end_data_segment;
+ brkpage = PGROUNDUP(VG_(curbrk));
+ endpage = PGROUNDUP(end);
+
+ if (0 && VG_(curbrk) != __curbrk)
+ VG_(printf)("__curbrk changed unexpectedly: VG_(curbrk)=%p, __curbrk=%p\n",
+ VG_(curbrk), __curbrk);
+
+ if (0)
+ VG_(printf)("brk(end_data_segment=%p); brkpage=%p endpage=%p end=%p curbrk=%p &_end=%p\n",
+ end_data_segment, brkpage, endpage, end, VG_(curbrk), &_end);
+
+ if (endpage < (Addr)&_end) {
+ __curbrk = (void *)VG_(curbrk);
+ return (void *)VG_(curbrk);
+ }
+
+ if (brkpage != endpage) {
+ if (brkpage > endpage)
+ munmap_inner((void *)brkpage, brkpage-endpage);
+ else
+ mmap_inner((void *)brkpage, endpage-brkpage,
+ VKI_PROT_READ|VKI_PROT_WRITE|VKI_PROT_EXEC,
+ VKI_MAP_FIXED|VKI_MAP_PRIVATE|VKI_MAP_ANONYMOUS, -1, 0);
+ }
+ VG_(curbrk) = (Char *)__curbrk = end_data_segment;
+
+ return end_data_segment;
}
@@ -1533,4 +1583,7 @@ Int VG_(system) ( Char* cmd )
Char* argv[4];
+ /* restore the DATA rlimit for the child */
+ VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data));
+
if (envp == NULL) {
Int i;
@@ -1617,22 +1670,11 @@ void* VG_(get_memory_from_mmap) ( Int nB
static UInt tot_alloc = 0;
void* p;
-
-#if 0
- p = VG_(mmap)( (void *)VG_(valgrind_base), nBytes,
- VKI_PROT_READ | VKI_PROT_WRITE | VKI_PROT_EXEC,
- VKI_MAP_PRIVATE | VKI_MAP_ANONYMOUS, -1, 0 );
-#else
- /* use brk, because it will definitely be in the valgrind address space */
- {
Char *b = VG_(brk)(0);
p = (void *)PGROUNDUP(b);
-
b = VG_(brk)(p + PGROUNDUP(nBytes));
if (b != (p + PGROUNDUP(nBytes)))
p = (void *)-1;
- }
-#endif
if (p != ((void*)(-1))) {
--- valgrind/coregrind/vg_syscalls.c #1.88:1.89
@@ -1995,4 +1995,7 @@ PRE(execve)
}
+ /* restore the DATA rlimit for the child */
+ VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data));
+
res = VG_(do_syscall)(__NR_execve, arg1, arg2, arg3);
@@ -2483,14 +2486,20 @@ PRE(getrlimit)
MAYBE_PRINTF("getrlimit ( %d, %p )\n", arg1,arg2);
SYSCALL_TRACK( pre_mem_write, tid, "getrlimit(rlim)", arg2,
- sizeof(struct rlimit) );
+ sizeof(struct vki_rlimit) );
}
POST(getrlimit)
{
- if (res == 0)
- VG_TRACK( post_mem_write, arg2, sizeof(struct rlimit) );
+ VG_TRACK( post_mem_write, arg2, sizeof(struct vki_rlimit) );
- if (res == 0 && arg1 == VKI_RLIMIT_NOFILE)
- ((struct rlimit *)arg2)->rlim_cur = VG_(max_fd);
+ switch(arg1) {
+ case VKI_RLIMIT_NOFILE:
+ ((vki_rlimit *)arg2)->rlim_cur = VG_(max_fd);
+ break;
+
+ case VKI_RLIMIT_DATA:
+ *((vki_rlimit *)arg2) = VG_(client_rlimit_data);
+ break;
+ }
}
@@ -4246,5 +4255,10 @@ PRE(setrlimit)
MAYBE_PRINTF("setrlimit ( %d, %p )\n", arg1,arg2);
SYSCALL_TRACK( pre_mem_read, tid, "setrlimit(rlim)",
- arg2, sizeof(struct rlimit) );
+ arg2, sizeof(struct vki_rlimit) );
+
+ if (arg1 == VKI_RLIMIT_DATA) {
+ VG_(client_rlimit_data) = *(vki_rlimit *)arg2;
+ res = 0;
+ }
}
--- valgrind/include/vg_kerneliface.h #1.13:1.14
@@ -699,5 +699,15 @@ typedef struct vki_rlimit {
} vki_rlimit;
-#define VKI_RLIMIT_NOFILE 7
+#define VKI_RLIMIT_CPU 0 /* CPU time in ms */
+#define VKI_RLIMIT_FSIZE 1 /* Maximum filesize */
+#define VKI_RLIMIT_DATA 2 /* max data size */
+#define VKI_RLIMIT_STACK 3 /* max stack size */
+#define VKI_RLIMIT_CORE 4 /* max core file size */
+#define VKI_RLIMIT_RSS 5 /* max resident set size */
+#define VKI_RLIMIT_NPROC 6 /* max number of processes */
+#define VKI_RLIMIT_NOFILE 7 /* max number of open files */
+#define VKI_RLIMIT_MEMLOCK 8 /* max locked-in-memory address space */
+#define VKI_RLIMIT_AS 9 /* address space limit */
+#define VKI_RLIMIT_LOCKS 10 /* maximum file locks held */
/* Socket stuff. */
|
|
From: Nicholas N. <nj...@ca...> - 2004-02-24 23:39:18
|
CVS commit by nethercote:
Fix 'make dist'.
A Makefile.old 1.1
M +21 -0 Makefile.am 1.2
--- valgrind/massif/hp2ps/Makefile.am #1.1:1.2
@@ -39,4 +39,25 @@
hp2ps_LDFLAGS = -lm
+noinst_HEADERS = \
+ AreaBelow.h \
+ AuxFile.h \
+ Axes.h \
+ Curves.h \
+ Defines.h \
+ Deviation.h \
+ Dimensions.h \
+ Error.h \
+ HpFile.h \
+ Key.h \
+ Main.h \
+ Marks.h \
+ PsFile.h \
+ Reorder.h \
+ Scale.h \
+ Shade.h \
+ TopTwenty.h \
+ TraceElement.h \
+ Utilities.h
+
all-local:
mkdir -p $(inplacedir)
|
|
From: Tom H. <th...@cy...> - 2004-02-24 23:37:54
|
In message <Pin...@ye...>
Nicholas Nethercote <nj...@ca...> wrote:
> Ok, so what's the definition of a show-stopping bug? Does Dirk's ulimit
> problem count? (What is the problem, Dirk -- have you filed a bug
> report?) Does anything else? Can the release proceed?
If you have a data limit set then nothing will start under valgrind
although it does give an explanatory error message. I thought Jeremy
said he knew how to rework it to avoid the problem but that was a
while ago.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Nicholas N. <nj...@ca...> - 2004-02-24 23:35:51
|
On Mon, 23 Feb 2004, Jeremy Fitzhardinge wrote: > > > BTW, do we plan to try to include the freebsd port into 2.1.1 or 2.1.2 ? > > > > I would suggest 2.1.2 -- 2.1.1 already has plenty of changes, esp. FV. > > I agree. I think we should fix any little bugs which are > show-stoppers, and then release it. Ok, so what's the definition of a show-stopping bug? Does Dirk's ulimit problem count? (What is the problem, Dirk -- have you filed a bug report?) Does anything else? Can the release proceed? N |
|
From: Nicholas N. <nj...@ca...> - 2004-02-24 22:54:56
|
Hi, I was just leafing through the Intel docs for their new AMD64, er, IA32e processors: www.intel.com/technology/64bitextensions/index.htm?iid=techtrends+spotlight_64bit A couple of things caught my eye: - we now have explicit rip-relative addressing (section 1.4.2.6). Interesting, although I'm not sure what it will be useful for. - segment registers are being demoted. In 64-bit mode, they are "generally (but not completely) disabled". Roughly speaking, it seems only %fs and %gs do something in 64-bit mode, although there are various caveats. See section 1.6.4. N |
|
From: Nicholas N. <nj...@ca...> - 2004-02-24 15:33:38
|
CVS commit by nethercote: Added Mono. M +16 -13 users.html 1.46 --- devel-home/valgrind/users.html #1.45:1.46 @@ -8,6 +8,6 @@ <p> The short list: OpenOffice, StarOffice, Mozilla, Opera, KDE, GNOME, Evolution, -MySQL, PostgreSQL, Perl, PHP, Samba, Nasa Mars Lander software, SAS, The GIMP, -Ogg Vorbis, Unreal Tournament, Medal of Honour... +MySQL, PostgreSQL, Perl, PHP, Mono, Samba, Nasa Mars Lander software, SAS, The +GIMP, Ogg Vorbis, Unreal Tournament, Medal of Honour... <p> The long list... @@ -153,11 +153,11 @@ <h3>Simulation</h3> <dl> -<dt><a href="http://www.aspect-sdm.org">ASPECT</a> +<dt><a href="http://www.aspect-sdm.org/">ASPECT</a> <dd>A data stream monitoring and visualization tool, for simulation analysis. -<dt><a href="http://www.flightgear.org">FlightGear</a> +<dt><a href="http://www.flightgear.org/">FlightGear</a> <dd>An open source, multi-platform, cooperative flight simulator. -<dt><a href="http://www.simgear.org">SimGear</a> +<dt><a href="http://www.simgear.org/">SimGear</a> <dd>Building-block libraries for quickly assembling 3D simulations, games, and visualization applications. @@ -165,17 +165,20 @@ -<h3>Compilers and Interpreters</h3> +<h3>Compilers, Interpreters, etc.</h3> <dl> -<dt><a href="http://www.perl.org">Perl</a> +<dt><a href="http://www.perl.org/">Perl</a> <dd>A general-purpose programming language; the duct-tape of the internet. -<dt><a href="http://www.php.net">PHP</a> +<dt><a href="http://www.php.net/">PHP</a> <dd>A web-oriented scripting language. -<dt><a href="http://pike.ida.liu.se">Pike</a> +<dt><a href="http://www.go-mono.com/">Mono</a> +<dd>A free implementation of the .NET development framework. + +<dt><a href="http://pike.ida.liu.se/">Pike</a> <dd>A dynamic programming language with powerful built-in data types allowing simple and fast data manipulation. -<dt><a href="http://www.st.com">ST200 VLIW C compiler</a> +<dt><a href="http://www.st.com/">ST200 VLIW C compiler</a> <dd>The STMicroelectronics ST200 VLIW production C compiler. </dl> @@ -188,5 +191,5 @@ and the Perl, Python and PHP debuggers. -<dt><a href="http://oprofile.sf.net">OProfile</a> +<dt><a href="http://oprofile.sf.net/">OProfile</a> <dd>A system-wide, kernel- and user-space profiler for Linux. @@ -200,8 +203,8 @@ <dd>An open source, distributed, software quality system. -<dt><a href="http://www.cmake.org">CMake</a> +<dt><a href="http://www.cmake.org/">CMake</a> <dd>A cross-platform, open-source make system. -<dt><a href="http://eboxy.sf.net">eboxy</a> +<dt><a href="http://eboxy.sf.net/">eboxy</a> <dd>A tool for creating graphical user interfaces for set-top boxes. </dl> |
|
From: Tom H. <th...@cy...> - 2004-02-24 10:15:32
|
In message <107...@he...>
Doug Rabson <df...@nl...> wrote:
> On Tue, 2004-02-24 at 01:11, Nicholas Nethercote wrote:
>
>> Just saw an interesting and pretty thorough comparison between various
>> configuration management tools:
>>
>> better-scm.berlios.de/comparison/
>>
>> might be interesting to some of you.
>
> I've been using subversion to track my FreeBSD work and help merge
> changes over from valgrind cvs - it works really well and it fixes most
> of the cvs problems that I've grown to hate over the years. The cvs->svn
> conversion tool works pretty well too...
I've been keeping an eye on it with the intention of trying it out
once it was stable, and I see it finally made a 1.0.0 release yesterday
so I might have to try it out now. It looks like it should fix most of
the most annoying problems that CVS has.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Doug R. <df...@nl...> - 2004-02-24 10:10:15
|
On Tue, 2004-02-24 at 01:11, Nicholas Nethercote wrote: > Hi, > > Just saw an interesting and pretty thorough comparison between various > configuration management tools: > > better-scm.berlios.de/comparison/ > > might be interesting to some of you. I've been using subversion to track my FreeBSD work and help merge changes over from valgrind cvs - it works really well and it fixes most of the cvs problems that I've grown to hate over the years. The cvs->svn conversion tool works pretty well too... |
|
From: Nicholas N. <nj...@ca...> - 2004-02-24 09:47:08
|
CVS commit by nethercote: Added Battle for Wesnoth. M +9 -6 users.html 1.45 --- devel-home/valgrind/users.html #1.44:1.45 @@ -298,5 +298,5 @@ <h3>Games</h3> <dl> -<dt><a href="http://www.unrealtournament.com">Unreal Tournament (inc. UT2003, +<dt><a href="http://www.unrealtournament.com/">Unreal Tournament (inc. UT2003, UT2004)</a> <dd>A multiplayer first-person shooter. @@ -320,10 +320,13 @@ <dd>A 3D-perspective shooter. -<dt><a href="http://netpanzer.berlios.de">netPanzer</a> +<dt><a href="http://netpanzer.berlios.de/">netPanzer</a> <dd>An online multi-player tactical warfare game. -<dt><a href="http://www.anarchy-online.com">Anarchy Online</a> +<dt><a href="http://www.anarchy-online.com/">Anarchy Online</a> <dd>An award-winning massive multiplayer online roleplaying game (MMORPG). +<dt><a href="http://www.wesnoth.org/">Battle for Wesnoth</a> +<dd>A turn-based strategy game with a fantasy theme. + <dt><a href="http://crystal.sf.net">Crystal Space</a> <dd>A portable 3D game engine. @@ -343,12 +346,12 @@ <dd>A free instant messaging service. -<dt><a href="http://pan.rebelbase.com">Pan</a> +<dt><a href="http://pan.rebelbase.com/">Pan</a> <dd>A newsreader supporting offline newsreading, article filtering, and multiple connections. -<dt><a href="http://www.pldaniels.com/ripmime">ripMIME</a> +<dt><a href="http://www.pldaniels.com/ripmime/">ripMIME</a> <dd>An email decoding engine and library. -<dt><a href="http://bidwatcher.sf.net">Bidwatcher</a> +<dt><a href="http://bidwatcher.sf.net/">Bidwatcher</a> <dd>An eBay auction listing tracker. </dl> |
|
From: Tom H. <th...@cy...> - 2004-02-24 03:03:30
|
Nightly build on ginetta ( Red Hat 8.0 ) started at 2004-02-24 03:00:00 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow == 126 tests, 17 stderr failures, 0 stdout failures ================= corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) helgrind/tests/allok (stderr) helgrind/tests/deadlock (stderr) helgrind/tests/inherit (stderr) helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) helgrind/tests/readshared (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/writev (stderr) |
|
From: Tom H. <th...@cy...> - 2004-02-24 03:03:00
|
Nightly build on alvis ( Red Hat 7.3 ) started at 2004-02-24 03:00:00 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow none/tests/insn_mmxext (stderr) none/tests/insn_sse (stderr) none/tests/map_unmap (stderr) none/tests/mremap (stderr) none/tests/munmap_exe (stderr) none/tests/pth_blockedsig (stderr) none/tests/rcl_assert (stderr) none/tests/rcrl (stderr) none/tests/readline1 (stderr) none/tests/resolv (stderr) none/tests/seg_override (stderr) none/tests/sha1_test (stderr) none/tests/shortpush (stderr) none/tests/shorts (stderr) none/tests/smc1 (stderr) none/tests/syscall-restart1 (stderr) none/tests/syscall-restart2 (stderr) none/tests/system (stderr) none/tests/yield (stderr) |
|
From: Tom H. <to...@co...> - 2004-02-24 03:02:55
|
Nightly build on dunsmere ( Fedora Core 1 ) started at 2004-02-24 03:00:00 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow -- Finished tests in none/tests ---------------------------------------- == 126 tests, 15 stderr failures, 1 stdout failure ================= corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) helgrind/tests/inherit (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/execve (stderr) memcheck/tests/fwrite (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/writev (stderr) none/tests/exec-sigmask (stdout) |
|
From: Tom H. <th...@cy...> - 2004-02-24 03:00:44
|
Nightly build on audi ( Red Hat 9 ) started at 2004-02-24 03:00:00 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow cvs [checkout aborted]: unrecognized auth response from anoncvs.kde.org: TRY AGAIN LATER (excessive load or per IP connection limit exceeded)! /home/thh/bin/vgtest: line 23: cd: valgrind: No such file or directory /home/thh/bin/vgtest: line 26: ./autogen.sh: No such file or directory /home/thh/bin/vgtest: line 27: ./configure: No such file or directory make: *** No targets specified and no makefile found. Stop. make: *** No rule to make target `regtest'. Stop. |
|
From: Tom H. <th...@cy...> - 2004-02-24 03:00:44
|
Nightly build on standard ( Red Hat 7.2 ) started at 2004-02-24 03:00:01 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow cvs [checkout aborted]: recv() from server anoncvs.kde.org: Connection reset by peer /home/thh/bin/vgtest: cd: valgrind: No such file or directory /home/thh/bin/vgtest: ./autogen.sh: No such file or directory /home/thh/bin/vgtest: ./configure: No such file or directory make: *** No targets specified and no makefile found. Stop. make: *** No rule to make target `regtest'. Stop. |
|
From: Nicholas N. <nj...@ca...> - 2004-02-24 01:12:05
|
Hi, Just saw an interesting and pretty thorough comparison between various configuration management tools: better-scm.berlios.de/comparison/ might be interesting to some of you. N |
|
From: Dirk M. <mu...@kd...> - 2004-02-23 22:10:20
|
CVS commit by mueller:
patch by Tom Hughes to make it work with gcc 2.96
M +102 -74 gen_insn_test.pl 1.4
--- valgrind/none/tests/gen_insn_test.pl #1.3:1.4
@@ -215,16 +215,16 @@
push @presets, $preset;
- print qq| $ArgTypes{$type} $name = \{|;
+ print qq| $ArgTypes{$type} $name = \{ .$subtype = \{|;
my $valuec = 0;
foreach my $value (@values)
- {
+ {
print qq|,| if $valuec > 0;
- print qq| .$subtype\[$valuec\] = $value$SubTypeSuffixes{$subtype}|;
+ print qq| $value$SubTypeSuffixes{$subtype}|;
$valuec++;
}
- print qq| \};\n|;
+ print qq| \} \};\n|;
$presetc++;
@@ -278,5 +278,5 @@
push @args, $arg;
- print qq| $ArgTypes{$type} $name = \{|;
+ print qq| $ArgTypes{$type} $name = \{ .$subtype = \{|;
my $valuec = 0;
@@ -285,9 +285,9 @@
{
print qq|,| if $valuec > 0;
- print qq| .$subtype\[$valuec\] = $value$SubTypeSuffixes{$subtype}|;
+ print qq| $value$SubTypeSuffixes{$subtype}|;
$valuec++;
}
- print qq| \};\n|;
+ print qq| \} \};\n|;
}
elsif ($arg =~ /^(imm8|imm16|imm32)\[([^\]]+)\]$/)
@@ -339,6 +339,6 @@
my $name = "result$resultc";
- if ($result =~ /^(\d+)\.(sb|ub|sw|uw|sd|ud|sq|uq|ps|pd)\[([^\]]+)\]$/)
- {
+ if ($result =~ /^(\d+)\.(sb|ub|sw|uw|sd|ud|sq|uq|ps|pd)\[([^\]]+)\]$/)
+ {
my $index = $1;
my $type = $args[$index]->{type};
@@ -383,12 +383,12 @@
print qq| $ArgTypes{$type} $name;\n|;
- }
- elsif ($result =~ /^eflags\[([^\]]+)\]$/)
- {
+ }
+ elsif ($result =~ /^eflags\[([^\]]+)\]$/)
+ {
my @values = split(/,/, $1);
-
+
$values[0] = oct($values[0]) if $values[0] =~ /^0/;
$values[1] = oct($values[1]) if $values[1] =~ /^0/;
-
+
my $result = {
name => $name,
@@ -407,13 +407,41 @@
$eflagsset = sprintf "0x%x", $values[0] & ~$values[1];
}
+ }
+ else
+ {
+ die "Can't parse result $result";
+ }
+
+ $resultc++;
}
- else
+
+ my $argnum = 0;
+
+ foreach my $result (@results)
{
- die "Can't parse result $result";
+ if ($result->{type} =~ /^(m(8|16|32|64|128)|eflags)$/)
+ {
+ $result->{argnum} = $argnum++;
+ }
}
- $resultc++;
+ foreach my $arg (@presets, @args)
+ {
+ if (defined($arg->{name}))
+ {
+ $arg->{argnum} = $argnum++;
+ }
}
+ foreach my $result (@results)
+ {
+ if ($result->{type} =~ /^(r(8|16|32)|mm|xmm)$/)
+ {
+ $result->{argnum} = $argnum++;
+ }
+ }
+
+ my $stateargnum = $argnum++;
+
print qq| char state\[108\];\n|;
print qq|\n|;
@@ -421,5 +449,5 @@
print qq| \{\n|;
print qq| asm\(\n|;
- print qq| \"fsave %\[state\]\\n\"\n|;
+ print qq| \"fsave %$stateargnum\\n\"\n|;
foreach my $arg (@presets, @args)
@@ -427,23 +455,23 @@
if ($arg->{type} eq "r8")
{
- print qq| \"movb %\[$arg->{name}\], %%$arg->{register}\\n\"\n|;
+ print qq| \"movb %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
}
elsif ($arg->{type} eq "r16")
{
- print qq| \"movw %\[$arg->{name}\], %%$arg->{register}\\n\"\n|;
+ print qq| \"movw %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
}
elsif ($arg->{type} eq "r32")
{
- print qq| \"movl %\[$arg->{name}\], %%$arg->{register}\\n\"\n|;
+ print qq| \"movl %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
}
elsif ($arg->{type} eq "mm")
- {
- print qq| \"movq %\[$arg->{name}\], %%$arg->{register}\\n\"\n|;
- }
+ {
+ print qq| \"movq %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
+ }
elsif ($arg->{type} eq "xmm")
- {
- print qq| \"movlps 0%\[$arg->{name}\], %%$arg->{register}\\n\"\n|;
- print qq| \"movhps 8%\[$arg->{name}\], %%$arg->{register}\\n\"\n|;
- }
+ {
+ print qq| \"movlps 0%$arg->{argnum}, %%$arg->{register}\\n\"\n|;
+ print qq| \"movhps 8%$arg->{argnum}, %%$arg->{register}\\n\"\n|;
+ }
}
@@ -461,5 +489,5 @@
foreach my $arg (@args)
- {
+ {
next if $arg->{type} eq "eflags";
@@ -472,9 +500,9 @@
if (exists($arg->{result}))
{
- print qq|$prefix%\[$arg->{result}->{name}\]|;
+ print qq|$prefix%$arg->{result}->{argnum}|;
}
else
{
- print qq|$prefix%\[$arg->{name}\]|;
+ print qq|$prefix%$arg->{argnum}|;
}
}
@@ -493,31 +521,31 @@
if ($result->{type} eq "r8")
{
- print qq| \"movb %%$result->{register}, %\[$result->{name}\]\\n\"\n|;
+ print qq| \"movb %%$result->{register}, %$result->{argnum}\\n\"\n|;
}
elsif ($result->{type} eq "r16")
- {
- print qq| \"movw %%$result->{register}, %\[$result->{name}\]\\n\"\n|;
- }
+ {
+ print qq| \"movw %%$result->{register}, %$result->{argnum}\\n\"\n|;
+ }
elsif ($result->{type} eq "r32")
- {
- print qq| \"movl %%$result->{register}, %\[$result->{name}\]\\n\"\n|;
- }
+ {
+ print qq| \"movl %%$result->{register}, %$result->{argnum}\\n\"\n|;
+ }
elsif ($result->{type} eq "mm")
- {
- print qq| \"movq %%$result->{register}, %\[$result->{name}\]\\n\"\n|;
- }
+ {
+ print qq| \"movq %%$result->{register}, %$result->{argnum}\\n\"\n|;
+ }
elsif ($result->{type} eq "xmm")
{
- print qq| \"movlps %%$result->{register}, 0%\[$result->{name}\]\\n\"\n|;
- print qq| \"movhps %%$result->{register}, 8%\[$result->{name}\]\\n\"\n|;
+ print qq| \"movlps %%$result->{register}, 0%$result->{argnum}\\n\"\n|;
+ print qq| \"movhps %%$result->{register}, 8%$result->{argnum}\\n\"\n|;
}
elsif ($result->{type} eq "eflags")
- {
- print qq| \"pushfl\\n\"\n|;
- print qq| \"popl %\[$result->{name}\]\\n\"\n|;
+ {
+ print qq| \"pushfl\\n\"\n|;
+ print qq| \"popl %$result->{argnum}\\n\"\n|;
}
}
- print qq| \"frstor %\[state\]\\n\"\n|;
+ print qq| \"frstor %$stateargnum\\n\"\n|;
print qq| :|;
@@ -528,6 +556,6 @@
{
if ($result->{type} =~ /^(m(8|16|32|64|128)|eflags)$/)
- {
- print qq|$prefix\[$result->{name}\] \"=m\" \($result->{name}\)|;
+ {
+ print qq|$prefix\"=m\" \($result->{name}\)|;
$prefix = ", ";
}
@@ -542,5 +570,5 @@
if (defined($arg->{name}))
{
- print qq|$prefix\[$arg->{name}\] \"m\" \($arg->{name}\)|;
+ print qq|$prefix\"m\" \($arg->{name}\)|;
$prefix = ", ";
}
@@ -551,15 +579,15 @@
if ($result->{type} =~ /^(r(8|16|32)|mm|xmm)$/)
{
- print qq|$prefix\[$result->{name}\] \"m\" \($result->{name}\)|;
+ print qq|$prefix\"m\" \($result->{name}\)|;
$prefix = ", ";
}
}
- print qq|$prefix\[state\] \"m\" \(state[0]\)\n|;
+ print qq|$prefix\"m\" \(state[0]\)\n|;
$prefix = " : ";
foreach my $arg (@presets, @args)
- {
+ {
if ($arg->{register})
{
@@ -586,28 +614,28 @@
if ($type eq "eflags")
- {
+ {
print qq|${prefix}\($result->{name}.ud[0] & $values[0]UL\) == $values[1]UL|;
- }
- else
- {
- foreach my $value (0 .. $#values)
+ }
+ else
{
- if ($subtype eq "ps")
+ foreach my $value (0 .. $#values)
{
+ if ($subtype eq "ps")
+ {
print qq|${prefix}eq_float($result->{name}.$subtype\[$value\], $values[$value]$suffix)|;
- }
+ }
elsif ($subtype eq "pd")
- {
+ {
print qq|${prefix}eq_double($result->{name}.$subtype\[$value\], $values[$value]$suffix)|;
- }
- else
- {
+ }
+ else
+ {
print qq|${prefix}$result->{name}.$subtype\[$value\] == $values[$value]$suffix|;
+ }
+
+ $prefix = " && ";
}
-
- $prefix = " && ";
}
- }
-
+
$prefix = " &&\n ";
}
@@ -629,16 +657,16 @@
if ($type eq "eflags")
- {
+ {
print qq| printf(" eflags & 0x%lx = 0x%lx (expected 0x%lx)\\n", $values[0]UL, $result->{name}.ud\[0\] & $values[0]UL, $values[1]UL);\n|;
- }
- else
- {
- foreach my $value (0 .. $#values)
+ }
+ else
{
+ foreach my $value (0 .. $#values)
+ {
print qq| printf(" $result->{name}.$subtype\[$value\] = $SubTypeFormats{$subtype} (expected $SubTypeFormats{$subtype})\\n", $result->{name}.$subtype\[$value\], $values[$value]$suffix);\n|;
}
}
}
-
+
print qq| \}\n|;
print qq| \}\n|;
|
|
From: Nicholas N. <nj...@ca...> - 2004-02-23 20:03:27
|
CVS commit by nethercote: Fix var names in prototypes. M +18 -18 vg_skin.h.base 1.15 --- valgrind/include/vg_skin.h.base #1.14:1.15 @@ -1131,22 +1131,22 @@ EV VG_(ccall_0_0) ( CB_F ); -EV VG_(ccall_R_0) ( CB_F, UInt r1, RPn ); -EV VG_(ccall_L_0) ( CB_F, UInt r1, RPn ); -EV VG_(ccall_R_R) ( CB_F, UInt r1, UInt r_ret, RPn ); -EV VG_(ccall_L_R) ( CB_F, UInt r1, UInt r_ret, RPn ); - -EV VG_(ccall_RR_0) ( CB_F, UInt r1, UInt r2, RPn ); -EV VG_(ccall_RL_0) ( CB_F, UInt r1, UInt r2, RPn ); -EV VG_(ccall_LR_0) ( CB_F, UInt r1, UInt r2, RPn ); -EV VG_(ccall_LL_0) ( CB_F, UInt r1, UInt r2, RPn ); -EV VG_(ccall_RR_R) ( CB_F, UInt r1, UInt r2, UInt r_ret, RPn ); -EV VG_(ccall_RL_R) ( CB_F, UInt r1, UInt r2, UInt r_ret, RPn ); -EV VG_(ccall_LR_R) ( CB_F, UInt r1, UInt r2, UInt r_ret, RPn ); -EV VG_(ccall_LL_R) ( CB_F, UInt r1, UInt r2, UInt r_ret, RPn ); - -EV VG_(ccall_RRR_0) ( CB_F, UInt r1, UInt r2, UInt r3, RPn ); -EV VG_(ccall_RLL_0) ( CB_F, UInt r1, UInt r2, UInt r3, RPn ); -EV VG_(ccall_LLR_0) ( CB_F, UInt r1, UInt r2, UInt r3, RPn ); -EV VG_(ccall_LLL_0) ( CB_F, UInt r1, UInt r2, UInt r3, RPn ); +EV VG_(ccall_R_0) ( CB_F, UInt R1, RPn ); +EV VG_(ccall_L_0) ( CB_F, UInt L1, RPn ); +EV VG_(ccall_R_R) ( CB_F, UInt R1, UInt R_ret, RPn ); +EV VG_(ccall_L_R) ( CB_F, UInt L1, UInt R_ret, RPn ); + +EV VG_(ccall_RR_0) ( CB_F, UInt R1, UInt R2, RPn ); +EV VG_(ccall_RL_0) ( CB_F, UInt R1, UInt RL, RPn ); +EV VG_(ccall_LR_0) ( CB_F, UInt L1, UInt R2, RPn ); +EV VG_(ccall_LL_0) ( CB_F, UInt L1, UInt L2, RPn ); +EV VG_(ccall_RR_R) ( CB_F, UInt R1, UInt R2, UInt R_ret, RPn ); +EV VG_(ccall_RL_R) ( CB_F, UInt R1, UInt L2, UInt R_ret, RPn ); +EV VG_(ccall_LR_R) ( CB_F, UInt L1, UInt R2, UInt R_ret, RPn ); +EV VG_(ccall_LL_R) ( CB_F, UInt L1, UInt L2, UInt R_ret, RPn ); + +EV VG_(ccall_RRR_0) ( CB_F, UInt R1, UInt R2, UInt R3, RPn ); +EV VG_(ccall_RLL_0) ( CB_F, UInt R1, UInt L2, UInt L3, RPn ); +EV VG_(ccall_LLR_0) ( CB_F, UInt L1, UInt L2, UInt R3, RPn ); +EV VG_(ccall_LLL_0) ( CB_F, UInt L1, UInt L2, UInt L3, RPn ); #undef CB_F |
|
From: Tom H. <th...@cy...> - 2004-02-23 20:02:44
|
In message <E1A...@al...>
Tom Hughes <th...@cy...> wrote:
> insn_basic.c: In function `xorl_7':
> insn_basic.c:44375: array index in non-array initializer
> insn_basic.c:44375: (near initialization for `arg0')
> insn_basic.c:44375: warning: missing braces around initializer
> insn_basic.c:44375: warning: (near initialization for `arg0.ud')
> insn_basic.c:44376: array index in non-array initializer
> insn_basic.c:44376: (near initialization for `arg1')
> insn_basic.c:44376: warning: missing braces around initializer
> insn_basic.c:44376: warning: (near initialization for `arg1.ud')
> insn_basic.c:44389: parse error before `['
> insn_basic.c:44378: warning: unused variable `state'
> insn_basic.c:44376: warning: unused variable `arg1'
> insn_basic.c:44375: warning: unused variable `arg0'
This is caused by my instruction test code using a couple of
constructs which are gcc 3 specific, and the RedHat 7.3 test
box this was run on only having 2.96 available.
Attached is a patch to generate code that older versions of gcc
can understand.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Jeremy F. <je...@go...> - 2004-02-23 20:02:08
|
On Mon, 2004-02-23 at 06:11, Nicholas Nethercote wrote: > On Mon, 23 Feb 2004, Dirk Mueller wrote: > > > BTW, do we plan to try to include the freebsd port into 2.1.1 or 2.1.2 ? > > I would suggest 2.1.2 -- 2.1.1 already has plenty of changes, esp. FV. I agree. I think we should fix any little bugs which are show-stoppers, and then release it. > > and regarding i386 vs x86 vs ia32: > > > > http://www.ussg.iu.edu/hypermail/linux/kernel/0402.2/0795.html > > Woo, I like 'x86' the best too. Except that Linux uses i386 everywhere for ia32... J |
|
From: Nicholas N. <nj...@ca...> - 2004-02-23 16:18:20
|
CVS commit by nethercote:
Added various functions that make instrumentation easier, particularly
doing C calls.
M +185 -30 coregrind/vg_instrument.c 1.11
M +45 -6 include/vg_skin.h.base 1.14
--- valgrind/coregrind/vg_instrument.c #1.10:1.11
@@ -37,55 +37,209 @@
-void VG_(call_helper_0_0)(UCodeBlock* cb, Addr f)
+void VG_(lit_to_reg)(UCodeBlock* cb, UInt lit, UInt t)
{
- uInstr0(cb, CCALL, 0);
- uCCall(cb, f, 0, 0, 0);
+ uInstr2 (cb, MOV, 4, Literal, 0, TempReg, t);
+ uLiteral(cb, lit);
}
-void VG_(call_helper_1_0)(UCodeBlock* cb, Addr f, UInt arg1, UInt regparms_n)
+UInt VG_(lit_to_newreg)(UCodeBlock* cb, UInt lit)
{
- UInt t1 = newTemp(cb);
+ UInt t = newTemp(cb);
+ uInstr2 (cb, MOV, 4, Literal, 0, TempReg, t);
+ uLiteral(cb, lit);
+ return t;
+}
+// f()
+void VG_(ccall_0_0)(UCodeBlock* cb, Addr f)
+{
+ uInstr0(cb, CCALL, 0);
+ uCCall(cb, f, 0, 0, /*retval*/False);
+}
+
+// f(reg)
+void VG_(ccall_R_0)(UCodeBlock* cb, Addr f, UInt t1, UInt regparms_n)
+{
sk_assert(regparms_n <= 1);
- uInstr2(cb, MOV, 4, Literal, 0, TempReg, t1);
- uLiteral(cb, arg1);
uInstr1(cb, CCALL, 0, TempReg, t1);
- uCCall(cb, f, 1, regparms_n, 0);
+ uCCall(cb, f, 1, regparms_n, /*retval*/False);
}
-void VG_(call_helper_2_0)(UCodeBlock* cb, Addr f, UInt arg1, UInt arg2,
+// f(lit)
+void VG_(ccall_L_0)(UCodeBlock* cb, Addr f, UInt lit1, UInt regparms_n)
+{
+ UInt t1 = VG_(lit_to_newreg)(cb, lit1);
+ VG_(ccall_R_0)(cb, f, t1, regparms_n);
+}
+
+// reg = f(reg)
+void VG_(ccall_R_R)(UCodeBlock* cb, Addr f, UInt t1, UInt t_ret,
UInt regparms_n)
{
- UInt t1 = newTemp(cb);
- UInt t2 = newTemp(cb);
+ sk_assert(regparms_n <= 1);
+ sk_assert(t1 < VG_(get_num_temps)(cb)); // help catch lits accidentally passed in
+ uInstr3(cb, CCALL, 0, TempReg, t1, NoValue, 0, TempReg, t_ret);
+ uCCall(cb, f, 1, regparms_n, /*retval*/True);
+}
+// reg = f(lit)
+void VG_(ccall_L_R)(UCodeBlock* cb, Addr f, UInt lit1, UInt t_ret,
+ UInt regparms_n)
+{
+ UInt t1 = VG_(lit_to_newreg)(cb, lit1);
+ VG_(ccall_R_R)(cb, f, t1, t_ret, regparms_n);
+}
+
+// f(reg, reg)
+void VG_(ccall_RR_0)(UCodeBlock* cb, Addr f, UInt t1, UInt t2, UInt regparms_n)
+{
sk_assert(regparms_n <= 2);
- uInstr2(cb, MOV, 4, Literal, 0, TempReg, t1);
- uLiteral(cb, arg1);
- uInstr2(cb, MOV, 4, Literal, 0, TempReg, t2);
- uLiteral(cb, arg2);
+ sk_assert(t1 < VG_(get_num_temps)(cb));
+ sk_assert(t2 < VG_(get_num_temps)(cb));
uInstr2(cb, CCALL, 0, TempReg, t1, TempReg, t2);
- uCCall(cb, f, 2, regparms_n, 0);
+ uCCall(cb, f, 2, regparms_n, /*retval*/False);
}
-void VG_(set_global_var)(UCodeBlock* cb, Addr globvar_ptr, UInt val)
+// f(reg, lit)
+void VG_(ccall_RL_0)(UCodeBlock* cb, Addr f, UInt t1, UInt lit2,
+ UInt regparms_n)
{
- Int t_gv = newTemp(cb);
- Int t_val = newTemp(cb);
+ UInt t2 = VG_(lit_to_newreg)(cb, lit2);
+ VG_(ccall_RR_0)(cb, f, t1, t2, regparms_n);
+}
- uInstr2(cb, MOV, 4, Literal, 0, TempReg, t_val);
- uLiteral(cb, val);
- uInstr2(cb, MOV, 4, Literal, 0, TempReg, t_gv);
- uLiteral(cb, globvar_ptr);
- uInstr2(cb, STORE, 4, TempReg, t_val, TempReg, t_gv);
+// f(lit, reg)
+void VG_(ccall_LR_0)(UCodeBlock* cb, Addr f, UInt lit1, UInt t2,
+ UInt regparms_n)
+{
+ UInt t1 = VG_(lit_to_newreg)(cb, lit1);
+ VG_(ccall_RR_0)(cb, f, t1, t2, regparms_n);
}
-void VG_(set_global_var_tempreg)(UCodeBlock* cb, Addr globvar_ptr, UInt t_val)
+// f(lit, lit)
+void VG_(ccall_LL_0)(UCodeBlock* cb, Addr f, UInt lit1, UInt lit2,
+ UInt regparms_n)
{
- Int t_gv = newTemp(cb);
+ UInt t1 = VG_(lit_to_newreg)(cb, lit1);
+ UInt t2 = VG_(lit_to_newreg)(cb, lit2);
+ VG_(ccall_RR_0)(cb, f, t1, t2, regparms_n);
+}
- uInstr2(cb, MOV, 4, Literal, 0, TempReg, t_gv);
- uLiteral(cb, globvar_ptr);
- uInstr2(cb, STORE, 4, TempReg, t_val, TempReg, t_gv);
+// reg = f(reg, reg)
+void VG_(ccall_RR_R)(UCodeBlock* cb, Addr f, UInt t1, UInt t2, UInt t_ret,
+ UInt regparms_n)
+{
+ sk_assert(regparms_n <= 2);
+ sk_assert(t1 < VG_(get_num_temps)(cb));
+ sk_assert(t2 < VG_(get_num_temps)(cb));
+ uInstr3(cb, CCALL, 0, TempReg, t1, TempReg, t2, TempReg, t_ret);
+ uCCall(cb, f, 2, regparms_n, /*retval*/True);
+}
+
+// reg = f(reg, lit)
+void VG_(ccall_RL_R)(UCodeBlock* cb, Addr f, UInt t1, UInt lit2, UInt t_ret,
+ UInt regparms_n)
+{
+ UInt t2 = VG_(lit_to_newreg)(cb, lit2);
+ VG_(ccall_RR_R)(cb, f, t1, t2, t_ret, regparms_n);
+}
+
+// reg = f(lit, reg)
+void VG_(ccall_LR_R)(UCodeBlock* cb, Addr f, UInt lit1, UInt t2, UInt t_ret,
+ UInt regparms_n)
+{
+ UInt t1 = VG_(lit_to_newreg)(cb, lit1);
+ VG_(ccall_RR_R)(cb, f, t1, t2, t_ret, regparms_n);
+}
+
+// reg = f(lit, lit)
+void VG_(ccall_LL_R)(UCodeBlock* cb, Addr f, UInt lit1, UInt lit2, UInt t_ret,
+ UInt regparms_n)
+{
+ UInt t1 = VG_(lit_to_newreg)(cb, lit2);
+ UInt t2 = VG_(lit_to_newreg)(cb, lit2);
+ VG_(ccall_RR_R)(cb, f, t1, t2, t_ret, regparms_n);
+}
+
+// f(reg, reg, reg)
+void VG_(ccall_RRR_0)(UCodeBlock* cb, Addr f, UInt t1, UInt t2,
+ UInt t3, UInt regparms_n)
+{
+ sk_assert(regparms_n <= 3);
+ sk_assert(t1 < VG_(get_num_temps)(cb));
+ sk_assert(t2 < VG_(get_num_temps)(cb));
+ sk_assert(t3 < VG_(get_num_temps)(cb));
+ uInstr3(cb, CCALL, 0, TempReg, t1, TempReg, t2, TempReg, t3);
+ uCCall(cb, f, 3, regparms_n, /*retval*/False);
+}
+
+// f(reg, lit, lit)
+void VG_(ccall_RLL_0)(UCodeBlock* cb, Addr f, UInt t1, UInt lit2,
+ UInt lit3, UInt regparms_n)
+{
+ UInt t2 = VG_(lit_to_newreg)(cb, lit2);
+ UInt t3 = VG_(lit_to_newreg)(cb, lit3);
+ VG_(ccall_RRR_0)(cb, f, t1, t2, t3, regparms_n);
+}
+
+// f(lit, lit, reg)
+void VG_(ccall_LLR_0)(UCodeBlock* cb, Addr f, UInt lit1, UInt lit2,
+ UInt t3, UInt regparms_n)
+{
+ UInt t1 = VG_(lit_to_newreg)(cb, lit1);
+ UInt t2 = VG_(lit_to_newreg)(cb, lit2);
+ VG_(ccall_RRR_0)(cb, f, t1, t2, t3, regparms_n);
+}
+
+// f(lit, lit, lit)
+void VG_(ccall_LLL_0)(UCodeBlock* cb, Addr f, UInt lit1, UInt lit2,
+ UInt lit3, UInt regparms_n)
+{
+ UInt t1 = VG_(lit_to_newreg)(cb, lit1);
+ UInt t2 = VG_(lit_to_newreg)(cb, lit2);
+ UInt t3 = VG_(lit_to_newreg)(cb, lit3);
+ VG_(ccall_RRR_0)(cb, f, t1, t2, t3, regparms_n);
+}
+
+void VG_(reg_to_globvar)(UCodeBlock* cb, UInt t, UInt* globvar_ptr)
+{
+ Int t_gv = VG_(lit_to_newreg)(cb, (UInt)globvar_ptr);
+ uInstr2(cb, STORE, 4, TempReg, t, TempReg, t_gv);
+}
+
+void VG_(lit_to_globvar)(UCodeBlock* cb, UInt lit, UInt* globvar_ptr)
+{
+ Int t_lit = VG_(lit_to_newreg)(cb, lit);
+ VG_(reg_to_globvar)(cb, t_lit, globvar_ptr);
+}
+
+/*--------------------------------------------------------------------
+ Old versions of these functions, for backwards compatibility
+ --------------------------------------------------------------------*/
+
+void VG_(call_helper_0_0)(UCodeBlock* cb, Addr f)
+{
+ VG_(ccall_0_0)(cb, f);
+}
+
+void VG_(call_helper_1_0)(UCodeBlock* cb, Addr f, UInt arg1, UInt regparms_n)
+{
+ VG_(ccall_L_0)(cb, f, arg1, regparms_n);
+}
+
+void VG_(call_helper_2_0)(UCodeBlock* cb, Addr f, UInt arg1, UInt arg2,
+ UInt regparms_n)
+{
+ VG_(ccall_LL_0)(cb, f, arg1, arg2, regparms_n);
+}
+
+void VG_(set_global_var)(UCodeBlock* cb, Addr globvar_ptr, UInt val)
+{
+ VG_(lit_to_globvar)(cb, val, (UInt*)globvar_ptr);
+}
+
+void VG_(set_global_var_tempreg)(UCodeBlock* cb, Addr globvar_ptr, UInt t_val)
+{
+ VG_(reg_to_globvar)(cb, t_val, (UInt*)globvar_ptr);
}
--- valgrind/include/vg_skin.h.base #1.13:1.14
@@ -846,5 +846,5 @@
up to three arguments (or two if the functions has a return value).
Arguments and return value must be word-sized. More arguments can
- be faked with global variables (eg. use VG_(set_global_var)()).
+ be faked with global variables (eg. use VG_(lit_to_globvar)()).
Seven possibilities: 'arg[123]' show where args go, 'ret' shows
@@ -1117,4 +1117,48 @@
/* ------------------------------------------------------------------ */
/* Higher-level UInstr sequence builders */
+
+extern void VG_(lit_to_reg) ( UCodeBlock* cb, UInt lit, UInt t );
+extern UInt VG_(lit_to_newreg) ( UCodeBlock* cb, UInt lit );
+
+#define CB_F UCodeBlock* cb, Addr f
+#define EV extern void
+#define RPn UInt regparms_n
+
+/* Various CCALL builders, of the form "ccall_<args>_<retval>". 'R'
+ represents a TempReg, 'L' represents a literal, '0' represents nothing
+ (ie. no args, or no return value). */
+
+EV VG_(ccall_0_0) ( CB_F );
+
+EV VG_(ccall_R_0) ( CB_F, UInt r1, RPn );
+EV VG_(ccall_L_0) ( CB_F, UInt r1, RPn );
+EV VG_(ccall_R_R) ( CB_F, UInt r1, UInt r_ret, RPn );
+EV VG_(ccall_L_R) ( CB_F, UInt r1, UInt r_ret, RPn );
+
+EV VG_(ccall_RR_0) ( CB_F, UInt r1, UInt r2, RPn );
+EV VG_(ccall_RL_0) ( CB_F, UInt r1, UInt r2, RPn );
+EV VG_(ccall_LR_0) ( CB_F, UInt r1, UInt r2, RPn );
+EV VG_(ccall_LL_0) ( CB_F, UInt r1, UInt r2, RPn );
+EV VG_(ccall_RR_R) ( CB_F, UInt r1, UInt r2, UInt r_ret, RPn );
+EV VG_(ccall_RL_R) ( CB_F, UInt r1, UInt r2, UInt r_ret, RPn );
+EV VG_(ccall_LR_R) ( CB_F, UInt r1, UInt r2, UInt r_ret, RPn );
+EV VG_(ccall_LL_R) ( CB_F, UInt r1, UInt r2, UInt r_ret, RPn );
+
+EV VG_(ccall_RRR_0) ( CB_F, UInt r1, UInt r2, UInt r3, RPn );
+EV VG_(ccall_RLL_0) ( CB_F, UInt r1, UInt r2, UInt r3, RPn );
+EV VG_(ccall_LLR_0) ( CB_F, UInt r1, UInt r2, UInt r3, RPn );
+EV VG_(ccall_LLL_0) ( CB_F, UInt r1, UInt r2, UInt r3, RPn );
+
+#undef CB_F
+#undef EV
+#undef RPn
+
+/* One way around the 3-arg C function limit is to pass args via global
+ * variables... ugly, but it works. */
+void VG_(reg_to_globvar)(UCodeBlock* cb, UInt t, UInt* globvar_ptr);
+void VG_(lit_to_globvar)(UCodeBlock* cb, UInt lit, UInt* globvar_ptr);
+
+
+/* Old, deprecated versions of some of the helpers (DO NOT USE) */
extern void VG_(call_helper_0_0) ( UCodeBlock* cb, Addr f);
extern void VG_(call_helper_1_0) ( UCodeBlock* cb, Addr f, UInt arg1,
@@ -1122,10 +1166,5 @@
extern void VG_(call_helper_2_0) ( UCodeBlock* cb, Addr f, UInt arg1, UInt arg2,
UInt regparms_n);
-
-/* One way around the 3-arg C function limit is to pass args via global
- * variables... ugly, but it works. This one puts a literal in there. */
extern void VG_(set_global_var) ( UCodeBlock* cb, Addr globvar_ptr, UInt val);
-
-/* This one puts the contents of a TempReg in the global variable. */
extern void VG_(set_global_var_tempreg) ( UCodeBlock* cb, Addr globvar_ptr,
UInt t_val);
|
|
From: Tom H. <to...@co...> - 2004-02-23 16:10:56
|
Nightly build on dunsmere ( Fedora Core 1 ) started at 2004-02-23 16:00:22 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow -- Finished tests in none/tests ---------------------------------------- == 126 tests, 15 stderr failures, 1 stdout failure ================= corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) helgrind/tests/inherit (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/execve (stderr) memcheck/tests/fwrite (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/writev (stderr) none/tests/exec-sigmask (stdout) |
|
From: Tom H. <th...@cy...> - 2004-02-23 16:10:42
|
Nightly build on audi ( Red Hat 9 ) started at 2004-02-23 16:00:18 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow munmap_exe: valgrind ./munmap_exe pth_blockedsig: valgrind ./pth_blockedsig rcl_assert: valgrind ./rcl_assert rcrl: valgrind ./rcrl readline1: valgrind ./readline1 resolv: valgrind ./resolv seg_override: valgrind ./seg_override sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 126 tests, 1 stderr failure, 0 stdout failures ================= helgrind/tests/inherit (stderr) |
|
From: Tom H. <th...@cy...> - 2004-02-23 16:10:26
|
Nightly build on ginetta ( Red Hat 8.0 ) started at 2004-02-23 16:00:32 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow none/tests/rcl_assert (stderr) none/tests/rcrl (stdout) none/tests/rcrl (stderr) none/tests/readline1 (stdout) none/tests/readline1 (stderr) none/tests/resolv (stdout) none/tests/resolv (stderr) none/tests/seg_override (stdout) none/tests/seg_override (stderr) none/tests/sha1_test (stderr) none/tests/shortpush (stderr) none/tests/shorts (stderr) none/tests/smc1 (stdout) none/tests/smc1 (stderr) none/tests/syscall-restart1 (stderr) none/tests/syscall-restart2 (stderr) none/tests/system (stderr) none/tests/yield (stdout) none/tests/yield (stderr) |