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
(32) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
1
(39) |
2
(29) |
3
(27) |
4
(50) |
5
(37) |
|
6
(14) |
7
(28) |
8
(44) |
9
(38) |
10
(32) |
11
(49) |
12
(51) |
|
13
(37) |
14
(32) |
15
(70) |
16
(50) |
17
(43) |
18
(56) |
19
(23) |
|
20
(22) |
21
(36) |
22
(12) |
23
(22) |
24
(10) |
25
(13) |
26
(21) |
|
27
(17) |
28
(16) |
29
(33) |
30
(14) |
|
|
|
|
From: Julian S. <js...@ac...> - 2005-11-09 05:11:38
|
Cool! 297 fewer lines of code. J > Log: > Factor out some common code in m_syswrap. |
|
From: <sv...@va...> - 2005-11-09 04:49:31
|
Author: njn
Date: 2005-11-09 04:49:28 +0000 (Wed, 09 Nov 2005)
New Revision: 5049
Log:
Factor out some common code in m_syswrap.
Modified:
trunk/coregrind/m_syswrap/priv_syswrap-linux.h
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_syswrap/priv_syswrap-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-11-09 04:43:32 UT=
C (rev 5048)
+++ trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-11-09 04:49:28 UT=
C (rev 5049)
@@ -36,6 +36,12 @@
// Run a thread from beginning to end.=20
extern VgSchedReturnCode ML_(thread_wrapper)(Word /*ThreadId*/ tid);
=20
+extern Int ML_(start_thread_NORETURN) ( void* arg );
+extern void ML_(run_a_thread_NORETURN) ( Word tidW );
+extern Addr ML_(allocstack) ( ThreadId tid );
+extern void ML_(call_on_new_stack_0_1) ( Addr stack, Addr retaddr,
+ void (*f)(Word), Word arg1 );
+
DECL_TEMPLATE(linux, sys_mount);
DECL_TEMPLATE(linux, sys_oldumount);
DECL_TEMPLATE(linux, sys_umount);
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-11-09 04:43:32 U=
TC (rev 5048)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-11-09 04:49:28 U=
TC (rev 5049)
@@ -58,140 +58,21 @@
Note. Why is this stuff here?
------------------------------------------------------------------ */
=20
-/* Allocate a stack for this thread. They're allocated lazily, and
- never freed. */
-
-/* Allocate a stack for this thread, if it doesn't already have one.
- Returns the initial stack pointer value to use, or 0 if allocation
- failed. */
-
-static Addr allocstack(ThreadId tid)
-{
- ThreadState* tst =3D VG_(get_ThreadState)(tid);
- VgStack* stack;
- Addr initial_SP;
-
- /* Either the stack_base and stack_init_SP are both zero (in which
- case a stack hasn't been allocated) or they are both non-zero,
- in which case it has. */
-
- if (tst->os_state.valgrind_stack_base =3D=3D 0)
- vg_assert(tst->os_state.valgrind_stack_init_SP =3D=3D 0);
-
- if (tst->os_state.valgrind_stack_base !=3D 0)
- vg_assert(tst->os_state.valgrind_stack_init_SP !=3D 0);
-
- /* If no stack is present, allocate one. */
-
- if (tst->os_state.valgrind_stack_base =3D=3D 0) {
- stack =3D VG_(am_alloc_VgStack)( &initial_SP );
- if (stack) {
- tst->os_state.valgrind_stack_base =3D (Addr)stack;
- tst->os_state.valgrind_stack_init_SP =3D initial_SP;
- }
- }
-
- if (0)
- VG_(printf)( "stack for tid %d at %p; init_SP=3D%p\n",
- tid,=20
- (void*)tst->os_state.valgrind_stack_base,=20
- (void*)tst->os_state.valgrind_stack_init_SP );
- =20
- return tst->os_state.valgrind_stack_init_SP;
-}
-
-
-/* Run a thread all the way to the end, then do appropriate exit actions
- (this is the last-one-out-turn-off-the-lights bit).=20
-*/
-static void run_a_thread_NORETURN ( Word tidW )
-{
- ThreadId tid =3D (ThreadId)tidW;
- VgSchedReturnCode src;
- Int c;
-
- VG_(debugLog)(1, "syswrap-amd64-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "ML_(thread_wrapper) called\n",
- (ULong)tidW);
-
- /* Run the thread all the way through. */
- src =3D ML_(thread_wrapper)(tid); =20
-
- VG_(debugLog)(1, "syswrap-amd64-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "ML_(thread_wrapper) done\n",
- (ULong)tidW);
-
- c =3D VG_(count_living_threads)();
- vg_assert(c >=3D 1); /* stay sane */
-
- if (c =3D=3D 1) {
-
- VG_(debugLog)(1, "syswrap-amd64-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "last one standing\n",
- (ULong)tidW);
-
- /* We are the last one standing. Keep hold of the lock and
- carry on to show final tool results, then exit the entire syste=
m.=20
- Use the continuation pointer set at startup in m_main. */
- ( * VG_(address_of_m_main_shutdown_actions_NORETURN) ) (tid, src);
-
- } else {
-
- ThreadState *tst;
-
- VG_(debugLog)(1, "syswrap-amd64-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "not last one standing\n",
- (ULong)tidW);
-
- /* OK, thread is dead, but others still exist. Just exit. */
- tst =3D VG_(get_ThreadState)(tid);
-
- /* This releases the run lock */
- VG_(exit_thread)(tid);
- vg_assert(tst->status =3D=3D VgTs_Zombie);
-
- /* We have to use this sequence to terminate the thread to
- prevent a subtle race. If VG_(exit_thread)() had left the
- ThreadState as Empty, then it could have been reallocated,
- reusing the stack while we're doing these last cleanups.
- Instead, VG_(exit_thread) leaves it as Zombie to prevent
- reallocation. We need to make sure we don't touch the stack
- between marking it Empty and exiting. Hence the
- assembler. */
- asm volatile (
- "movl %1, %0\n" /* set tst->status =3D VgTs_Empty */
- "movq %2, %%rax\n" /* set %rax =3D __NR_exit */
- "movq %3, %%rdi\n" /* set %rdi =3D tst->os_state.exitcode */
- "syscall\n" /* exit(tst->os_state.exitcode) */
- : "=3Dm" (tst->status)
- : "n" (VgTs_Empty), "n" (__NR_exit), "m" (tst->os_state.exitcod=
e));
-
- VG_(core_panic)("Thread exit failed?\n");
- }
-
- /*NOTREACHED*/
- vg_assert(0);
-}
-
-
/* Call f(arg1), but first switch stacks, using 'stack' as the new
stack, and use 'retaddr' as f's return-to address. Also, clear all
the integer registers before entering f. */
__attribute__((noreturn))
-void call_on_new_stack_0_1 ( Addr stack,
- Addr retaddr,
- void (*f)(Word),
- Word arg1 );
+void ML_(call_on_new_stack_0_1) ( Addr stack,
+ Addr retaddr,
+ void (*f)(Word),
+ Word arg1 );
// %rdi =3D=3D stack
// %rsi =3D=3D retaddr
// %rdx =3D=3D f
// %rcx =3D=3D arg1
asm(
-"call_on_new_stack_0_1:\n"
+".globl vgModuleLocal_call_on_new_stack_0_1\n"
+vgModuleLocal_call_on_new_stack_0_1:\n"
" movq %rdi, %rsp\n" // set stack
" pushq %rsi\n" // retaddr to stack
" pushq %rdx\n" // f to stack
@@ -216,51 +97,6 @@
" ud2\n" // should never get here
);
=20
-
-/* Allocate a stack for the main thread, and run it all the way to the
- end. Although we already have a working VgStack
- (VG_(interim_stack)) it's better to allocate a new one, so that
- overflow detection works uniformly for all threads.
-*/
-void VG_(main_thread_wrapper_NORETURN)(ThreadId tid)
-{
- Addr rsp;
-
- VG_(debugLog)(1, "syswrap-amd64-linux",=20
- "entering VG_(main_thread_wrapper_NORETURN)\n");
-
- rsp =3D allocstack(tid);
-
- /* If we can't even allocate the first thread's stack, we're hosed.
- Give up. */
- vg_assert2(rsp !=3D 0, "Cannot allocate main thread's stack.");
-
- /* shouldn't be any other threads around yet */
- vg_assert( VG_(count_living_threads)() =3D=3D 1 );
-
- call_on_new_stack_0_1(=20
- (Addr)rsp, /* stack */
- 0, /*bogus return address*/
- run_a_thread_NORETURN, /* fn to call */
- (Word)tid /* arg to give it */
- );
-
- /*NOTREACHED*/
- vg_assert(0);
-}
-
-
-static Long start_thread_NORETURN ( void* arg )
-{
- ThreadState* tst =3D (ThreadState*)arg;
- ThreadId tid =3D tst->tid;
-
- run_a_thread_NORETURN ( (Word)tid );
- /*NOTREACHED*/
- vg_assert(0);
-}
-
-
/* ---------------------------------------------------------------------
clone() handling
------------------------------------------------------------------ */
@@ -380,7 +216,7 @@
vg_assert(VG_(is_running_thread)(ptid));
vg_assert(VG_(is_valid_tid)(ctid));
=20
- stack =3D (UWord*)allocstack(ctid);
+ stack =3D (UWord*)ML_(allocstack)(ctid);
if (stack =3D=3D NULL) {
res =3D VG_(mk_SysRes_Error)( VKI_ENOMEM );
goto out;
@@ -445,7 +281,7 @@
=20
/* Create the new thread */
rax =3D do_syscall_clone_amd64_linux(
- start_thread_NORETURN, stack, flags, &VG_(threads)[ctid],
+ ML_(start_thread_NORETURN), stack, flags, &VG_(threads)[ctid=
],
child_tidptr, parent_tidptr, NULL
);
res =3D VG_(mk_SysRes_amd64_linux)( rax );
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2005-11-09 04:43:32 UTC (re=
v 5048)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2005-11-09 04:49:28 UTC (re=
v 5049)
@@ -45,11 +45,14 @@
#include "pub_core_scheduler.h"
#include "pub_core_signals.h"
#include "pub_core_syscall.h"
+#include "pub_core_syswrap.h"
=20
#include "priv_types_n_macros.h"
#include "priv_syswrap-generic.h"
#include "priv_syswrap-linux.h"
=20
+#include "vki_unistd.h" /* for the __NR_* constants */
+
// Run a thread from beginning to end and return the thread's
// scheduler-return-code.
VgSchedReturnCode ML_(thread_wrapper)(Word /*ThreadId*/ tidW)
@@ -96,6 +99,194 @@
=20
=20
/* ---------------------------------------------------------------------
+ clone-related stuff
+ ------------------------------------------------------------------ */
+
+/* Run a thread all the way to the end, then do appropriate exit actions
+ (this is the last-one-out-turn-off-the-lights bit). */
+void ML_(run_a_thread_NORETURN) ( Word tidW )
+{
+ ThreadId tid =3D (ThreadId)tidW;
+ VgSchedReturnCode src;
+ Int c;
+
+ VG_(debugLog)(1, "syswrap-generic",=20
+ "run_a_thread_NORETURN(tid=3D%lld): "
+ "ML_(thread_wrapper) called\n",
+ (ULong)tidW);
+
+ /* Run the thread all the way through. */
+ src =3D ML_(thread_wrapper)(tid); =20
+
+ VG_(debugLog)(1, "syswrap-ppc32-linux",=20
+ "run_a_thread_NORETURN(tid=3D%lld): "
+ "ML_(thread_wrapper) done\n",
+ (ULong)tidW);
+
+ c =3D VG_(count_living_threads)();
+ vg_assert(c >=3D 1); /* stay sane */
+
+ if (c =3D=3D 1) {
+
+ VG_(debugLog)(1, "syswrap-ppc32-linux",=20
+ "run_a_thread_NORETURN(tid=3D%lld): "
+ "last one standing\n",
+ (ULong)tidW);
+
+ /* We are the last one standing. Keep hold of the lock and
+ carry on to show final tool results, then exit the entire syste=
m.=20
+ Use the continuation pointer set at startup in m_main. */
+ ( * VG_(address_of_m_main_shutdown_actions_NORETURN) ) (tid, src);
+
+ } else {
+
+ ThreadState *tst;
+
+ VG_(debugLog)(1, "syswrap-ppc32-linux",=20
+ "run_a_thread_NORETURN(tid=3D%lld): "
+ "not last one standing\n",
+ (ULong)tidW);
+
+ /* OK, thread is dead, but others still exist. Just exit. */
+ tst =3D VG_(get_ThreadState)(tid);
+
+ /* This releases the run lock */
+ VG_(exit_thread)(tid);
+ vg_assert(tst->status =3D=3D VgTs_Zombie);
+
+ /* We have to use this sequence to terminate the thread to
+ prevent a subtle race. If VG_(exit_thread)() had left the
+ ThreadState as Empty, then it could have been reallocated,
+ reusing the stack while we're doing these last cleanups.
+ Instead, VG_(exit_thread) leaves it as Zombie to prevent
+ reallocation. We need to make sure we don't touch the stack
+ between marking it Empty and exiting. Hence the
+ assembler. */
+#if defined(VGP_x86_linux)
+ asm volatile (
+ "movl %1, %0\n" /* set tst->status =3D VgTs_Empty */
+ "movl %2, %%eax\n" /* set %eax =3D __NR_exit */
+ "movl %3, %%ebx\n" /* set %ebx =3D tst->os_state.exitcode */
+ "int $0x80\n" /* exit(tst->os_state.exitcode) */
+ : "=3Dm" (tst->status)
+ : "n" (VgTs_Empty), "n" (__NR_exit), "m" (tst->os_state.exitcod=
e));
+#elif defined(VGP_amd64_linux)
+ asm volatile (
+ "movl %1, %0\n" /* set tst->status =3D VgTs_Empty */
+ "movq %2, %%rax\n" /* set %rax =3D __NR_exit */
+ "movq %3, %%rdi\n" /* set %rdi =3D tst->os_state.exitcode */
+ "syscall\n" /* exit(tst->os_state.exitcode) */
+ : "=3Dm" (tst->status)
+ : "n" (VgTs_Empty), "n" (__NR_exit), "m" (tst->os_state.exitcod=
e));
+#elif defined(VGP_ppc32_linux)
+ { UInt vgts_empty =3D (UInt)VgTs_Empty;
+ asm volatile (
+ "stw %1,%0\n\t" /* set tst->status =3D VgTs_Empty */
+ "li 0,%2\n\t" /* set r0 =3D __NR_exit */
+ "lwz 3,%3\n\t" /* set r3 =3D tst->os_state.exitcode =
*/
+ "sc\n\t" /* exit(tst->os_state.exitcode) */
+ : "=3Dm" (tst->status)
+ : "r" (vgts_empty), "n" (__NR_exit), "m" (tst->os_state.exitco=
de));
+ }
+#else
+# error Unknown platform
+#endif
+
+ VG_(core_panic)("Thread exit failed?\n");
+ }
+
+ /*NOTREACHED*/
+ vg_assert(0);
+}
+
+Int ML_(start_thread_NORETURN) ( void* arg )
+{
+ ThreadState* tst =3D (ThreadState*)arg;
+ ThreadId tid =3D tst->tid;
+
+ ML_(run_a_thread_NORETURN) ( (Word)tid );
+ /*NOTREACHED*/
+ vg_assert(0);
+}
+
+/* Allocate a stack for this thread, if it doesn't already have one.
+ They're allocated lazily, and never freed. Returns the initial stack
+ pointer value to use, or 0 if allocation failed. */
+Addr ML_(allocstack)(ThreadId tid)
+{
+ ThreadState* tst =3D VG_(get_ThreadState)(tid);
+ VgStack* stack;
+ Addr initial_SP;
+
+ /* Either the stack_base and stack_init_SP are both zero (in which
+ case a stack hasn't been allocated) or they are both non-zero,
+ in which case it has. */
+
+ if (tst->os_state.valgrind_stack_base =3D=3D 0)
+ vg_assert(tst->os_state.valgrind_stack_init_SP =3D=3D 0);
+
+ if (tst->os_state.valgrind_stack_base !=3D 0)
+ vg_assert(tst->os_state.valgrind_stack_init_SP !=3D 0);
+
+ /* If no stack is present, allocate one. */
+
+ if (tst->os_state.valgrind_stack_base =3D=3D 0) {
+ stack =3D VG_(am_alloc_VgStack)( &initial_SP );
+ if (stack) {
+ tst->os_state.valgrind_stack_base =3D (Addr)stack;
+ tst->os_state.valgrind_stack_init_SP =3D initial_SP;
+ }
+ }
+
+ if (0)
+ VG_(printf)( "stack for tid %d at %p; init_SP=3D%p\n",
+ tid,=20
+ (void*)tst->os_state.valgrind_stack_base,=20
+ (void*)tst->os_state.valgrind_stack_init_SP );
+ =20
+ return tst->os_state.valgrind_stack_init_SP;
+}
+
+/* Allocate a stack for the main thread, and run it all the way to the
+ end. Although we already have a working VgStack
+ (VG_(interim_stack)) it's better to allocate a new one, so that
+ overflow detection works uniformly for all threads.
+*/
+void VG_(main_thread_wrapper_NORETURN)(ThreadId tid)
+{
+ Addr sp;
+ VG_(debugLog)(1, "syswrap-linux",=20
+ "entering VG_(main_thread_wrapper_NORETURN)\n");
+
+ sp =3D ML_(allocstack)(tid);
+
+#if defined(VGP_ppc32_linux)
+ /* make a stack frame */
+ sp -=3D 16;
+ sp &=3D ~0xF;
+ *(UWord *)sp =3D 0;
+#endif
+
+ /* If we can't even allocate the first thread's stack, we're hosed.
+ Give up. */
+ vg_assert2(sp !=3D 0, "Cannot allocate main thread's stack.");
+
+ /* shouldn't be any other threads around yet */
+ vg_assert( VG_(count_living_threads)() =3D=3D 1 );
+
+ ML_(call_on_new_stack_0_1)(=20
+ (Addr)sp, /* stack */
+ 0, /* bogus return address */
+ ML_(run_a_thread_NORETURN), /* fn to call */
+ (Word)tid /* arg to give it */
+ );
+
+ /*NOTREACHED*/
+ vg_assert(0);
+}
+
+
+/* ---------------------------------------------------------------------
PRE/POST wrappers for arch-generic, Linux-specific syscalls
------------------------------------------------------------------ */
=20
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-11-09 04:43:32 U=
TC (rev 5048)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-11-09 04:49:28 U=
TC (rev 5049)
@@ -58,141 +58,21 @@
Note. Why is this stuff here?
------------------------------------------------------------------ */
=20
-/* Allocate a stack for this thread. They're allocated lazily, and
- never freed. */
-
-/* Allocate a stack for this thread, if it doesn't already have one.
- Returns the initial stack pointer value to use, or 0 if allocation
- failed. */
-
-static Addr allocstack ( ThreadId tid )
-{
- ThreadState* tst =3D VG_(get_ThreadState)(tid);
- VgStack* stack;
- Addr initial_SP;
-
- /* Either the stack_base and stack_init_SP are both zero (in which
- case a stack hasn't been allocated) or they are both non-zero,
- in which case it has. */
-
- if (tst->os_state.valgrind_stack_base =3D=3D 0)
- vg_assert(tst->os_state.valgrind_stack_init_SP =3D=3D 0);
-
- if (tst->os_state.valgrind_stack_base !=3D 0)
- vg_assert(tst->os_state.valgrind_stack_init_SP !=3D 0);
-
- /* If no stack is present, allocate one. */
-
- if (tst->os_state.valgrind_stack_base =3D=3D 0) {
- stack =3D VG_(am_alloc_VgStack)( &initial_SP );
- if (stack) {
- tst->os_state.valgrind_stack_base =3D (Addr)stack;
- tst->os_state.valgrind_stack_init_SP =3D initial_SP;
- }
- }
-
- if (0)
- VG_(printf)( "stack for tid %d at %p; init_SP=3D%p\n",
- tid,=20
- (void*)tst->os_state.valgrind_stack_base,=20
- (void*)tst->os_state.valgrind_stack_init_SP );
- =20
- return tst->os_state.valgrind_stack_init_SP;
-}
-
-
-/* Run a thread all the way to the end, then do appropriate exit actions
- (this is the last-one-out-turn-off-the-lights bit).=20
-*/
-static void run_a_thread_NORETURN ( Word tidW )
-{
- Int c;
- VgSchedReturnCode src;
- ThreadState* tst;
- ThreadId tid =3D (ThreadId)tidW;
-
- VG_(debugLog)(1, "syswrap-ppc32-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "ML_(thread_wrapper) called\n",
- (ULong)tidW);
-
- /* Run the thread all the way through. */
- src =3D ML_(thread_wrapper)(tid); =20
-
- VG_(debugLog)(1, "syswrap-ppc32-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "ML_(thread_wrapper) done\n",
- (ULong)tidW);
-
- c =3D VG_(count_living_threads)();
- vg_assert(c >=3D 1); /* stay sane */
-
- if (c =3D=3D 1) {
-
- VG_(debugLog)(1, "syswrap-ppc32-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "last one standing\n",
- (ULong)tidW);
-
- /* We are the last one standing. Keep hold of the lock and
- carry on to show final tool results, then exit the entire syste=
m.=20
- Use the continuation pointer set at startup in m_main. */
- ( * VG_(address_of_m_main_shutdown_actions_NORETURN) ) (tid, src);
-
- } else {
-
- VG_(debugLog)(1, "syswrap-ppc32-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "not last one standing\n",
- (ULong)tidW);
-
- /* OK, thread is dead, but others still exist. Just exit. */
- tst =3D VG_(get_ThreadState)(tid);
-
- /* This releases the run lock */
- VG_(exit_thread)(tid);
- vg_assert(tst->status =3D=3D VgTs_Zombie);
-
- /* We have to use this sequence to terminate the thread to
- prevent a subtle race. If VG_(exit_thread)() had left the
- ThreadState as Empty, then it could have been reallocated,
- reusing the stack while we're doing these last cleanups.
- Instead, VG_(exit_thread) leaves it as Zombie to prevent
- reallocation. We need to make sure we don't touch the stack
- between marking it Empty and exiting. Hence the
- assembler. */
- { UInt vgts_empty =3D (UInt)VgTs_Empty;
- asm volatile (
- "stw %1,%0\n\t" /* set tst->status =3D VgTs_Empty */
- "li 0,%2\n\t" /* set r0 =3D __NR_exit */
- "lwz 3,%3\n\t" /* set r3 =3D tst->os_state.exitcode =
*/
- "sc\n\t" /* exit(tst->os_state.exitcode) */
- : "=3Dm" (tst->status)
- : "r" (vgts_empty), "n" (__NR_exit), "m" (tst->os_state.exitco=
de));
- }
-
- VG_(core_panic)("Thread exit failed?\n");
- }
-
- /*NOTREACHED*/
- vg_assert(0);
-}
-
-
/* Call f(arg1), but first switch stacks, using 'stack' as the new
- stack, and use 'retaddr' as f's return-to address. Also, clear all
+ stack, and use 'retaddr' as f's return-to address. Also, clear all
the integer registers before entering f.*/
__attribute__((noreturn))
-void call_on_new_stack_0_1 ( Addr stack,
- Addr retaddr,
- void (*f)(Word),
- Word arg1 );
+void ML_(call_on_new_stack_0_1) ( Addr stack,
+ Addr retaddr,
+ void (*f)(Word),
+ Word arg1 );
// r3 =3D stack
// r4 =3D retaddr
// r5 =3D f
// r6 =3D arg1
asm(
-"call_on_new_stack_0_1:\n"
+".globl vgModuleLocal_call_on_new_stack_0_1\n"
+"vgModuleLocal_call_on_new_stack_0_1:\n"
" mr %r1,%r3\n\t" // stack to %sp
" mtlr %r4\n\t" // retaddr to %lr
" mtctr %r5\n\t" // f to count reg
@@ -233,53 +113,6 @@
);
=20
=20
-/* Allocate a stack for the main thread, and run it all the way to the
- end. Although we already have a working VgStack
- (VG_(interim_stack)) it's better to allocate a new one, so that
- overflow detection works uniformly for all threads.
-*/
-void VG_(main_thread_wrapper_NORETURN)(ThreadId tid)
-{
- Addr sp;
- VG_(debugLog)(1, "syswrap-ppc32-linux",=20
- "entering VG_(main_thread_wrapper_NORETURN)\n");
-
- sp =3D allocstack(tid);
-
- /* make a stack frame */
- sp -=3D 16;
- sp &=3D ~0xF;
- *(UWord *)sp =3D 0;
-
- /* If we can't even allocate the first thread's stack, we're hosed.
- Give up. */
- vg_assert2(sp !=3D 0, "Cannot allocate main thread's stack.");
-
- /* shouldn't be any other threads around yet */
- vg_assert( VG_(count_living_threads)() =3D=3D 1 );
-
- call_on_new_stack_0_1(=20
- (Addr)sp, /* stack */
- 0, /*bogus return address*/
- run_a_thread_NORETURN, /* fn to call */
- (Word)tid /* arg to give it */
- );
-
- /*NOTREACHED*/
- vg_assert(0);
-}
-
-static Int start_thread_NORETURN ( void* arg )
-{
- ThreadState* tst =3D (ThreadState*)arg;
- ThreadId tid =3D tst->tid;
-
- run_a_thread_NORETURN ( (Word)tid );
- /*NOTREACHED*/
- vg_assert(0);
-}
-
-
/* ---------------------------------------------------------------------
clone() handling
------------------------------------------------------------------ */
@@ -417,7 +250,7 @@
vg_assert(VG_(is_running_thread)(ptid));
vg_assert(VG_(is_valid_tid)(ctid));
=20
- stack =3D (UWord*)allocstack(ctid);
+ stack =3D (UWord*)ML_(allocstack)(ctid);
if (stack =3D=3D NULL) {
res =3D VG_(mk_SysRes_Error)( VKI_ENOMEM );
goto out;
@@ -495,7 +328,7 @@
=20
/* Create the new thread */
word64 =3D do_syscall_clone_ppc32_linux(
- start_thread_NORETURN, stack, flags, &VG_(threads)[ctid],
+ ML_(start_thread_NORETURN), stack, flags, &VG_(threads)[c=
tid],
child_tidptr, parent_tidptr, NULL
);
/* High half word64 is syscall return value. Low half is
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-11-09 04:43:32 UTC=
(rev 5048)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-11-09 04:49:28 UTC=
(rev 5049)
@@ -66,140 +66,21 @@
Note. Why is this stuff here?
------------------------------------------------------------------ */
=20
-/* Allocate a stack for this thread. They're allocated lazily, and
- never freed. */
-
-/* Allocate a stack for this thread, if it doesn't already have one.
- Returns the initial stack pointer value to use, or 0 if allocation
- failed. */
-
-static Addr allocstack ( ThreadId tid )
-{
- ThreadState* tst =3D VG_(get_ThreadState)(tid);
- VgStack* stack;
- Addr initial_SP;
-
- /* Either the stack_base and stack_init_SP are both zero (in which
- case a stack hasn't been allocated) or they are both non-zero,
- in which case it has. */
-
- if (tst->os_state.valgrind_stack_base =3D=3D 0)
- vg_assert(tst->os_state.valgrind_stack_init_SP =3D=3D 0);
-
- if (tst->os_state.valgrind_stack_base !=3D 0)
- vg_assert(tst->os_state.valgrind_stack_init_SP !=3D 0);
-
- /* If no stack is present, allocate one. */
-
- if (tst->os_state.valgrind_stack_base =3D=3D 0) {
- stack =3D VG_(am_alloc_VgStack)( &initial_SP );
- if (stack) {
- tst->os_state.valgrind_stack_base =3D (Addr)stack;
- tst->os_state.valgrind_stack_init_SP =3D initial_SP;
- }
- }
-
- if (0)
- VG_(printf)( "stack for tid %d at %p; init_SP=3D%p\n",
- tid,=20
- (void*)tst->os_state.valgrind_stack_base,=20
- (void*)tst->os_state.valgrind_stack_init_SP );
- =20
- return tst->os_state.valgrind_stack_init_SP;
-}
-
-
-/* Run a thread all the way to the end, then do appropriate exit actions
- (this is the last-one-out-turn-off-the-lights bit).=20
-*/
-static void run_a_thread_NORETURN ( Word tidW )
-{
- ThreadId tid =3D (ThreadId)tidW;
- VgSchedReturnCode src;
- Int c;
-
- VG_(debugLog)(1, "syswrap-x86-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "ML_(thread_wrapper) called\n",
- (ULong)tidW);
-
- /* Run the thread all the way through. */
- src =3D ML_(thread_wrapper)(tid); =20
-
- VG_(debugLog)(1, "syswrap-x86-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "ML_(thread_wrapper) done\n",
- (ULong)tidW);
-
- c =3D VG_(count_living_threads)();
- vg_assert(c >=3D 1); /* stay sane */
-
- if (c =3D=3D 1) {
-
- VG_(debugLog)(1, "syswrap-x86-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "last one standing\n",
- (ULong)tidW);
-
- /* We are the last one standing. Keep hold of the lock and
- carry on to show final tool results, then exit the entire syste=
m.=20
- Use the continuation pointer set at startup in m_main. */
- ( * VG_(address_of_m_main_shutdown_actions_NORETURN) ) (tid, src);
-
- } else {
-
- ThreadState *tst;
-
- VG_(debugLog)(1, "syswrap-x86-linux",=20
- "run_a_thread_NORETURN(tid=3D%lld): "
- "not last one standing\n",
- (ULong)tidW);
-
- /* OK, thread is dead, but others still exist. Just exit. */
- tst =3D VG_(get_ThreadState)(tid);
-
- /* This releases the run lock */
- VG_(exit_thread)(tid);
- vg_assert(tst->status =3D=3D VgTs_Zombie);
-
- /* We have to use this sequence to terminate the thread to
- prevent a subtle race. If VG_(exit_thread)() had left the
- ThreadState as Empty, then it could have been reallocated,
- reusing the stack while we're doing these last cleanups.
- Instead, VG_(exit_thread) leaves it as Zombie to prevent
- reallocation. We need to make sure we don't touch the stack
- between marking it Empty and exiting. Hence the
- assembler. */
- asm volatile (
- "movl %1, %0\n" /* set tst->status =3D VgTs_Empty */
- "movl %2, %%eax\n" /* set %eax =3D __NR_exit */
- "movl %3, %%ebx\n" /* set %ebx =3D tst->os_state.exitcode */
- "int $0x80\n" /* exit(tst->os_state.exitcode) */
- : "=3Dm" (tst->status)
- : "n" (VgTs_Empty), "n" (__NR_exit), "m" (tst->os_state.exitcod=
e));
-
- VG_(core_panic)("Thread exit failed?\n");
- }
-
- /*NOTREACHED*/
- vg_assert(0);
-}
-
-
/* Call f(arg1), but first switch stacks, using 'stack' as the new
stack, and use 'retaddr' as f's return-to address. Also, clear all
the integer registers before entering f.*/
__attribute__((noreturn))
-void call_on_new_stack_0_1 ( Addr stack,
- Addr retaddr,
- void (*f)(Word),
- Word arg1 );
+void ML_(call_on_new_stack_0_1) ( Addr stack,
+ Addr retaddr,
+ void (*f)(Word),
+ Word arg1 );
// 4(%esp) =3D=3D stack
// 8(%esp) =3D=3D retaddr
// 12(%esp) =3D=3D f
// 16(%esp) =3D=3D arg1
asm(
-"call_on_new_stack_0_1:\n"
+".globl vgModuleLocal_call_on_new_stack_0_1\n"
+"vgModuleLocal_call_on_new_stack_0_1:\n"
" movl %esp, %esi\n" // remember old stack pointer
" movl 4(%esi), %esp\n" // set stack
" pushl 16(%esi)\n" // arg1 to stack
@@ -217,50 +98,6 @@
);
=20
=20
-/* Allocate a stack for the main thread, and run it all the way to the
- end. Although we already have a working VgStack
- (VG_(interim_stack)) it's better to allocate a new one, so that
- overflow detection works uniformly for all threads.
-*/
-void VG_(main_thread_wrapper_NORETURN)(ThreadId tid)
-{
- Addr esp;
-
- VG_(debugLog)(1, "syswrap-x86-linux",=20
- "entering VG_(main_thread_wrapper_NORETURN)\n");
-
- esp =3D allocstack(tid);
-
- /* If we can't even allocate the first thread's stack, we're hosed.
- Give up. */
- vg_assert2(esp !=3D 0, "Cannot allocate main thread's stack.");
-
- /* shouldn't be any other threads around yet */
- vg_assert( VG_(count_living_threads)() =3D=3D 1 );
-
- call_on_new_stack_0_1(=20
- esp, /* stack */
- 0, /*bogus return address*/
- run_a_thread_NORETURN, /* fn to call */
- (Word)tid /* arg to give it */
- );
-
- /*NOTREACHED*/
- vg_assert(0);
-}
-
-
-static Int start_thread_NORETURN ( void* arg )
-{
- ThreadState* tst =3D (ThreadState*)arg;
- ThreadId tid =3D tst->tid;
-
- run_a_thread_NORETURN ( (Word)tid );
- /*NOTREACHED*/
- vg_assert(0);
-}
-
-
/* ---------------------------------------------------------------------
clone() handling
------------------------------------------------------------------ */
@@ -388,7 +225,7 @@
vg_assert(VG_(is_running_thread)(ptid));
vg_assert(VG_(is_valid_tid)(ctid));
=20
- stack =3D (UWord*)allocstack(ctid);
+ stack =3D (UWord*)ML_(allocstack)(ctid);
if (stack =3D=3D NULL) {
res =3D VG_(mk_SysRes_Error)( VKI_ENOMEM );
goto out;
@@ -464,7 +301,7 @@
=20
/* Create the new thread */
eax =3D do_syscall_clone_x86_linux(
- start_thread_NORETURN, stack, flags, &VG_(threads)[ctid],
+ ML_(start_thread_NORETURN), stack, flags, &VG_(threads)[ctid=
],
child_tidptr, parent_tidptr, NULL
);
res =3D VG_(mk_SysRes_x86_linux)( eax );
|
|
From: Nicholas N. <nj...@cs...> - 2005-11-09 04:49:15
|
On Wed, 9 Nov 2005, Tom Hughes wrote: > none/tests/x86/seg_override (stdout) I see this also. The diff is: *** seg_override.stdout.exp Tue Nov 1 13:47:12 2005 --- seg_override.stdout.out Tue Nov 8 22:46:09 2005 *************** *** 2 **** ! got 512 bytes --- 2 ---- ! got 65536 bytes Julian, is this due to your change of emulating the entire LDT (GDT?) table rather than just the first few entries? Nick |
|
From: <sv...@va...> - 2005-11-09 04:43:38
|
Author: njn Date: 2005-11-09 04:43:32 +0000 (Wed, 09 Nov 2005) New Revision: 5048 Log: update Modified: trunk/docs/internals/3_0_BUGSTATUS.txt Modified: trunk/docs/internals/3_0_BUGSTATUS.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/internals/3_0_BUGSTATUS.txt 2005-11-08 22:03:07 UTC (rev 5= 047) +++ trunk/docs/internals/3_0_BUGSTATUS.txt 2005-11-09 04:43:32 UTC (rev 5= 048) @@ -38,7 +38,7 @@ ---------------------------------------------------------------- 109345 ppc32 ptrace patch available should be applied =20 -FIXED-TRUNK: TODO +FIXED-TRUNK: vg:5046 =20 ---------------------------------------------------------------- 110204 fmemopen false +ve |
|
From: <js...@ac...> - 2005-11-09 03:52:29
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-11-09 03:30:01 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 202 tests, 85 stderr failures, 3 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/badaddrvalue (stderr) memcheck/tests/badfree (stderr) memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/badloop (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/badrw (stderr) memcheck/tests/brk (stderr) memcheck/tests/brk2 (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/clientperm (stderr) memcheck/tests/custom_alloc (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/doublefree (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/errs1 (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/exitprog (stderr) memcheck/tests/fprw (stderr) memcheck/tests/fwrite (stderr) memcheck/tests/inits (stderr) memcheck/tests/inline (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/malloc1 (stderr) memcheck/tests/malloc2 (stderr) memcheck/tests/malloc3 (stderr) memcheck/tests/malloc_usable (stderr) memcheck/tests/manuel1 (stderr) memcheck/tests/manuel2 (stderr) memcheck/tests/manuel3 (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/memalign2 (stderr) memcheck/tests/memalign_test (stderr) memcheck/tests/memcmptest (stderr) memcheck/tests/mempool (stderr) memcheck/tests/mismatches (stderr) memcheck/tests/mmaptest (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/nanoleak_supp (stderr) memcheck/tests/new_nothrow (stderr) memcheck/tests/new_override (stderr) memcheck/tests/null_socket (stderr) memcheck/tests/oset_test (stderr) memcheck/tests/overlap (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pipe (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/post-syscall (stderr) memcheck/tests/realloc1 (stderr) memcheck/tests/realloc2 (stderr) memcheck/tests/realloc3 (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/signal2 (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/str_tester (stderr) memcheck/tests/strchr (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp2 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/suppfree (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/trivialleak (stderr) memcheck/tests/with-space (stderr) memcheck/tests/writev (stderr) memcheck/tests/x86/fpeflags (stderr) memcheck/tests/x86/pushfpopf (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_exit_group (stderr) memcheck/tests/x86/scalar_fork (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/scalar_vfork (stderr) memcheck/tests/x86/tronical (stderr) memcheck/tests/xml1 (stderr) memcheck/tests/zeropage (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/x86/seg_override (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 200 tests, 83 stderr failures, 3 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/badaddrvalue (stderr) memcheck/tests/badfree (stderr) memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/badloop (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/badrw (stderr) memcheck/tests/brk (stderr) memcheck/tests/brk2 (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/clientperm (stderr) memcheck/tests/custom_alloc (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/doublefree (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/errs1 (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/exitprog (stderr) memcheck/tests/fprw (stderr) memcheck/tests/fwrite (stderr) memcheck/tests/inits (stderr) memcheck/tests/inline (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/malloc1 (stderr) memcheck/tests/malloc2 (stderr) memcheck/tests/malloc3 (stderr) memcheck/tests/malloc_usable (stderr) memcheck/tests/manuel1 (stderr) memcheck/tests/manuel2 (stderr) memcheck/tests/manuel3 (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/memalign2 (stderr) memcheck/tests/memalign_test (stderr) memcheck/tests/memcmptest (stderr) memcheck/tests/mempool (stderr) memcheck/tests/mismatches (stderr) memcheck/tests/mmaptest (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/nanoleak_supp (stderr) memcheck/tests/new_nothrow (stderr) memcheck/tests/new_override (stderr) memcheck/tests/null_socket (stderr) memcheck/tests/oset_test (stderr) memcheck/tests/overlap (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pipe (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/post-syscall (stderr) memcheck/tests/realloc1 (stderr) memcheck/tests/realloc2 (stderr) memcheck/tests/realloc3 (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/signal2 (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/str_tester (stderr) memcheck/tests/strchr (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp2 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/suppfree (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/trivialleak (stderr) memcheck/tests/with-space (stderr) memcheck/tests/writev (stderr) memcheck/tests/x86/fpeflags (stderr) memcheck/tests/x86/pushfpopf (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_exit_group (stderr) memcheck/tests/x86/scalar_fork (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/scalar_vfork (stderr) memcheck/tests/x86/tronical (stderr) memcheck/tests/xml1 (stderr) memcheck/tests/zeropage (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/x86/seg_override (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Nov 9 03:41:22 2005 --- new.short Wed Nov 9 03:52:26 2005 *************** *** 10,12 **** ! == 200 tests, 83 stderr failures, 3 stdout failures ================= memcheck/tests/addressable (stderr) --- 10,12 ---- ! == 202 tests, 85 stderr failures, 3 stdout failures ================= memcheck/tests/addressable (stderr) *************** *** 61,62 **** --- 61,64 ---- memcheck/tests/overlap (stderr) + memcheck/tests/partial_load_dflt (stderr) + memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) |
|
From: <js...@ac...> - 2005-11-09 03:45:06
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2005-11-09 04:40:00 CET Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 169 tests, 18 stderr failures, 0 stdout failures ================= memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/xml1 (stderr) cachegrind/tests/chdir (stderr) cachegrind/tests/dlclose (stderr) massif/tests/toobig-allocs (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/fdleak_ipv4 (stderr) none/tests/mremap (stderr) |
|
From: Tom H. <to...@co...> - 2005-11-09 03:41:46
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-11-09 03:30:05 GMT 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 == 203 tests, 6 stderr failures, 2 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/x86/seg_override (stdout) ================================================= == 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 == 201 tests, 6 stderr failures, 2 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/x86/seg_override (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Nov 9 03:35:57 2005 --- new.short Wed Nov 9 03:41:41 2005 *************** *** 8,10 **** ! == 201 tests, 6 stderr failures, 2 stdout failures ================= memcheck/tests/leak-tree (stderr) --- 8,10 ---- ! == 203 tests, 6 stderr failures, 2 stdout failures ================= memcheck/tests/leak-tree (stderr) |
|
From: Tom H. <th...@cy...> - 2005-11-09 03:24:43
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-11-09 03:15:02 GMT
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
== 202 tests, 17 stderr failures, 1 stdout failure =================
memcheck/tests/addressable (stderr)
memcheck/tests/describe-block (stderr)
memcheck/tests/erringfds (stderr)
memcheck/tests/leak-0 (stderr)
memcheck/tests/leak-cycle (stderr)
memcheck/tests/leak-regroot (stderr)
memcheck/tests/leak-tree (stderr)
memcheck/tests/match-overrun (stderr)
memcheck/tests/mempool (stderr)
memcheck/tests/partial_load_dflt (stderr)
memcheck/tests/partial_load_ok (stderr)
memcheck/tests/partiallydefinedeq (stderr)
memcheck/tests/pointer-trace (stderr)
memcheck/tests/sigkill (stderr)
memcheck/tests/stack_changes (stderr)
none/tests/x86/faultstatus (stderr)
none/tests/x86/int (stderr)
none/tests/x86/seg_override (stdout)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
launcher.c: In function `main':
launcher.c:201: `debugLog_startup' undeclared (first use in this function)
launcher.c:201: (Each undeclared identifier is reported only once
launcher.c:201: for each function it appears in.)
launcher.c:201: called object is not a function
launcher.c:205: `debugLog' undeclared (first use in this function)
launcher.c:205: called object is not a function
launcher.c:208: called object is not a function
launcher.c:214: `VG_PLATFORM' undeclared (first use in this function)
launcher.c:214: called object is not a function
launcher.c:217: called object is not a function
launcher.c:219: called object is not a function
launcher.c:271: called object is not a function
make[3]: *** [launcher.o] Error 1
make[3]: Leaving directory `/tmp/valgrind.717/valgrind/coregrind'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/valgrind.717/valgrind/coregrind'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/valgrind.717/valgrind'
make: *** [all] Error 2
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Wed Nov 9 03:17:46 2005
--- new.short Wed Nov 9 03:24:37 2005
***************
*** 3,26 ****
Configuring valgrind ... done
! Building valgrind ... failed
- Last 20 lines of verbose log follow echo
- launcher.c: In function `main':
- launcher.c:201: `debugLog_startup' undeclared (first use in this function)
- launcher.c:201: (Each undeclared identifier is reported only once
- launcher.c:201: for each function it appears in.)
- launcher.c:201: called object is not a function
- launcher.c:205: `debugLog' undeclared (first use in this function)
- launcher.c:205: called object is not a function
- launcher.c:208: called object is not a function
- launcher.c:214: `VG_PLATFORM' undeclared (first use in this function)
- launcher.c:214: called object is not a function
- launcher.c:217: called object is not a function
- launcher.c:219: called object is not a function
- launcher.c:271: called object is not a function
- make[3]: *** [launcher.o] Error 1
- make[3]: Leaving directory `/tmp/valgrind.717/valgrind/coregrind'
- make[2]: *** [all] Error 2
- make[2]: Leaving directory `/tmp/valgrind.717/valgrind/coregrind'
- make[1]: *** [all-recursive] Error 1
- make[1]: Leaving directory `/tmp/valgrind.717/valgrind'
- make: *** [all] Error 2
--- 3,28 ----
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 202 tests, 17 stderr failures, 1 stdout failure =================
! memcheck/tests/addressable (stderr)
! memcheck/tests/describe-block (stderr)
! memcheck/tests/erringfds (stderr)
! memcheck/tests/leak-0 (stderr)
! memcheck/tests/leak-cycle (stderr)
! memcheck/tests/leak-regroot (stderr)
! memcheck/tests/leak-tree (stderr)
! memcheck/tests/match-overrun (stderr)
! memcheck/tests/mempool (stderr)
! memcheck/tests/partial_load_dflt (stderr)
! memcheck/tests/partial_load_ok (stderr)
! memcheck/tests/partiallydefinedeq (stderr)
! memcheck/tests/pointer-trace (stderr)
! memcheck/tests/sigkill (stderr)
! memcheck/tests/stack_changes (stderr)
! none/tests/x86/faultstatus (stderr)
! none/tests/x86/int (stderr)
! none/tests/x86/seg_override (stdout)
|
|
From: Tom H. <th...@cy...> - 2005-11-09 03:22:45
|
Nightly build on ginetta ( i686, Red Hat 8.0 ) started at 2005-11-09 03:10:14 GMT
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
== 202 tests, 4 stderr failures, 2 stdout failures =================
memcheck/tests/mempool (stderr)
memcheck/tests/pointer-trace (stderr)
none/tests/x86/faultstatus (stderr)
none/tests/x86/int (stderr)
none/tests/x86/seg_override (stdout)
none/tests/x86/yield (stdout)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
launcher.c: In function `main':
launcher.c:201: `debugLog_startup' undeclared (first use in this function)
launcher.c:201: (Each undeclared identifier is reported only once
launcher.c:201: for each function it appears in.)
launcher.c:201: called object is not a function
launcher.c:205: `debugLog' undeclared (first use in this function)
launcher.c:205: called object is not a function
launcher.c:208: called object is not a function
launcher.c:214: `VG_PLATFORM' undeclared (first use in this function)
launcher.c:214: called object is not a function
launcher.c:217: called object is not a function
launcher.c:219: called object is not a function
launcher.c:271: called object is not a function
make[3]: *** [launcher.o] Error 1
make[3]: Leaving directory `/tmp/valgrind.14411/valgrind/coregrind'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/valgrind.14411/valgrind/coregrind'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/valgrind.14411/valgrind'
make: *** [all] Error 2
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Wed Nov 9 03:15:16 2005
--- new.short Wed Nov 9 03:22:40 2005
***************
*** 3,26 ****
Configuring valgrind ... done
! Building valgrind ... failed
- Last 20 lines of verbose log follow echo
- launcher.c: In function `main':
- launcher.c:201: `debugLog_startup' undeclared (first use in this function)
- launcher.c:201: (Each undeclared identifier is reported only once
- launcher.c:201: for each function it appears in.)
- launcher.c:201: called object is not a function
- launcher.c:205: `debugLog' undeclared (first use in this function)
- launcher.c:205: called object is not a function
- launcher.c:208: called object is not a function
- launcher.c:214: `VG_PLATFORM' undeclared (first use in this function)
- launcher.c:214: called object is not a function
- launcher.c:217: called object is not a function
- launcher.c:219: called object is not a function
- launcher.c:271: called object is not a function
- make[3]: *** [launcher.o] Error 1
- make[3]: Leaving directory `/tmp/valgrind.14411/valgrind/coregrind'
- make[2]: *** [all] Error 2
- make[2]: Leaving directory `/tmp/valgrind.14411/valgrind/coregrind'
- make[1]: *** [all-recursive] Error 1
- make[1]: Leaving directory `/tmp/valgrind.14411/valgrind'
- make: *** [all] Error 2
--- 3,16 ----
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 202 tests, 4 stderr failures, 2 stdout failures =================
! memcheck/tests/mempool (stderr)
! memcheck/tests/pointer-trace (stderr)
! none/tests/x86/faultstatus (stderr)
! none/tests/x86/int (stderr)
! none/tests/x86/seg_override (stdout)
! none/tests/x86/yield (stdout)
|
|
From: Tom H. <th...@cy...> - 2005-11-09 03:22:45
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-11-09 03:10:14 GMT 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 == 179 tests, 3 stderr failures, 1 stdout failure ================= memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) none/tests/amd64/faultstatus (stderr) none/tests/mremap2 (stdout) ================================================= == 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 == 177 tests, 1 stderr failure, 1 stdout failure ================= none/tests/amd64/faultstatus (stderr) none/tests/mremap2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Nov 9 03:17:58 2005 --- new.short Wed Nov 9 03:22:40 2005 *************** *** 8,10 **** ! == 177 tests, 1 stderr failure, 1 stdout failure ================= none/tests/amd64/faultstatus (stderr) --- 8,12 ---- ! == 179 tests, 3 stderr failures, 1 stdout failure ================= ! memcheck/tests/partial_load_dflt (stderr) ! memcheck/tests/partial_load_ok (stderr) none/tests/amd64/faultstatus (stderr) |
|
From: Tom H. <th...@cy...> - 2005-11-09 03:20:28
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-11-09 03:05:10 GMT 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 == 179 tests, 3 stderr failures, 1 stdout failure ================= memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) none/tests/amd64/faultstatus (stderr) none/tests/mremap2 (stdout) ================================================= == 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 == 177 tests, 1 stderr failure, 1 stdout failure ================= none/tests/amd64/faultstatus (stderr) none/tests/mremap2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Nov 9 03:14:18 2005 --- new.short Wed Nov 9 03:20:20 2005 *************** *** 8,10 **** ! == 177 tests, 1 stderr failure, 1 stdout failure ================= none/tests/amd64/faultstatus (stderr) --- 8,12 ---- ! == 179 tests, 3 stderr failures, 1 stdout failure ================= ! memcheck/tests/partial_load_dflt (stderr) ! memcheck/tests/partial_load_ok (stderr) none/tests/amd64/faultstatus (stderr) |
|
From: Tom H. <th...@cy...> - 2005-11-09 03:15:52
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-11-09 03:00:03 GMT 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 == 179 tests, 4 stderr failures, 1 stdout failure ================= memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/tls (stdout) ================================================= == 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 == 177 tests, 2 stderr failures, 0 stdout failures ================= none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Nov 9 03:05:11 2005 --- new.short Wed Nov 9 03:15:42 2005 *************** *** 8,12 **** ! == 177 tests, 2 stderr failures, 0 stdout failures ================= none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) --- 8,15 ---- ! == 179 tests, 4 stderr failures, 1 stdout failure ================= ! memcheck/tests/partial_load_dflt (stderr) ! memcheck/tests/partial_load_ok (stderr) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) + none/tests/tls (stdout) |
|
From: Paul M. <pa...@sa...> - 2005-11-09 01:02:43
|
Greg Parker writes: > You probably also need to save the condition register, because some > of the condition register fields are callee-saved in the AIX ABI. And, more relevantly, in the 32-bit PowerPC ELF ABI. Specifically cr2 - cr4 are callee-saved. Paul. |