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
(31) |
2
(27) |
|
3
(25) |
4
(21) |
5
(21) |
6
(21) |
7
(32) |
8
(23) |
9
(15) |
|
10
(12) |
11
(9) |
12
(10) |
13
(10) |
14
(9) |
15
(7) |
16
(20) |
|
17
(14) |
18
(71) |
19
(67) |
20
(50) |
21
(25) |
22
(15) |
23
(37) |
|
24
(25) |
25
(41) |
26
(34) |
27
(57) |
28
(20) |
29
(30) |
30
(13) |
|
31
(18) |
|
|
|
|
|
|
Author: njn Date: 2005-07-03 00:13:59 +0100 (Sun, 03 Jul 2005) New Revision: 4092 Log: Removed the remnants of the attempt at an ARM port, because it had bit-rotted badly and was clogging up the code. I put the useful remnants in docs/porting-to-ARM in case anyone ever wants to try porting to ARM again. Added: trunk/docs/porting-to-ARM Removed: trunk/cachegrind/cg-arm.c trunk/cachegrind/tests/arm/ trunk/coregrind/m_dispatch/dispatch-arm.S trunk/coregrind/m_sigframe/sigframe-arm-linux.c trunk/coregrind/m_syswrap/syscall-arm-linux.S trunk/coregrind/m_syswrap/syswrap-arm-linux.c trunk/coregrind/vki_unistd-arm-linux.h trunk/include/vki-arm-linux.h trunk/include/vki_posixtypes-arm-linux.h trunk/memcheck/tests/arm/ trunk/none/tests/arm/ Modified: trunk/configure.in trunk/coregrind/Makefile.am trunk/coregrind/m_scheduler/scheduler.c trunk/coregrind/m_signals.c trunk/coregrind/pub_core_machine.h trunk/coregrind/pub_core_threadstate.h trunk/coregrind/vki_unistd.h trunk/docs/Makefile.am trunk/include/Makefile.am trunk/include/pub_tool_basics.h trunk/include/pub_tool_machine.h trunk/include/valgrind.h trunk/tests/cputest.c trunk/valgrind.spec.in [... diff too large to include ...] |
|
From: <sv...@va...> - 2005-07-02 21:16:34
|
Author: sewardj
Date: 2005-07-02 22:16:30 +0100 (Sat, 02 Jul 2005)
New Revision: 4091
Log:
Make the unique tags printed on XML errors actually unique.
Modified:
trunk/coregrind/m_errormgr.c
Modified: trunk/coregrind/m_errormgr.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_errormgr.c 2005-07-02 21:14:19 UTC (rev 4090)
+++ trunk/coregrind/m_errormgr.c 2005-07-02 21:16:30 UTC (rev 4091)
@@ -99,6 +99,10 @@
*/
struct _Error {
struct _Error* next;
+ // Unique tag. This gives the error a unique identity (handle) by
+ // which it can be referred to afterwords. Currently only used for
+ // XML printing.
+ UInt unique;
// NULL if unsuppressed; or ptr to suppression record.
Supp* supp;
Int count;
@@ -269,8 +273,8 @@
{
if (VG_(clo_xml)) {
VG_(message)(Vg_UserMsg, "<error>");
- VG_(message)(Vg_UserMsg, " <unique>0x%llx</unique>",
- Ptr_to_ULong(err));
+ VG_(message)(Vg_UserMsg, " <unique>0x%x</unique>",
+ err->unique);
VG_(message)(Vg_UserMsg, " <tid>%d</tid>", err->tid);
}
=20
@@ -352,9 +356,13 @@
void construct_error ( Error* err, ThreadId tid, ErrorKind ekind, Addr a=
,
Char* s, void* extra, ExeContext* where )
{
+ /* DO NOT MAKE unique_counter NON-STATIC */
+ static UInt unique_counter =3D 0;
+
tl_assert(tid < VG_N_THREADS);
=20
/* Core-only parts */
+ err->unique =3D unique_counter++;
err->next =3D NULL;
err->supp =3D NULL;
err->count =3D 1;
|
|
From: <sv...@va...> - 2005-07-02 21:15:11
|
Author: njn Date: 2005-07-02 22:14:19 +0100 (Sat, 02 Jul 2005) New Revision: 4090 Log: xml1: add another .stderr.exp file for slightly different systems, and make the stderr.exp64 consistent with the improved filtering. Added: trunk/memcheck/tests/xml1.stderr.exp2 Modified: trunk/memcheck/tests/Makefile.am trunk/memcheck/tests/xml1.stderr.exp64 Modified: trunk/memcheck/tests/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/tests/Makefile.am 2005-07-02 20:43:05 UTC (rev 4089) +++ trunk/memcheck/tests/Makefile.am 2005-07-02 21:14:19 UTC (rev 4090) @@ -82,7 +82,8 @@ metadata.stderr.exp metadata.stdout.exp metadata.vgtest-HIDING \ vgtest_ume.stderr.exp vgtest_ume.vgtest \ writev.stderr.exp writev.stderr.exp2 writev.stderr.exp3 writev.vgtest \ - xml1.stderr.exp xml1.stderr.exp64 xml1.stdout.exp xml1.vgtest \ + xml1.stderr.exp xml1.stderr.exp2 xml1.stderr.exp64 xml1.stdout.exp \ + xml1.vgtest \ zeropage.stderr.exp zeropage.stderr.exp2 zeropage.stdout.exp \ zeropage.vgtest =20 Added: trunk/memcheck/tests/xml1.stderr.exp2 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/tests/xml1.stderr.exp2 2005-07-02 20:43:05 UTC (rev 40= 89) +++ trunk/memcheck/tests/xml1.stderr.exp2 2005-07-02 21:14:19 UTC (rev 40= 90) @@ -0,0 +1,422 @@ +<?xml version=3D"1.0"?> + +<valgrindoutput> + +<protocolversion>1</protocolversion> + +<preamble> + <line>...</line> + <line>...</line> + <line>...</line> + <line>...</line> + <line>...</line> + <line>...</line> +</preamble> + +<pid>...</pid> +<ppid>...</ppid> +<tool>memcheck</tool> + +<argv> + <exe>./xml1</exe> +</argv> + +<status>RUNNING</status> + +<error> + <unique>0x........</unique> + <tid>...</tid> + <kind>InvalidRead</kind> + <what>Invalid read of size 4</what> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame3</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame2</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame1</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + </stack> + <auxwhat>Address 0x........ is 0 bytes after a block of size 40 alloc'= d</auxwhat> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>malloc</fn> + <dir>...</dir> + <file>vg_replace_malloc.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame3</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame2</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame1</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + </stack> +</error> + +<error> + <unique>0x........</unique> + <tid>...</tid> + <kind>UninitCondition</kind> + <what>Conditional jump or move depends on uninitialised value(s)</what= > + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame3</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame2</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame1</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + </stack> +</error> + +<error> + <unique>0x........</unique> + <tid>...</tid> + <kind>UninitValue</kind> + <what>Use of uninitialised value of size 4</what> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame3</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame2</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame1</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + </stack> +</error> + +<error> + <unique>0x........</unique> + <tid>...</tid> + <kind>InvalidFree</kind> + <what>Invalid free() / delete / delete[]</what> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>free</fn> + <dir>...</dir> + <file>vg_replace_malloc.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame3</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame2</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame1</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + </stack> + <auxwhat>Address 0x........ is 0 bytes inside a block of size 40 free'= d</auxwhat> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>free</fn> + <dir>...</dir> + <file>vg_replace_malloc.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame3</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame2</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame1</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + </stack> +</error> + +<error> + <unique>0x........</unique> + <tid>...</tid> + <kind>InvalidFree</kind> + <what>Invalid free() / delete / delete[]</what> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>free</fn> + <dir>...</dir> + <file>vg_replace_malloc.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame3</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame2</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame1</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + </stack> + <auxwhat>Address 0x........ is on thread 1's stack</auxwhat> +</error> + +<error> + <unique>0x........</unique> + <tid>...</tid> + <kind>SyscallParam</kind> + <what>Syscall param exit(exitcode) contains uninitialised byte(s)</wha= t> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>_Exit</fn> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>__libc_start_main</fn> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + </frame> + </stack> +</error> + +<errorcounts> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> +</errorcounts> + +<status>FINISHED</status> + +<suppcounts>...</suppcounts> + +<error> + <unique>0x........</unique> + <tid>...</tid> + <kind>Leak_DefinitelyLost</kind> + <what>396 bytes in 1 blocks are definitely lost in loss record 1 of 1<= /what> + <leakedbytes>396</leakedbytes> + <leakedblocks>1</leakedblocks> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>malloc</fn> + <dir>...</dir> + <file>vg_replace_malloc.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame3</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame2</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>frame1</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>xml1.c</file> + <line>...</line> + </frame> + </stack> +</error> + +</valgrindoutput> + Modified: trunk/memcheck/tests/xml1.stderr.exp64 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/tests/xml1.stderr.exp64 2005-07-02 20:43:05 UTC (rev 4= 089) +++ trunk/memcheck/tests/xml1.stderr.exp64 2005-07-02 21:14:19 UTC (rev 4= 090) @@ -363,23 +363,17 @@ </error> =20 <errorcounts> - <pair> <count>1</count> <unique>0x........</unique> </pair> - <pair> <count>1</count> <unique>0x........</unique> </pair> - <pair> <count>1</count> <unique>0x........</unique> </pair> - <pair> <count>1</count> <unique>0x........</unique> </pair> - <pair> <count>1</count> <unique>0x........</unique> </pair> - <pair> <count>1</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> </errorcounts> =20 <status>FINISHED</status> =20 -<suppcounts> - <pair> <count>3</count> <name>index-not-intercepted-early-enough-HACK-= 1</name> </pair> - <pair> <count>1</count> <name>strlen-not-intercepted-early-enough-HACK= -5</name> </pair> - <pair> <count>1</count> <name>strlen-not-intercepted-early-enough-HACK= -4</name> </pair> - <pair> <count>1</count> <name>strlen-not-intercepted-early-enough-HACK= -3</name> </pair> - <pair> <count>2</count> <name>dl_relocate_object</name> </pair> -</suppcounts> +<suppcounts>...</suppcounts> =20 <error> <unique>0x........</unique> |
|
From: <sv...@va...> - 2005-07-02 20:43:08
|
Author: sewardj Date: 2005-07-02 21:43:05 +0100 (Sat, 02 Jul 2005) New Revision: 4089 Log: Update expected output. Hopefully this won't be so fragile now (famous last words). Modified: trunk/memcheck/tests/xml1.stderr.exp Modified: trunk/memcheck/tests/xml1.stderr.exp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/tests/xml1.stderr.exp 2005-07-02 20:41:25 UTC (rev 408= 8) +++ trunk/memcheck/tests/xml1.stderr.exp 2005-07-02 20:43:05 UTC (rev 408= 9) @@ -358,19 +358,17 @@ </error> =20 <errorcounts> - <pair> <count>1</count> <unique>0x........</unique> </pair> - <pair> <count>1</count> <unique>0x........</unique> </pair> - <pair> <count>1</count> <unique>0x........</unique> </pair> - <pair> <count>1</count> <unique>0x........</unique> </pair> - <pair> <count>1</count> <unique>0x........</unique> </pair> - <pair> <count>1</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> <count>...</count> <unique>0x........</unique> </pair> </errorcounts> =20 <status>FINISHED</status> =20 -<suppcounts> - <pair> <count>18</count> <name>Ugly strchr error in /lib/ld-2.3.3.so</= name> </pair> -</suppcounts> +<suppcounts>...</suppcounts> =20 <error> <unique>0x........</unique> |
|
From: <sv...@va...> - 2005-07-02 20:41:31
|
Author: sewardj Date: 2005-07-02 21:41:25 +0100 (Sat, 02 Jul 2005) New Revision: 4088 Log: Improve filtering to get rid of suppressions, using magic incantations from Tom H and Ashley Pittman. Modified: trunk/memcheck/tests/filter_xml Modified: trunk/memcheck/tests/filter_xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/tests/filter_xml 2005-07-02 20:11:59 UTC (rev 4087) +++ trunk/memcheck/tests/filter_xml 2005-07-02 20:41:25 UTC (rev 4088) @@ -6,4 +6,20 @@ sed "s/<ppid>[0-9]*<\/ppid>/<ppid>...<\/ppid>/" | sed "s/<obj>.*<\/obj>/<obj>...<\/obj>/" | sed "s/<line>.*<\/line>/<line>...<\/line>/" | -sed "s/<dir>.*<\/dir>/<dir>...<\/dir>/" +sed "s/<dir>.*<\/dir>/<dir>...<\/dir>/" | +sed "s/<count>.*<\/count>/<count>...<\/count>/" | +perl -0 -p -e "s/<suppcounts>.*<\/suppcounts>/<suppcounts>...<\/suppcoun= ts>/s" + +# Collected wisdom re Perl magic incantation: +# +# From: Tom Hughes +# +# Two problems - one is that you need -p to force perl to loop over=20 +# the input lines and apply your expression to each one and then print +# the results. +#=20 +# The other is that as somebody else said you need to change the input +# record separator so that it reads in the whole file as a single line +# which you can do with the -0 switch. +# +# Hence -0 -p. |
|
From: <sv...@va...> - 2005-07-02 20:12:02
|
Author: sewardj
Date: 2005-07-02 21:11:59 +0100 (Sat, 02 Jul 2005)
New Revision: 4087
Log:
Kludge to stop this program hanging on ppc32-linux and therefore
messing up the testsuite.
Modified:
trunk/none/tests/sem.c
Modified: trunk/none/tests/sem.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/none/tests/sem.c 2005-07-02 18:24:58 UTC (rev 4086)
+++ trunk/none/tests/sem.c 2005-07-02 20:11:59 UTC (rev 4087)
@@ -32,7 +32,10 @@
exit(1);
}
=20
-#ifdef HAVE_SEMTIMEDOP
+ /* The next call to semtimedop causes the program to hang on
+ ppc32-linux (Yellow Dog 4.0). I don't know why. Hence the
+ extended ifdef. */
+#if defined(HAVE_SEMTIMEDOP) && !defined(__powerpc__)
sop.sem_num =3D 0;
sop.sem_op =3D 0;
sop.sem_flg =3D 0;
|
|
From: Julian S. <js...@ac...> - 2005-07-02 20:06:17
|
Hi Paul I wonder if you know anything about this ... none/tests/sem.c (valgrind 3 line) hangs (natively) on YDL and therefore stops the testsuite from completing. Specifically it's the call to semtimedop on line 43, which appears to be set up so it will block on the semaphore but it has a 1 millisecond timeout, so shouldn't block for long. On x86 and amd64 it doesn't hang. strace shows the corresponding syscall never returns. Any ideas? Is it some kind of glibc bug? J |
|
From: <sv...@va...> - 2005-07-02 19:25:05
|
Author: sewardj Date: 2005-07-02 20:24:10 +0100 (Sat, 02 Jul 2005) New Revision: 1247 Log: The logic that drove basic block to IR disassembly had been duplicated over the 3 front ends (x86, amd64, ppc32). Given the need to take into account basic block chasing, adding of instruction marks, etc, the logic is not completely straightforward, and so commoning it up is a good thing. Added: trunk/priv/guest-generic/bb_to_IR.c trunk/priv/guest-generic/bb_to_IR.h Modified: trunk/Makefile trunk/priv/guest-amd64/gdefs.h trunk/priv/guest-amd64/ghelpers.c trunk/priv/guest-amd64/toIR.c trunk/priv/guest-ppc32/gdefs.h trunk/priv/guest-ppc32/ghelpers.c trunk/priv/guest-ppc32/toIR.c trunk/priv/guest-x86/gdefs.h trunk/priv/guest-x86/ghelpers.c trunk/priv/guest-x86/toIR.c trunk/priv/main/vex_main.c trunk/test_main.c trunk/test_main.h [... diff too large to include ...] |
|
From: <sv...@va...> - 2005-07-02 18:25:07
|
Author: njn Date: 2005-07-02 19:24:58 +0100 (Sat, 02 Jul 2005) New Revision: 4086 Log: Don't need a foo_SOURCES line if the program has only a single source fil= e named foo.c. Now again using the right flags for building fpu_lazy_eflags.c, too. Modified: trunk/cachegrind/tests/Makefile.am trunk/helgrind/tests/Makefile.am trunk/memcheck/tests/Makefile.am trunk/memcheck/tests/x86/Makefile.am trunk/none/tests/Makefile.am trunk/none/tests/x86/Makefile.am Modified: trunk/cachegrind/tests/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/cachegrind/tests/Makefile.am 2005-07-02 17:36:11 UTC (rev 4085) +++ trunk/cachegrind/tests/Makefile.am 2005-07-02 18:24:58 UTC (rev 4086) @@ -13,8 +13,6 @@ AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g =20 # C ones -chdir_SOURCES =3D chdir.c -dlclose_SOURCES =3D dlclose.c dlclose_LDADD =3D -ldl myprint_so_SOURCES =3D myprint.c myprint_so_LDFLAGS =3D -shared -fPIC Modified: trunk/helgrind/tests/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/helgrind/tests/Makefile.am 2005-07-02 17:36:11 UTC (rev 4085) +++ trunk/helgrind/tests/Makefile.am 2005-07-02 18:24:58 UTC (rev 4086) @@ -12,13 +12,6 @@ check_PROGRAMS =3D \ allok deadlock inherit race race2 readshared =20 -allok_SOURCES =3D allok.c -deadlock_SOURCES =3D deadlock.c -inherit_SOURCES =3D inherit.c -race_SOURCES =3D race.c -race2_SOURCES =3D race2.c -readshared_SOURCES =3D readshared.c - # force -gstabs, because we don't print symaddr for DWARF yet AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -gstabs LDADD =3D -lpthread Modified: trunk/memcheck/tests/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/tests/Makefile.am 2005-07-02 17:36:11 UTC (rev 4085) +++ trunk/memcheck/tests/Makefile.am 2005-07-02 18:24:58 UTC (rev 4086) @@ -115,84 +115,20 @@ AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g=20 AM_CXXFLAGS =3D $(AM_CFLAGS) =20 -# C ones -#addressable_SOURCES =3D addressable.c -#badaddrvalue_SOURCES =3D badaddrvalue.c -#badfree_SOURCES =3D badfree.c -#badjump_SOURCES =3D badjump.c -#badjump2_SOURCES =3D badjump2.c -#badloop_SOURCES =3D badloop.c -#badpoll_SOURCES =3D badpoll.c -#badrw_SOURCES =3D badrw.c -#brk_SOURCES =3D brk.c -#brk2_SOURCES =3D brk2.c -#buflen_check_SOURCES =3D buflen_check.c -#clientperm_SOURCES =3D clientperm.c -custom_alloc_SOURCES =3D custom_alloc.c -describe_block_SOURCES =3D describe-block.c -doublefree_SOURCES =3D doublefree.c -error_counts_SOURCES =3D error_counts.c -errs1_SOURCES =3D errs1.c -execve_SOURCES =3D execve.c -execve2_SOURCES =3D execve2.c -exitprog_SOURCES =3D exitprog.c -fprw_SOURCES =3D fprw.c -fwrite_SOURCES =3D fwrite.c -inits_SOURCES =3D inits.c -inline_SOURCES =3D inline.c -leak_0_SOURCES =3D leak-0.c -leak_cycle_SOURCES =3D leak-cycle.c -leak_tree_SOURCES =3D leak-tree.c -leak_regroot_SOURCES =3D leak-regroot.c -leakotron_SOURCES =3D leakotron.c -malloc1_SOURCES =3D malloc1.c -malloc2_SOURCES =3D malloc2.c -malloc3_SOURCES =3D malloc3.c -manuel1_SOURCES =3D manuel1.c -manuel2_SOURCES =3D manuel2.c -manuel3_SOURCES =3D manuel3.c -match_overrun_SOURCES =3D match-overrun.c -mmaptest_SOURCES =3D mmaptest.c -memalign_test_SOURCES =3D memalign_test.c -memalign2_SOURCES =3D memalign2.c -memcmptest_SOURCES =3D memcmptest.c +# Extra stuff for C tests memcmptest_CFLAGS =3D $(AM_CFLAGS) -fno-builtin-memcmp -mempool_SOURCES =3D mempool.c -nanoleak_SOURCES =3D nanoleak.c -null_socket_SOURCES =3D null_socket.c -overlap_SOURCES =3D overlap.c # Don't allow GCC to inline memcpy(), because then we can't intercept it overlap_CFLAGS =3D $(AM_CFLAGS) -fno-builtin-memcpy -#pointer_trace_SOURCES =3D pointer-trace.c -post_syscall_SOURCES =3D post-syscall.c -realloc1_SOURCES =3D realloc1.c -realloc2_SOURCES =3D realloc2.c -realloc3_SOURCES =3D realloc3.c -sigkill_SOURCES =3D sigkill.c -signal2_SOURCES =3D signal2.c -sigprocmask_SOURCES =3D sigprocmask.c -stack_changes_SOURCES =3D stack_changes.c -supp1_SOURCES =3D supp.c -supp2_SOURCES =3D supp.c -suppfree_SOURCES =3D suppfree.c -sigaltstack_SOURCES =3D sigaltstack.c -trivialleak_SOURCES =3D trivialleak.c -weirdioctl_SOURCES =3D weirdioctl.c -metadata_SOURCES =3D metadata.c -strchr_SOURCES =3D strchr.c -str_tester_SOURCES =3D str_tester.c str_tester_CFLAGS =3D $(AM_CFLAGS) -Wno-shadow -writev_SOURCES =3D writev.c -xml1_SOURCES =3D xml1.c -zeropage_SOURCES =3D zeropage.c +supp1_SOURCES =3D supp.c +supp2_SOURCES =3D supp.c =20 -# C++ ones +# C++ tests mismatches_SOURCES =3D mismatches.cpp new_nothrow_SOURCES =3D new_nothrow.cpp new_override_SOURCES =3D new_override.cpp =20 # Valgrind unit self-tests -hello_SOURCES =3D hello.c ## If we support PIE, build hello as a PIE, otherwise vgtest_ume cannot = load ## (I'm not completely sure why, since stage2 can load both PIEs and non= -PIEs, ## maybe it's because stage2 is loaded up high; anyway, it doesn't real= ly @@ -207,6 +143,5 @@ endif =20 vgtest_ume_CFLAGS =3D -DVGA_$(VG_ARCH) -DVGO_$(VG_OS) -vgtest_ume_SOURCES =3D vgtest_ume.c vgtest_ume_LDADD =3D ../../coregrind/m_ume.o =20 Modified: trunk/memcheck/tests/x86/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/tests/x86/Makefile.am 2005-07-02 17:36:11 UTC (rev 408= 5) +++ trunk/memcheck/tests/x86/Makefile.am 2005-07-02 18:24:58 UTC (rev 408= 6) @@ -22,13 +22,7 @@ AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g=20 AM_CXXFLAGS =3D $(AM_CFLAGS) =20 -fpeflags_SOURCES =3D fpeflags.c # must be built with these flags -- bug only occurred with them fpeflags_CFLAGS =3D $(AM_CFLAGS) -march=3Di686 pushfpopf_SOURCES =3D pushfpopf_c.c pushfpopf_s.s -scalar_SOURCES =3D scalar.c -scalar_exit_group_SOURCES =3D scalar_exit_group.c -scalar_fork_SOURCES =3D scalar_fork.c -scalar_supp_SOURCES =3D scalar_supp.c -scalar_vfork_SOURCES =3D scalar_vfork.c tronical_SOURCES =3D tronical.S Modified: trunk/none/tests/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/none/tests/Makefile.am 2005-07-02 17:36:11 UTC (rev 4085) +++ trunk/none/tests/Makefile.am 2005-07-02 18:24:58 UTC (rev 4086) @@ -125,94 +125,28 @@ AM_CPPFLAGS =3D -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_builddir= )/include AM_CXXFLAGS =3D $(AM_CFLAGS) =20 -# generic C ones -ansi_SOURCES =3D ansi.c +# Extra stuff for C tests ansi_CFLAGS =3D -ansi -args_SOURCES =3D args.c -as_mmap_SOURCES =3D as_mmap.c -as_shm_SOURCES =3D as_shm.c -async_sigs_SOURCES =3D async-sigs.c -bitfield1_SOURCES =3D bitfield1.c -blockfault_SOURCES =3D blockfault.c -closeall_SOURCES =3D closeall.c -coolo_strlen_SOURCES =3D coolo_strlen.c -discard_SOURCES =3D discard.c -exec_sigmask_SOURCES =3D exec-sigmask.c -execve_SOURCES =3D execve.c -faultstatus_SOURCES =3D faultstatus.c -fcntl_setown_SOURCES =3D fcntl_setown.c -fdleak_cmsg_SOURCES =3D fdleak_cmsg.c -fdleak_creat_SOURCES =3D fdleak_creat.c -fdleak_dup_SOURCES =3D fdleak_dup.c -fdleak_dup2_SOURCES =3D fdleak_dup2.c -fdleak_fcntl_SOURCES =3D fdleak_fcntl.c -fdleak_ipv4_SOURCES =3D fdleak_ipv4.c -fdleak_open_SOURCES =3D fdleak_open.c -fdleak_pipe_SOURCES =3D fdleak_pipe.c -fdleak_socketpair_SOURCES =3D fdleak_socketpair.c -fork_SOURCES =3D fork.c -floored_SOURCES =3D floored.c floored_LDADD =3D -lm -fucomip_SOURCES =3D fucomip.c -pending_SOURCES =3D pending.c -manythreads_SOURCES =3D manythreads.c manythreads_LDADD =3D -lpthread -map_unaligned_SOURCES =3D map_unaligned.c -map_unmap_SOURCES =3D map_unmap.c -mq_SOURCES =3D mq.c mq_LDADD =3D -lrt -mremap_SOURCES =3D mremap.c -munmap_exe_SOURCES =3D munmap_exe.c -pth_atfork1_SOURCES =3D pth_atfork1.c pth_atfork1_LDADD =3D -lpthread -pth_blockedsig_SOURCES =3D pth_blockedsig.c pth_blockedsig_LDADD =3D -lpthread -pth_cancel1_SOURCES =3D pth_cancel1.c pth_cancel1_LDADD =3D -lpthread -pth_cancel2_SOURCES =3D pth_cancel2.c pth_cancel2_LDADD =3D -lpthread -pth_cvsimple_SOURCES =3D pth_cvsimple.c pth_cvsimple_LDADD =3D -lpthread -pth_empty_SOURCES =3D pth_empty.c pth_empty_LDADD =3D -lpthread -pth_exit_SOURCES =3D pth_exit.c pth_exit_LDADD =3D -lpthread -pth_exit2_SOURCES =3D pth_exit2.c pth_exit2_LDADD =3D -lpthread -pth_mutexspeed_SOURCES =3D pth_mutexspeed.c pth_mutexspeed_LDADD =3D -lpthread -pth_once_SOURCES =3D pth_once.c pth_once_LDADD =3D -lpthread -pth_rwlock_SOURCES =3D pth_rwlock.c pth_rwlock_LDADD =3D -lpthread -pth_stackalign_SOURCES =3D pth_stackalign.c pth_stackalign_LDADD =3D -lpthread -rcrl_SOURCES =3D rcrl.c -readline1_SOURCES =3D readline1.c -res_search_SOURCES =3D res_search.c res_search_LDADD =3D -lresolv -lpthread -resolv_SOURCES =3D resolv.c -rlimit_nofile_SOURCES =3D rlimit_nofile.c -selfrun_SOURCES =3D selfrun.c -sem_SOURCES =3D sem.c -semlimit_SOURCES =3D semlimit.c semlimit_LDADD =3D -lpthread -smc1_SOURCES =3D smc1.c -sha1_test_SOURCES =3D sha1_test.c -shortpush_SOURCES =3D shortpush.c -shorts_SOURCES =3D shorts.c -sigstackgrowth_SOURCES =3D sigstackgrowth.c -susphello_SOURCES =3D susphello.c susphello_LDADD =3D -lpthread -stackgrowth_SOURCES =3D stackgrowth.c -syscall_restart1_SOURCES =3D syscall-restart1.c -syscall_restart2_SOURCES =3D syscall-restart2.c -system_SOURCES =3D system.c -thread_exits_SOURCES =3D thread-exits.c thread_exits_LDADD =3D -lpthread -threaded_fork_SOURCES =3D threaded-fork.c threaded_fork_LDADD =3D -lpthread -threadederrno_SOURCES =3D threadederrno.c threadederrno_LDADD =3D -lpthread tls_SOURCES =3D tls.c tls2.c tls_DEPENDENCIES =3D tls.so @@ -225,15 +159,10 @@ tls_so_CFLAGS =3D -fPIC tls2_so_SOURCES =3D tls2_so.c tls2_so_LDFLAGS =3D -shared -vgprintf_SOURCES =3D vgprintf.c -yield_SOURCES =3D yield.c yield_CFLAGS =3D $(AM_CFLAGS) -D__$(VG_ARCH)__ yield_LDADD =3D -lpthread =20 -# generic C++ ones +# C++ tests coolo_sigaction_SOURCES =3D coolo_sigaction.cpp gxx304_SOURCES =3D gxx304.cpp =20 -# must be built with these flags -- bug only occurred with them -fpu_lazy_eflags.o: CFLAGS +=3D -O2 -mcpu=3Dpentiumpro -march=3Dpentiumpr= o - Modified: trunk/none/tests/x86/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/none/tests/x86/Makefile.am 2005-07-02 17:36:11 UTC (rev 4085) +++ trunk/none/tests/x86/Makefile.am 2005-07-02 18:24:58 UTC (rev 4086) @@ -28,12 +28,9 @@ AM_CXXFLAGS =3D $(AM_CFLAGS) =20 # generic C ones -badseg_SOURCES =3D badseg.c -bt_everything_SOURCES =3D bt_everything.c -bt_literal_SOURCES =3D bt_literal.c cpuid_SOURCES =3D cpuid_c.c cpuid_s.s -fpu_lazy_eflags_SOURCES =3D fpu_lazy_eflags.c -getseg_SOURCES =3D getseg.c +# fpu_lazy_eflags must use these flags -- the bug only occurred with the= m +fpu_lazy_eflags_CFLAGS =3D -O2 -march=3Dpentiumpro insn_basic_SOURCES =3D insn_basic.def insn_basic_LDADD =3D -lm insn_fpu_SOURCES =3D insn_fpu.def @@ -48,10 +45,6 @@ insn_sse_LDADD =3D -lm insn_sse2_SOURCES =3D insn_sse2.def insn_sse2_LDADD =3D -lm -int_SOURCES =3D int.c -pushpopseg_SOURCES =3D pushpopseg.c -seg_override_SOURCES =3D seg_override.c -sigcontext_SOURCES =3D sigcontext.c =20 .def.c: $(srcdir)/gen_insn_test.pl $(PERL) $(srcdir)/gen_insn_test.pl < $< > $@ |
|
From: <sv...@va...> - 2005-07-02 17:36:13
|
Author: njn
Date: 2005-07-02 18:36:11 +0100 (Sat, 02 Jul 2005)
New Revision: 4085
Log:
Fixed 'make dist'. In particular, all the arch/platform-specific files
get included in the distro now, not just the ones for the arch/platform
that the distro tarball is built on.
Modified:
trunk/auxprogs/Makefile.am
trunk/cachegrind/Makefile.am
trunk/coregrind/m_dispatch/Makefile.am
trunk/coregrind/m_sigframe/Makefile.am
trunk/coregrind/m_syswrap/Makefile.am
trunk/memcheck/tests/Makefile.am
trunk/memcheck/tests/zeropage.c
trunk/none/tests/Makefile.am
Modified: trunk/auxprogs/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/auxprogs/Makefile.am 2005-07-02 17:15:28 UTC (rev 4084)
+++ trunk/auxprogs/Makefile.am 2005-07-02 17:36:11 UTC (rev 4085)
@@ -5,5 +5,7 @@
=20
noinst_SCRIPTS =3D gen-mdg DotToScc.hs
=20
+EXTRA_DIST =3D $(noinst_SCRIPTS)
+
valgrind_listener_SOURCES =3D valgrind-listener.c
=20
Modified: trunk/cachegrind/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/cachegrind/Makefile.am 2005-07-02 17:15:28 UTC (rev 4084)
+++ trunk/cachegrind/Makefile.am 2005-07-02 17:36:11 UTC (rev 4085)
@@ -2,7 +2,10 @@
=20
bin_SCRIPTS =3D cg_annotate
=20
-EXTRA_DIST =3D cg_sim.c=20
+# Remember to include all the arch-specific files in the distribution.
+EXTRA_DIST =3D \
+ cg_sim.c \
+ $(addsuffix .c,$(addprefix cg-,$(VG_ARCH_ALL)))
=20
noinst_HEADERS =3D cg_arch.h
=20
Modified: trunk/coregrind/m_dispatch/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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_dispatch/Makefile.am 2005-07-02 17:15:28 UTC (rev 4=
084)
+++ trunk/coregrind/m_dispatch/Makefile.am 2005-07-02 17:36:11 UTC (rev 4=
085)
@@ -3,7 +3,9 @@
=20
noinst_LIBRARIES =3D libdispatch.a
=20
-## XXX: this won't work with "make dist" -- only one dispatch-XXX.S file
-## will be put in the tarball. Problem exists in various other Makefile=
s.
+# Remember to include all the arch-specific files in the distribution.
+EXTRA_DIST =3D \
+ $(addsuffix .S,$(addprefix dispatch-,$(VG_ARCH_ALL)))
+
libdispatch_a_SOURCES =3D \
dispatch-@VG_ARCH@.S
Modified: trunk/coregrind/m_sigframe/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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_sigframe/Makefile.am 2005-07-02 17:15:28 UTC (rev 4=
084)
+++ trunk/coregrind/m_sigframe/Makefile.am 2005-07-02 17:36:11 UTC (rev 4=
085)
@@ -1,6 +1,10 @@
include $(top_srcdir)/Makefile.all.am
include $(top_srcdir)/Makefile.core-AM_CPPFLAGS.am
=20
+# Remember to include all the platform-specific files in the distributio=
n.
+EXTRA_DIST =3D \
+ $(addsuffix .c,$(addprefix sigframe-,$(VG_PLATFORM_ALL)))
+
noinst_LIBRARIES =3D libsigframe.a
=20
libsigframe_a_SOURCES =3D \
Modified: trunk/coregrind/m_syswrap/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/Makefile.am 2005-07-02 17:15:28 UTC (rev 40=
84)
+++ trunk/coregrind/m_syswrap/Makefile.am 2005-07-02 17:36:11 UTC (rev 40=
85)
@@ -1,8 +1,12 @@
include $(top_srcdir)/Makefile.all.am
include $(top_srcdir)/Makefile.core-AM_CPPFLAGS.am
=20
+# Remember to include all the OS/platform-specific files in the distribu=
tion.
EXTRA_DIST =3D \
- README_SYSWRAP.txt
+ README_SYSWRAP.txt \
+ $(addsuffix .S,$(addprefix syscall-,$(VG_PLATFORM_ALL))) \
+ $(addsuffix .c,$(addprefix syswrap-,$(VG_OS_ALL))) \
+ $(addsuffix .c,$(addprefix syswrap-,$(VG_PLATFORM_ALL)))
=20
noinst_HEADERS =3D \
priv_types_n_macros.h \
Modified: trunk/memcheck/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/tests/Makefile.am 2005-07-02 17:15:28 UTC (rev 4084)
+++ trunk/memcheck/tests/Makefile.am 2005-07-02 17:36:11 UTC (rev 4085)
@@ -83,7 +83,8 @@
vgtest_ume.stderr.exp vgtest_ume.vgtest \
writev.stderr.exp writev.stderr.exp2 writev.stderr.exp3 writev.vgtest \
xml1.stderr.exp xml1.stderr.exp64 xml1.stdout.exp xml1.vgtest \
- zeropage.stderr.exp zeropage.stderr.exp2 zeropage.vgtest
+ zeropage.stderr.exp zeropage.stderr.exp2 zeropage.stdout.exp \
+ zeropage.vgtest
=20
check_PROGRAMS =3D \
addressable \
Modified: trunk/memcheck/tests/zeropage.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/memcheck/tests/zeropage.c 2005-07-02 17:15:28 UTC (rev 4084)
+++ trunk/memcheck/tests/zeropage.c 2005-07-02 17:36:11 UTC (rev 4085)
@@ -6,8 +6,8 @@
=20
/* The quick sanity check of Memcheck (and other tools with shadow memor=
y)
relies on the first 64KB of memory never being used. So our mmap()
- refuses to touch this area. This program tests for that. */
-
+ refuses to touch this area. This program tests for that.
+ [actually, no longer true, these all now succeed.] */
int main(void)
{
/* mmap(0x0, ... FIXED) should fail */
Modified: trunk/none/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/none/tests/Makefile.am 2005-07-02 17:15:28 UTC (rev 4084)
+++ trunk/none/tests/Makefile.am 2005-07-02 17:36:11 UTC (rev 4085)
@@ -1,7 +1,7 @@
SUBDIRS =3D ${VG_ARCH} .
DIST_SUBDIRS =3D ${VG_ARCH_ALL} .
=20
-noinst_SCRIPTS =3D=20
+noinst_SCRIPTS =3D \
filter_as_mmap filter_fdleak filter_none_discards filter_stderr
=20
EXTRA_DIST =3D $(noinst_SCRIPTS) \
@@ -29,7 +29,7 @@
execve.vgtest execve.stdout.exp execve.stderr.exp \
faultstatus.vgtest faultstatus.stderr.exp \
fcntl_setown.vgtest fcntl_setown.stdout.exp fcntl_setown.stderr.exp \
- fdleak_cmsg.stderr.exp fdleak_cmsg.stderr.exp2 fdleak_cmsg.exp3 \
+ fdleak_cmsg.stderr.exp fdleak_cmsg.stderr.exp2 fdleak_cmsg.stderr.exp3 =
\
fdleak_cmsg.vgtest \
fdleak_creat.stderr.exp fdleak_creat.stderr.exp2 \
fdleak_creat.stderr.exp3 fdleak_creat.vgtest \
|
|
From: <sv...@va...> - 2005-07-02 17:15:33
|
Author: njn
Date: 2005-07-02 18:15:28 +0100 (Sat, 02 Jul 2005)
New Revision: 4084
Log:
Fix scalar.
Modified:
trunk/memcheck/tests/x86/scalar.stderr.exp
trunk/memcheck/tests/x86/scalar.stderr.exp2
Modified: trunk/memcheck/tests/x86/scalar.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/tests/x86/scalar.stderr.exp 2005-07-02 17:11:07 UTC (r=
ev 4083)
+++ trunk/memcheck/tests/x86/scalar.stderr.exp 2005-07-02 17:15:28 UTC (r=
ev 4084)
@@ -94,7 +94,6 @@
at 0x........: syscall (in /...libc...)
by 0x........: __libc_start_main (in /...libc...)
by 0x........: ...
-Warning: invalid file descriptor -1 in syscall close()
-----------------------------------------------------
7: __NR_waitpid 3s 1m
-----------------------------------------------------
Modified: trunk/memcheck/tests/x86/scalar.stderr.exp2
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/tests/x86/scalar.stderr.exp2 2005-07-02 17:11:07 UTC (=
rev 4083)
+++ trunk/memcheck/tests/x86/scalar.stderr.exp2 2005-07-02 17:15:28 UTC (=
rev 4084)
@@ -93,7 +93,6 @@
Syscall param close(fd) contains uninitialised byte(s)
at 0x........: syscall (in /...libc...)
by 0x........: main (scalar.c:62)
-Warning: invalid file descriptor -1 in syscall close()
-----------------------------------------------------
7: __NR_waitpid 3s 1m
-----------------------------------------------------
|
|
From: <sv...@va...> - 2005-07-02 17:12:06
|
Author: njn Date: 2005-07-02 18:11:07 +0100 (Sat, 02 Jul 2005) New Revision: 4083 Log: Avoid compile warning. Modified: trunk/none/tests/x86/sigcontext.c Modified: trunk/none/tests/x86/sigcontext.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/none/tests/x86/sigcontext.c 2005-07-02 11:27:02 UTC (rev 4082) +++ trunk/none/tests/x86/sigcontext.c 2005-07-02 17:11:07 UTC (rev 4083) @@ -46,13 +46,13 @@ int ret; int v2, v3, v4; =20 - sa.sa_handler =3D handler1; + sa.sa_handler =3D (void*)handler1; sa.sa_flags =3D SA_SIGINFO; sigfillset(&sa.sa_mask); =20 sigaction(SIGUSR1, &sa, NULL); =20 - sa.sa_handler =3D handler2; + sa.sa_handler =3D (void*)handler2; sa.sa_flags =3D 0; sigfillset(&sa.sa_mask); =20 |
|
From: Nicholas N. <nj...@cs...> - 2005-07-02 16:04:31
|
Hi, I recently moved stack_changes from corecheck/tests/ to memcheck/tests/. On some platforms it works fine, but others it doesn't -- it failed on some of the nightly test machines. And on my oldish-Debian, glibc-2.2.5, kernel-2.4.29 system I get lots of Memcheck errors (attached). Anyone have any idea what might be behind this? Thanks. N |
|
From: Nicholas N. <nj...@cs...> - 2005-07-02 16:01:46
|
On Fri, 1 Jul 2005, Jeroen N. Witmond wrote: > In other words: content and presentation must be > separated, with valgrind and its tools (for instance memcheck) > providing the content, and m_ui performing the presentation. > > This proof of concept demonstrates that, at least in principle, all code > necessary to produce valgrind's output (to perform the presentation) can > be generated from an xml file. > > ... > > I look forward to your reactions. I just took a look at this. It seems interesting, but I honestly had a great deal of difficulty understanding it. The README file had a lot of grungy XML details (which I didn't get much out of as I don't know much about XML) but very little in the way of simple high-level explanation of what you are trying to accomplish. I found the language in the README and your email was pretty impenetrable too -- I felt like I had to find the main ideas buried under the words, rather than having the ideas leap off the page into my brain. This may help explain the lack of response from others so far. (Sorry if that sounds harsh, but I really had trouble understanding things due to the language.) Here's my attempt at summarising what you are doing. - You want to separate the content and presentation of the content. The current Valgrind system would be responsible for producing the content in XML format, and the presenter would be a separate program that presents that content in a nice form. - Also, you want to auto-generate the presenters from XML descriptions(?). I've basically just restated the two sentences you wrote that I quoted above, which I found to be the two most informative sentences. As for the code you've written -- what is it supposed to do? Can I build and run a program in there? After reading the docs I had no idea what your package is meant to do. There were lots of low-level details about the XML schemas, but again not enough high-level information. And I tried to build it as per the README: mkdir generated cd generated ../configure --options make target The 'configure' script didn't like the --options flag. I removed that and 'configure' worked, but there was no target called "target" in the Makefile (should that say "make <target>", and if so, what is a suitable target?) So I tried plain "make" and I get build failures: xmllint --noout --schema ../repository.xsd ../sample-repository.xml > repository.validation.stamp Unknown option --schema make: [repository.validation.stamp] Error 1 (ignored) DOMCount -v=always -s -n -f ../sample-repository.xml > repository.validation.stamp || ( rm repository.validation.stamp; exit 2) /bin/sh: DOMCount: command not found make: *** [repository.validation.stamp] Error 2 Maybe my version of xmllint is too old. So enough criticism, now for the good parts. I like the basic idea that I think you're trying to achieve here -- the separation of content and presentation. Currently Valgrind is hard-wired to use a single "presenter", the text-based one, and other tools (eg. GUIs) have to parse that. So, in a sense, the text-based presenter is privileged over all other possible presenters. I'd like to see the text-based presenter separated from the core of Valgrind. We could still distribute the text-based presenter as part of the base distribution, but the more modular architecture would make life easier for other presenters. This raises various questions: - What format should the passed information be in? I had been thinking some kind of structure binary format, but XML may be much better, since it's widely used and is extensible/self-describing. The current XML output is still English-specific, it could certainly be tweaked so that the message strings aren't embedded in the format, or are at least described in enough detail via tags that they can be reconstructed in other languages. - How should the information be passed from Valgrind to the presenters? Would the presenter be a separate process running in parallel with the Valgrind process? How would they communicate -- through a socket, as done with the valgrind-listener program? What about when you use --trace-children=yes and you have multiple Valgrind invocations running -- should they communicate to the same presenter? - How would the presenter process the information? Some kind of incremental parsing would probably be needed. Or you could do it all at the end, but I think it's useful to see errors emitted as soon as they are found, since that gives you information about what point the program was at. (Eg. I press button A and get an addressability error.) - What about output that the presenters shouldn't have to handle, eg. debugging output when you use -v, or abort messages when something goes wrong? Perhaps it's ok for Valgrind to still just print those to stderr. - How would command-line options be handled? Some of the options that are part of Valgrind would become part of the presenter. But we'd want to make it easy for a user to see the presenter options and the Valgrind options together... it might be confusing if you had to do "valgrind -h" separately from "presenter -h". - Suppressions are an interesting case. Everyone dislikes how they are currently generated. Perhaps having a separate "presenter" for them would be useful. Ie. Valgrind would just spit them out, and the suppression-presenter would be responsible for putting them into a file, or asking the user if they want to see it printed on the screen, or whatever -- people could write their own presenters to process suppressions as they want. (One interesting thing is that these separate programs of course wouldn't have to be written in C.) - How to keep this all manageable and robust? We don't want to get over-excited and create an unwieldy system. As for your suggestion of auto-generating the presenters, I'm less convinced currently that this is a good idea. I worry that it will restrict the presenters too much -- it might be good for text-based presenters, but what about eg. GUI front-ends? ---- Anyway, that's my first impressions. I hope it's useful feedback. Please correct anything I've got wrong. N |
|
From: <sv...@va...> - 2005-07-02 11:28:01
|
Author: sewardj
Date: 2005-07-02 12:27:02 +0100 (Sat, 02 Jul 2005)
New Revision: 4082
Log:
Try to make (client) clone() work for ppc32-linux. I don't know if I
was successful for real uses of clone, but fork-disguised-as-clone
appears to work now.
Modified:
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/vki_unistd-ppc32-linux.h
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-07-02 10:13:34 U=
TC (rev 4081)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-07-02 11:27:02 U=
TC (rev 4082)
@@ -136,7 +136,7 @@
{
ThreadId tid =3D (ThreadId)tidW;
=20
- VG_(debugLog)(1, "syscalls-ppc32-linux",=20
+ VG_(debugLog)(1, "syswrap-ppc32-linux",=20
"run_a_thread_NORETURN(tid=3D%lld): "
"ML_(thread_wrapper) called\n",
(ULong)tidW);
@@ -144,7 +144,7 @@
/* Run the thread all the way through. */
VgSchedReturnCode src =3D ML_(thread_wrapper)(tid); =20
=20
- VG_(debugLog)(1, "syscalls-ppc32-linux",=20
+ VG_(debugLog)(1, "syswrap-ppc32-linux",=20
"run_a_thread_NORETURN(tid=3D%lld): "
"ML_(thread_wrapper) done\n",
(ULong)tidW);
@@ -154,7 +154,7 @@
=20
if (c =3D=3D 1) {
=20
- VG_(debugLog)(1, "syscalls-ppc32-linux",=20
+ VG_(debugLog)(1, "syswrap-ppc32-linux",=20
"run_a_thread_NORETURN(tid=3D%lld): "
"last one standing\n",
(ULong)tidW);
@@ -164,7 +164,7 @@
VG_(shutdown_actions_NORETURN)(tid, src);
=20
} else {
- VG_(debugLog)(1, "syscalls-ppc32-linux",=20
+ VG_(debugLog)(1, "syswrap-ppc32-linux",=20
"run_a_thread_NORETURN(tid=3D%lld): "
"not last one standing\n",
(ULong)tidW);
@@ -261,7 +261,7 @@
*/
void VG_(main_thread_wrapper_NORETURN)(ThreadId tid)
{
- VG_(debugLog)(1, "syscalls-ppc32-linux",=20
+ VG_(debugLog)(1, "syswrap-ppc32-linux",=20
"entering VG_(main_thread_wrapper_NORETURN)\n");
=20
UWord* sp =3D allocstack(tid);
@@ -284,7 +284,6 @@
vg_assert(0);
}
=20
-#if 0
static Int start_thread_NORETURN ( void* arg )
{
ThreadState* tst =3D (ThreadState*)arg;
@@ -294,8 +293,8 @@
/*NOTREACHED*/
vg_assert(0);
}
-#endif
=20
+
/* ---------------------------------------------------------------------
clone() handling
------------------------------------------------------------------ */
@@ -400,8 +399,7 @@
#undef STRINGIFZ
=20
// forward declarations
-//.. static void setup_child ( ThreadArchState*, ThreadArchState*, Bool =
);
-//.. static SysRes sys_set_thread_area ( ThreadId, vki_modify_ldt_t* );
+static void setup_child ( ThreadArchState*, ThreadArchState* );
=20
/*=20
When a client clones, we need to keep track of the new thread. This =
means:
@@ -413,167 +411,165 @@
but using the scheduler entrypoint for IP, and a separate stack
for SP.
*/
-//.. static SysRes do_clone ( ThreadId ptid,=20
-//.. UInt flags, Addr esp,=20
-//.. Int *parent_tidptr,=20
-//.. Int *child_tidptr,=20
-//.. vki_modify_ldt_t *tlsinfo)
-//.. {
-//.. static const Bool debug =3D False;
-//..=20
-//.. ThreadId ctid =3D VG_(alloc_ThreadState)();
-//.. ThreadState *ptst =3D VG_(get_ThreadState)(ptid);
-//.. ThreadState *ctst =3D VG_(get_ThreadState)(ctid);
-//.. UWord *stack;
-//.. Segment *seg;
-//.. Int ret;
-//.. vki_sigset_t blockall, savedmask;
-//..=20
-//.. VG_(sigfillset)(&blockall);
-//..=20
-//.. vg_assert(VG_(is_running_thread)(ptid));
-//.. vg_assert(VG_(is_valid_tid)(ctid));
-//..=20
-//.. stack =3D allocstack(ctid);
+static SysRes do_clone ( ThreadId ptid,=20
+ UInt flags, Addr sp,=20
+ Int *parent_tidptr,=20
+ Int *child_tidptr,=20
+ vki_modify_ldt_t *tlsinfo)
+{
+ static const Bool debug =3D False;
=20
+ ThreadId ctid =3D VG_(alloc_ThreadState)();
+ ThreadState* ptst =3D VG_(get_ThreadState)(ptid);
+ ThreadState* ctst =3D VG_(get_ThreadState)(ctid);
+ ULong word64;
+ UWord* stack;
+ Segment* seg;
+ SysRes res;
+ vki_sigset_t blockall, savedmask;
+
+ VG_(sigfillset)(&blockall);
+
+ vg_assert(VG_(is_running_thread)(ptid));
+ vg_assert(VG_(is_valid_tid)(ctid));
+
+ stack =3D allocstack(ctid);
+
//? /* make a stack frame */
//? stack -=3D 16;
//? *(UWord *)stack =3D 0;
=20
-//..=20
-//.. /* Copy register state
-//..=20
-//.. Both parent and child return to the same place, and the code
-//.. following the clone syscall works out which is which, so we
-//.. don't need to worry about it.
-//..=20
-//.. The parent gets the child's new tid returned from clone, but =
the
-//.. child gets 0.
-//..=20
-//.. If the clone call specifies a NULL esp for the new thread, th=
en
-//.. it actually gets a copy of the parent's esp.
-//.. */
-//.. VG_(setup_child)( &ctst->arch, &ptst->arch );
-//..=20
-//.. /* Make sys_clone appear to have returned Success(0) in the
-//.. child. */
-//.. ctst->arch.vex.guest_GPR3 =3D 0;
-//.. =20
-//.. //guest_CC_OP =3D 1
-//.. //guest_CC_DEP1 =3D 0x20000000
-//..=20
-//.. if (esp !=3D 0)
-//.. ctst->arch.vex.guest_ESP =3D esp;
-//..=20
-//.. ctst->os_state.parent =3D ptid;
-//.. ctst->os_state.clone_flags =3D flags;
-//.. ctst->os_state.parent_tidptr =3D parent_tidptr;
-//.. ctst->os_state.child_tidptr =3D child_tidptr;
-//..=20
-//.. /* inherit signal mask */
-//.. ctst->sig_mask =3D ptst->sig_mask;
-//.. ctst->tmp_sig_mask =3D ptst->sig_mask;
-//..=20
-//.. /* We don't really know where the client stack is, because its
-//.. allocated by the client. The best we can do is look at the
-//.. memory mappings and try to derive some useful information. W=
e
-//.. assume that esp starts near its highest possible value, and c=
an
-//.. only go down to the start of the mmaped segment. */
-//.. seg =3D VG_(find_segment)((Addr)esp);
-//.. if (seg) {
-//.. ctst->client_stack_highest_word =3D (Addr)PGROUNDUP(esp);
-//.. ctst->client_stack_szB =3D ctst->client_stack_highest_word -=
seg->addr;
-//..=20
-//.. if (debug)
-//.. VG_(printf)("tid %d: guessed client stack range %p-%p\n",
-//.. ctid, seg->addr, PGROUNDUP(esp));
-//.. } else {
-//.. VG_(message)(Vg_UserMsg, "!? New thread %d starts with ESP(%p=
) unmapped\n",
-//.. ctid, esp);
-//.. ctst->client_stack_szB =3D 0;
-//.. }
-//..=20
-//.. if (flags & VKI_CLONE_SETTLS) {
-//.. if (debug)
-//.. VG_(printf)("clone child has SETTLS: tls info at %p: idx=3D%d bas=
e=3D%p limit=3D%x; esp=3D%p fs=3D%x gs=3D%x\n",
-//.. tlsinfo, tlsinfo->entry_number, tlsinfo->base_addr, tlsinfo-=
>limit,
-//.. ptst->arch.vex.guest_ESP,
-//.. ctst->arch.vex.guest_FS, ctst->arch.vex.guest_GS);
-//.. ret =3D VG_(sys_set_thread_area)(ctid, tlsinfo);
-//..=20
-//.. if (ret !=3D 0)
-//.. goto out;
-//.. }
-//..=20
-//.. flags &=3D ~VKI_CLONE_SETTLS;
-//..=20
-//.. /* start the thread with everything blocked */
-//.. VG_(sigprocmask)(VKI_SIG_SETMASK, &blockall, &savedmask);
-//..=20
-//.. /* Create the new thread */
-//.. ret =3D VG_(clone)(start_thread, stack, flags, &VG_(threads)[cti=
d],
-//.. child_tidptr, parent_tidptr, NULL);
-//..=20
-//.. VG_(sigprocmask)(VKI_SIG_SETMASK, &savedmask, NULL);
-//..=20
-//.. out:
-//.. if (ret < 0) {
-//.. /* clone failed */
-//.. VG_(cleanup_thread)(&ctst->arch);
-//.. ctst->status =3D VgTs_Empty;
-//.. }
-//..=20
-//.. return ret;
-//.. }
=20
+ /* Copy register state
=20
+ Both parent and child return to the same place, and the code
+ following the clone syscall works out which is which, so we
+ don't need to worry about it.
+
+ The parent gets the child's new tid returned from clone, but the
+ child gets 0.
+
+ If the clone call specifies a NULL SP for the new thread, then
+ it actually gets a copy of the parent's SP.
+ */
+ setup_child( &ctst->arch, &ptst->arch );
+
+ /* Make sys_clone appear to have returned Success(0) in the
+ child. */
+ ctst->arch.vex.guest_GPR3 =3D 0;
+#warning "fixme: need to clear simulated CR0.SO"
+
+ if (sp !=3D 0)
+ ctst->arch.vex.guest_GPR1 =3D sp;
+
+ ctst->os_state.parent =3D ptid;
+
+ /* inherit signal mask */
+ ctst->sig_mask =3D ptst->sig_mask;
+ ctst->tmp_sig_mask =3D ptst->sig_mask;
+
+ /* We don't really know where the client stack is, because its
+ allocated by the client. The best we can do is look at the
+ memory mappings and try to derive some useful information. We
+ assume that esp starts near its highest possible value, and can
+ only go down to the start of the mmaped segment. */
+ seg =3D VG_(find_segment)(sp);
+ if (seg) {
+ ctst->client_stack_highest_word =3D (Addr)VG_PGROUNDUP(sp);
+ ctst->client_stack_szB =3D ctst->client_stack_highest_word - seg-=
>addr;
+
+ if (debug)
+ VG_(printf)("tid %d: guessed client stack range %p-%p\n",
+ ctid, seg->addr, VG_PGROUNDUP(sp));
+ } else {
+ VG_(message)(Vg_UserMsg, "!? New thread %d starts with R1(%p) unma=
pped\n",
+ ctid, sp);
+ ctst->client_stack_szB =3D 0;
+ }
+
+ if (flags & VKI_CLONE_SETTLS) {
+ if (debug)
+ VG_(printf)("clone child has SETTLS: tls at %p\n", tlsinfo);
+ vg_assert(0);
+ // ret =3D VG_(sys_set_thread_area)(ctid, tlsinfo);
+ // if (ret !=3D 0)
+ // goto out;
+ }
+
+ flags &=3D ~VKI_CLONE_SETTLS;
+
+ /* start the thread with everything blocked */
+ VG_(sigprocmask)(VKI_SIG_SETMASK, &blockall, &savedmask);
+
+ /* Create the new thread */
+ word64 =3D do_syscall_clone_ppc32_linux(
+ start_thread_NORETURN, stack, flags, &VG_(threads)[ctid],
+ child_tidptr, parent_tidptr, NULL
+ );
+ res =3D VG_(mk_SysRes_ppc32_linux)( (UInt)(word64 >> 32), (UInt)word6=
4 );
+
+ VG_(sigprocmask)(VKI_SIG_SETMASK, &savedmask, NULL);
+
+ if (res.isError) {
+ /* clone failed */
+ VG_(cleanup_thread)(&ctst->arch);
+ ctst->status =3D VgTs_Empty;
+ }
+
+ return res;
+}
+
+
/* Do a clone which is really a fork() */
-//.. static Int do_fork_clone( ThreadId tid,
-//.. UInt flags, Addr esp,
-//.. Int* parent_tidptr,
-//.. Int* child_tidptr )
-//.. {
-//.. vki_sigset_t fork_saved_mask;
-//.. vki_sigset_t mask;
-//.. Int ret;
-//..=20
-//.. if (flags & (VKI_CLONE_SETTLS | VKI_CLONE_FS | VKI_CLONE_VM | VK=
I_CLONE_FILES | VKI_CLONE_VFORK))
-//.. return -VKI_EINVAL;
-//..=20
-//.. /* Block all signals during fork, so that we can fix things up i=
n
-//.. the child without being interrupted. */
-//.. VG_(sigfillset)(&mask);
-//.. VG_(sigprocmask)(VKI_SIG_SETMASK, &mask, &fork_saved_mask);
-//..=20
-//.. /* Since this is the fork() form of clone, we don't need all tha=
t
-//.. VG_(clone) stuff */
-//.. ret =3D VG_(do_syscall5)(__NR_clone, flags, (UWord)NULL, (UWord)=
parent_tidptr,=20
-//.. (UWord)NULL, (UWord)ch=
ild_tidptr);
-//..=20
-//.. if (ret =3D=3D 0) {
-//.. /* child */
-//.. VG_(do_atfork_child)(tid);
-//..=20
-//.. /* restore signal mask */
-//.. VG_(sigprocmask)(VKI_SIG_SETMASK, &fork_saved_mask, NULL);
-//.. } else if (ret > 0) {
-//.. /* parent */
-//.. if (VG_(clo_trace_syscalls))
-//.. VG_(printf)(" clone(fork): process %d created child %d\n", VG_=
(getpid)(), ret);
-//..=20
-//.. /* restore signal mask */
-//.. VG_(sigprocmask)(VKI_SIG_SETMASK, &fork_saved_mask, NULL);
-//.. }
-//..=20
-//.. return ret;
-//.. }
+static SysRes do_fork_clone( ThreadId tid,
+ UInt flags, Addr sp,
+ Int* parent_tidptr,
+ Int* child_tidptr )
+{
+ vki_sigset_t fork_saved_mask;
+ vki_sigset_t mask;
+ SysRes res;
=20
+ if (flags & (VKI_CLONE_SETTLS | VKI_CLONE_FS | VKI_CLONE_VM=20
+ | VKI_CLONE_FILES | VKI_CLONE_VFORK))
+ return VG_(mk_SysRes_Error)( VKI_EINVAL );
=20
+ /* Block all signals during fork, so that we can fix things up in
+ the child without being interrupted. */
+ VG_(sigfillset)(&mask);
+ VG_(sigprocmask)(VKI_SIG_SETMASK, &mask, &fork_saved_mask);
=20
+ /* Since this is the fork() form of clone, we don't need all that
+ VG_(clone) stuff */
+ res =3D VG_(do_syscall5)( __NR_clone, flags,=20
+ (UWord)NULL, (UWord)parent_tidptr,=20
+ (UWord)NULL, (UWord)child_tidptr );
=20
+ if (!res.isError && res.val =3D=3D 0) {
+ /* child */
+ VG_(do_atfork_child)(tid);
+
+ /* restore signal mask */
+ VG_(sigprocmask)(VKI_SIG_SETMASK, &fork_saved_mask, NULL);
+ } else=20
+ if (!res.isError && res.val > 0) {
+ /* parent */
+ if (VG_(clo_trace_syscalls))
+ VG_(printf)(" clone(fork): process %d created child %d\n",=20
+ VG_(getpid)(), res.val);
+
+ /* restore signal mask */
+ VG_(sigprocmask)(VKI_SIG_SETMASK, &fork_saved_mask, NULL);
+ }
+
+ return res;
+}
+
+
/* ---------------------------------------------------------------------
LDT/GDT simulation
------------------------------------------------------------------ */
+#warning "Do we need all this LDT/GDT garbage on ppc32? Surely not."
=20
/* Details of the LDT simulation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -900,35 +896,17 @@
=20
void VG_(cleanup_thread) ( ThreadArchState* arch )
{
-//.. /* Release arch-specific resources held by this thread. */
-//.. /* On x86, we have to dump the LDT and GDT. */
-//.. deallocate_LGDTs_for_thread( &arch->vex );
} =20
=20
+void setup_child ( /*OUT*/ ThreadArchState *child,
+ /*IN*/ ThreadArchState *parent )
+{
+ /* We inherit our parent's guest state. */
+ child->vex =3D parent->vex;
+ child->vex_shadow =3D parent->vex_shadow;
+}
=20
-//.. void VG_(setup_child) ( /*OUT*/ ThreadArchState *child,
-//.. /*IN*/ ThreadArchState *parent )
-//.. {
-//.. /* We inherit our parent's guest state. */
-//.. child->vex =3D parent->vex;
-//.. child->vex_shadow =3D parent->vex_shadow;
-//.. /* We inherit our parent's LDT. */
-//.. if (parent->vex.guest_LDT =3D=3D (HWord)NULL) {
-//.. /* We hope this is the common case. */
-//.. child->vex.guest_LDT =3D (HWord)NULL;
-//.. } else {
-//.. /* No luck .. we have to take a copy of the parent's. */
-//.. child->vex.guest_LDT =3D (HWord)VG_(alloc_zeroed_x86_LDT)();
-//.. copy_LDT_from_to( (VexGuestX86SegDescr*)parent->vex.guest_LDT=
,
-//.. (VexGuestX86SegDescr*)child->vex.guest_LDT =
);
-//.. }
-//..
-//.. /* We need an empty GDT. */
-//.. child->vex.guest_GDT =3D (HWord)NULL;
-//.. }
=20
-
-
/* ---------------------------------------------------------------------
PRE/POST wrappers for ppc32/Linux-specific syscalls
------------------------------------------------------------------ */
@@ -947,6 +925,7 @@
DECL_TEMPLATE(ppc32_linux, sys_lstat64);
DECL_TEMPLATE(ppc32_linux, sys_fstat64);
DECL_TEMPLATE(ppc32_linux, sys_ipc);
+DECL_TEMPLATE(ppc32_linux, sys_clone);
=20
PRE(sys_socketcall)
{
@@ -1441,91 +1420,99 @@
//.. }
//.. }
=20
-//.. PRE(sys_clone, Special)
-//.. {
-//.. UInt cloneflags;
-//..=20
-//.. PRINT("sys_clone ( %x, %p, %p, %p, %p )",ARG1,ARG2,ARG3,ARG4,ARG=
5);
-//.. PRE_REG_READ5(int, "clone",
-//.. unsigned long, flags,
-//.. void *, child_stack,
-//.. int *, parent_tidptr,
-//.. vki_modify_ldt_t *, tlsinfo,
-//.. int *, child_tidptr);
-//..=20
-//.. if (ARG1 & VKI_CLONE_PARENT_SETTID) {
-//.. PRE_MEM_WRITE("clone(parent_tidptr)", ARG3, sizeof(Int));
-//.. if (!VG_(is_addressable)(ARG3, sizeof(Int), VKI_PROT_WRITE)) =
{
-//.. SET_RESULT( -VKI_EFAULT );
-//.. return;
-//.. }
-//.. }
-//.. if (ARG1 & (VKI_CLONE_CHILD_SETTID | VKI_CLONE_CHILD_CLEARTID)) =
{
-//.. PRE_MEM_WRITE("clone(child_tidptr)", ARG5, sizeof(Int));
-//.. if (!VG_(is_addressable)(ARG5, sizeof(Int), VKI_PROT_WRITE)) =
{
-//.. SET_RESULT( -VKI_EFAULT );
-//.. return;
-//.. }
-//.. }
-//.. if (ARG1 & VKI_CLONE_SETTLS) {
-//.. PRE_MEM_READ("clone(tls_user_desc)", ARG4, sizeof(vki_modify_=
ldt_t));
-//.. if (!VG_(is_addressable)(ARG4, sizeof(vki_modify_ldt_t), VKI_=
PROT_READ)) {
-//.. SET_RESULT( -VKI_EFAULT );
-//.. return;
-//.. }
-//.. }
-//..=20
-//.. cloneflags =3D ARG1;
-//..=20
-//.. if (!ML_(client_signal_OK)(ARG1 & VKI_CSIGNAL)) {
-//.. SET_RESULT( -VKI_EINVAL );
-//.. return;
-//.. }
-//..=20
-//.. /* Only look at the flags we really care about */
-//.. switch(cloneflags & (VKI_CLONE_VM | VKI_CLONE_FS | VKI_CLONE_FIL=
ES | VKI_CLONE_VFORK)) {
-//.. case VKI_CLONE_VM | VKI_CLONE_FS | VKI_CLONE_FILES:
-//.. /* thread creation */
-//.. SET_RESULT(do_clone(tid,
-//.. ARG1, /* flags */
-//.. (Addr)ARG2, /* child ESP */
-//.. (Int *)ARG3, /* parent_tidptr */
-//.. (Int *)ARG5, /* child_tidptr */
-//.. (vki_modify_ldt_t *)ARG4)); /* set_tls */
-//.. break;
-//..=20
-//.. case VKI_CLONE_VFORK | VKI_CLONE_VM: /* vfork */
-//.. /* FALLTHROUGH - assume vfork =3D=3D fork */
-//.. cloneflags &=3D ~(VKI_CLONE_VFORK | VKI_CLONE_VM);
-//..=20
-//.. case 0: /* plain fork */
-//.. SET_RESULT(do_fork_clone(tid,
-//.. cloneflags, /* flags */
-//.. (Addr)ARG2, /* child ESP */
-//.. (Int *)ARG3, /* parent_tidptr */
-//.. (Int *)ARG5)); /* child_tidptr */
-//.. break;
-//..=20
-//.. default:
-//.. /* should we just ENOSYS? */
-//.. VG_(message)(Vg_UserMsg, "Unsupported clone() flags: %x", ARG=
1);
-//.. VG_(unimplemented)
-//.. ("Valgrind does not support general clone(). The only sup=
ported uses "
-//.. "are via a threads library, fork, or vfork.");
-//.. }
-//..=20
-//.. if (!VG_(is_kerror)(RES)) {
-//.. if (ARG1 & VKI_CLONE_PARENT_SETTID)
-//.. POST_MEM_WRITE(ARG3, sizeof(Int));
-//.. if (ARG1 & (VKI_CLONE_CHILD_SETTID | VKI_CLONE_CHILD_CLEARTID=
))
-//.. POST_MEM_WRITE(ARG5, sizeof(Int));
-//..=20
-//.. /* Thread creation was successful; let the child have the cha=
nce
-//.. to run */
-//.. VG_(vg_yield)();
-//.. }
-//.. }
+PRE(sys_clone)
+{
+ UInt cloneflags;
=20
+ PRINT("sys_clone ( %x, %p, %p, %p, %p )",ARG1,ARG2,ARG3,ARG4,ARG5);
+ PRE_REG_READ5(int, "clone",
+ unsigned long, flags,
+ void *, child_stack,
+ int *, parent_tidptr,
+ vki_modify_ldt_t *, tlsinfo,
+ int *, child_tidptr);
+
+ if (ARG1 & VKI_CLONE_PARENT_SETTID) {
+ PRE_MEM_WRITE("clone(parent_tidptr)", ARG3, sizeof(Int));
+ if (!VG_(is_addressable)(ARG3, sizeof(Int), VKI_PROT_WRITE)) {
+ SET_STATUS_Failure( VKI_EFAULT );
+ return;
+ }
+ }
+ if (ARG1 & (VKI_CLONE_CHILD_SETTID | VKI_CLONE_CHILD_CLEARTID)) {
+ PRE_MEM_WRITE("clone(child_tidptr)", ARG5, sizeof(Int));
+ if (!VG_(is_addressable)(ARG5, sizeof(Int), VKI_PROT_WRITE)) {
+ SET_STATUS_Failure( VKI_EFAULT );
+ return;
+ }
+ }
+
+#warning "Is this next check relevant/needed?"
+ if (ARG1 & VKI_CLONE_SETTLS) {
+ PRE_MEM_READ("clone(tls_user_desc)", ARG4, sizeof(vki_modify_ldt_t=
));
+ if (!VG_(is_addressable)(ARG4, sizeof(vki_modify_ldt_t), VKI_PROT_=
READ)) {
+ SET_STATUS_Failure( VKI_EFAULT );
+ return;
+ }
+ }
+
+ cloneflags =3D ARG1;
+
+ if (!ML_(client_signal_OK)(ARG1 & VKI_CSIGNAL)) {
+ SET_STATUS_Failure( VKI_EINVAL );
+ return;
+ }
+
+ /* Only look at the flags we really care about */
+ switch (cloneflags & (VKI_CLONE_VM | VKI_CLONE_FS=20
+ | VKI_CLONE_FILES | VKI_CLONE_VFORK)) {
+ case VKI_CLONE_VM | VKI_CLONE_FS | VKI_CLONE_FILES:
+ /* thread creation */
+ SET_STATUS_from_SysRes(
+ do_clone(tid,
+ ARG1, /* flags */
+ (Addr)ARG2, /* child SP */
+ (Int *)ARG3, /* parent_tidptr */
+ (Int *)ARG5, /* child_tidptr */
+ (vki_modify_ldt_t *)ARG4)); /* set_tls */
+ break;
+
+ case VKI_CLONE_VFORK | VKI_CLONE_VM: /* vfork */
+ /* FALLTHROUGH - assume vfork =3D=3D fork */
+ cloneflags &=3D ~(VKI_CLONE_VFORK | VKI_CLONE_VM);
+
+ case 0: /* plain fork */
+ SET_STATUS_from_SysRes(
+ do_fork_clone(tid,
+ cloneflags, /* flags */
+ (Addr)ARG2, /* child SP */
+ (Int *)ARG3, /* parent_tidptr */
+ (Int *)ARG5)); /* child_tidptr */
+ break;
+
+ default:
+ /* should we just ENOSYS? */
+ VG_(message)(Vg_UserMsg, "Unsupported clone() flags: 0x%x", ARG1);
+ VG_(message)(Vg_UserMsg, "");
+ VG_(message)(Vg_UserMsg, "The only supported clone() uses are:");
+ VG_(message)(Vg_UserMsg, " - via a threads library (LinuxThreads o=
r NPTL)");
+ VG_(message)(Vg_UserMsg, " - via the implementation of fork or vfo=
rk");
+ VG_(unimplemented)
+ ("Valgrind does not support general clone().");
+ }
+
+ if (SUCCESS) {
+ if (ARG1 & VKI_CLONE_PARENT_SETTID)
+ POST_MEM_WRITE(ARG3, sizeof(Int));
+ if (ARG1 & (VKI_CLONE_CHILD_SETTID | VKI_CLONE_CHILD_CLEARTID))
+ POST_MEM_WRITE(ARG5, sizeof(Int));
+
+ /* Thread creation was successful; let the child have the chance
+ to run */
+ *flags |=3D SfYieldAfter;
+ }
+}
+
//.. PRE(sys_sigreturn, Special)
//.. {
//.. PRINT("sigreturn ( )");
@@ -1935,7 +1922,7 @@
=20
GENXY(__NR_open, sys_open), // 5
GENXY(__NR_close, sys_close), // 6
-//.. GENXY(__NR_waitpid, sys_waitpid), // 7
+ GENXY(__NR_waitpid, sys_waitpid), // 7
GENXY(__NR_creat, sys_creat), // 8
//.. GENX_(__NR_link, sys_link), // 9
//..=20
@@ -2071,7 +2058,7 @@
//.. GENX_(__NR_fsync, sys_fsync), // 118
//.. PLAX_(__NR_sigreturn, sys_sigreturn), // 119 ?/L=
inux
//..=20
-//.. PLAX_(__NR_clone, sys_clone), // 120
+ PLAX_(__NR_clone, sys_clone), // 120
//.. // (__NR_setdomainname, sys_setdomainname), // 121 */*=
(?)
GENXY(__NR_uname, sys_newuname), // 122
//.. PLAX_(__NR_modify_ldt, sys_modify_ldt), // 123
@@ -2124,7 +2111,7 @@
//.. GENX_(__NR_sched_get_priority_min, sys_sched_get_priority_min),/=
/ 160
//.. // (__NR_sched_rr_get_interval, sys_sched_rr_get_interval), /=
/ 161 */*
//.. GENXY(__NR_nanosleep, sys_nanosleep), // 162
-//.. GENX_(__NR_mremap, sys_mremap), // 163
+ GENX_(__NR_mremap, sys_mremap), // 163
//.. LINX_(__NR_setresuid, sys_setresuid16), // 164
//..=20
//.. LINXY(__NR_getresuid, sys_getresuid16), // 165
Modified: trunk/coregrind/vki_unistd-ppc32-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/vki_unistd-ppc32-linux.h 2005-07-02 10:13:34 UTC (rev=
4081)
+++ trunk/coregrind/vki_unistd-ppc32-linux.h 2005-07-02 11:27:02 UTC (rev=
4082)
@@ -36,7 +36,7 @@
#define __NR_write 4
#define __NR_open 5
#define __NR_close 6
-//#define __NR_waitpid 7
+#define __NR_waitpid 7
#define __NR_creat 8
//#define __NR_link 9
#define __NR_unlink 10
|
|
From: <sv...@va...> - 2005-07-02 10:13:41
|
Author: sewardj
Date: 2005-07-02 11:13:34 +0100 (Sat, 02 Jul 2005)
New Revision: 4081
Log:
A few more syscalls for ppc32-linux.
Modified:
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/vki_unistd-ppc32-linux.h
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-07-02 10:13:05 U=
TC (rev 4080)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-07-02 10:13:34 U=
TC (rev 4081)
@@ -1936,11 +1936,11 @@
GENXY(__NR_open, sys_open), // 5
GENXY(__NR_close, sys_close), // 6
//.. GENXY(__NR_waitpid, sys_waitpid), // 7
-//.. GENXY(__NR_creat, sys_creat), // 8
+ GENXY(__NR_creat, sys_creat), // 8
//.. GENX_(__NR_link, sys_link), // 9
//..=20
GENX_(__NR_unlink, sys_unlink), // 10
-//.. GENX_(__NR_execve, sys_execve), // 11
+ GENX_(__NR_execve, sys_execve), // 11
//.. GENX_(__NR_chdir, sys_chdir), // 12
GENXY(__NR_time, sys_time), // 13
//.. GENX_(__NR_mknod, sys_mknod), // 14
@@ -1976,8 +1976,8 @@
//.. GENX_(__NR_mkdir, sys_mkdir), // 39
//..=20
//.. GENX_(__NR_rmdir, sys_rmdir), // 40
-//.. GENXY(__NR_dup, sys_dup), // 41
-//.. GENXY(__NR_pipe, sys_pipe), // 42
+ GENXY(__NR_dup, sys_dup), // 41
+ GENXY(__NR_pipe, sys_pipe), // 42
//.. GENXY(__NR_times, sys_times), // 43
//.. GENX_(__NR_prof, sys_ni_syscall), // 44
//..=20
@@ -2002,7 +2002,7 @@
//.. GENX_(__NR_umask, sys_umask), // 60
//.. GENX_(__NR_chroot, sys_chroot), // 61
//.. // (__NR_ustat, sys_ustat) // 62 SVr4=
-- deprecated
-//.. GENXY(__NR_dup2, sys_dup2), // 63
+ GENXY(__NR_dup2, sys_dup2), // 63
//.. GENXY(__NR_getppid, sys_getppid), // 64
//..=20
//.. GENX_(__NR_getpgrp, sys_getpgrp), // 65
@@ -2185,7 +2185,7 @@
//.. GENX_(__NR_setxattr, sys_setxattr), // 209
//.. GENX_(__NR_lsetxattr, sys_lsetxattr), // 210
//.. GENX_(__NR_fsetxattr, sys_fsetxattr), // 211
-//.. GENXY(__NR_getxattr, sys_getxattr), // 212
+ GENXY(__NR_getxattr, sys_getxattr), // 212
//.. GENXY(__NR_lgetxattr, sys_lgetxattr), // 213
//.. GENXY(__NR_fgetxattr, sys_fgetxattr), // 214
//.. GENXY(__NR_listxattr, sys_listxattr), // 215
Modified: trunk/coregrind/vki_unistd-ppc32-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/vki_unistd-ppc32-linux.h 2005-07-02 10:13:05 UTC (rev=
4080)
+++ trunk/coregrind/vki_unistd-ppc32-linux.h 2005-07-02 10:13:34 UTC (rev=
4081)
@@ -37,7 +37,7 @@
#define __NR_open 5
#define __NR_close 6
//#define __NR_waitpid 7
-//#define __NR_creat 8
+#define __NR_creat 8
//#define __NR_link 9
#define __NR_unlink 10
#define __NR_execve 11
@@ -70,7 +70,7 @@
#define __NR_rename 38
//#define __NR_mkdir 39
//#define __NR_rmdir 40
-//#define __NR_dup 41
+#define __NR_dup 41
#define __NR_pipe 42
//#define __NR_times 43
//#define __NR_prof 44
@@ -241,7 +241,7 @@
//#define __NR_setxattr 209
//#define __NR_lsetxattr 210
//#define __NR_fsetxattr 211
-//#define __NR_getxattr 212
+#define __NR_getxattr 212
//#define __NR_lgetxattr 213
//#define __NR_fgetxattr 214
//#define __NR_listxattr 215
|
|
From: <sv...@va...> - 2005-07-02 10:13:14
|
Author: sewardj
Date: 2005-07-02 11:13:05 +0100 (Sat, 02 Jul 2005)
New Revision: 4080
Log:
Implement VG_(getsockname), VG_(getpeername), VG_(getsockopt) for ppc32-l=
inux.
Modified:
trunk/coregrind/m_libcfile.c
Modified: trunk/coregrind/m_libcfile.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_libcfile.c 2005-07-02 02:56:02 UTC (rev 4079)
+++ trunk/coregrind/m_libcfile.c 2005-07-02 10:13:05 UTC (rev 4080)
@@ -324,7 +324,7 @@
I_die_here;
=20
#elif defined(VGP_ppc32_linux)
-//CAB: TODO
+ //CAB: TODO
I_die_here;
=20
#else
@@ -351,7 +351,7 @@
I_die_here;
=20
#elif defined(VGP_ppc32_linux)
-//CAB: TODO
+ //CAB: TODO
I_die_here;
=20
#else
@@ -383,7 +383,7 @@
I_die_here;
=20
#elif defined(VGP_ppc32_linux)
-//CAB: TODO
+ //CAB: TODO
I_die_here;
flags =3D 0; // stop compiler complaints
=20
@@ -396,7 +396,7 @@
{
SysRes res;
=20
-#if defined(VGP_x86_linux)
+#if defined(VGP_x86_linux) || defined(VGP_ppc32_linux)
UWord args[3];
args[0] =3D sd;
args[1] =3D (UWord)name;
@@ -409,10 +409,6 @@
(UWord)sd, (UWord)name, (UWord)namelen );
return res.isError ? -1 : res.val;
=20
-#elif defined(VGP_ppc32_linux)
-//CAB: TODO
- I_die_here;
- return res.isError ? -1 : res.val;
#else
# error Unknown arch
#endif
@@ -422,7 +418,7 @@
{
SysRes res;
=20
-#if defined(VGP_x86_linux)
+#if defined(VGP_x86_linux) || defined(VGP_ppc32_linux)
UWord args[3];
args[0] =3D sd;
args[1] =3D (UWord)name;
@@ -435,13 +431,8 @@
(UWord)sd, (UWord)name, (UWord)namelen );
return res.isError ? -1 : res.val;
=20
-#elif defined(VGP_ppc32_linux)
-//CAB: TODO
- I_die_here;
- return res.isError ? -1 : res.val;
-
#else
-# error Unknown arch
+# error Unknown archx
#endif
}
=20
@@ -450,7 +441,7 @@
{
SysRes res;
=20
-#if defined(VGP_x86_linux)
+#if defined(VGP_x86_linux) || defined(VGP_ppc32_linux)
UWord args[5];
args[0] =3D sd;
args[1] =3D level;
@@ -466,11 +457,6 @@
(UWord)optval, (UWord)optlen );
return res.isError ? -1 : res.val;
=20
-#elif defined(VGP_ppc32_linux)
-//CAB: TODO
- I_die_here;
- return res.isError ? -1 : res.val;
-
#else
# error Unknown arch
#endif
|
|
From: Tom H. <th...@cy...> - 2005-07-02 03:14:58
|
Nightly build on audi ( i686, Red Hat 9 ) started at 2005-07-02 03:25:02 BST 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 == 178 tests, 8 stderr failures, 2 stdout failures ================= memcheck/tests/sigaltstack (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/pth_blockedsig (stderr) none/tests/pth_cancel1 (stdout) none/tests/pth_cancel1 (stderr) none/tests/pth_cancel2 (stderr) none/tests/x86/int (stderr) none/tests/yield (stdout) |
|
From: <sv...@va...> - 2005-07-02 02:56:06
|
Author: njn Date: 2005-07-02 03:56:02 +0100 (Sat, 02 Jul 2005) New Revision: 4079 Log: ah, crap Modified: trunk/coregrind/m_debugger.c Modified: trunk/coregrind/m_debugger.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_debugger.c 2005-07-02 01:59:28 UTC (rev 4078) +++ trunk/coregrind/m_debugger.c 2005-07-02 02:56:02 UTC (rev 4079) @@ -32,6 +32,7 @@ #include "pub_core_threadstate.h" #include "pub_core_debugger.h" #include "pub_core_libcbase.h" +#include "pub_core_libcassert.h" // For I_die_here #include "pub_core_libcprint.h" #include "pub_core_libcproc.h" #include "pub_core_libcsignal.h" |
|
From: <js...@ac...> - 2005-07-02 02:41:10
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-07-02 03:30:00 BST 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 == 176 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <to...@co...> - 2005-07-02 02:32:23
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-07-02 03:30:03 BST 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 Last 20 lines of log.verbose follow insn_fpu.c: In function 'fsubrl_1': insn_fpu.c:16391: error: unknown register name 'mm6' in 'asm' insn_fpu.c: In function 'fsubrl_2': insn_fpu.c:16429: error: unknown register name 'mm6' in 'asm' insn_fpu.c: In function 'fsubrl_3': insn_fpu.c:16467: error: unknown register name 'mm6' in 'asm' insn_fpu.c: In function 'fsubrl_4': insn_fpu.c:16505: error: unknown register name 'mm6' in 'asm' make[5]: *** [insn_fpu.o] Error 1 rm insn_fpu.c insn_basic.c make[5]: Leaving directory `/tmp/valgrind.8369/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/valgrind.8369/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.8369/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.8369/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.8369/valgrind' make: *** [check] Error 2 |
|
From: Tom H. <th...@cy...> - 2005-07-02 02:21:06
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-07-02 03:15:02 BST 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 == 177 tests, 15 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/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/yield (stdout) |
|
From: Tom H. <th...@cy...> - 2005-07-02 02:11:58
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-07-02 03:10:08 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of log.verbose follow then mv -f ".deps/m_ume.Tpo" ".deps/m_ume.Po"; else rm -f ".deps/m_ume.Tpo"; exit 1; fi gcc -fpie -m64 -fomit-frame-pointer -Wmissing-prototypes -Winline -Wall -Wshadow -O -g -Wno-long-long -Wno-pointer-sign -o valgrind -static -g stage1.o m_debuglog.o m_ume.o gcc -I../coregrind -I.. -I../coregrind/amd64 -I../coregrind/linux -I../coregrind/amd64-linux -I../include -I/tmp/valgrind.7528/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -m64 -Wa,-gstabs -Wno-long-long -c m_cpuid.S if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/amd64 -I../coregrind/linux -I../coregrind/amd64-linux -I../include -I/tmp/valgrind.7528/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.7528/Inst/lib/valgrind"\" -DKICKSTART_BASE=0x70000000 -fpie -m64 -fomit-frame-pointer -Wmissing-prototypes -Winline -Wall -Wshadow -O -g -Wno-long-long -Wno-pointer-sign -MT m_debugger.o -MD -MP -MF ".deps/m_debugger.Tpo" -c -o m_debugger.o m_debugger.c; \ then mv -f ".deps/m_debugger.Tpo" ".deps/m_debugger.Po"; else rm -f ".deps/m_debugger.Tpo"; exit 1; fi m_debugger.c: In function 'ptrace_setregs': m_debugger.c:69: error: 'I_die_here' undeclared (first use in this function) m_debugger.c:69: error: (Each undeclared identifier is reported only once m_debugger.c:69: error: for each function it appears in.) m_debugger.c:48: warning: unused variable 'regs' m_debugger.c:76: warning: control reaches end of non-void function make[4]: *** [m_debugger.o] Error 1 make[4]: Leaving directory `/tmp/valgrind.7528/valgrind/coregrind' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.7528/valgrind/coregrind' make[2]: *** [all] Error 2 make[2]: Leaving directory `/tmp/valgrind.7528/valgrind/coregrind' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.7528/valgrind' make: *** [all] Error 2 |
|
From: Tom H. <th...@cy...> - 2005-07-02 02:08:48
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-07-02 03:05:10 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of log.verbose follow if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/amd64 -I../coregrind/linux -I../coregrind/amd64-linux -I../include -I/tmp/valgrind.11467/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.11467/Inst/lib/valgrind"\" -DKICKSTART_BASE=0x70000000 -fpie -m64 -fomit-frame-pointer -Wmissing-prototypes -Winline -Wall -Wshadow -O -g -Wno-long-long -MT m_ume.o -MD -MP -MF ".deps/m_ume.Tpo" -c -o m_ume.o m_ume.c; \ then mv -f ".deps/m_ume.Tpo" ".deps/m_ume.Po"; else rm -f ".deps/m_ume.Tpo"; exit 1; fi gcc -fpie -m64 -fomit-frame-pointer -Wmissing-prototypes -Winline -Wall -Wshadow -O -g -Wno-long-long -o valgrind -static -g stage1.o m_debuglog.o m_ume.o gcc -I../coregrind -I.. -I../coregrind/amd64 -I../coregrind/linux -I../coregrind/amd64-linux -I../include -I/tmp/valgrind.11467/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -m64 -Wa,-gstabs -Wno-long-long -c m_cpuid.S if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/amd64 -I../coregrind/linux -I../coregrind/amd64-linux -I../include -I/tmp/valgrind.11467/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.11467/Inst/lib/valgrind"\" -DKICKSTART_BASE=0x70000000 -fpie -m64 -fomit-frame-pointer -Wmissing-prototypes -Winline -Wall -Wshadow -O -g -Wno-long-long -MT m_debugger.o -MD -MP -MF ".deps/m_debugger.Tpo" -c -o m_debugger.o m_debugger.c; \ then mv -f ".deps/m_debugger.Tpo" ".deps/m_debugger.Po"; else rm -f ".deps/m_debugger.Tpo"; exit 1; fi m_debugger.c: In function `ptrace_setregs': m_debugger.c:69: error: `I_die_here' undeclared (first use in this function) m_debugger.c:69: error: (Each undeclared identifier is reported only once m_debugger.c:69: error: for each function it appears in.) m_debugger.c:48: warning: unused variable `regs' make[4]: *** [m_debugger.o] Error 1 make[4]: Leaving directory `/tmp/valgrind.11467/valgrind/coregrind' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.11467/valgrind/coregrind' make[2]: *** [all] Error 2 make[2]: Leaving directory `/tmp/valgrind.11467/valgrind/coregrind' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.11467/valgrind' make: *** [all] Error 2 |
|
From: Tom H. <th...@cy...> - 2005-07-02 02:01:36
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-07-02 03:00:02 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of log.verbose follow if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/amd64 -I../coregrind/linux -I../coregrind/amd64-linux -I../include -I/tmp/valgrind.23051/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.23051/Inst/lib/valgrind"\" -DKICKSTART_BASE=0x70000000 -fpie -m64 -fomit-frame-pointer -Wmissing-prototypes -Winline -Wall -Wshadow -O -g -Wno-long-long -MT m_ume.o -MD -MP -MF ".deps/m_ume.Tpo" -c -o m_ume.o m_ume.c; \ then mv -f ".deps/m_ume.Tpo" ".deps/m_ume.Po"; else rm -f ".deps/m_ume.Tpo"; exit 1; fi gcc -fpie -m64 -fomit-frame-pointer -Wmissing-prototypes -Winline -Wall -Wshadow -O -g -Wno-long-long -o valgrind -static -g stage1.o m_debuglog.o m_ume.o gcc -I../coregrind -I.. -I../coregrind/amd64 -I../coregrind/linux -I../coregrind/amd64-linux -I../include -I/tmp/valgrind.23051/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -m64 -Wa,-gstabs -Wno-long-long -c m_cpuid.S if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../coregrind -I.. -I../coregrind/amd64 -I../coregrind/linux -I../coregrind/amd64-linux -I../include -I/tmp/valgrind.23051/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -DVG_LIBDIR="\"/tmp/valgrind.23051/Inst/lib/valgrind"\" -DKICKSTART_BASE=0x70000000 -fpie -m64 -fomit-frame-pointer -Wmissing-prototypes -Winline -Wall -Wshadow -O -g -Wno-long-long -MT m_debugger.o -MD -MP -MF ".deps/m_debugger.Tpo" -c -o m_debugger.o m_debugger.c; \ then mv -f ".deps/m_debugger.Tpo" ".deps/m_debugger.Po"; else rm -f ".deps/m_debugger.Tpo"; exit 1; fi m_debugger.c: In function `ptrace_setregs': m_debugger.c:69: error: `I_die_here' undeclared (first use in this function) m_debugger.c:69: error: (Each undeclared identifier is reported only once m_debugger.c:69: error: for each function it appears in.) m_debugger.c:48: warning: unused variable `regs' make[4]: *** [m_debugger.o] Error 1 make[4]: Leaving directory `/tmp/valgrind.23051/valgrind/coregrind' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.23051/valgrind/coregrind' make[2]: *** [all] Error 2 make[2]: Leaving directory `/tmp/valgrind.23051/valgrind/coregrind' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.23051/valgrind' make: *** [all] Error 2 |