You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
(14) |
2
(8) |
3
(7) |
|
4
(7) |
5
(7) |
6
(6) |
7
(11) |
8
(10) |
9
(14) |
10
(10) |
|
11
(13) |
12
(15) |
13
(6) |
14
(8) |
15
(6) |
16
(6) |
17
(6) |
|
18
(6) |
19
(11) |
20
(15) |
21
(14) |
22
(11) |
23
(7) |
24
(17) |
|
25
(14) |
26
(28) |
27
(21) |
28
(23) |
29
(21) |
30
(17) |
31
(8) |
|
From: Nicholas N. <nj...@cs...> - 2007-03-19 21:09:33
|
On Mon, 19 Mar 2007 sv...@va... wrote:
> Modified: trunk/coregrind/m_main.c
> ===================================================================
> --- trunk/coregrind/m_main.c 2007-03-19 15:29:23 UTC (rev 6652)
> +++ trunk/coregrind/m_main.c 2007-03-19 18:38:55 UTC (rev 6653)
> @@ -1399,6 +1399,18 @@
> );
> }
>
> +# if defined(VGO_aix5)
> + /* Tolerate ptraced-based launchers. They can't run 'no program'
> + if the user types "valgrind --help", so they run a do-nothing
> + program $prefix/bin/no_op_client_for_valgrind, and we catch that
> + here and turn it the exe name back into NULL. Then --help,
> + --version etc work as they should. */
> + if (VG_(args_the_exename)
> + && VG_(strstr)( VG_(args_the_exename), "/no_op_client_for_valgrind" )) {
> + VG_(args_the_exename) = NULL;
> + }
> +# endif
Does this need to be conditionally compiled? Seems like it could safely
always be there.
Nick
|
|
From: <sv...@va...> - 2007-03-19 18:39:07
|
Author: sewardj
Date: 2007-03-19 18:38:55 +0000 (Mon, 19 Mar 2007)
New Revision: 6653
Log:
Make ptrace-based launchers able to handle --help, --version etc.
Problem is that --help etc are handled by the tool exe. But a
ptrace-based launch scheme can't run "no program" if the user just
types "valgrind --help" because the launcher depends on starting the
client first and only then attaching valgrind to it using ptrace. So
instead provide a dummy do-nothing program to run when no program is
specified. m_main notices this and acts as if there really had been
no program specified.
This has no effect at all on Linux/ELF program launching.
Added:
trunk/coregrind/no_op_client_for_valgrind.c
Modified:
trunk/coregrind/Makefile.am
trunk/coregrind/launcher-aix5.c
trunk/coregrind/m_initimg/initimg-aix5.c
trunk/coregrind/m_main.c
Modified: trunk/coregrind/Makefile.am
===================================================================
--- trunk/coregrind/Makefile.am 2007-03-19 15:29:23 UTC (rev 6652)
+++ trunk/coregrind/Makefile.am 2007-03-19 18:38:55 UTC (rev 6653)
@@ -42,7 +42,7 @@
# Build the launcher (valgrind) for the primary target only.
#
bin_PROGRAMS = \
- valgrind
+ valgrind no_op_client_for_valgrind
if VGO_AIX5
valgrind_SOURCES = \
@@ -59,6 +59,10 @@
valgrind_CFLAGS = $(AM_CFLAGS_PRI)
valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI)
valgrind_LDFLAGS = $(AM_CFLAGS_PRI)
+
+no_op_client_for_valgrind_SOURCES = no_op_client_for_valgrind.c
+no_op_client_for_valgrind_CPPFLAGS = $(AM_CPPFLAGS_PRI)
+no_op_client_for_valgrind_CFLAGS = $(AM_CFLAGS_PRI)
#
#----------------------------------------------------------
Modified: trunk/coregrind/launcher-aix5.c
===================================================================
--- trunk/coregrind/launcher-aix5.c 2007-03-19 15:29:23 UTC (rev 6652)
+++ trunk/coregrind/launcher-aix5.c 2007-03-19 18:38:55 UTC (rev 6653)
@@ -1329,7 +1329,7 @@
Child child;
Int i, loglevel;
const char *toolname = NULL;
- const char *clientname = NULL;
+ char *clientname = NULL;
/* First, look in our own /proc/<pid>/sysent file to find
the syscall numbers for kwrite and _getpid. These are needed
@@ -1421,6 +1421,44 @@
assert(PAGE_SIZE == 4096); /* stay sane */
+ const char* valgrind_lib = VG_LIBDIR;
+
+ /* If there is no program to run, which will be the case if the
+ user just does "valgrind --help", etc, run a dummy do-nothing
+ program so at least the tool can get started and handle the
+ --help/--version etc. It spots the fact that this is a dummy
+ program and acts like it was started with no program, hence
+ behaving the same as the Linux ports would have. */
+ if (clientname == NULL) {
+ Int j;
+ char** new_argv;
+ const char* noop_exe_name = "no_op_client_for_valgrind";
+ const char* up_n_bindir = "/../../bin";
+ clientname = malloc(strlen(valgrind_lib) + strlen(up_n_bindir)
+ + 2 + strlen(noop_exe_name));
+ if (clientname == NULL) {
+ fprintf(stderr,"%s: malloc of clientname failed\n", argv[0]);
+ return 1;
+ }
+ sprintf(clientname, "%s%s/%s", valgrind_lib, up_n_bindir, noop_exe_name);
+ /* now we have to add it to the end of argv, which means making
+ that one word longer. How tedious. */
+ for (j = 0; argv[j]; j++)
+ ;
+ j += 2;
+ new_argv = calloc(j, sizeof(char*));
+ if (new_argv == NULL) {
+ fprintf(stderr,"%s: malloc of new_argv failed\n", argv[0]);
+ return 1;
+ }
+ for (i = 0; i < j-2; i++)
+ new_argv[i] = argv[i];
+ new_argv[j-2] = clientname;
+ assert(new_argv[j-1] == NULL);
+ argv = new_argv;
+ argc++;
+ }
+
if (argc < 2 || toolname == NULL || clientname == NULL)
barf(1, argv[0], "usage: valgrind [args-for-valgrind] prog args");
@@ -1428,7 +1466,7 @@
executable. */
VG_(debugLog)(1, "launcher", "searching for client in $PATH\n");
if (strchr(clientname, '/') == NULL)
- clientname = find_client(clientname);
+ clientname = (char*)find_client(clientname);
VG_(debugLog)(1, "launcher", "found %s\n", clientname);
Int client_exekind = examine_client ( clientname );
@@ -1450,7 +1488,6 @@
VG_(debugLog)(1, "launcher", "client is an XCOFF%d executable\n",
client_exekind);
- const char* valgrind_lib = VG_LIBDIR;
const char* platform = child.is64 ? "ppc64-aix5" : "ppc32-aix5";
VG_(debugLog)(1, "launcher", "looking for the tool file\n");
Modified: trunk/coregrind/m_initimg/initimg-aix5.c
===================================================================
--- trunk/coregrind/m_initimg/initimg-aix5.c 2007-03-19 15:29:23 UTC (rev 6652)
+++ trunk/coregrind/m_initimg/initimg-aix5.c 2007-03-19 18:38:55 UTC (rev 6653)
@@ -96,6 +96,10 @@
IIFinaliseImageInfo iifii;
VG_(memset)( &iifii, 0, sizeof(iifii) );
+ /* this can happen, if m_main decides to NULL it out */
+ if (VG_(args_the_exename) == NULL)
+ VG_(err_missing_prog)();
+
vg_assert( iicii.toolname );
pltool_len = VG_(strlen)( VG_(libdir) )
+ 1 /*slash*/
Modified: trunk/coregrind/m_main.c
===================================================================
--- trunk/coregrind/m_main.c 2007-03-19 15:29:23 UTC (rev 6652)
+++ trunk/coregrind/m_main.c 2007-03-19 18:38:55 UTC (rev 6653)
@@ -1399,6 +1399,18 @@
);
}
+# if defined(VGO_aix5)
+ /* Tolerate ptraced-based launchers. They can't run 'no program'
+ if the user types "valgrind --help", so they run a do-nothing
+ program $prefix/bin/no_op_client_for_valgrind, and we catch that
+ here and turn it the exe name back into NULL. Then --help,
+ --version etc work as they should. */
+ if (VG_(args_the_exename)
+ && VG_(strstr)( VG_(args_the_exename), "/no_op_client_for_valgrind" )) {
+ VG_(args_the_exename) = NULL;
+ }
+# endif
+
//--------------------------------------------------------------
// Extract tool name and whether help has been requested.
// Note we can't print the help message yet, even if requested,
Added: trunk/coregrind/no_op_client_for_valgrind.c
===================================================================
--- trunk/coregrind/no_op_client_for_valgrind.c (rev 0)
+++ trunk/coregrind/no_op_client_for_valgrind.c 2007-03-19 18:38:55 UTC (rev 6653)
@@ -0,0 +1,16 @@
+
+/* This program doesn't do anything. So why is it here? It's a
+ helper for ptraced-based launchers (eg aix5). They can't run 'no
+ program' if the user types "valgrind --help", so they run this
+ do-nothing program. m_main notices that and turns the exe name
+ back into NULL. Then --help, --version etc work as they should. */
+
+#include <stdio.h>
+int main ( void )
+{
+ fprintf(stderr,
+ "This program (part of Valgrind) does nothing except print\n"
+ "this text. You should not see this text. If you do, some\n"
+ "part of valgrind's launch mechanism is not working correctly.\n");
+ return 0;
+}
|
|
From: <sv...@va...> - 2007-03-19 15:29:37
|
Author: sewardj
Date: 2007-03-19 15:29:23 +0000 (Mon, 19 Mar 2007)
New Revision: 6652
Log:
Followup to r6650: tidy up sys_sigreturn/sys_rt_sigreturn on ppc32/64-linux.
Modified:
trunk/coregrind/m_syswrap/syswrap-ppc32-aix5.c
trunk/coregrind/m_syswrap/syswrap-ppc64-aix5.c
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-aix5.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc32-aix5.c 2007-03-19 14:34:08 UTC (rev 6651)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-aix5.c 2007-03-19 15:29:23 UTC (rev 6652)
@@ -669,9 +669,11 @@
PRE(sys_FAKE_SIGRETURN)
{
- ThreadState* tst;
+ /* See comments on PRE(sys_rt_sigreturn) in syswrap-amd64-linux.c for
+ an explanation of what follows. */
/* This handles the fake signal-return system call created by
sigframe-ppc32-aix5.c. */
+
PRINT("FAKE_SIGRETURN ( )");
vg_assert(VG_(is_valid_tid)(tid));
@@ -682,17 +684,13 @@
in the process restoring the pre-signal guest state. */
VG_(sigframe_destroy)(tid, True);
- /* Now the pre-signal registers are restored. Unfortunately the
- syscall driver logic will want to copy back the syscall result
- (not that there is one) into guest r3/r4. So we'd better cook
- up a syscall result which, when copied back, makes no change. */
- tst = VG_(get_ThreadState)(tid);
- SET_STATUS_from_SysRes(
- VG_(mk_SysRes_ppc32_aix5)(
- tst->arch.vex.guest_GPR3,
- tst->arch.vex.guest_GPR4
- )
- );
+ /* Tell the driver not to update the guest state with the "result",
+ and set a bogus result to keep it happy. */
+ *flags |= SfNoWriteResult;
+ SET_STATUS_Success(0);
+
+ /* Check to see if any signals arose as a result of this. */
+ *flags |= SfPollAfter;
}
Modified: trunk/coregrind/m_syswrap/syswrap-ppc64-aix5.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc64-aix5.c 2007-03-19 14:34:08 UTC (rev 6651)
+++ trunk/coregrind/m_syswrap/syswrap-ppc64-aix5.c 2007-03-19 15:29:23 UTC (rev 6652)
@@ -579,9 +579,11 @@
PRE(sys_FAKE_SIGRETURN)
{
- ThreadState* tst;
+ /* See comments on PRE(sys_rt_sigreturn) in syswrap-amd64-linux.c for
+ an explanation of what follows. */
/* This handles the fake signal-return system call created by
sigframe-ppc64-aix5.c. */
+
PRINT("FAKE_SIGRETURN ( )");
vg_assert(VG_(is_valid_tid)(tid));
@@ -592,18 +594,12 @@
in the process restoring the pre-signal guest state. */
VG_(sigframe_destroy)(tid, True);
- /* Now the pre-signal registers are restored. Unfortunately the
- syscall driver logic will want to copy back the syscall result
- (not that there is one) into guest r3/r4. So we'd better cook
- up a syscall result which, when copied back, makes no change. */
- tst = VG_(get_ThreadState)(tid);
- SET_STATUS_from_SysRes(
- VG_(mk_SysRes_ppc64_aix5)(
- tst->arch.vex.guest_GPR3,
- tst->arch.vex.guest_GPR4
- )
- );
+ /* Tell the driver not to update the guest state with the "result",
+ and set a bogus result to keep it happy. */
+ *flags |= SfNoWriteResult;
+ SET_STATUS_Success(0);
+ /* Check to see if any signals arose as a result of this. */
*flags |= SfPollAfter;
}
|
|
From: <sv...@va...> - 2007-03-19 14:34:23
|
Author: sewardj
Date: 2007-03-19 14:34:08 +0000 (Mon, 19 Mar 2007)
New Revision: 6651
Log:
Followup to r6650: tidy up sys_sigreturn/sys_rt_sigreturn on ppc32/64-linux.
Modified:
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2007-03-19 13:38:11 UTC (rev 6650)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2007-03-19 14:34:08 UTC (rev 6651)
@@ -487,7 +487,7 @@
*flags |= SfNoWriteResult;
SET_STATUS_Success(0);
- /* Check to see if some any signals arose as a result of this. */
+ /* Check to see if any signals arose as a result of this. */
*flags |= SfPollAfter;
}
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2007-03-19 13:38:11 UTC (rev 6650)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2007-03-19 14:34:08 UTC (rev 6651)
@@ -1024,8 +1024,11 @@
PRE(sys_sigreturn)
{
+ /* See comments on PRE(sys_rt_sigreturn) in syswrap-amd64-linux.c for
+ an explanation of what follows. */
+
ThreadState* tst;
- PRINT("sigreturn ( )");
+ PRINT("sys_sigreturn ( )");
vg_assert(VG_(is_valid_tid)(tid));
vg_assert(tid >= 1 && tid < VG_N_THREADS);
@@ -1042,38 +1045,23 @@
//ML_(fixup_guest_state_to_restart_syscall)(&tst->arch);
// Should we do something equivalent on ppc32? Who knows.
+ /* Restore register state from frame and remove it */
VG_(sigframe_destroy)(tid, False);
- /* For unclear reasons, it appears we need the syscall to return
- without changing R3. Since R3 is the return value, and can
- denote either success or failure, we must set up so that the
- driver logic copies it back unchanged. Also, note R3 is of
- the guest registers written by VG_(sigframe_destroy). */
- /* jrs 16 Nov 05: for some reason this occasionally causes the
- is-this-a-sane-error-value sanity check to fail:
- m_syswrap/syswrap-ppc32-linux.c:1037
- (vgSysWrap_ppc32_linux_sys_sigreturn_before):
- Assertion 'wzz >= 0 && wzz < 10000' failed.
- Hence use a sanity-check-free version.
- Perhaps we should ignore CR0.S0 here?
- In general I have no idea what this is for or if it is necessary.
- It's a conceptual copy-n-paste from the x86 equivalent, but I'm
- equally unclear as to whether it is needed there either.
- */
- SET_STATUS_from_SysRes(
- VG_(mk_SysRes_ppc32_linux)(
- tst->arch.vex.guest_GPR3,
- /* get CR0.SO */
- (LibVEX_GuestPPC32_get_CR( &tst->arch.vex ) >> 28) & 1
- )
- );
+ /* Tell the driver not to update the guest state with the "result",
+ and set a bogus result to keep it happy. */
+ *flags |= SfNoWriteResult;
+ SET_STATUS_Success(0);
- /* Check to see if some any signals arose as a result of this. */
+ /* Check to see if any signals arose as a result of this. */
*flags |= SfPollAfter;
}
PRE(sys_rt_sigreturn)
{
+ /* See comments on PRE(sys_rt_sigreturn) in syswrap-amd64-linux.c for
+ an explanation of what follows. */
+
ThreadState* tst;
PRINT("rt_sigreturn ( )");
@@ -1092,18 +1080,15 @@
//ML_(fixup_guest_state_to_restart_syscall)(&tst->arch);
// Should we do something equivalent on ppc32? Who knows.
+ /* Restore register state from frame and remove it */
VG_(sigframe_destroy)(tid, True);
- /* See comments above in PRE(sys_sigreturn) about this. */
- SET_STATUS_from_SysRes(
- VG_(mk_SysRes_ppc32_linux)(
- tst->arch.vex.guest_GPR3,
- /* get CR0.SO */
- (LibVEX_GuestPPC32_get_CR( &tst->arch.vex ) >> 28) & 1
- )
- );
+ /* Tell the driver not to update the guest state with the "result",
+ and set a bogus result to keep it happy. */
+ *flags |= SfNoWriteResult;
+ SET_STATUS_Success(0);
- /* Check to see if some any signals arose as a result of this. */
+ /* Check to see if any signals arose as a result of this. */
*flags |= SfPollAfter;
}
Modified: trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2007-03-19 13:38:11 UTC (rev 6650)
+++ trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2007-03-19 14:34:08 UTC (rev 6651)
@@ -1000,60 +1000,13 @@
}
}
-//zz PRE(sys_sigreturn)
-//zz {
-//zz ThreadState* tst;
-//zz PRINT("sigreturn ( )");
-//zz
-//zz vg_assert(VG_(is_valid_tid)(tid));
-//zz vg_assert(tid >= 1 && tid < VG_N_THREADS);
-//zz vg_assert(VG_(is_running_thread)(tid));
-//zz
-//zz ///* Adjust esp to point to start of frame; skip back up over
-//zz // sigreturn sequence's "popl %eax" and handler ret addr */
-//zz tst = VG_(get_ThreadState)(tid);
-//zz //tst->arch.vex.guest_ESP -= sizeof(Addr)+sizeof(Word);
-//zz // Should we do something equivalent on ppc64? Who knows.
-//zz
-//zz ///* This is only so that the EIP is (might be) useful to report if
-//zz // something goes wrong in the sigreturn */
-//zz //ML_(fixup_guest_state_to_restart_syscall)(&tst->arch);
-//zz // Should we do something equivalent on ppc64? Who knows.
-//zz
-//zz VG_(sigframe_destroy)(tid, False);
-//zz
-//zz /* For unclear reasons, it appears we need the syscall to return
-//zz without changing R3. Since R3 is the return value, and can
-//zz denote either success or failure, we must set up so that the
-//zz driver logic copies it back unchanged. Also, note R3 is of
-//zz the guest registers written by VG_(sigframe_destroy). */
-//zz /* jrs 16 Nov 05: for some reason this occasionally causes the
-//zz is-this-a-sane-error-value sanity check to fail:
-//zz m_syswrap/syswrap-ppc64-linux.c:1037
-//zz (vgSysWrap_ppc64_linux_sys_sigreturn_before):
-//zz Assertion 'wzz >= 0 && wzz < 10000' failed.
-//zz Hence use a sanity-check-free version.
-//zz Perhaps we should ignore CR0.S0 here?
-//zz In general I have no idea what this is for or if it is necessary.
-//zz It's a conceptual copy-n-paste from the x86 equivalent, but I'm
-//zz equally unclear as to whether it is needed there either.
-//zz */
-//zz SET_STATUS_from_SysRes_NO_SANITY_CHECK(
-//zz VG_(mk_SysRes_ppc64_linux)(
-//zz tst->arch.vex.guest_GPR3,
-//zz /* get CR0.SO */
-//zz (LibVEX_GuestPPC32_get_CR( &tst->arch.vex ) >> 28) & 1
-//zz )
-//zz );
-//zz
-//zz /* Check to see if some any signals arose as a result of this. */
-//zz *flags |= SfPollAfter;
-//zz }
-
PRE(sys_rt_sigreturn)
{
+ /* See comments on PRE(sys_rt_sigreturn) in syswrap-amd64-linux.c for
+ an explanation of what follows. */
+
ThreadState* tst;
- PRINT("rt_sigreturn ( )");
+ PRINT("sys_rt_sigreturn ( )");
vg_assert(VG_(is_valid_tid)(tid));
vg_assert(tid >= 1 && tid < VG_N_THREADS);
@@ -1063,25 +1016,22 @@
// ret addr */
tst = VG_(get_ThreadState)(tid);
//tst->arch.vex.guest_ESP -= sizeof(Addr);
- // Should we do something equivalent on ppc64? Who knows.
+ // Should we do something equivalent on ppc64-linux? Who knows.
///* This is only so that the EIP is (might be) useful to report if
// something goes wrong in the sigreturn */
//ML_(fixup_guest_state_to_restart_syscall)(&tst->arch);
// Should we do something equivalent on ppc64? Who knows.
+ /* Restore register state from frame and remove it */
VG_(sigframe_destroy)(tid, True);
- /* See comments above in PRE(sys_sigreturn) about this. */
- SET_STATUS_from_SysRes(
- VG_(mk_SysRes_ppc64_linux)(
- tst->arch.vex.guest_GPR3,
- /* get CR0.SO */
- (LibVEX_GuestPPC64_get_CR( &tst->arch.vex ) >> 28) & 1
- )
- );
+ /* Tell the driver not to update the guest state with the "result",
+ and set a bogus result to keep it happy. */
+ *flags |= SfNoWriteResult;
+ SET_STATUS_Success(0);
- /* Check to see if some any signals arose as a result of this. */
+ /* Check to see if any signals arose as a result of this. */
*flags |= SfPollAfter;
}
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2007-03-19 13:38:11 UTC (rev 6650)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2007-03-19 14:34:08 UTC (rev 6651)
@@ -963,7 +963,7 @@
*flags |= SfNoWriteResult;
SET_STATUS_Success(0);
- /* Check to see if some any signals arose as a result of this. */
+ /* Check to see if any signals arose as a result of this. */
*flags |= SfPollAfter;
}
@@ -997,7 +997,7 @@
*flags |= SfNoWriteResult;
SET_STATUS_Success(0);
- /* Check to see if some any signals arose as a result of this. */
+ /* Check to see if any signals arose as a result of this. */
*flags |= SfPollAfter;
}
|
|
From: <sv...@va...> - 2007-03-19 13:38:20
|
Author: sewardj
Date: 2007-03-19 13:38:11 +0000 (Mon, 19 Mar 2007)
New Revision: 6650
Log:
Document and tidy up one of the more arcane corners of signal
handling: why PRE(sys_sigreturn) has to construct a fake syscall
return value which, when written back to the guest state, leaves it
unchanged. It's only taken me about 3 years to realise why :-)
Fixes to ppc platforms to follow.
Modified:
trunk/coregrind/m_syswrap/priv_types_n_macros.h
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-main.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_syswrap/priv_types_n_macros.h
===================================================================
--- trunk/coregrind/m_syswrap/priv_types_n_macros.h 2007-03-14 11:57:37 UTC (rev 6649)
+++ trunk/coregrind/m_syswrap/priv_types_n_macros.h 2007-03-19 13:38:11 UTC (rev 6650)
@@ -94,10 +94,11 @@
SyscallArgLayout;
/* Flags describing syscall wrappers */
-#define SfMayBlock (1 << 1) /* may block */
-#define SfPostOnFail (1 << 2) /* call POST() function on failure */
-#define SfPollAfter (1 << 3) /* poll for signals on completion */
-#define SfYieldAfter (1 << 4) /* yield on completion */
+#define SfMayBlock (1 << 1) /* may block */
+#define SfPostOnFail (1 << 2) /* call POST() function on failure */
+#define SfPollAfter (1 << 3) /* poll for signals on completion */
+#define SfYieldAfter (1 << 4) /* yield on completion */
+#define SfNoWriteResult (1 << 5) /* don't write result to guest state */
/* ---------------------------------------------------------------------
@@ -312,14 +313,7 @@
status->sres = (zzz); \
} while (0)
-/* A lamentable kludge */
-#define SET_STATUS_Failure_NO_SANITY_CHECK(zzz) \
- do { Word wzz = (Word)(zzz); \
- status->what = SsFailure; \
- status->val = wzz; \
- } while (0)
-
#define PRINT(format, args...) \
if (VG_(clo_trace_syscalls)) \
VG_(printf)(format, ## args)
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2007-03-14 11:57:37 UTC (rev 6649)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2007-03-19 13:38:11 UTC (rev 6650)
@@ -451,30 +451,41 @@
PRE(sys_rt_sigreturn)
{
+ /* This isn't really a syscall at all - it's a misuse of the
+ syscall mechanism by m_sigframe. VG_(sigframe_create) sets the
+ return address of the signal frames it creates to be a short
+ piece of code which does this "syscall". The only purpose of
+ the syscall is to call VG_(sigframe_destroy), which restores the
+ thread's registers from the frame and then removes it.
+ Consequently we must ask the syswrap driver logic not to write
+ back the syscall "result" as that would overwrite the
+ just-restored register state. */
+
ThreadState* tst;
- PRINT("rt_sigreturn ( )");
+ PRINT("sys_rt_sigreturn ( )");
vg_assert(VG_(is_valid_tid)(tid));
vg_assert(tid >= 1 && tid < VG_N_THREADS);
vg_assert(VG_(is_running_thread)(tid));
- /* Adjust esp to point to start of frame; skip back up over handler
+ /* Adjust RSP to point to start of frame; skip back up over handler
ret addr */
tst = VG_(get_ThreadState)(tid);
tst->arch.vex.guest_RSP -= sizeof(Addr);
/* This is only so that the RIP is (might be) useful to report if
- something goes wrong in the sigreturn */
+ something goes wrong in the sigreturn. JRS 20070318: no idea
+ what this is for */
ML_(fixup_guest_state_to_restart_syscall)(&tst->arch);
+ /* Restore register state from frame and remove it, as
+ described above */
VG_(sigframe_destroy)(tid, True);
- /* For unclear reasons, it appears we need the syscall to return
- without changing %RAX. Since %RAX is the return value, and can
- denote either success or failure, we must set up so that the
- driver logic copies it back unchanged. Also, note %RAX is of
- the guest registers written by VG_(sigframe_destroy). */
- SET_STATUS_from_SysRes( VG_(mk_SysRes_amd64_linux)( tst->arch.vex.guest_RAX ) );
+ /* Tell the driver not to update the guest state with the "result",
+ and set a bogus result to keep it happy. */
+ *flags |= SfNoWriteResult;
+ SET_STATUS_Success(0);
/* Check to see if some any signals arose as a result of this. */
*flags |= SfPollAfter;
Modified: trunk/coregrind/m_syswrap/syswrap-main.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-main.c 2007-03-14 11:57:37 UTC (rev 6649)
+++ trunk/coregrind/m_syswrap/syswrap-main.c 2007-03-19 13:38:11 UTC (rev 6650)
@@ -858,12 +858,17 @@
if (sci->status.what == SsComplete && !sci->status.sres.isError) {
/* The pre-handler completed the syscall itself, declaring
success. */
- PRINT(" --> [pre-success] Success(0x%llx)\n", (ULong)sci->status.sres.res );
-
+ if (sci->flags & SfNoWriteResult) {
+ PRINT(" --> [pre-success] NoWriteResult\n");
+ } else {
+ PRINT(" --> [pre-success] Success(0x%llx)\n",
+ (ULong)sci->status.sres.res );
+ }
/* In this case the allowable flags are to ask for a signal-poll
and/or a yield after the call. Changing the args isn't
allowed. */
- vg_assert(0 == (sci->flags & ~(SfPollAfter | SfYieldAfter)));
+ vg_assert(0 == (sci->flags
+ & ~(SfPollAfter | SfYieldAfter | SfNoWriteResult)));
vg_assert(eq_SyscallArgs(&sci->args, &sci->orig_args));
}
@@ -971,7 +976,8 @@
/* Dump the syscall result back in the guest state. This is
a platform-specific action. */
- putSyscallStatusIntoGuestState( &sci->status, &tst->arch.vex );
+ if (!(sci->flags & SfNoWriteResult))
+ putSyscallStatusIntoGuestState( &sci->status, &tst->arch.vex );
/* Situation now:
- the guest state is now correctly modified following the syscall
@@ -1022,11 +1028,13 @@
/* Validate current syscallInfo entry. In particular we require
that the current .status matches what's actually in the guest
- state. */
+ state. At least in the normal case where we have actually
+ previously written the result into the guest state. */
vg_assert(sci->status.what == SsComplete);
getSyscallStatusFromGuestState( &test_status, &tst->arch.vex );
- vg_assert(eq_SyscallStatus( &sci->status, &test_status ));
+ if (!(sci->flags & SfNoWriteResult))
+ vg_assert(eq_SyscallStatus( &sci->status, &test_status ));
/* Ok, looks sane */
/* Get the system call number. Because the pre-handler isn't
@@ -1061,7 +1069,8 @@
post-handler for sys_open can change the result from success to
failure if the kernel supplied a fd that it doesn't like), once
again dump the syscall result back in the guest state.*/
- putSyscallStatusIntoGuestState( &sci->status, &tst->arch.vex );
+ if (!(sci->flags & SfNoWriteResult))
+ putSyscallStatusIntoGuestState( &sci->status, &tst->arch.vex );
/* Do any post-syscall actions required by the tool. */
if (VG_(needs).syscall_wrapper)
@@ -1314,7 +1323,8 @@
canonical = convert_SysRes_to_SyscallStatus(
VG_(mk_SysRes_Error)( VKI_EINTR )
);
- putSyscallStatusIntoGuestState( &canonical, &th_regs->vex );
+ if (!(sci->flags & SfNoWriteResult))
+ putSyscallStatusIntoGuestState( &canonical, &th_regs->vex );
sci->status = canonical;
VG_(post_syscall)(tid);
}
@@ -1328,7 +1338,8 @@
if (debug)
VG_(printf)(" completed\n");
canonical = convert_SysRes_to_SyscallStatus( sres );
- putSyscallStatusIntoGuestState( &canonical, &th_regs->vex );
+ if (!(sci->flags & SfNoWriteResult))
+ putSyscallStatusIntoGuestState( &canonical, &th_regs->vex );
sci->status = canonical;
VG_(post_syscall)(tid);
}
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2007-03-14 11:57:37 UTC (rev 6649)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2007-03-19 13:38:11 UTC (rev 6650)
@@ -935,8 +935,11 @@
PRE(sys_sigreturn)
{
+ /* See comments on PRE(sys_rt_sigreturn) in syswrap-amd64-linux.c for
+ an explanation of what follows. */
+
ThreadState* tst;
- PRINT("sigreturn ( )");
+ PRINT("sys_sigreturn ( )");
vg_assert(VG_(is_valid_tid)(tid));
vg_assert(tid >= 1 && tid < VG_N_THREADS);
@@ -946,19 +949,19 @@
sigreturn sequence's "popl %eax" and handler ret addr */
tst = VG_(get_ThreadState)(tid);
tst->arch.vex.guest_ESP -= sizeof(Addr)+sizeof(Word);
+ /* XXX why does ESP change differ from rt_sigreturn case below? */
/* This is only so that the EIP is (might be) useful to report if
something goes wrong in the sigreturn */
ML_(fixup_guest_state_to_restart_syscall)(&tst->arch);
+ /* Restore register state from frame and remove it */
VG_(sigframe_destroy)(tid, False);
- /* For unclear reasons, it appears we need the syscall to return
- without changing %EAX. Since %EAX is the return value, and can
- denote either success or failure, we must set up so that the
- driver logic copies it back unchanged. Also, note %EAX is of
- the guest registers written by VG_(sigframe_destroy). */
- SET_STATUS_from_SysRes( VG_(mk_SysRes_x86_linux)( tst->arch.vex.guest_EAX ) );
+ /* Tell the driver not to update the guest state with the "result",
+ and set a bogus result to keep it happy. */
+ *flags |= SfNoWriteResult;
+ SET_STATUS_Success(0);
/* Check to see if some any signals arose as a result of this. */
*flags |= SfPollAfter;
@@ -966,8 +969,11 @@
PRE(sys_rt_sigreturn)
{
+ /* See comments on PRE(sys_rt_sigreturn) in syswrap-amd64-linux.c for
+ an explanation of what follows. */
+
ThreadState* tst;
- PRINT("rt_sigreturn ( )");
+ PRINT("sys_rt_sigreturn ( )");
vg_assert(VG_(is_valid_tid)(tid));
vg_assert(tid >= 1 && tid < VG_N_THREADS);
@@ -977,19 +983,19 @@
ret addr */
tst = VG_(get_ThreadState)(tid);
tst->arch.vex.guest_ESP -= sizeof(Addr);
+ /* XXX why does ESP change differ from sigreturn case above? */
/* This is only so that the EIP is (might be) useful to report if
something goes wrong in the sigreturn */
ML_(fixup_guest_state_to_restart_syscall)(&tst->arch);
+ /* Restore register state from frame and remove it */
VG_(sigframe_destroy)(tid, True);
- /* For unclear reasons, it appears we need the syscall to return
- without changing %EAX. Since %EAX is the return value, and can
- denote either success or failure, we must set up so that the
- driver logic copies it back unchanged. Also, note %EAX is of
- the guest registers written by VG_(sigframe_destroy). */
- SET_STATUS_from_SysRes( VG_(mk_SysRes_x86_linux)( tst->arch.vex.guest_EAX ) );
+ /* Tell the driver not to update the guest state with the "result",
+ and set a bogus result to keep it happy. */
+ *flags |= SfNoWriteResult;
+ SET_STATUS_Success(0);
/* Check to see if some any signals arose as a result of this. */
*flags |= SfPollAfter;
|
|
From: <js...@ac...> - 2007-03-19 11:28:52
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-03-19 09:00:01 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 219 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: Tom H. <th...@cy...> - 2007-03-19 04:46:11
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-03-19 03:00:02 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 293 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/tls (stdout) |
|
From: Tom H. <th...@cy...> - 2007-03-19 03:47:46
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-03-19 03:05:06 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 291 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/tls (stdout) |
|
From: Tom H. <th...@cy...> - 2007-03-19 03:25:29
|
Nightly build on dellow ( x86_64, Fedora Core 6 ) started at 2007-03-19 03:10:04 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 291 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) |
|
From: Tom H. <th...@cy...> - 2007-03-19 03:22:54
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-03-19 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 Last 20 lines of verbose log follow echo /tmp/ccf0V2Po.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccf0V2Po.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccf0V2Po.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccf0V2Po.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccf0V2Po.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccf0V2Po.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccf0V2Po.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccf0V2Po.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 rm insn_mmx.c insn_sse2.c insn_fpu.c insn_mmxext.c insn_sse.c insn_sse3.c insn_cmov.c insn_basic.c make[5]: Leaving directory `/tmp/vgtest/2007-03-19/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/vgtest/2007-03-19/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/vgtest/2007-03-19/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/vgtest/2007-03-19/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/vgtest/2007-03-19/valgrind' make: *** [check] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo /tmp/ccduOQXd.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccduOQXd.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccduOQXd.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccduOQXd.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccduOQXd.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccduOQXd.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccduOQXd.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccduOQXd.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 rm insn_mmx.c insn_sse2.c insn_fpu.c insn_mmxext.c insn_sse.c insn_sse3.c insn_cmov.c insn_basic.c make[5]: Leaving directory `/tmp/vgtest/2007-03-19/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/vgtest/2007-03-19/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/vgtest/2007-03-19/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/vgtest/2007-03-19/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/vgtest/2007-03-19/valgrind' make: *** [check] Error 2 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 19 03:18:54 2007 --- new.short Mon Mar 19 03:22:40 2007 *************** *** 7,16 **** Last 20 lines of verbose log follow echo ! /tmp/ccduOQXd.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccduOQXd.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccduOQXd.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccduOQXd.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccduOQXd.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccduOQXd.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccduOQXd.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccduOQXd.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 --- 7,16 ---- Last 20 lines of verbose log follow echo ! /tmp/ccf0V2Po.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccf0V2Po.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccf0V2Po.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccf0V2Po.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccf0V2Po.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccf0V2Po.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccf0V2Po.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccf0V2Po.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 |
|
From: <js...@ac...> - 2007-03-19 01:08:31
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-03-19 02:00:01 CET Results differ from 24 hours ago Checking out valgrind source tree ... failed Last 20 lines of verbose log follow echo Checking out valgrind source tree ... svn co svn://svn.valgrind.org/valgrind/trunk -r {2007-03-19T02:00:01} valgrind svn: Can't connect to host 'svn.valgrind.org': No route to host ================================================= == 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 == 226 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 19 02:08:10 2007 --- new.short Mon Mar 19 02:08:11 2007 *************** *** 1,18 **** ! Checking out valgrind source tree ... done ! Configuring valgrind ... done ! Building valgrind ... done ! Running regression tests ... failed ! Regression test results follow ! ! == 226 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == ! memcheck/tests/deep_templates (stdout) ! memcheck/tests/leak-cycle (stderr) ! memcheck/tests/leak-tree (stderr) ! memcheck/tests/pointer-trace (stderr) ! none/tests/faultstatus (stderr) ! none/tests/fdleak_cmsg (stderr) ! none/tests/mremap (stderr) ! none/tests/mremap2 (stdout) --- 1,7 ---- ! Checking out valgrind source tree ... failed ! Last 20 lines of verbose log follow echo + Checking out valgrind source tree ... svn co svn://svn.valgrind.org/valgrind/trunk -r {2007-03-19T02:00:01} valgrind + svn: Can't connect to host 'svn.valgrind.org': No route to host |