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
(16) |
2
(7) |
3
(9) |
4
(12) |
5
(20) |
|
6
(24) |
7
(10) |
8
(7) |
9
(17) |
10
(9) |
11
(7) |
12
(8) |
|
13
(12) |
14
(17) |
15
(15) |
16
(15) |
17
(21) |
18
(9) |
19
(17) |
|
20
(16) |
21
(12) |
22
(18) |
23
(8) |
24
(2) |
25
(17) |
26
(23) |
|
27
(30) |
28
(19) |
29
(14) |
30
(11) |
|
|
|
|
From: <sv...@va...> - 2008-04-14 20:30:44
|
Author: sewardj
Date: 2008-04-14 21:30:34 +0100 (Mon, 14 Apr 2008)
New Revision: 7876
Log:
Remove VG_ prefixing from static (non-exported) functions.
Modified:
trunk/coregrind/m_libcprint.c
Modified: trunk/coregrind/m_libcprint.c
===================================================================
--- trunk/coregrind/m_libcprint.c 2008-04-14 16:35:32 UTC (rev 7875)
+++ trunk/coregrind/m_libcprint.c 2008-04-14 20:30:34 UTC (rev 7876)
@@ -81,9 +81,9 @@
}
printf_buf;
-static UInt VG_(vprintf_to_buf) ( printf_buf *printf_buf,
- const HChar *format, va_list vargs );
-static UInt VG_(printf_to_buf) ( printf_buf* prbuf, const HChar *format, ... );
+static UInt vprintf_to_buf ( printf_buf *printf_buf,
+ const HChar *format, va_list vargs );
+static UInt printf_to_buf ( printf_buf* prbuf, const HChar *format, ... );
// Adds a single char to the buffer. When the buffer gets sufficiently
// full, we write its contents to the logging sink.
@@ -105,7 +105,7 @@
UInt ret = 0;
printf_buf myprintf_buf = {"",0};
- ret = VG_(vprintf_to_buf)(&myprintf_buf, format, vargs);
+ ret = vprintf_to_buf(&myprintf_buf, format, vargs);
// Write out any chars left in the buffer.
if (myprintf_buf.n > 0) {
send_bytes_to_logging_sink( myprintf_buf.buf, myprintf_buf.n );
@@ -113,8 +113,8 @@
return ret;
}
-static UInt VG_(vprintf_to_buf) ( printf_buf *prbuf,
- const HChar *format, va_list vargs )
+static UInt vprintf_to_buf ( printf_buf *prbuf,
+ const HChar *format, va_list vargs )
{
UInt ret = 0;
@@ -137,13 +137,13 @@
return ret;
}
-static UInt VG_(printf_to_buf) ( printf_buf* prbuf, const HChar *format, ... )
+static UInt printf_to_buf ( printf_buf* prbuf, const HChar *format, ... )
{
UInt ret;
va_list vargs;
va_start(vargs, format);
- ret = VG_(vprintf_to_buf)(prbuf, format, vargs);
+ ret = vprintf_to_buf(prbuf, format, vargs);
va_end(vargs);
return ret;
@@ -340,23 +340,23 @@
// being performed.
depth = RUNNING_ON_VALGRIND;
for (i = 0; i < depth; i++) {
- count += VG_(printf_to_buf) (&myprintf_buf, ">");
+ count += printf_to_buf (&myprintf_buf, ">");
}
if (!VG_(clo_xml))
- count += VG_(printf_to_buf) (&myprintf_buf, "%c%c", c,c);
+ count += printf_to_buf (&myprintf_buf, "%c%c", c,c);
if (VG_(clo_time_stamp)) {
HChar buf[50];
VG_(elapsed_wallclock_time)(buf);
- count += VG_(printf_to_buf)(&myprintf_buf, "%s ", buf);
+ count += printf_to_buf(&myprintf_buf, "%s ", buf);
}
if (!VG_(clo_xml))
- count += VG_(printf_to_buf) (&myprintf_buf, "%d%c%c ", VG_(getpid)(), c,c);
+ count += printf_to_buf (&myprintf_buf, "%d%c%c ", VG_(getpid)(), c,c);
- count += VG_(vprintf_to_buf)(&myprintf_buf, format, vargs);
- count += VG_(printf_to_buf) (&myprintf_buf, "\n");
+ count += vprintf_to_buf (&myprintf_buf, format, vargs);
+ count += printf_to_buf (&myprintf_buf, "\n");
if (myprintf_buf.n > 0) {
send_bytes_to_logging_sink( myprintf_buf.buf, myprintf_buf.n );
|
|
From: <sv...@va...> - 2008-04-14 16:35:36
|
Author: bart
Date: 2008-04-14 17:35:32 +0100 (Mon, 14 Apr 2008)
New Revision: 7875
Log:
Extended VG_(message)() buffer from 100 to 128 characters. Made sure that lines printed by different threads are not mixed up in the output.
Modified:
trunk/coregrind/m_libcprint.c
Modified: trunk/coregrind/m_libcprint.c
===================================================================
--- trunk/coregrind/m_libcprint.c 2008-04-14 16:12:09 UTC (rev 7874)
+++ trunk/coregrind/m_libcprint.c 2008-04-14 16:35:32 UTC (rev 7875)
@@ -76,23 +76,28 @@
typedef
struct {
- HChar buf[100];
+ HChar buf[128];
Int n;
}
printf_buf;
+static UInt VG_(vprintf_to_buf) ( printf_buf *printf_buf,
+ const HChar *format, va_list vargs );
+static UInt VG_(printf_to_buf) ( printf_buf* prbuf, const HChar *format, ... );
+
// Adds a single char to the buffer. When the buffer gets sufficiently
// full, we write its contents to the logging sink.
static void add_to_myprintf_buf ( HChar c, void *p )
{
printf_buf *myprintf_buf = (printf_buf *)p;
- if (myprintf_buf->n >= 100-10 /*paranoia*/ ) {
+ if (myprintf_buf->n > sizeof(myprintf_buf->buf) - 2 ) {
send_bytes_to_logging_sink( myprintf_buf->buf, myprintf_buf->n );
myprintf_buf->n = 0;
}
myprintf_buf->buf[myprintf_buf->n++] = c;
myprintf_buf->buf[myprintf_buf->n] = 0;
+ tl_assert(myprintf_buf->n < sizeof(myprintf_buf->buf));
}
UInt VG_(vprintf) ( const HChar *format, va_list vargs )
@@ -100,14 +105,22 @@
UInt ret = 0;
printf_buf myprintf_buf = {"",0};
+ ret = VG_(vprintf_to_buf)(&myprintf_buf, format, vargs);
+ // Write out any chars left in the buffer.
+ if (myprintf_buf.n > 0) {
+ send_bytes_to_logging_sink( myprintf_buf.buf, myprintf_buf.n );
+ }
+ return ret;
+}
+
+static UInt VG_(vprintf_to_buf) ( printf_buf *prbuf,
+ const HChar *format, va_list vargs )
+{
+ UInt ret = 0;
+
if (VG_(clo_log_fd) >= 0) {
ret = VG_(debugLog_vprintf)
- ( add_to_myprintf_buf, &myprintf_buf, format, vargs );
-
- // Write out any chars left in the buffer.
- if (myprintf_buf.n > 0) {
- send_bytes_to_logging_sink( myprintf_buf.buf, myprintf_buf.n );
- }
+ ( add_to_myprintf_buf, prbuf, format, vargs );
}
return ret;
}
@@ -124,6 +137,18 @@
return ret;
}
+static UInt VG_(printf_to_buf) ( printf_buf* prbuf, const HChar *format, ... )
+{
+ UInt ret;
+ va_list vargs;
+
+ va_start(vargs, format);
+ ret = VG_(vprintf_to_buf)(prbuf, format, vargs);
+ va_end(vargs);
+
+ return ret;
+}
+
/* A general replacement for sprintf(). */
static void add_to_vg_sprintf_buf ( HChar c, void *p )
{
@@ -301,6 +326,7 @@
UInt count = 0;
Char c;
Int i, depth;
+ printf_buf myprintf_buf = {"",0};
switch (kind) {
case Vg_UserMsg: c = '='; break;
@@ -314,23 +340,28 @@
// being performed.
depth = RUNNING_ON_VALGRIND;
for (i = 0; i < depth; i++) {
- count += VG_(printf) (">");
+ count += VG_(printf_to_buf) (&myprintf_buf, ">");
}
if (!VG_(clo_xml))
- count += VG_(printf) ("%c%c", c,c);
+ count += VG_(printf_to_buf) (&myprintf_buf, "%c%c", c,c);
if (VG_(clo_time_stamp)) {
HChar buf[50];
VG_(elapsed_wallclock_time)(buf);
- count += VG_(printf)( "%s ", buf);
+ count += VG_(printf_to_buf)(&myprintf_buf, "%s ", buf);
}
if (!VG_(clo_xml))
- count += VG_(printf) ("%d%c%c ", VG_(getpid)(), c,c);
+ count += VG_(printf_to_buf) (&myprintf_buf, "%d%c%c ", VG_(getpid)(), c,c);
- count += VG_(vprintf)(format, vargs);
- count += VG_(printf) ("\n");
+ count += VG_(vprintf_to_buf)(&myprintf_buf, format, vargs);
+ count += VG_(printf_to_buf) (&myprintf_buf, "\n");
+
+ if (myprintf_buf.n > 0) {
+ send_bytes_to_logging_sink( myprintf_buf.buf, myprintf_buf.n );
+ }
+
return count;
}
|
|
From: <sv...@va...> - 2008-04-14 16:12:40
|
Author: bart
Date: 2008-04-14 17:12:09 +0100 (Mon, 14 Apr 2008)
New Revision: 7874
Log:
Added Amarok.
Modified:
trunk/exp-drd/Testing.txt
Modified: trunk/exp-drd/Testing.txt
===================================================================
--- trunk/exp-drd/Testing.txt 2008-04-14 16:11:50 UTC (rev 7873)
+++ trunk/exp-drd/Testing.txt 2008-04-14 16:12:09 UTC (rev 7874)
@@ -16,6 +16,7 @@
not print any error messages:
./vg-in-place --tool=exp-drd kate
./vg-in-place --trace-children=yes --tool=exp-drd knode
+ ./vg-in-place --trace-children=yes --tool=exp-drd amarokapp
4. Test DRD with Firefox. First of all, build and install Firefox 3. Next,
run the following command:
LD_LIBRARY_PATH=$HOME/software/mozilla-build/dist/lib: ./vg-in-place --trace-children=yes --tool=exp-drd $HOME/software/mozilla-build/dist/bin/firefox-bin
|
|
From: Nuno L. <nun...@sa...> - 2008-04-14 16:11:51
|
Thank you! Nuno P.S.: I'm not spanish :P ----- Original Message ----- From: <sv...@va...> To: <val...@li...> Sent: Monday, April 14, 2008 11:18 AM Subject: [Valgrind-developers] valgrind: r7869 -branches/OTRACK_BY_INSTRUMENTATION/memcheck/tests > Author: sewardj > Date: 2008-04-14 11:18:50 +0100 (Mon, 14 Apr 2008) > New Revision: 7869 > > Log: > Make varinfo* regtests build on ppc64-linux (Nuno Lopez). > > > Modified: > branches/OTRACK_BY_INSTRUMENTATION/memcheck/tests/Makefile.am > > > Modified: branches/OTRACK_BY_INSTRUMENTATION/memcheck/tests/Makefile.am > =================================================================== > --- branches/OTRACK_BY_INSTRUMENTATION/memcheck/tests/Makefile.am > 2008-04-13 19:38:00 UTC (rev 7868) > +++ branches/OTRACK_BY_INSTRUMENTATION/memcheck/tests/Makefile.am > 2008-04-14 10:18:50 UTC (rev 7869) > @@ -223,12 +223,12 @@ > supp2_SOURCES = supp.c > # To make it a bit more realistic, have some optimisation enabled > # for the varinfo tests. We still expect sane results. > -varinfo1_CFLAGS = -O -g > -varinfo2_CFLAGS = -O -g > -varinfo3_CFLAGS = -O -g > -varinfo4_CFLAGS = -O -g > -varinfo5_CFLAGS = -O -g > -varinfo6_CFLAGS = -O -g > +varinfo1_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g > +varinfo2_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g > +varinfo3_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g > +varinfo4_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g > +varinfo5_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g > +varinfo6_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g > > # C++ tests > mismatches_SOURCES = mismatches.cpp |
|
From: <sv...@va...> - 2008-04-14 16:11:49
|
Author: bart Date: 2008-04-14 17:11:50 +0100 (Mon, 14 Apr 2008) New Revision: 7873 Log: Updated to do list. Modified: trunk/exp-drd/TODO.txt Modified: trunk/exp-drd/TODO.txt =================================================================== --- trunk/exp-drd/TODO.txt 2008-04-14 16:10:01 UTC (rev 7872) +++ trunk/exp-drd/TODO.txt 2008-04-14 16:11:50 UTC (rev 7873) @@ -1,15 +1,18 @@ -Last updated March 24, 2008. +Last updated April 14, 2008. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Data-race detection algorithm ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Make sure -v works again with exp-drd. +- More extensive testing of reader/writer locks. +- Regression test for bitmap manipulation functions. +- Continue discussion about unification of DRD and Helgrind client requests. +- Memory pool support. - Add locking order checking. - Continue the discussion on the Valgrind mailing list about docbook and 'make dist'. -- Explain on the Valgrind mailing list the difference between a bus lock - and acquire / release labels. +- Let DRD print an error message and stop as soon as qt1, qt2 or qt3 is + loaded. Only qt4 is SMP safe. - Add configure tests for the name of the 'kind' member in pthread_mutex_t. - Find out why a race is reported on std::string::string(std::string const&) (stc test case 16). |
|
From: <sv...@va...> - 2008-04-14 16:10:07
|
Author: bart
Date: 2008-04-14 17:10:01 +0100 (Mon, 14 Apr 2008)
New Revision: 7872
Log:
Added bm_compare().
Modified:
trunk/exp-drd/drd_bitmap.c
trunk/exp-drd/pub_drd_bitmap.h
Modified: trunk/exp-drd/drd_bitmap.c
===================================================================
--- trunk/exp-drd/drd_bitmap.c 2008-04-14 11:42:51 UTC (rev 7871)
+++ trunk/exp-drd/drd_bitmap.c 2008-04-14 16:10:01 UTC (rev 7872)
@@ -745,6 +745,52 @@
return bm_has_conflict_with(bm, a1, a2, eStore);
}
+/** Return true if the two bitmaps *lhs and *rhs are identical, and false
+ * if not.
+ */
+Bool bm_compare(struct bitmap* const lhs,
+ const struct bitmap* const rhs)
+{
+ struct bitmap2* bm2l;
+ struct bitmap2ref* bm2l_ref;
+ struct bitmap2* bm2r;
+ const struct bitmap2ref* bm2r_ref;
+
+ VG_(OSetGen_ResetIter)(lhs->oset);
+ VG_(OSetGen_ResetIter)(rhs->oset);
+
+ for ( ; (bm2l_ref = VG_(OSetGen_Next)(lhs->oset)) != 0; )
+ {
+ bm2l = bm2l_ref->bm2;
+ tl_assert(bm2l);
+ tl_assert(bm_has_any_access(lhs,
+ bm2l->addr << ADDR0_BITS,
+ (bm2l->addr + 1) << ADDR0_BITS));
+ bm2r_ref = VG_(OSetGen_Next)(rhs->oset);
+ if (bm2r_ref == 0)
+ return False;
+ bm2r = bm2r_ref->bm2;
+ tl_assert(bm2r);
+ tl_assert(bm_has_any_access(rhs,
+ bm2r->addr << ADDR0_BITS,
+ (bm2r->addr + 1) << ADDR0_BITS));
+ if (bm2l->addr != bm2r->addr
+ || VG_(memcmp)(&bm2l->bm1, &bm2r->bm1, sizeof(bm2l->bm1)) != 0)
+ {
+ return False;
+ }
+ bm2r = VG_(OSetGen_Next)(rhs->oset);
+ if (bm2r)
+ {
+ tl_assert(bm_has_any_access(rhs,
+ bm2r->addr << ADDR0_BITS,
+ (bm2r->addr + 1) << ADDR0_BITS));
+ return False;
+ }
+ }
+ return True;
+}
+
void bm_swap(struct bitmap* const bm1, struct bitmap* const bm2)
{
OSet* const tmp = bm1->oset;
Modified: trunk/exp-drd/pub_drd_bitmap.h
===================================================================
--- trunk/exp-drd/pub_drd_bitmap.h 2008-04-14 11:42:51 UTC (rev 7871)
+++ trunk/exp-drd/pub_drd_bitmap.h 2008-04-14 16:10:01 UTC (rev 7872)
@@ -102,6 +102,8 @@
Bool bm_store_8_has_conflict_with(const struct bitmap* const bm,const Addr a1);
Bool bm_store_has_conflict_with(const struct bitmap* const bm,
const Addr a1, const Addr a2);
+Bool bm_compare(struct bitmap* const lhs,
+ const struct bitmap* const rhs);
void bm_swap(struct bitmap* const bm1, struct bitmap* const bm2);
void bm_merge2(struct bitmap* const lhs,
const struct bitmap* const rhs);
|
|
From: <sv...@va...> - 2008-04-14 11:42:48
|
Author: sewardj
Date: 2008-04-14 12:42:51 +0100 (Mon, 14 Apr 2008)
New Revision: 7871
Log:
Start to tidy up. Move MC_(get_otrack_shadow_offset) and
MC_(get_otrack_reg_array_equiv_int_type) into a new source file
(mc_machine.c), since they are both ugly and dependent on the guest
architecture.
Added:
branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_machine.c
Modified:
branches/OTRACK_BY_INSTRUMENTATION/memcheck/Makefile.am
branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_include.h
branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_translate.c
Modified: branches/OTRACK_BY_INSTRUMENTATION/memcheck/Makefile.am
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/memcheck/Makefile.am 2008-04-14 10:20:15 UTC (rev 7870)
+++ branches/OTRACK_BY_INSTRUMENTATION/memcheck/Makefile.am 2008-04-14 11:42:51 UTC (rev 7871)
@@ -80,7 +80,8 @@
mc_leakcheck.c \
mc_malloc_wrappers.c \
mc_main.c \
- mc_translate.c
+ mc_translate.c \
+ mc_machine.c
memcheck_x86_linux_SOURCES = $(MEMCHECK_SOURCES_COMMON)
memcheck_x86_linux_CPPFLAGS = $(AM_CPPFLAGS_X86_LINUX)
Modified: branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_include.h
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_include.h 2008-04-14 10:20:15 UTC (rev 7870)
+++ branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_include.h 2008-04-14 11:42:51 UTC (rev 7871)
@@ -118,7 +118,16 @@
extern void MC_(__builtin_vec_delete) ( ThreadId tid, void* p );
extern void* MC_(realloc) ( ThreadId tid, void* p, SizeT new_size );
+/*------------------------------------------------------------*/
+/*--- Origin tracking translate-time support ---*/
+/*------------------------------------------------------------*/
+/* See detailed comments in mc_machine.c. */
+extern
+Int MC_(get_otrack_shadow_offset) ( Int offset, Int szB );
+extern
+IRType MC_(get_otrack_reg_array_equiv_int_type) ( IRRegArray* arr );
+
/*------------------------------------------------------------*/
/*--- Profiling of memory events ---*/
/*------------------------------------------------------------*/
Added: branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_machine.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_machine.c (rev 0)
+++ branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_machine.c 2008-04-14 11:42:51 UTC (rev 7871)
@@ -0,0 +1,710 @@
+
+/*--------------------------------------------------------------------*/
+/*--- Contains machine-specific (guest-state-layout-specific) ---*/
+/*--- support for origin tracking. ---*/
+/*--- mc_machine.c ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+ This file is part of MemCheck, a heavyweight Valgrind tool for
+ detecting memory errors.
+
+ Copyright (C) 2008-2008 OpenWorks Ltd
+ in...@op...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+
+ Neither the names of the U.S. Department of Energy nor the
+ University of California nor the names of its contributors may be
+ used to endorse or promote products derived from this software
+ without prior written permission.
+*/
+
+#include "pub_tool_basics.h"
+#include "pub_tool_hashtable.h" // For mc_include.h
+#include "pub_tool_libcassert.h"
+#include "pub_tool_libcprint.h"
+#include "pub_tool_tooliface.h"
+
+#include "mc_include.h"
+
+#if defined(VGA_x86)
+# include "libvex_guest_x86.h"
+#endif
+
+#if defined(VGA_amd64)
+# include "libvex_guest_amd64.h"
+#endif
+
+#if defined(VGA_ppc32)
+# include "libvex_guest_ppc32.h"
+#endif
+
+#if defined(VGA_ppc64)
+# include "libvex_guest_ppc64.h"
+#endif
+
+static inline Bool host_is_big_endian ( void ) {
+ UInt x = 0x11223344;
+ return 0x1122 == *(UShort*)(&x);
+}
+static inline Bool host_is_little_endian ( void ) {
+ UInt x = 0x11223344;
+ return 0x3344 == *(UShort*)(&x);
+}
+
+
+/* Let (offset,szB) describe a reference to the guest state section
+ [offset, offset+szB).
+
+ This function returns the corresponding guest state reference to be
+ used for the origin tag (which of course will be in the second
+ shadow area), or -1 if this piece of guest state is not to be
+ tracked.
+
+ Since origin tags are 32-bits long, we expect any returns value
+ (except -1) to be a multiple of 4, between 0 and
+ sizeof(guest-state)-4 inclusive.
+
+ This is inherently (guest-)architecture specific. For x86 and
+ amd64 we do some somewhat tricky things to give %AH .. %DH their
+ own tags. On ppc32/64 we do some marginally tricky things to give
+ all 16 %CR components their own tags.
+
+ This function only deals with references to the guest state whose
+ offsets are known at translation time (that is, references arising
+ from Put and Get). References whose offset is not known until run
+ time (that is, arise from PutI and GetI) are handled by
+ MC_(get_otrack_reg_array_equiv_int_type) below.
+
+ Note that since some guest state arrays (eg, the x86 FP reg stack)
+ are accessed both as arrays (eg, x87 insns) and directly (eg, MMX
+ insns), the two functions must be consistent for those sections of
+ guest state -- that is, they must both say the area is shadowed, or
+ both say it is not.
+
+ This function is dependent on the host's endianness, hence we
+ assert that the use case is supported.
+*/
+Int MC_(get_otrack_shadow_offset) ( Int offset, Int szB )
+{
+ /* -------------------- ppc64 -------------------- */
+
+# if defined(VGA_ppc64)
+
+# define GOF(_fieldname) \
+ (offsetof(VexGuestPPC64State,guest_##_fieldname))
+# define SZB(_fieldname) \
+ (sizeof(((VexGuestPPC64State*)0)->guest_##_fieldname))
+
+ Int o = offset;
+ Int sz = szB;
+ tl_assert(sz > 0);
+ tl_assert(host_is_big_endian());
+
+ if (o == GOF(GPR0) && sz == 8) return o;
+ if (o == GOF(GPR1) && sz == 8) return o;
+ if (o == GOF(GPR2) && sz == 8) return o;
+ if (o == GOF(GPR3) && sz == 8) return o;
+ if (o == GOF(GPR4) && sz == 8) return o;
+ if (o == GOF(GPR5) && sz == 8) return o;
+ if (o == GOF(GPR6) && sz == 8) return o;
+ if (o == GOF(GPR7) && sz == 8) return o;
+ if (o == GOF(GPR8) && sz == 8) return o;
+ if (o == GOF(GPR9) && sz == 8) return o;
+ if (o == GOF(GPR10) && sz == 8) return o;
+ if (o == GOF(GPR11) && sz == 8) return o;
+ if (o == GOF(GPR12) && sz == 8) return o;
+ if (o == GOF(GPR13) && sz == 8) return o;
+ if (o == GOF(GPR14) && sz == 8) return o;
+ if (o == GOF(GPR15) && sz == 8) return o;
+ if (o == GOF(GPR16) && sz == 8) return o;
+ if (o == GOF(GPR17) && sz == 8) return o;
+ if (o == GOF(GPR18) && sz == 8) return o;
+ if (o == GOF(GPR19) && sz == 8) return o;
+ if (o == GOF(GPR20) && sz == 8) return o;
+ if (o == GOF(GPR21) && sz == 8) return o;
+ if (o == GOF(GPR22) && sz == 8) return o;
+ if (o == GOF(GPR23) && sz == 8) return o;
+ if (o == GOF(GPR24) && sz == 8) return o;
+ if (o == GOF(GPR25) && sz == 8) return o;
+ if (o == GOF(GPR26) && sz == 8) return o;
+ if (o == GOF(GPR27) && sz == 8) return o;
+ if (o == GOF(GPR28) && sz == 8) return o;
+ if (o == GOF(GPR29) && sz == 8) return o;
+ if (o == GOF(GPR30) && sz == 8) return o;
+ if (o == GOF(GPR31) && sz == 8) return o;
+
+ if (o == GOF(LR) && sz == 8) return o;
+ if (o == GOF(CTR) && sz == 8) return o;
+
+ if (o == GOF(CIA) && sz == 8) return -1;
+ if (o == GOF(CIA_AT_SC) && sz == 8) return -1;
+ if (o == GOF(RESVN) && sz == 8) return -1;
+ if (o == GOF(FPROUND) && sz == 4) return -1;
+ if (o == GOF(EMWARN) && sz == 4) return -1;
+ if (o == GOF(TISTART) && sz == 8) return -1;
+ if (o == GOF(TILEN) && sz == 8) return -1;
+ if (o == GOF(VSCR) && sz == 4) return -1;
+ if (o == GOF(VRSAVE) && sz == 4) return -1;
+ if (o == GOF(REDIR_SP) && sz == 8) return -1;
+
+ tl_assert(SZB(FPR0) == 8);
+ if (o == GOF(FPR0) && sz == 8) return o;
+ if (o == GOF(FPR1) && sz == 8) return o;
+ if (o == GOF(FPR2) && sz == 8) return o;
+ if (o == GOF(FPR3) && sz == 8) return o;
+ if (o == GOF(FPR4) && sz == 8) return o;
+ if (o == GOF(FPR5) && sz == 8) return o;
+ if (o == GOF(FPR6) && sz == 8) return o;
+ if (o == GOF(FPR7) && sz == 8) return o;
+ if (o == GOF(FPR8) && sz == 8) return o;
+ if (o == GOF(FPR9) && sz == 8) return o;
+ if (o == GOF(FPR10) && sz == 8) return o;
+ if (o == GOF(FPR11) && sz == 8) return o;
+ if (o == GOF(FPR12) && sz == 8) return o;
+ if (o == GOF(FPR13) && sz == 8) return o;
+ if (o == GOF(FPR14) && sz == 8) return o;
+ if (o == GOF(FPR15) && sz == 8) return o;
+ if (o == GOF(FPR16) && sz == 8) return o;
+ if (o == GOF(FPR17) && sz == 8) return o;
+ if (o == GOF(FPR18) && sz == 8) return o;
+ if (o == GOF(FPR19) && sz == 8) return o;
+ if (o == GOF(FPR20) && sz == 8) return o;
+ if (o == GOF(FPR21) && sz == 8) return o;
+ if (o == GOF(FPR22) && sz == 8) return o;
+ if (o == GOF(FPR23) && sz == 8) return o;
+ if (o == GOF(FPR24) && sz == 8) return o;
+ if (o == GOF(FPR25) && sz == 8) return o;
+ if (o == GOF(FPR26) && sz == 8) return o;
+ if (o == GOF(FPR27) && sz == 8) return o;
+ if (o == GOF(FPR28) && sz == 8) return o;
+ if (o == GOF(FPR29) && sz == 8) return o;
+ if (o == GOF(FPR30) && sz == 8) return o;
+ if (o == GOF(FPR31) && sz == 8) return o;
+
+ /* For the various byte sized XER/CR pieces, use offset 8
+ in VR0 .. VR31. */
+ tl_assert(SZB(VR0) == 16);
+ if (o == GOF(XER_SO) && sz == 1) return 8 +GOF(VR0);
+ if (o == GOF(XER_OV) && sz == 1) return 8 +GOF(VR1);
+ if (o == GOF(XER_CA) && sz == 1) return 8 +GOF(VR2);
+ if (o == GOF(XER_BC) && sz == 1) return 8 +GOF(VR3);
+
+ if (o == GOF(CR0_321) && sz == 1) return 8 +GOF(VR4);
+ if (o == GOF(CR0_0) && sz == 1) return 8 +GOF(VR5);
+ if (o == GOF(CR1_321) && sz == 1) return 8 +GOF(VR6);
+ if (o == GOF(CR1_0) && sz == 1) return 8 +GOF(VR7);
+ if (o == GOF(CR2_321) && sz == 1) return 8 +GOF(VR8);
+ if (o == GOF(CR2_0) && sz == 1) return 8 +GOF(VR9);
+ if (o == GOF(CR3_321) && sz == 1) return 8 +GOF(VR10);
+ if (o == GOF(CR3_0) && sz == 1) return 8 +GOF(VR11);
+ if (o == GOF(CR4_321) && sz == 1) return 8 +GOF(VR12);
+ if (o == GOF(CR4_0) && sz == 1) return 8 +GOF(VR13);
+ if (o == GOF(CR5_321) && sz == 1) return 8 +GOF(VR14);
+ if (o == GOF(CR5_0) && sz == 1) return 8 +GOF(VR15);
+ if (o == GOF(CR6_321) && sz == 1) return 8 +GOF(VR16);
+ if (o == GOF(CR6_0) && sz == 1) return 8 +GOF(VR17);
+ if (o == GOF(CR7_321) && sz == 1) return 8 +GOF(VR18);
+ if (o == GOF(CR7_0) && sz == 1) return 8 +GOF(VR19);
+
+ /* Vector registers .. use offset 0 in VR0 .. VR31. */
+ if (o >= GOF(VR0) && o+sz <= GOF(VR0) +SZB(VR0)) return 0+ GOF(VR0);
+ if (o >= GOF(VR1) && o+sz <= GOF(VR1) +SZB(VR1)) return 0+ GOF(VR1);
+ if (o >= GOF(VR2) && o+sz <= GOF(VR2) +SZB(VR2)) return 0+ GOF(VR2);
+ if (o >= GOF(VR3) && o+sz <= GOF(VR3) +SZB(VR3)) return 0+ GOF(VR3);
+ if (o >= GOF(VR4) && o+sz <= GOF(VR4) +SZB(VR4)) return 0+ GOF(VR4);
+ if (o >= GOF(VR5) && o+sz <= GOF(VR5) +SZB(VR5)) return 0+ GOF(VR5);
+ if (o >= GOF(VR6) && o+sz <= GOF(VR6) +SZB(VR6)) return 0+ GOF(VR6);
+ if (o >= GOF(VR7) && o+sz <= GOF(VR7) +SZB(VR7)) return 0+ GOF(VR7);
+ if (o >= GOF(VR8) && o+sz <= GOF(VR8) +SZB(VR8)) return 0+ GOF(VR8);
+ if (o >= GOF(VR9) && o+sz <= GOF(VR9) +SZB(VR9)) return 0+ GOF(VR9);
+ if (o >= GOF(VR10) && o+sz <= GOF(VR10)+SZB(VR10)) return 0+ GOF(VR10);
+ if (o >= GOF(VR11) && o+sz <= GOF(VR11)+SZB(VR11)) return 0+ GOF(VR11);
+ if (o >= GOF(VR12) && o+sz <= GOF(VR12)+SZB(VR12)) return 0+ GOF(VR12);
+ if (o >= GOF(VR13) && o+sz <= GOF(VR13)+SZB(VR13)) return 0+ GOF(VR13);
+ if (o >= GOF(VR14) && o+sz <= GOF(VR14)+SZB(VR14)) return 0+ GOF(VR14);
+ if (o >= GOF(VR15) && o+sz <= GOF(VR15)+SZB(VR15)) return 0+ GOF(VR15);
+ if (o >= GOF(VR16) && o+sz <= GOF(VR16)+SZB(VR16)) return 0+ GOF(VR16);
+ if (o >= GOF(VR17) && o+sz <= GOF(VR17)+SZB(VR17)) return 0+ GOF(VR17);
+ if (o >= GOF(VR18) && o+sz <= GOF(VR18)+SZB(VR18)) return 0+ GOF(VR18);
+ if (o >= GOF(VR19) && o+sz <= GOF(VR19)+SZB(VR19)) return 0+ GOF(VR19);
+ if (o >= GOF(VR20) && o+sz <= GOF(VR20)+SZB(VR20)) return 0+ GOF(VR20);
+ if (o >= GOF(VR21) && o+sz <= GOF(VR21)+SZB(VR21)) return 0+ GOF(VR21);
+ if (o >= GOF(VR22) && o+sz <= GOF(VR22)+SZB(VR22)) return 0+ GOF(VR22);
+ if (o >= GOF(VR23) && o+sz <= GOF(VR23)+SZB(VR23)) return 0+ GOF(VR23);
+ if (o >= GOF(VR24) && o+sz <= GOF(VR24)+SZB(VR24)) return 0+ GOF(VR24);
+ if (o >= GOF(VR25) && o+sz <= GOF(VR25)+SZB(VR25)) return 0+ GOF(VR25);
+ if (o >= GOF(VR26) && o+sz <= GOF(VR26)+SZB(VR26)) return 0+ GOF(VR26);
+ if (o >= GOF(VR27) && o+sz <= GOF(VR27)+SZB(VR27)) return 0+ GOF(VR27);
+ if (o >= GOF(VR28) && o+sz <= GOF(VR28)+SZB(VR28)) return 0+ GOF(VR28);
+ if (o >= GOF(VR29) && o+sz <= GOF(VR29)+SZB(VR29)) return 0+ GOF(VR29);
+ if (o >= GOF(VR30) && o+sz <= GOF(VR30)+SZB(VR30)) return 0+ GOF(VR30);
+ if (o >= GOF(VR31) && o+sz <= GOF(VR31)+SZB(VR31)) return 0+ GOF(VR31);
+
+ VG_(printf)("MC_(get_otrack_shadow_offset)(ppc64)(off=%d,sz=%d)\n",
+ offset,szB);
+ tl_assert(0);
+# undef GOF
+# undef SZB
+
+ /* -------------------- ppc32 -------------------- */
+
+# elif defined(VGA_ppc32)
+
+# define GOF(_fieldname) \
+ (offsetof(VexGuestPPC32State,guest_##_fieldname))
+# define SZB(_fieldname) \
+ (sizeof(((VexGuestPPC32State*)0)->guest_##_fieldname))
+ Int o = offset;
+ Int sz = szB;
+ tl_assert(sz > 0);
+ tl_assert(host_is_big_endian());
+
+ if (o == GOF(GPR0) && sz == 4) return o;
+ if (o == GOF(GPR1) && sz == 4) return o;
+ if (o == GOF(GPR2) && sz == 4) return o;
+ if (o == GOF(GPR3) && sz == 4) return o;
+ if (o == GOF(GPR4) && sz == 4) return o;
+ if (o == GOF(GPR5) && sz == 4) return o;
+ if (o == GOF(GPR6) && sz == 4) return o;
+ if (o == GOF(GPR7) && sz == 4) return o;
+ if (o == GOF(GPR8) && sz == 4) return o;
+ if (o == GOF(GPR9) && sz == 4) return o;
+ if (o == GOF(GPR10) && sz == 4) return o;
+ if (o == GOF(GPR11) && sz == 4) return o;
+ if (o == GOF(GPR12) && sz == 4) return o;
+ if (o == GOF(GPR13) && sz == 4) return o;
+ if (o == GOF(GPR14) && sz == 4) return o;
+ if (o == GOF(GPR15) && sz == 4) return o;
+ if (o == GOF(GPR16) && sz == 4) return o;
+ if (o == GOF(GPR17) && sz == 4) return o;
+ if (o == GOF(GPR18) && sz == 4) return o;
+ if (o == GOF(GPR19) && sz == 4) return o;
+ if (o == GOF(GPR20) && sz == 4) return o;
+ if (o == GOF(GPR21) && sz == 4) return o;
+ if (o == GOF(GPR22) && sz == 4) return o;
+ if (o == GOF(GPR23) && sz == 4) return o;
+ if (o == GOF(GPR24) && sz == 4) return o;
+ if (o == GOF(GPR25) && sz == 4) return o;
+ if (o == GOF(GPR26) && sz == 4) return o;
+ if (o == GOF(GPR27) && sz == 4) return o;
+ if (o == GOF(GPR28) && sz == 4) return o;
+ if (o == GOF(GPR29) && sz == 4) return o;
+ if (o == GOF(GPR30) && sz == 4) return o;
+ if (o == GOF(GPR31) && sz == 4) return o;
+
+ if (o == GOF(LR) && sz == 4) return o;
+ if (o == GOF(CTR) && sz == 4) return o;
+
+ if (o == GOF(CIA) && sz == 4) return -1;
+ if (o == GOF(CIA_AT_SC) && sz == 4) return -1;
+ if (o == GOF(RESVN) && sz == 4) return -1;
+ if (o == GOF(FPROUND) && sz == 4) return -1;
+ if (o == GOF(EMWARN) && sz == 4) return -1;
+ if (o == GOF(TISTART) && sz == 4) return -1;
+ if (o == GOF(TILEN) && sz == 4) return -1;
+ if (o == GOF(VSCR) && sz == 4) return -1;
+
+ tl_assert(SZB(FPR0) == 8);
+ if (o == GOF(FPR0) && sz == 8) return o;
+ if (o == GOF(FPR1) && sz == 8) return o;
+ if (o == GOF(FPR2) && sz == 8) return o;
+ if (o == GOF(FPR3) && sz == 8) return o;
+ if (o == GOF(FPR4) && sz == 8) return o;
+ if (o == GOF(FPR5) && sz == 8) return o;
+ if (o == GOF(FPR6) && sz == 8) return o;
+ if (o == GOF(FPR7) && sz == 8) return o;
+ if (o == GOF(FPR8) && sz == 8) return o;
+ if (o == GOF(FPR9) && sz == 8) return o;
+ if (o == GOF(FPR10) && sz == 8) return o;
+ if (o == GOF(FPR11) && sz == 8) return o;
+ if (o == GOF(FPR12) && sz == 8) return o;
+ if (o == GOF(FPR13) && sz == 8) return o;
+ if (o == GOF(FPR14) && sz == 8) return o;
+ if (o == GOF(FPR15) && sz == 8) return o;
+ if (o == GOF(FPR16) && sz == 8) return o;
+ if (o == GOF(FPR17) && sz == 8) return o;
+ if (o == GOF(FPR18) && sz == 8) return o;
+ if (o == GOF(FPR19) && sz == 8) return o;
+ if (o == GOF(FPR20) && sz == 8) return o;
+ if (o == GOF(FPR21) && sz == 8) return o;
+ if (o == GOF(FPR22) && sz == 8) return o;
+ if (o == GOF(FPR23) && sz == 8) return o;
+ if (o == GOF(FPR24) && sz == 8) return o;
+ if (o == GOF(FPR25) && sz == 8) return o;
+ if (o == GOF(FPR26) && sz == 8) return o;
+ if (o == GOF(FPR27) && sz == 8) return o;
+ if (o == GOF(FPR28) && sz == 8) return o;
+ if (o == GOF(FPR29) && sz == 8) return o;
+ if (o == GOF(FPR30) && sz == 8) return o;
+ if (o == GOF(FPR31) && sz == 8) return o;
+
+ /* For the various byte sized XER/CR pieces, use offset 8
+ in VR0 .. VR31. */
+ tl_assert(SZB(VR0) == 16);
+ if (o == GOF(XER_SO) && sz == 1) return 8 +GOF(VR0);
+ if (o == GOF(XER_OV) && sz == 1) return 8 +GOF(VR1);
+ if (o == GOF(XER_CA) && sz == 1) return 8 +GOF(VR2);
+ if (o == GOF(XER_BC) && sz == 1) return 8 +GOF(VR3);
+
+ if (o == GOF(CR0_321) && sz == 1) return 8 +GOF(VR4);
+ if (o == GOF(CR0_0) && sz == 1) return 8 +GOF(VR5);
+ if (o == GOF(CR1_321) && sz == 1) return 8 +GOF(VR6);
+ if (o == GOF(CR1_0) && sz == 1) return 8 +GOF(VR7);
+ if (o == GOF(CR2_321) && sz == 1) return 8 +GOF(VR8);
+ if (o == GOF(CR2_0) && sz == 1) return 8 +GOF(VR9);
+ if (o == GOF(CR3_321) && sz == 1) return 8 +GOF(VR10);
+ if (o == GOF(CR3_0) && sz == 1) return 8 +GOF(VR11);
+ if (o == GOF(CR4_321) && sz == 1) return 8 +GOF(VR12);
+ if (o == GOF(CR4_0) && sz == 1) return 8 +GOF(VR13);
+ if (o == GOF(CR5_321) && sz == 1) return 8 +GOF(VR14);
+ if (o == GOF(CR5_0) && sz == 1) return 8 +GOF(VR15);
+ if (o == GOF(CR6_321) && sz == 1) return 8 +GOF(VR16);
+ if (o == GOF(CR6_0) && sz == 1) return 8 +GOF(VR17);
+ if (o == GOF(CR7_321) && sz == 1) return 8 +GOF(VR18);
+ if (o == GOF(CR7_0) && sz == 1) return 8 +GOF(VR19);
+
+ /* Vector registers .. use offset 0 in VR0 .. VR31. */
+ if (o >= GOF(VR0) && o+sz <= GOF(VR0) +SZB(VR0)) return 0+ GOF(VR0);
+ if (o >= GOF(VR1) && o+sz <= GOF(VR1) +SZB(VR1)) return 0+ GOF(VR1);
+ if (o >= GOF(VR2) && o+sz <= GOF(VR2) +SZB(VR2)) return 0+ GOF(VR2);
+ if (o >= GOF(VR3) && o+sz <= GOF(VR3) +SZB(VR3)) return 0+ GOF(VR3);
+ if (o >= GOF(VR4) && o+sz <= GOF(VR4) +SZB(VR4)) return 0+ GOF(VR4);
+ if (o >= GOF(VR5) && o+sz <= GOF(VR5) +SZB(VR5)) return 0+ GOF(VR5);
+ if (o >= GOF(VR6) && o+sz <= GOF(VR6) +SZB(VR6)) return 0+ GOF(VR6);
+ if (o >= GOF(VR7) && o+sz <= GOF(VR7) +SZB(VR7)) return 0+ GOF(VR7);
+ if (o >= GOF(VR8) && o+sz <= GOF(VR8) +SZB(VR8)) return 0+ GOF(VR8);
+ if (o >= GOF(VR9) && o+sz <= GOF(VR9) +SZB(VR9)) return 0+ GOF(VR9);
+ if (o >= GOF(VR10) && o+sz <= GOF(VR10)+SZB(VR10)) return 0+ GOF(VR10);
+ if (o >= GOF(VR11) && o+sz <= GOF(VR11)+SZB(VR11)) return 0+ GOF(VR11);
+ if (o >= GOF(VR12) && o+sz <= GOF(VR12)+SZB(VR12)) return 0+ GOF(VR12);
+ if (o >= GOF(VR13) && o+sz <= GOF(VR13)+SZB(VR13)) return 0+ GOF(VR13);
+ if (o >= GOF(VR14) && o+sz <= GOF(VR14)+SZB(VR14)) return 0+ GOF(VR14);
+ if (o >= GOF(VR15) && o+sz <= GOF(VR15)+SZB(VR15)) return 0+ GOF(VR15);
+ if (o >= GOF(VR16) && o+sz <= GOF(VR16)+SZB(VR16)) return 0+ GOF(VR16);
+ if (o >= GOF(VR17) && o+sz <= GOF(VR17)+SZB(VR17)) return 0+ GOF(VR17);
+ if (o >= GOF(VR18) && o+sz <= GOF(VR18)+SZB(VR18)) return 0+ GOF(VR18);
+ if (o >= GOF(VR19) && o+sz <= GOF(VR19)+SZB(VR19)) return 0+ GOF(VR19);
+ if (o >= GOF(VR20) && o+sz <= GOF(VR20)+SZB(VR20)) return 0+ GOF(VR20);
+ if (o >= GOF(VR21) && o+sz <= GOF(VR21)+SZB(VR21)) return 0+ GOF(VR21);
+ if (o >= GOF(VR22) && o+sz <= GOF(VR22)+SZB(VR22)) return 0+ GOF(VR22);
+ if (o >= GOF(VR23) && o+sz <= GOF(VR23)+SZB(VR23)) return 0+ GOF(VR23);
+ if (o >= GOF(VR24) && o+sz <= GOF(VR24)+SZB(VR24)) return 0+ GOF(VR24);
+ if (o >= GOF(VR25) && o+sz <= GOF(VR25)+SZB(VR25)) return 0+ GOF(VR25);
+ if (o >= GOF(VR26) && o+sz <= GOF(VR26)+SZB(VR26)) return 0+ GOF(VR26);
+ if (o >= GOF(VR27) && o+sz <= GOF(VR27)+SZB(VR27)) return 0+ GOF(VR27);
+ if (o >= GOF(VR28) && o+sz <= GOF(VR28)+SZB(VR28)) return 0+ GOF(VR28);
+ if (o >= GOF(VR29) && o+sz <= GOF(VR29)+SZB(VR29)) return 0+ GOF(VR29);
+ if (o >= GOF(VR30) && o+sz <= GOF(VR30)+SZB(VR30)) return 0+ GOF(VR30);
+ if (o >= GOF(VR31) && o+sz <= GOF(VR31)+SZB(VR31)) return 0+ GOF(VR31);
+
+ VG_(printf)("MC_(get_otrack_shadow_offset)(ppc32)(off=%d,sz=%d)\n",
+ offset,szB);
+ tl_assert(0);
+# undef GOF
+# undef SZB
+
+ /* -------------------- amd64 -------------------- */
+
+# elif defined(VGA_amd64)
+
+# define GOF(_fieldname) \
+ (offsetof(VexGuestAMD64State,guest_##_fieldname))
+# define SZB(_fieldname) \
+ (sizeof(((VexGuestAMD64State*)0)->guest_##_fieldname))
+ Int o = offset;
+ Int sz = szB;
+ Bool is1248 = sz == 8 || sz == 4 || sz == 2 || sz == 1;
+ tl_assert(sz > 0);
+ tl_assert(host_is_little_endian());
+
+ if (o == GOF(RAX) && is1248) return o;
+ if (o == GOF(RCX) && is1248) return o;
+ if (o == GOF(RDX) && is1248) return o;
+ if (o == GOF(RBX) && is1248) return o;
+ if (o == GOF(RSP) && is1248) return o;
+ if (o == GOF(RBP) && is1248) return o;
+ if (o == GOF(RSI) && is1248) return o;
+ if (o == GOF(RDI) && is1248) return o;
+ if (o == GOF(R8) && is1248) return o;
+ if (o == GOF(R9) && is1248) return o;
+ if (o == GOF(R10) && is1248) return o;
+ if (o == GOF(R11) && is1248) return o;
+ if (o == GOF(R12) && is1248) return o;
+ if (o == GOF(R13) && is1248) return o;
+ if (o == GOF(R14) && is1248) return o;
+ if (o == GOF(R15) && is1248) return o;
+
+ if (o == GOF(CC_DEP1) && sz == 8) return o;
+ if (o == GOF(CC_DEP2) && sz == 8) return o;
+
+ if (o == GOF(CC_OP) && sz == 8) return -1; /* slot used for %AH */
+ if (o == GOF(CC_NDEP) && sz == 8) return -1; /* slot used for %BH */
+ if (o == GOF(DFLAG) && sz == 8) return -1; /* slot used for %CH */
+ if (o == GOF(RIP) && sz == 8) return -1; /* slot unused */
+ if (o == GOF(IDFLAG) && sz == 8) return -1; /* slot used for %DH */
+ if (o == GOF(FS_ZERO) && sz == 8) return -1; /* slot unused */
+
+ /* Treat %AH, %BH, %CH, %DH as independent registers. To do this
+ requires finding 4 unused 32-bit slots in the second-shadow
+ guest state, respectively: CC_OP CC_NDEP DFLAG IDFLAG, since
+ none of those are tracked. */
+ tl_assert(SZB(CC_OP) == 8);
+ tl_assert(SZB(CC_NDEP) == 8);
+ tl_assert(SZB(IDFLAG) == 8);
+ tl_assert(SZB(DFLAG) == 8);
+
+ if (o == 1+ GOF(RAX) && szB == 1) return GOF(CC_OP);
+ if (o == 1+ GOF(RBX) && szB == 1) return GOF(CC_NDEP);
+ if (o == 1+ GOF(RCX) && szB == 1) return GOF(DFLAG);
+ if (o == 1+ GOF(RDX) && szB == 1) return GOF(IDFLAG);
+
+ /* skip XMM and FP admin stuff */
+ if (o == GOF(SSEROUND) && szB == 8) return -1;
+ if (o == GOF(FTOP) && szB == 4) return -1;
+ if (o == GOF(FPROUND) && szB == 8) return -1;
+ if (o == GOF(EMWARN) && szB == 4) return -1;
+ /* The amd64 front end doesn't actually use FC3210. It should
+ be done away with.
+ if (offset == offsetof(VexGuestAMD64State,guest_FC3210) && szB==4)
+ return -1;
+ */
+
+ /* XMM registers */
+ if (o >= GOF(XMM0) && o+sz <= GOF(XMM0) +SZB(XMM0)) return GOF(XMM0);
+ if (o >= GOF(XMM1) && o+sz <= GOF(XMM1) +SZB(XMM1)) return GOF(XMM1);
+ if (o >= GOF(XMM2) && o+sz <= GOF(XMM2) +SZB(XMM2)) return GOF(XMM2);
+ if (o >= GOF(XMM3) && o+sz <= GOF(XMM3) +SZB(XMM3)) return GOF(XMM3);
+ if (o >= GOF(XMM4) && o+sz <= GOF(XMM4) +SZB(XMM4)) return GOF(XMM4);
+ if (o >= GOF(XMM5) && o+sz <= GOF(XMM5) +SZB(XMM5)) return GOF(XMM5);
+ if (o >= GOF(XMM6) && o+sz <= GOF(XMM6) +SZB(XMM6)) return GOF(XMM6);
+ if (o >= GOF(XMM7) && o+sz <= GOF(XMM7) +SZB(XMM7)) return GOF(XMM7);
+ if (o >= GOF(XMM8) && o+sz <= GOF(XMM8) +SZB(XMM8)) return GOF(XMM8);
+ if (o >= GOF(XMM9) && o+sz <= GOF(XMM9) +SZB(XMM9)) return GOF(XMM9);
+ if (o >= GOF(XMM10) && o+sz <= GOF(XMM10)+SZB(XMM10)) return GOF(XMM10);
+ if (o >= GOF(XMM11) && o+sz <= GOF(XMM11)+SZB(XMM11)) return GOF(XMM11);
+ if (o >= GOF(XMM12) && o+sz <= GOF(XMM12)+SZB(XMM12)) return GOF(XMM12);
+ if (o >= GOF(XMM13) && o+sz <= GOF(XMM13)+SZB(XMM13)) return GOF(XMM13);
+ if (o >= GOF(XMM14) && o+sz <= GOF(XMM14)+SZB(XMM14)) return GOF(XMM14);
+ if (o >= GOF(XMM15) && o+sz <= GOF(XMM15)+SZB(XMM15)) return GOF(XMM15);
+
+ /* MMX accesses to FP regs */
+ if (o == GOF(FPREG[0]) && sz == 8) return o;
+ if (o == GOF(FPREG[1]) && sz == 8) return o;
+ if (o == GOF(FPREG[2]) && sz == 8) return o;
+ if (o == GOF(FPREG[3]) && sz == 8) return o;
+ if (o == GOF(FPREG[4]) && sz == 8) return o;
+ if (o == GOF(FPREG[5]) && sz == 8) return o;
+ if (o == GOF(FPREG[6]) && sz == 8) return o;
+ if (o == GOF(FPREG[7]) && sz == 8) return o;
+
+ /* Map high halves of %RAX,%RCX,%RDX,%RBX to the whole register.
+ This is needed because the general handling of dirty helper
+ calls is done in 4 byte chunks. Hence we will see these.
+ Currently we only expect to see artefacts from CPUID. */
+ if (o == 4+ GOF(RAX) && sz == 4) return GOF(RAX);
+ if (o == 4+ GOF(RCX) && sz == 4) return GOF(RCX);
+ if (o == 4+ GOF(RDX) && sz == 4) return GOF(RDX);
+ if (o == 4+ GOF(RBX) && sz == 4) return GOF(RBX);
+
+ VG_(printf)("MC_(get_otrack_shadow_offset)(amd64)(off=%d,sz=%d)\n",
+ offset,szB);
+ tl_assert(0);
+# undef GOF
+# undef SZB
+
+ /* --------------------- x86 --------------------- */
+
+# elif defined(VGA_x86)
+
+# define GOF(_fieldname) \
+ (offsetof(VexGuestX86State,guest_##_fieldname))
+# define SZB(_fieldname) \
+ (sizeof(((VexGuestX86State*)0)->guest_##_fieldname))
+
+ Int o = offset;
+ Int sz = szB;
+ Bool is124 = sz == 4 || sz == 2 || sz == 1;
+ tl_assert(sz > 0);
+ tl_assert(host_is_little_endian());
+
+ if (o == GOF(EAX) && is124) return o;
+ if (o == GOF(ECX) && is124) return o;
+ if (o == GOF(EDX) && is124) return o;
+ if (o == GOF(EBX) && is124) return o;
+ if (o == GOF(ESP) && is124) return o;
+ if (o == GOF(EBP) && is124) return o;
+ if (o == GOF(ESI) && is124) return o;
+ if (o == GOF(EDI) && is124) return o;
+
+ if (o == GOF(CC_DEP1) && sz == 4) return o;
+ if (o == GOF(CC_DEP2) && sz == 4) return o;
+
+ if (o == GOF(CC_OP) && sz == 4) return -1; /* slot used for %AH */
+ if (o == GOF(CC_NDEP) && sz == 4) return -1; /* slot used for %BH */
+ if (o == GOF(DFLAG) && sz == 4) return -1; /* slot used for %CH */
+ if (o == GOF(EIP) && sz == 4) return -1; /* slot unused */
+ if (o == GOF(IDFLAG) && sz == 4) return -1; /* slot used for %DH */
+ if (o == GOF(ACFLAG) && sz == 4) return -1; /* slot unused */
+
+ /* Treat %AH, %BH, %CH, %DH as independent registers. To do this
+ requires finding 4 unused 32-bit slots in the second-shadow
+ guest state, respectively: CC_OP CC_NDEP DFLAG IDFLAG since none
+ of those are tracked. */
+ tl_assert(SZB(CC_OP) == 4);
+ tl_assert(SZB(CC_NDEP) == 4);
+ tl_assert(SZB(IDFLAG) == 4);
+ tl_assert(SZB(ACFLAG) == 4);
+ if (o == 1+ GOF(EAX) && szB == 1) return GOF(CC_OP);
+ //if (o == 1+ GOF(EBX) && szB == 1) return GOF(CC_NDEP);
+ if (o == 1+ GOF(ECX) && szB == 1) return GOF(DFLAG);
+ if (o == 1+ GOF(EDX) && szB == 1) return GOF(IDFLAG);
+
+ /* skip XMM and FP admin stuff */
+ if (o == GOF(SSEROUND) && szB == 4) return -1;
+ if (o == GOF(FTOP) && szB == 4) return -1;
+ if (o == GOF(FPROUND) && szB == 4) return -1;
+ if (o == GOF(EMWARN) && szB == 4) return -1;
+ if (o == GOF(FC3210) && szB == 4) return -1;
+
+ /* XMM registers */
+ if (o >= GOF(XMM0) && o+sz <= GOF(XMM0)+SZB(XMM0)) return GOF(XMM0);
+ if (o >= GOF(XMM1) && o+sz <= GOF(XMM1)+SZB(XMM1)) return GOF(XMM1);
+ if (o >= GOF(XMM2) && o+sz <= GOF(XMM2)+SZB(XMM2)) return GOF(XMM2);
+ if (o >= GOF(XMM3) && o+sz <= GOF(XMM3)+SZB(XMM3)) return GOF(XMM3);
+ if (o >= GOF(XMM4) && o+sz <= GOF(XMM4)+SZB(XMM4)) return GOF(XMM4);
+ if (o >= GOF(XMM5) && o+sz <= GOF(XMM5)+SZB(XMM5)) return GOF(XMM5);
+ if (o >= GOF(XMM6) && o+sz <= GOF(XMM6)+SZB(XMM6)) return GOF(XMM6);
+ if (o >= GOF(XMM7) && o+sz <= GOF(XMM7)+SZB(XMM7)) return GOF(XMM7);
+
+ /* MMX accesses to FP regs. Need to allow for 32-bit references
+ due to dirty helpers for frstor etc, which reference the entire
+ 64-byte block in one go. */
+ if (o >= GOF(FPREG[0])
+ && o+sz <= GOF(FPREG[0])+SZB(FPREG[0])) return GOF(FPREG[0]);
+ if (o >= GOF(FPREG[1])
+ && o+sz <= GOF(FPREG[1])+SZB(FPREG[1])) return GOF(FPREG[1]);
+ if (o >= GOF(FPREG[2])
+ && o+sz <= GOF(FPREG[2])+SZB(FPREG[2])) return GOF(FPREG[2]);
+ if (o >= GOF(FPREG[3])
+ && o+sz <= GOF(FPREG[3])+SZB(FPREG[3])) return GOF(FPREG[3]);
+ if (o >= GOF(FPREG[4])
+ && o+sz <= GOF(FPREG[4])+SZB(FPREG[4])) return GOF(FPREG[4]);
+ if (o >= GOF(FPREG[5])
+ && o+sz <= GOF(FPREG[5])+SZB(FPREG[5])) return GOF(FPREG[5]);
+ if (o >= GOF(FPREG[6])
+ && o+sz <= GOF(FPREG[6])+SZB(FPREG[6])) return GOF(FPREG[6]);
+ if (o >= GOF(FPREG[7])
+ && o+sz <= GOF(FPREG[7])+SZB(FPREG[7])) return GOF(FPREG[7]);
+
+ /* skip %gs and other segment related stuff */
+ if (o == GOF(GS) && sz == 2) return -1;
+ if (o == GOF(LDT) && sz == 4) return -1;
+ if (o == GOF(GDT) && sz == 4) return -1;
+
+ VG_(printf)("MC_(get_otrack_shadow_offset)(x86)(off=%d,sz=%d)\n",
+ offset,szB);
+ tl_assert(0);
+# undef GOF
+# undef SZB
+
+# else
+# error "FIXME: not implemented for this architecture"
+# endif
+}
+
+
+/* Let 'arr' describe an indexed reference to a guest state section
+ (guest state array).
+
+ This function returns the corresponding guest state type to be used
+ when indexing the corresponding array in the second shadow (origin
+ tracking) area. If the array is not to be origin-tracked, return
+ Ity_INVALID.
+
+ This function must agree with MC_(get_otrack_shadow_offset) above.
+ See comments at the start of MC_(get_otrack_shadow_offset).
+*/
+IRType MC_(get_otrack_reg_array_equiv_int_type) ( IRRegArray* arr )
+{
+ /* -------------------- ppc64 -------------------- */
+# if defined(VGA_ppc64)
+ /* The redir stack. */
+ if (arr->base == offsetof(VexGuestPPC64State,guest_REDIR_STACK[0])
+ && arr->elemTy == Ity_I64
+ && arr->nElems == VEX_GUEST_PPC64_REDIR_STACK_SIZE)
+ return Ity_I64;
+
+ VG_(printf)("get_reg_array_equiv_int_type(ppc64): unhandled: ");
+ ppIRRegArray(arr);
+ VG_(printf)("\n");
+ tl_assert(0);
+
+ /* -------------------- ppc32 -------------------- */
+# elif defined(VGA_ppc32)
+ VG_(printf)("get_reg_array_equiv_int_type(ppc32): unhandled: ");
+ ppIRRegArray(arr);
+ VG_(printf)("\n");
+ tl_assert(0);
+
+ /* -------------------- amd64 -------------------- */
+# elif defined(VGA_amd64)
+ /* Ignore the FP tag array - pointless to shadow, and in any case
+ the elements are too small */
+ if (arr->base == offsetof(VexGuestAMD64State,guest_FPTAG)
+ && arr->elemTy == Ity_I8 && arr->nElems == 8)
+ return Ity_INVALID;
+
+ /* The FP register array */
+ if (arr->base == offsetof(VexGuestAMD64State,guest_FPREG[0])
+ && arr->elemTy == Ity_F64 && arr->nElems == 8)
+ return Ity_I64;
+
+ VG_(printf)("get_reg_array_equiv_int_type(amd64): unhandled: ");
+ ppIRRegArray(arr);
+ VG_(printf)("\n");
+ tl_assert(0);
+
+ /* --------------------- x86 --------------------- */
+# elif defined(VGA_x86)
+ /* Ignore the FP tag array - pointless to shadow, and in any case
+ the elements are too small */
+ if (arr->base == offsetof(VexGuestX86State,guest_FPTAG)
+ && arr->elemTy == Ity_I8 && arr->nElems == 8)
+ return Ity_INVALID;
+
+ /* The FP register array */
+ if (arr->base == offsetof(VexGuestX86State,guest_FPREG[0])
+ && arr->elemTy == Ity_F64 && arr->nElems == 8)
+ return Ity_I64;
+
+ VG_(printf)("get_reg_array_equiv_int_type(x86): unhandled: ");
+ ppIRRegArray(arr);
+ VG_(printf)("\n");
+ tl_assert(0);
+
+# else
+# error "FIXME: not implemented for this architecture"
+# endif
+}
+
+
+/*--------------------------------------------------------------------*/
+/*--- end mc_machine.c ---*/
+/*--------------------------------------------------------------------*/
Modified: branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_translate.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_translate.c 2008-04-14 10:20:15 UTC (rev 7870)
+++ branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_translate.c 2008-04-14 11:42:51 UTC (rev 7871)
@@ -35,12 +35,13 @@
#include "pub_tool_libcprint.h"
#include "pub_tool_tooliface.h"
#include "pub_tool_machine.h" // VG_(fnptr_to_fnentry)
-#include "mc_include.h"
-
#include "pub_tool_xarray.h"
#include "pub_tool_mallocfree.h"
#include "pub_tool_libcbase.h"
+#include "mc_include.h"
+
+
/* This file implements the Memcheck instrumentation, and in
particular contains the core of its undefined value detection
machinery. For a comprehensive background of the terminology,
@@ -3791,585 +3792,11 @@
return mce->tmpMapB[orig];
}
-#include "libvex_guest_x86.h"
-#include "libvex_guest_amd64.h"
-#include "libvex_guest_ppc32.h"
-#include "libvex_guest_ppc64.h"
-
-static IRType get_reg_array_equiv_int_type ( IRRegArray* arr )
-{
-#if defined(VGA_ppc64)
- /* The redir stack. */
- if (arr->base == offsetof(VexGuestPPC64State,guest_REDIR_STACK[0])
- && arr->elemTy == Ity_I64
- && arr->nElems == VEX_GUEST_PPC64_REDIR_STACK_SIZE)
- return Ity_I64;
-
- VG_(printf)("get_reg_array_equiv_int_type(ppc64): unhandled: ");
- ppIRRegArray(arr);
- VG_(printf)("\n");
- tl_assert(0);
-
-#elif defined(VGA_amd64)
- /* Ignore the FP tag array - pointless to shadow, and in any case
- the elements are too small */
- if (arr->base == offsetof(VexGuestAMD64State,guest_FPTAG)
- && arr->elemTy == Ity_I8 && arr->nElems == 8)
- return Ity_INVALID;
-
- /* The FP register array */
- if (arr->base == offsetof(VexGuestAMD64State,guest_FPREG[0])
- && arr->elemTy == Ity_F64 && arr->nElems == 8)
- return Ity_I64;
-
- VG_(printf)("get_reg_array_equiv_int_type(amd64): unhandled: ");
- ppIRRegArray(arr);
- VG_(printf)("\n");
- tl_assert(0);
-
-#elif defined(VGA_x86)
- /* Ignore the FP tag array - pointless to shadow, and in any case
- the elements are too small */
- if (arr->base == offsetof(VexGuestX86State,guest_FPTAG)
- && arr->elemTy == Ity_I8 && arr->nElems == 8)
- return Ity_INVALID;
-
- /* The FP register array */
- if (arr->base == offsetof(VexGuestX86State,guest_FPREG[0])
- && arr->elemTy == Ity_F64 && arr->nElems == 8)
- return Ity_I64;
-
- VG_(printf)("get_reg_array_equiv_int_type(x86): unhandled: ");
- ppIRRegArray(arr);
- VG_(printf)("\n");
- tl_assert(0);
-#else
- tl_assert(0);
-#endif
-}
-
-
-static Int get_shadow_offset ( Int offset, Int szB )
-{
-#if defined(VGA_ppc64)
-
-#define GOF(_fieldname) (offsetof(VexGuestPPC64State,guest_##_fieldname))
-#define SZB(_fieldname) (sizeof(((VexGuestPPC64State*)0)->guest_##_fieldname))
- Int o = offset;
- Int sz = szB;
- tl_assert(sz > 0);
-
- // FIXME: this assumes the host is big endian. Assert for it.
- if (o == GOF(GPR0) && sz == 8) return o;
- if (o == GOF(GPR1) && sz == 8) return o;
- if (o == GOF(GPR2) && sz == 8) return o;
- if (o == GOF(GPR3) && sz == 8) return o;
- if (o == GOF(GPR4) && sz == 8) return o;
- if (o == GOF(GPR5) && sz == 8) return o;
- if (o == GOF(GPR6) && sz == 8) return o;
- if (o == GOF(GPR7) && sz == 8) return o;
- if (o == GOF(GPR8) && sz == 8) return o;
- if (o == GOF(GPR9) && sz == 8) return o;
- if (o == GOF(GPR10) && sz == 8) return o;
- if (o == GOF(GPR11) && sz == 8) return o;
- if (o == GOF(GPR12) && sz == 8) return o;
- if (o == GOF(GPR13) && sz == 8) return o;
- if (o == GOF(GPR14) && sz == 8) return o;
- if (o == GOF(GPR15) && sz == 8) return o;
- if (o == GOF(GPR16) && sz == 8) return o;
- if (o == GOF(GPR17) && sz == 8) return o;
- if (o == GOF(GPR18) && sz == 8) return o;
- if (o == GOF(GPR19) && sz == 8) return o;
- if (o == GOF(GPR20) && sz == 8) return o;
- if (o == GOF(GPR21) && sz == 8) return o;
- if (o == GOF(GPR22) && sz == 8) return o;
- if (o == GOF(GPR23) && sz == 8) return o;
- if (o == GOF(GPR24) && sz == 8) return o;
- if (o == GOF(GPR25) && sz == 8) return o;
- if (o == GOF(GPR26) && sz == 8) return o;
- if (o == GOF(GPR27) && sz == 8) return o;
- if (o == GOF(GPR28) && sz == 8) return o;
- if (o == GOF(GPR29) && sz == 8) return o;
- if (o == GOF(GPR30) && sz == 8) return o;
- if (o == GOF(GPR31) && sz == 8) return o;
-
- if (o == GOF(LR) && sz == 8) return o;
- if (o == GOF(CTR) && sz == 8) return o;
-
- if (o == GOF(CIA) && sz == 8) return -1;
- if (o == GOF(CIA_AT_SC) && sz == 8) return -1;
- if (o == GOF(RESVN) && sz == 8) return -1;
- if (o == GOF(FPROUND) && sz == 4) return -1;
- if (o == GOF(EMWARN) && sz == 4) return -1;
- if (o == GOF(TISTART) && sz == 8) return -1;
- if (o == GOF(TILEN) && sz == 8) return -1;
- if (o == GOF(VSCR) && sz == 4) return -1;
- if (o == GOF(VRSAVE) && sz == 4) return -1;
- if (o == GOF(REDIR_SP) && sz == 8) return -1;
-
- tl_assert(SZB(FPR0) == 8);
- if (o == GOF(FPR0) && sz == 8) return o;
- if (o == GOF(FPR1) && sz == 8) return o;
- if (o == GOF(FPR2) && sz == 8) return o;
- if (o == GOF(FPR3) && sz == 8) return o;
- if (o == GOF(FPR4) && sz == 8) return o;
- if (o == GOF(FPR5) && sz == 8) return o;
- if (o == GOF(FPR6) && sz == 8) return o;
- if (o == GOF(FPR7) && sz == 8) return o;
- if (o == GOF(FPR8) && sz == 8) return o;
- if (o == GOF(FPR9) && sz == 8) return o;
- if (o == GOF(FPR10) && sz == 8) return o;
- if (o == GOF(FPR11) && sz == 8) return o;
- if (o == GOF(FPR12) && sz == 8) return o;
- if (o == GOF(FPR13) && sz == 8) return o;
- if (o == GOF(FPR14) && sz == 8) return o;
- if (o == GOF(FPR15) && sz == 8) return o;
- if (o == GOF(FPR16) && sz == 8) return o;
- if (o == GOF(FPR17) && sz == 8) return o;
- if (o == GOF(FPR18) && sz == 8) return o;
- if (o == GOF(FPR19) && sz == 8) return o;
- if (o == GOF(FPR20) && sz == 8) return o;
- if (o == GOF(FPR21) && sz == 8) return o;
- if (o == GOF(FPR22) && sz == 8) return o;
- if (o == GOF(FPR23) && sz == 8) return o;
- if (o == GOF(FPR24) && sz == 8) return o;
- if (o == GOF(FPR25) && sz == 8) return o;
- if (o == GOF(FPR26) && sz == 8) return o;
- if (o == GOF(FPR27) && sz == 8) return o;
- if (o == GOF(FPR28) && sz == 8) return o;
- if (o == GOF(FPR29) && sz == 8) return o;
- if (o == GOF(FPR30) && sz == 8) return o;
- if (o == GOF(FPR31) && sz == 8) return o;
-
- /* For the various byte sized XER/CR pieces, use offset 8
- in VR0 .. VR31. */
- tl_assert(SZB(VR0) == 16);
- if (o == GOF(XER_SO) && sz == 1) return 8 +GOF(VR0);
- if (o == GOF(XER_OV) && sz == 1) return 8 +GOF(VR1);
- if (o == GOF(XER_CA) && sz == 1) return 8 +GOF(VR2);
- if (o == GOF(XER_BC) && sz == 1) return 8 +GOF(VR3);
-
- if (o == GOF(CR0_321) && sz == 1) return 8 +GOF(VR4);
- if (o == GOF(CR0_0) && sz == 1) return 8 +GOF(VR5);
- if (o == GOF(CR1_321) && sz == 1) return 8 +GOF(VR6);
- if (o == GOF(CR1_0) && sz == 1) return 8 +GOF(VR7);
- if (o == GOF(CR2_321) && sz == 1) return 8 +GOF(VR8);
- if (o == GOF(CR2_0) && sz == 1) return 8 +GOF(VR9);
- if (o == GOF(CR3_321) && sz == 1) return 8 +GOF(VR10);
- if (o == GOF(CR3_0) && sz == 1) return 8 +GOF(VR11);
- if (o == GOF(CR4_321) && sz == 1) return 8 +GOF(VR12);
- if (o == GOF(CR4_0) && sz == 1) return 8 +GOF(VR13);
- if (o == GOF(CR5_321) && sz == 1) return 8 +GOF(VR14);
- if (o == GOF(CR5_0) && sz == 1) return 8 +GOF(VR15);
- if (o == GOF(CR6_321) && sz == 1) return 8 +GOF(VR16);
- if (o == GOF(CR6_0) && sz == 1) return 8 +GOF(VR17);
- if (o == GOF(CR7_321) && sz == 1) return 8 +GOF(VR18);
- if (o == GOF(CR7_0) && sz == 1) return 8 +GOF(VR19);
-
- /* Vector registers .. use offset 0 in VR0 .. VR31. */
- if (o >= GOF(VR0) && o+sz <= GOF(VR0) +SZB(VR0)) return 0+ GOF(VR0);
- if (o >= GOF(VR1) && o+sz <= GOF(VR1) +SZB(VR1)) return 0+ GOF(VR1);
- if (o >= GOF(VR2) && o+sz <= GOF(VR2) +SZB(VR2)) return 0+ GOF(VR2);
- if (o >= GOF(VR3) && o+sz <= GOF(VR3) +SZB(VR3)) return 0+ GOF(VR3);
- if (o >= GOF(VR4) && o+sz <= GOF(VR4) +SZB(VR4)) return 0+ GOF(VR4);
- if (o >= GOF(VR5) && o+sz <= GOF(VR5) +SZB(VR5)) return 0+ GOF(VR5);
- if (o >= GOF(VR6) && o+sz <= GOF(VR6) +SZB(VR6)) return 0+ GOF(VR6);
- if (o >= GOF(VR7) && o+sz <= GOF(VR7) +SZB(VR7)) return 0+ GOF(VR7);
- if (o >= GOF(VR8) && o+sz <= GOF(VR8) +SZB(VR8)) return 0+ GOF(VR8);
- if (o >= GOF(VR9) && o+sz <= GOF(VR9) +SZB(VR9)) return 0+ GOF(VR9);
- if (o >= GOF(VR10) && o+sz <= GOF(VR10)+SZB(VR10)) return 0+ GOF(VR10);
- if (o >= GOF(VR11) && o+sz <= GOF(VR11)+SZB(VR11)) return 0+ GOF(VR11);
- if (o >= GOF(VR12) && o+sz <= GOF(VR12)+SZB(VR12)) return 0+ GOF(VR12);
- if (o >= GOF(VR13) && o+sz <= GOF(VR13)+SZB(VR13)) return 0+ GOF(VR13);
- if (o >= GOF(VR14) && o+sz <= GOF(VR14)+SZB(VR14)) return 0+ GOF(VR14);
- if (o >= GOF(VR15) && o+sz <= GOF(VR15)+SZB(VR15)) return 0+ GOF(VR15);
- if (o >= GOF(VR16) && o+sz <= GOF(VR16)+SZB(VR16)) return 0+ GOF(VR16);
- if (o >= GOF(VR17) && o+sz <= GOF(VR17)+SZB(VR17)) return 0+ GOF(VR17);
- if (o >= GOF(VR18) && o+sz <= GOF(VR18)+SZB(VR18)) return 0+ GOF(VR18);
- if (o >= GOF(VR19) && o+sz <= GOF(VR19)+SZB(VR19)) return 0+ GOF(VR19);
- if (o >= GOF(VR20) && o+sz <= GOF(VR20)+SZB(VR20)) return 0+ GOF(VR20);
- if (o >= GOF(VR21) && o+sz <= GOF(VR21)+SZB(VR21)) return 0+ GOF(VR21);
- if (o >= GOF(VR22) && o+sz <= GOF(VR22)+SZB(VR22)) return 0+ GOF(VR22);
- if (o >= GOF(VR23) && o+sz <= GOF(VR23)+SZB(VR23)) return 0+ GOF(VR23);
- if (o >= GOF(VR24) && o+sz <= GOF(VR24)+SZB(VR24)) return 0+ GOF(VR24);
- if (o >= GOF(VR25) && o+sz <= GOF(VR25)+SZB(VR25)) return 0+ GOF(VR25);
- if (o >= GOF(VR26) && o+sz <= GOF(VR26)+SZB(VR26)) return 0+ GOF(VR26);
- if (o >= GOF(VR27) && o+sz <= GOF(VR27)+SZB(VR27)) return 0+ GOF(VR27);
- if (o >= GOF(VR28) && o+sz <= GOF(VR28)+SZB(VR28)) return 0+ GOF(VR28);
- if (o >= GOF(VR29) && o+sz <= GOF(VR29)+SZB(VR29)) return 0+ GOF(VR29);
- if (o >= GOF(VR30) && o+sz <= GOF(VR30)+SZB(VR30)) return 0+ GOF(VR30);
- if (o >= GOF(VR31) && o+sz <= GOF(VR31)+SZB(VR31)) return 0+ GOF(VR31);
-
- VG_(printf)("get_shadow_offset(ppc64)(off=%d,sz=%d)\n", offset,szB);
- tl_assert(0);
-#undef GOF
-#undef SZB
-
-
-
-#elif defined(VGA_ppc32)
-
-#define GOF(_fieldname) (offsetof(VexGuestPPC32State,guest_##_fieldname))
-#define SZB(_fieldname) (sizeof(((VexGuestPPC32State*)0)->guest_##_fieldname))
- Int o = offset;
- Int sz = szB;
- tl_assert(sz > 0);
-
- // FIXME: this assumes the host is big endian. Assert for it.
- if (o == GOF(GPR0) && sz == 4) return o;
- if (o == GOF(GPR1) && sz == 4) return o;
- if (o == GOF(GPR2) && sz == 4) return o;
- if (o == GOF(GPR3) && sz == 4) return o;
- if (o == GOF(GPR4) && sz == 4) return o;
- if (o == GOF(GPR5) && sz == 4) return o;
- if (o == GOF(GPR6) && sz == 4) return o;
- if (o == GOF(GPR7) && sz == 4) return o;
- if (o == GOF(GPR8) && sz == 4) return o;
- if (o == GOF(GPR9) && sz == 4) return o;
- if (o == GOF(GPR10) && sz == 4) return o;
- if (o == GOF(GPR11) && sz == 4) return o;
- if (o == GOF(GPR12) && sz == 4) return o;
- if (o == GOF(GPR13) && sz == 4) return o;
- if (o == GOF(GPR14) && sz == 4) return o;
- if (o == GOF(GPR15) && sz == 4) return o;
- if (o == GOF(GPR16) && sz == 4) return o;
- if (o == GOF(GPR17) && sz == 4) return o;
- if (o == GOF(GPR18) && sz == 4) return o;
- if (o == GOF(GPR19) && sz == 4) return o;
- if (o == GOF(GPR20) && sz == 4) return o;
- if (o == GOF(GPR21) && sz == 4) return o;
- if (o == GOF(GPR22) && sz == 4) return o;
- if (o == GOF(GPR23) && sz == 4) return o;
- if (o == GOF(GPR24) && sz == 4) return o;
- if (o == GOF(GPR25) && sz == 4) return o;
- if (o == GOF(GPR26) && sz == 4) return o;
- if (o == GOF(GPR27) && sz == 4) return o;
- if (o == GOF(GPR28) && sz == 4) return o;
- if (o == GOF(GPR29) && sz == 4) return o;
- if (o == GOF(GPR30) && sz == 4) return o;
- if (o == GOF(GPR31) && sz == 4) return o;
-
- if (o == GOF(LR) && sz == 4) return o;
- if (o == GOF(CTR) && sz == 4) return o;
-
- if (o == GOF(CIA) && sz == 4) return -1;
- if (o == GOF(CIA_AT_SC) && sz == 4) return -1;
- if (o == GOF(RESVN) && sz == 4) return -1;
- if (o == GOF(FPROUND) && sz == 4) return -1;
- if (o == GOF(EMWARN) && sz == 4) return -1;
- if (o == GOF(TISTART) && sz == 4) return -1;
- if (o == GOF(TILEN) && sz == 4) return -1;
- if (o == GOF(VSCR) && sz == 4) return -1;
-
- tl_assert(SZB(FPR0) == 8);
- if (o == GOF(FPR0) && sz == 8) return o;
- if (o == GOF(FPR1) && sz == 8) return o;
- if (o == GOF(FPR2) && sz == 8) return o;
- if (o == GOF(FPR3) && sz == 8) return o;
- if (o == GOF(FPR4) && sz == 8) return o;
- if (o == GOF(FPR5) && sz == 8) return o;
- if (o == GOF(FPR6) && sz == 8) return o;
- if (o == GOF(FPR7) && sz == 8) return o;
- if (o == GOF(FPR8) && sz == 8) return o;
- if (o == GOF(FPR9) && sz == 8) return o;
- if (o == GOF(FPR10) && sz == 8) return o;
- if (o == GOF(FPR11) && sz == 8) return o;
- if (o == GOF(FPR12) && sz == 8) return o;
- if (o == GOF(FPR13) && sz == 8) return o;
- if (o == GOF(FPR14) && sz == 8) return o;
- if (o == GOF(FPR15) && sz == 8) return o;
- if (o == GOF(FPR16) && sz == 8) return o;
- if (o == GOF(FPR17) && sz == 8) return o;
- if (o == GOF(FPR18) && sz == 8) return o;
- if (o == GOF(FPR19) && sz == 8) return o;
- if (o == GOF(FPR20) && sz == 8) return o;
- if (o == GOF(FPR21) && sz == 8) return o;
- if (o == GOF(FPR22) && sz == 8) return o;
- if (o == GOF(FPR23) && sz == 8) return o;
- if (o == GOF(FPR24) && sz == 8) return o;
- if (o == GOF(FPR25) && sz == 8) return o;
- if (o == GOF(FPR26) && sz == 8) return o;
- if (o == GOF(FPR27) && sz == 8) return o;
- if (o == GOF(FPR28) && sz == 8) return o;
- if (o == GOF(FPR29) && sz == 8) return o;
- if (o == GOF(FPR30) && sz == 8) return o;
- if (o == GOF(FPR31) && sz == 8) return o;
-
- /* For the various byte sized XER/CR pieces, use offset 8
- in VR0 .. VR31. */
- tl_assert(SZB(VR0) == 16);
- if (o == GOF(XER_SO) && sz == 1) return 8 +GOF(VR0);
- if (o == GOF(XER_OV) && sz == 1) return 8 +GOF(VR1);
- if (o == GOF(XER_CA) && sz == 1) return 8 +GOF(VR2);
- if (o == GOF(XER_BC) && sz == 1) return 8 +GOF(VR3);
-
- if (o == GOF(CR0_321) && sz == 1) return 8 +GOF(VR4);
- if (o == GOF(CR0_0) && sz == 1) return 8 +GOF(VR5);
- if (o == GOF(CR1_321) && sz == 1) return 8 +GOF(VR6);
- if (o == GOF(CR1_0) && sz == 1) return 8 +GOF(VR7);
- if (o == GOF(CR2_321) && sz == 1) return 8 +GOF(VR8);
- if (o == GOF(CR2_0) && sz == 1) return 8 +GOF(VR9);
- if (o == GOF(CR3_321) && sz == 1) return 8 +GOF(VR10);
- if (o == GOF(CR3_0) && sz == 1) return 8 +GOF(VR11);
- if (o == GOF(CR4_321) && sz == 1) return 8 +GOF(VR12);
- if (o == GOF(CR4_0) && sz == 1) return 8 +GOF(VR13);
- if (o == GOF(CR5_321) && sz == 1) return 8 +GOF(VR14);
- if (o == GOF(CR5_0) && sz == 1) return 8 +GOF(VR15);
- if (o == GOF(CR6_321) && sz == 1) return 8 +GOF(VR16);
- if (o == GOF(CR6_0) && sz == 1) return 8 +GOF(VR17);
- if (o == GOF(CR7_321) && sz == 1) return 8 +GOF(VR18);
- if (o == GOF(CR7_0) && sz == 1) return 8 +GOF(VR19);
-
- /* Vector registers .. use offset 0 in VR0 .. VR31. */
- if (o >= GOF(VR0) && o+sz <= GOF(VR0) +SZB(VR0)) return 0+ GOF(VR0);
- if (o >= GOF(VR1) && o+sz <= GOF(VR1) +SZB(VR1)) return 0+ GOF(VR1);
- if (o >= GOF(VR2) && o+sz <= GOF(VR2) +SZB(VR2)) return 0+ GOF(VR2);
- if (o >= GOF(VR3) && o+sz <= GOF(VR3) +SZB(VR3)) return 0+ GOF(VR3);
- if (o >= GOF(VR4) && o+sz <= GOF(VR4) +SZB(VR4)) return 0+ GOF(VR4);
- if (o >= GOF(VR5) && o+sz <= GOF(VR5) +SZB(VR5)) return 0+ GOF(VR5);
- if (o >= GOF(VR6) && o+sz <= GOF(VR6) +SZB(VR6)) return 0+ GOF(VR6);
- if (o >= GOF(VR7) && o+sz <= GOF(VR7) +SZB(VR7)) return 0+ GOF(VR7);
- if (o >= GOF(VR8) && o+sz <= GOF(VR8) +SZB(VR8)) return 0+ GOF(VR8);
- if (o >= GOF(VR9) && o+sz <= GOF(VR9) +SZB(VR9)) return 0+ GOF(VR9);
- if (o >= GOF(VR10) && o+sz <= GOF(VR10)+SZB(VR10)) return 0+ GOF(VR10);
- if (o >= GOF(VR11) && o+sz <= GOF(VR11)+SZB(VR11)) return 0+ GOF(VR11);
- if (o >= GOF(VR12) && o+sz <= GOF(VR12)+SZB(VR12)) return 0+ GOF(VR12);
- if (o >= GOF(VR13) && o+sz <= GOF(VR13)+SZB(VR13)) return 0+ GOF(VR13);
- if (o >= GOF(VR14) && o+sz <= GOF(VR14)+SZB(VR14)) return 0+ GOF(VR14);
- if (o >= GOF(VR15) && o+sz <= GOF(VR15)+SZB(VR15)) return 0+ GOF(VR15);
- if (o >= GOF(VR16) && o+sz <= GOF(VR16)+SZB(VR16)) return 0+ GOF(VR16);
- if (o >= GOF(VR17) && o+sz <= GOF(VR17)+SZB(VR17)) return 0+ GOF(VR17);
- if (o >= GOF(VR18) && o+sz <= GOF(VR18)+SZB(VR18)) return 0+ GOF(VR18);
- if (o >= GOF(VR19) && o+sz <= GOF(VR19)+SZB(VR19)) return 0+ GOF(VR19);
- if (o >= GOF(VR20) && o+sz <= GOF(VR20)+SZB(VR20)) return 0+ GOF(VR20);
- if (o >= GOF(VR21) && o+sz <= GOF(VR21)+SZB(VR21)) return 0+ GOF(VR21);
- if (o >= GOF(VR22) && o+sz <= GOF(VR22)+SZB(VR22)) return 0+ GOF(VR22);
- if (o >= GOF(VR23) && o+sz <= GOF(VR23)+SZB(VR23)) return 0+ GOF(VR23);
- if (o >= GOF(VR24) && o+sz <= GOF(VR24)+SZB(VR24)) return 0+ GOF(VR24);
- if (o >= GOF(VR25) && o+sz <= GOF(VR25)+SZB(VR25)) return 0+ GOF(VR25);
- if (o >= GOF(VR26) && o+sz <= GOF(VR26)+SZB(VR26)) return 0+ GOF(VR26);
- if (o >= GOF(VR27) && o+sz <= GOF(VR27)+SZB(VR27)) return 0+ GOF(VR27);
- if (o >= GOF(VR28) && o+sz <= GOF(VR28)+SZB(VR28)) return 0+ GOF(VR28);
- if (o >= GOF(VR29) && o+sz <= GOF(VR29)+SZB(VR29)) return 0+ GOF(VR29);
- if (o >= GOF(VR30) && o+sz <= GOF(VR30)+SZB(VR30)) return 0+ GOF(VR30);
- if (o >= GOF(VR31) && o+sz <= GOF(VR31)+SZB(VR31)) return 0+ GOF(VR31);
-
- VG_(printf)("get_shadow_offset(ppc32)(off=%d,sz=%d)\n", offset,szB);
- tl_assert(0);
-#undef GOF
-#undef SZB
-
-
-#elif defined(VGA_amd64)
-
-#define GOF(_fieldname) (offsetof(VexGuestAMD64State,guest_##_fieldname))
-#define SZB(_fieldname) (sizeof(((VexGuestAMD64State*)0)->guest_##_fieldname))
- Int o = offset;
- Int sz = szB;
- Bool is1248 = sz == 8 || sz == 4 || sz == 2 || sz == 1;
- tl_assert(sz > 0);
-
- // FIXME: this assumes the host is little endian. Assert for it.
- if (o == GOF(RAX) && is1248) return o;
- if (o == GOF(RCX) && is1248) return o;
- if (o == GOF(RDX) && is1248) return o;
- if (o == GOF(RBX) && is1248) return o;
- if (o == GOF(RSP) && is1248) return o;
- if (o == GOF(RBP) && is1248) return o;
- if (o == GOF(RSI) && is1248) return o;
- if (o == GOF(RDI) && is1248) return o;
- if (o == GOF(R8) && is1248) return o;
- if (o == GOF(R9) && is1248) return o;
- if (o == GOF(R10) && is1248) return o;
- if (o == GOF(R11) && is1248) return o;
- if (o == GOF(R12) && is1248) return o;
- if (o == GOF(R13) && is1248) return o;
- if (o == GOF(R14) && is1248) return o;
- if (o == GOF(R15) && is1248) return o;
-
- if (o == GOF(CC_DEP1) && sz == 8) return o;
- if (o == GOF(CC_DEP2) && sz == 8) return o;
-
- if (o == GOF(CC_OP) && sz == 8) return -1; /* slot used for %AH */
- if (o == GOF(CC_NDEP) && sz == 8) return -1; /* slot used for %BH */
- if (o == GOF(DFLAG) && sz == 8) return -1; /* slot used for %CH */
- if (o == GOF(RIP) && sz == 8) return -1; /* slot unused */
- if (o == GOF(IDFLAG) && sz == 8) return -1; /* slot used for %DH */
- if (o == GOF(FS_ZERO) && sz == 8) return -1; /* slot unused */
-
- /* Treat %AH, %BH, %CH, %DH as independent registers. To do this
- requires finding 4 unused 32-bit slots in the second-shadow
- guest state, respectively: CC_OP CC_NDEP DFLAG IDFLAG, since
- none of those are tracked. */
- tl_assert(SZB(CC_OP) == 8);
- tl_assert(SZB(CC_NDEP) == 8);
- tl_assert(SZB(IDFLAG) == 8);
- tl_assert(SZB(DFLAG) == 8);
-
- if (o == 1+ GOF(RAX) && szB == 1) return GOF(CC_OP);
- if (o == 1+ GOF(RBX) && szB == 1) return GOF(CC_NDEP);
- if (o == 1+ GOF(RCX) && szB == 1) return GOF(DFLAG);
- if (o == 1+ GOF(RDX) && szB == 1) return GOF(IDFLAG);
-
- /* skip XMM and FP admin stuff */
- if (o == GOF(SSEROUND) && szB == 8) return -1;
- if (o == GOF(FTOP) && szB == 4) return -1;
- if (o == GOF(FPROUND) && szB == 8) return -1;
- if (o == GOF(EMWARN) && szB == 4) return -1;
- /* The amd64 front end doesn't actually use FC3210. It should
- be done away with.
- if (offset == offsetof(VexGuestAMD64State,guest_FC3210) && szB==4)
- return -1;
- */
-
- /* XMM registers */
- if (o >= GOF(XMM0) && o+sz <= GOF(XMM0) +SZB(XMM0)) return GOF(XMM0);
- if (o >= GOF(XMM1) && o+sz <= GOF(XMM1) +SZB(XMM1)) return GOF(XMM1);
- if (o >= GOF(XMM2) && o+sz <= GOF(XMM2) +SZB(XMM2)) return GOF(XMM2);
- if (o >= GOF(XMM3) && o+sz <= GOF(XMM3) +SZB(XMM3)) return GOF(XMM3);
- if (o >= GOF(XMM4) && o+sz <= GOF(XMM4) +SZB(XMM4)) return GOF(XMM4);
- if (o >= GOF(XMM5) && o+sz <= GOF(XMM5) +SZB(XMM5)) return GOF(XMM5);
- if (o >= GOF(XMM6) && o+sz <= GOF(XMM6) +SZB(XMM6)) return GOF(XMM6);
- if (o >= GOF(XMM7) && o+sz <= GOF(XMM7) +SZB(XMM7)) return GOF(XMM7);
- if (o >= GOF(XMM8) && o+sz <= GOF(XMM8) +SZB(XMM8)) return GOF(XMM8);
- if (o >= GOF(XMM9) && o+sz <= GOF(XMM9) +SZB(XMM9)) return GOF(XMM9);
- if (o >= GOF(XMM10) && o+sz <= GOF(XMM10)+SZB(XMM10)) return GOF(XMM10);
- if (o >= GOF(XMM11) && o+sz <= GOF(XMM11)+SZB(XMM11)) return GOF(XMM11);
- if (o >= GOF(XMM12) && o+sz <= GOF(XMM12)+SZB(XMM12)) return GOF(XMM12);
- if (o >= GOF(XMM13) && o+sz <= GOF(XMM13)+SZB(XMM13)) return GOF(XMM13);
- if (o >= GOF(XMM14) && o+sz <= GOF(XMM14)+SZB(XMM14)) return GOF(XMM14);
- if (o >= GOF(XMM15) && o+sz <= GOF(XMM15)+SZB(XMM15)) return GOF(XMM15);
-
- /* MMX accesses to FP regs */
- if (o == GOF(FPREG[0]) && sz == 8) return o;
- if (o == GOF(FPREG[1]) && sz == 8) return o;
- if (o == GOF(FPREG[2]) && sz == 8) return o;
- if (o == GOF(FPREG[3]) && sz == 8) return o;
- if (o == GOF(FPREG[4]) && sz == 8) return o;
- if (o == GOF(FPREG[5]) && sz == 8) return o;
- if (o == GOF(FPREG[6]) && sz == 8) return o;
- if (o == GOF(FPREG[7]) && sz == 8) return o;
-
- /* Map high halves of %RAX,%RCX,%RDX,%RBX to the whole register.
- This is needed because the general handling of dirty helper
- calls is done in 4 byte chunks. Hence we will see these.
- Currently we only expect to see artefacts from CPUID. */
- if (o == 4+ GOF(RAX) && sz == 4) return GOF(RAX);
- if (o == 4+ GOF(RCX) && sz == 4) return GOF(RCX);
- if (o == 4+ GOF(RDX) && sz == 4) return GOF(RDX);
- if (o == 4+ GOF(RBX) && sz == 4) return GOF(RBX);
-
- VG_(printf)("get_shadow_offset(amd64)(off=%d,sz=%d)\n", offset,szB);
- tl_assert(0);
-#undef GOF
-#undef SZB
-
-
-#elif defined(VGA_x86)
-
-#define GOF(_fieldname) (offsetof(VexGuestX86State,guest_##_fieldname))
-#define SZB(_fieldname) (sizeof(((VexGuestX86State*)0)->guest_##_fieldname))
-
- Int o = offset;
- Int sz = szB;
- Bool is124 = sz == 4 || sz == 2 || sz == 1;
- tl_assert(sz > 0);
-
- if (o == GOF(EAX) && is124) return o;
- if (o == GOF(ECX) && is124) return o;
- if (o == GOF(EDX) && is124) return o;
- if (o == GOF(EBX) && is124) return o;
- if (o == GOF(ESP) && is124) return o;
- if (o == GOF(EBP) && is124) return o;
- if (o == GOF(ESI) && is124) return o;
- if (o == GOF(EDI) && is124) return o;
-
- if (o == GOF(CC_DEP1) && sz == 4) return o;
- if (o == GOF(CC_DEP2) && sz == 4) return o;
-
- if (o == GOF(CC_OP) && sz == 4) return -1; /* slot used for %AH */
- if (o == GOF(CC_NDEP) && sz == 4) return -1; /* slot used for %BH */
- if (o == GOF(DFLAG) && sz == 4) return -1; /* slot used for %CH */
- if (o == GOF(EIP) && sz == 4) return -1; /* slot unused */
- if (o == GOF(IDFLAG) && sz == 4) return -1; /* slot used for %DH */
- if (o == GOF(ACFLAG) && sz == 4) return -1; /* slot unused */
-
- /* Treat %AH, %BH, %CH, %DH as independent registers. To do this
- requires finding 4 unused 32-bit slots in the second-shadow
- guest state, respectively: CC_OP CC_NDEP DFLAG IDFLAG since none
- of those are tracked. */
- tl_assert(SZB(CC_OP) == 4);
- tl_assert(SZB(CC_NDEP) == 4);
- tl_assert(SZB(IDFLAG) == 4);
- tl_assert(SZB(ACFLAG) == 4);
- if (o == 1+ GOF(EAX) && szB == 1) return GOF(CC_OP);
- //if (o == 1+ GOF(EBX) && szB == 1) return GOF(CC_NDEP);
- if (o == 1+ GOF(ECX) && szB == 1) return GOF(DFLAG);
- if (o == 1+ GOF(EDX) && szB == 1) return GOF(IDFLAG);
-
- /* skip XMM and FP admin stuff */
- if (o == GOF(SSEROUND) && szB == 4) return -1;
- if (o == GOF(FTOP) && szB == 4) return -1;
- if (o == GOF(FPROUND) && szB == 4) return -1;
- if (o == GOF(EMWARN) && szB == 4) return -1;
- if (o == GOF(FC3210) && szB == 4) return -1;
-
- /* XMM registers */
- if (o >= GOF(XMM0) && o+sz <= GOF(XMM0)+SZB(XMM0)) return GOF(XMM0);
- if (o >= GOF(XMM1) && o+sz <= GOF(XMM1)+SZB(XMM1)) return GOF(XMM1);
- if (o >= GOF(XMM2) && o+sz <= GOF(XMM2)+SZB(XMM2)) return GOF(XMM2);
- if (o >= GOF(XMM3) && o+sz <= GOF(XMM3)+SZB(XMM3)) return GOF(XMM3);
- if (o >= GOF(XMM4) && o+sz <= GOF(XMM4)+SZB(XMM4)) return GOF(XMM4);
- if (o >= GOF(XMM5) && o+sz <= GOF(XMM5)+SZB(XMM5)) return GOF(XMM5);
- if (o >= GOF(XMM6) && o+sz <= GOF(XMM6)+SZB(XMM6)) return GOF(XMM6);
- if (o >= GOF(XMM7) && o+sz <= GOF(XMM7)+SZB(XMM7)) return GOF(XMM7);
-
- /* MMX accesses to FP regs. Need to allow for 32-bit references
- due to dirty helpers for frstor etc, which reference the entire
- 64-byte block in one go. */
- if (o >= GOF(FPREG[0])
- && o+sz <= GOF(FPREG[0])+SZB(FPREG[0])) return GOF(FPREG[0]);
- if (o >= GOF(FPREG[1])
- && o+sz <= GOF(FPREG[1])+SZB(FPREG[1])) return GOF(FPREG[1]);
- if (o >= GOF(FPREG[2])
- && o+sz <= GOF(FPREG[2])+SZB(FPREG[2])) return GOF(FPREG[2]);
- if (o >= GOF(FPREG[3])
- && o+sz <= GOF(FPREG[3])+SZB(FPREG[3])) return GOF(FPREG[3]);
- if (o >= GOF(FPREG[4])
- && o+sz <= GOF(FPREG[4])+SZB(FPREG[4])) return GOF(FPREG[4]);
- if (o >= GOF(FPREG[5])
- && o+sz <= GOF(FPREG[5])+SZB(FPREG[5])) return GOF(FPREG[5]);
- if (o >= GOF(FPREG[6])
- && o+sz <= GOF(FPREG[6])+SZB(FPREG[6])) return GOF(FPREG[6]);
- if (o >= GOF(FPREG[7])
- && o+sz <= ...
[truncated message content] |
|
From: <sv...@va...> - 2008-04-14 10:20:12
|
Author: sewardj
Date: 2008-04-14 11:20:15 +0100 (Mon, 14 Apr 2008)
New Revision: 7870
Log:
Support origin tracking on ppc64-linux.
Modified:
branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_main.c
branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_translate.c
Modified: branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_main.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_main.c 2008-04-14 10:18:50 UTC (rev 7869)
+++ branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_main.c 2008-04-14 10:20:15 UTC (rev 7870)
@@ -2559,7 +2559,6 @@
p[13] = VA_BITS16_UNDEFINED;
p[14] = VA_BITS16_UNDEFINED;
p[15] = VA_BITS16_UNDEFINED;
-
set_aligned_word64_Origin_to_undef( base + 8 * 0, otag );
set_aligned_word64_Origin_to_undef( base + 8 * 1, otag );
set_aligned_word64_Origin_to_undef( base + 8 * 2, otag );
@@ -2576,7 +2575,6 @@
set_aligned_word64_Origin_to_undef( base + 8 * 13, otag );
set_aligned_word64_Origin_to_undef( base + 8 * 14, otag );
set_aligned_word64_Origin_to_undef( base + 8 * 15, otag );
-
return;
}
}
@@ -2587,7 +2585,6 @@
/* Now we know the address range is suitably sized and aligned. */
UWord a_lo = (UWord)(base);
UWord a_hi = (UWord)(base + 288 - 1);
-tl_assert(0); //FIXME
tl_assert(a_lo < a_hi); // paranoia: detect overflow
if (a_hi < MAX_PRIMARY_ADDRESS) {
// Now we know the entire range is within the main primary map.
@@ -2636,6 +2633,42 @@
p[33] = VA_BITS16_UNDEFINED;
p[34] = VA_BITS16_UNDEFINED;
p[35] = VA_BITS16_UNDEFINED;
+ set_aligned_word64_Origin_to_undef( base + 8 * 0, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 1, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 2, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 3, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 4, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 5, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 6, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 7, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 8, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 9, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 10, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 11, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 12, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 13, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 14, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 15, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 16, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 17, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 18, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 19, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 20, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 21, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 22, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 23, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 24, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 25, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 26, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 27, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 28, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 29, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 30, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 31, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 32, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 33, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 34, otag );
+ set_aligned_word64_Origin_to_undef( base + 8 * 35, otag );
return;
}
}
Modified: branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_translate.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_translate.c 2008-04-14 10:18:50 UTC (rev 7869)
+++ branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_translate.c 2008-04-14 10:20:15 UTC (rev 7870)
@@ -3794,22 +3794,35 @@
#include "libvex_guest_x86.h"
#include "libvex_guest_amd64.h"
#include "libvex_guest_ppc32.h"
+#include "libvex_guest_ppc64.h"
static IRType get_reg_array_equiv_int_type ( IRRegArray* arr )
{
-#if defined(VGA_amd64)
+#if defined(VGA_ppc64)
+ /* The redir stack. */
+ if (arr->base == offsetof(VexGuestPPC64State,guest_REDIR_STACK[0])
+ && arr->elemTy == Ity_I64
+ && arr->nElems == VEX_GUEST_PPC64_REDIR_STACK_SIZE)
+ return Ity_I64;
+
+ VG_(printf)("get_reg_array_equiv_int_type(ppc64): unhandled: ");
+ ppIRRegArray(arr);
+ VG_(printf)("\n");
+ tl_assert(0);
+
+#elif defined(VGA_amd64)
/* Ignore the FP tag array - pointless to shadow, and in any case
the elements are too small */
if (arr->base == offsetof(VexGuestAMD64State,guest_FPTAG)
&& arr->elemTy == Ity_I8 && arr->nElems == 8)
- return Ity_INVALID;
+ return Ity_INVALID;
/* The FP register array */
if (arr->base == offsetof(VexGuestAMD64State,guest_FPREG[0])
&& arr->elemTy == Ity_F64 && arr->nElems == 8)
- return Ity_I64;
+ return Ity_I64;
- VG_(printf)("get_reg_array_equiv_int_type: unhandled: ");
+ VG_(printf)("get_reg_array_equiv_int_type(amd64): unhandled: ");
ppIRRegArray(arr);
VG_(printf)("\n");
tl_assert(0);
@@ -3819,14 +3832,14 @@
the elements are too small */
if (arr->base == offsetof(VexGuestX86State,guest_FPTAG)
&& arr->elemTy == Ity_I8 && arr->nElems == 8)
- return Ity_INVALID;
+ return Ity_INVALID;
/* The FP register array */
if (arr->base == offsetof(VexGuestX86State,guest_FPREG[0])
&& arr->elemTy == Ity_F64 && arr->nElems == 8)
- return Ity_I64;
+ return Ity_I64;
- VG_(printf)("get_reg_array_equiv_int_type: unhandled: ");
+ VG_(printf)("get_reg_array_equiv_int_type(x86): unhandled: ");
ppIRRegArray(arr);
VG_(printf)("\n");
tl_assert(0);
@@ -3838,8 +3851,164 @@
static Int get_shadow_offset ( Int offset, Int szB )
{
-#if defined(VGA_ppc32)
+#if defined(VGA_ppc64)
+#define GOF(_fieldname) (offsetof(VexGuestPPC64State,guest_##_fieldname))
+#define SZB(_fieldname) (sizeof(((VexGuestPPC64State*)0)->guest_##_fieldname))
+ Int o = offset;
+ Int sz = szB;
+ tl_assert(sz > 0);
+
+ // FIXME: this assumes the host is big endian. Assert for it.
+ if (o == GOF(GPR0) && sz == 8) return o;
+ if (o == GOF(GPR1) && sz == 8) return o;
+ if (o == GOF(GPR2) && sz == 8) return o;
+ if (o == GOF(GPR3) && sz == 8) return o;
+ if (o == GOF(GPR4) && sz == 8) return o;
+ if (o == GOF(GPR5) && sz == 8) return o;
+ if (o == GOF(GPR6) && sz == 8) return o;
+ if (o == GOF(GPR7) && sz == 8) return o;
+ if (o == GOF(GPR8) && sz == 8) return o;
+ if (o == GOF(GPR9) && sz == 8) return o;
+ if (o == GOF(GPR10) && sz == 8) return o;
+ if (o == GOF(GPR11) && sz == 8) return o;
+ if (o == GOF(GPR12) && sz == 8) return o;
+ if (o == GOF(GPR13) && sz == 8) return o;
+ if (o == GOF(GPR14) && sz == 8) return o;
+ if (o == GOF(GPR15) && sz == 8) return o;
+ if (o == GOF(GPR16) && sz == 8) return o;
+ if (o == GOF(GPR17) && sz == 8) return o;
+ if (o == GOF(GPR18) && sz == 8) return o;
+ if (o == GOF(GPR19) && sz == 8) return o;
+ if (o == GOF(GPR20) && sz == 8) return o;
+ if (o == GOF(GPR21) && sz == 8) return o;
+ if (o == GOF(GPR22) && sz == 8) return o;
+ if (o == GOF(GPR23) && sz == 8) return o;
+ if (o == GOF(GPR24) && sz == 8) return o;
+ if (o == GOF(GPR25) && sz == 8) return o;
+ if (o == GOF(GPR26) && sz == 8) return o;
+ if (o == GOF(GPR27) && sz == 8) return o;
+ if (o == GOF(GPR28) && sz == 8) return o;
+ if (o == GOF(GPR29) && sz == 8) return o;
+ if (o == GOF(GPR30) && sz == 8) return o;
+ if (o == GOF(GPR31) && sz == 8) return o;
+
+ if (o == GOF(LR) && sz == 8) return o;
+ if (o == GOF(CTR) && sz == 8) return o;
+
+ if (o == GOF(CIA) && sz == 8) return -1;
+ if (o == GOF(CIA_AT_SC) && sz == 8) return -1;
+ if (o == GOF(RESVN) && sz == 8) return -1;
+ if (o == GOF(FPROUND) && sz == 4) return -1;
+ if (o == GOF(EMWARN) && sz == 4) return -1;
+ if (o == GOF(TISTART) && sz == 8) return -1;
+ if (o == GOF(TILEN) && sz == 8) return -1;
+ if (o == GOF(VSCR) && sz == 4) return -1;
+ if (o == GOF(VRSAVE) && sz == 4) return -1;
+ if (o == GOF(REDIR_SP) && sz == 8) return -1;
+
+ tl_assert(SZB(FPR0) == 8);
+ if (o == GOF(FPR0) && sz == 8) return o;
+ if (o == GOF(FPR1) && sz == 8) return o;
+ if (o == GOF(FPR2) && sz == 8) return o;
+ if (o == GOF(FPR3) && sz == 8) return o;
+ if (o == GOF(FPR4) && sz == 8) return o;
+ if (o == GOF(FPR5) && sz == 8) return o;
+ if (o == GOF(FPR6) && sz == 8) return o;
+ if (o == GOF(FPR7) && sz == 8) return o;
+ if (o == GOF(FPR8) && sz == 8) return o;
+ if (o == GOF(FPR9) && sz == 8) return o;
+ if (o == GOF(FPR10) && sz == 8) return o;
+ if (o == GOF(FPR11) && sz == 8) return o;
+ if (o == GOF(FPR12) && sz == 8) return o;
+ if (o == GOF(FPR13) && sz == 8) return o;
+ if (o == GOF(FPR14) && sz == 8) return o;
+ if (o == GOF(FPR15) && sz == 8) return o;
+ if (o == GOF(FPR16) && sz == 8) return o;
+ if (o == GOF(FPR17) && sz == 8) return o;
+ if (o == GOF(FPR18) && sz == 8) return o;
+ if (o == GOF(FPR19) && sz == 8) return o;
+ if (o == GOF(FPR20) && sz == 8) return o;
+ if (o == GOF(FPR21) && sz == 8) return o;
+ if (o == GOF(FPR22) && sz == 8) return o;
+ if (o == GOF(FPR23) && sz == 8) return o;
+ if (o == GOF(FPR24) && sz == 8) return o;
+ if (o == GOF(FPR25) && sz == 8) return o;
+ if (o == GOF(FPR26) && sz == 8) return o;
+ if (o == GOF(FPR27) && sz == 8) return o;
+ if (o == GOF(FPR28) && sz == 8) return o;
+ if (o == GOF(FPR29) && sz == 8) return o;
+ if (o == GOF(FPR30) && sz == 8) return o;
+ if (o == GOF(FPR31) && sz == 8) return o;
+
+ /* For the various byte sized XER/CR pieces, use offset 8
+ in VR0 .. VR31. */
+ tl_assert(SZB(VR0) == 16);
+ if (o == GOF(XER_SO) && sz == 1) return 8 +GOF(VR0);
+ if (o == GOF(XER_OV) && sz == 1) return 8 +GOF(VR1);
+ if (o == GOF(XER_CA) && sz == 1) return 8 +GOF(VR2);
+ if (o == GOF(XER_BC) && sz == 1) return 8 +GOF(VR3);
+
+ if (o == GOF(CR0_321) && sz == 1) return 8 +GOF(VR4);
+ if (o == GOF(CR0_0) && sz == 1) return 8 +GOF(VR5);
+ if (o == GOF(CR1_321) && sz == 1) return 8 +GOF(VR6);
+ if (o == GOF(CR1_0) && sz == 1) return 8 +GOF(VR7);
+ if (o == GOF(CR2_321) && sz == 1) return 8 +GOF(VR8);
+ if (o == GOF(CR2_0) && sz == 1) return 8 +GOF(VR9);
+ if (o == GOF(CR3_321) && sz == 1) return 8 +GOF(VR10);
+ if (o == GOF(CR3_0) && sz == 1) return 8 +GOF(VR11);
+ if (o == GOF(CR4_321) && sz == 1) return 8 +GOF(VR12);
+ if (o == GOF(CR4_0) && sz == 1) return 8 +GOF(VR13);
+ if (o == GOF(CR5_321) && sz == 1) return 8 +GOF(VR14);
+ if (o == GOF(CR5_0) && sz == 1) return 8 +GOF(VR15);
+ if (o == GOF(CR6_321) && sz == 1) return 8 +GOF(VR16);
+ if (o == GOF(CR6_0) && sz == 1) return 8 +GOF(VR17);
+ if (o == GOF(CR7_321) && sz == 1) return 8 +GOF(VR18);
+ if (o == GOF(CR7_0) && sz == 1) return 8 +GOF(VR19);
+
+ /* Vector registers .. use offset 0 in VR0 .. VR31. */
+ if (o >= GOF(VR0) && o+sz <= GOF(VR0) +SZB(VR0)) return 0+ GOF(VR0);
+ if (o >= GOF(VR1) && o+sz <= GOF(VR1) +SZB(VR1)) return 0+ GOF(VR1);
+ if (o >= GOF(VR2) && o+sz <= GOF(VR2) +SZB(VR2)) return 0+ GOF(VR2);
+ if (o >= GOF(VR3) && o+sz <= GOF(VR3) +SZB(VR3)) return 0+ GOF(VR3);
+ if (o >= GOF(VR4) && o+sz <= GOF(VR4) +SZB(VR4)) return 0+ GOF(VR4);
+ if (o >= GOF(VR5) && o+sz <= GOF(VR5) +SZB(VR5)) return 0+ GOF(VR5);
+ if (o >= GOF(VR6) && o+sz <= GOF(VR6) +SZB(VR6)) return 0+ GOF(VR6);
+ if (o >= GOF(VR7) && o+sz <= GOF(VR7) +SZB(VR7)) return 0+ GOF(VR7);
+ if (o >= GOF(VR8) && o+sz <= GOF(VR8) +SZB(VR8)) return 0+ GOF(VR8);
+ if (o >= GOF(VR9) && o+sz <= GOF(VR9) +SZB(VR9)) return 0+ GOF(VR9);
+ if (o >= GOF(VR10) && o+sz <= GOF(VR10)+SZB(VR10)) return 0+ GOF(VR10);
+ if (o >= GOF(VR11) && o+sz <= GOF(VR11)+SZB(VR11)) return 0+ GOF(VR11);
+ if (o >= GOF(VR12) && o+sz <= GOF(VR12)+SZB(VR12)) return 0+ GOF(VR12);
+ if (o >= GOF(VR13) && o+sz <= GOF(VR13)+SZB(VR13)) return 0+ GOF(VR13);
+ if (o >= GOF(VR14) && o+sz <= GOF(VR14)+SZB(VR14)) return 0+ GOF(VR14);
+ if (o >= GOF(VR15) && o+sz <= GOF(VR15)+SZB(VR15)) return 0+ GOF(VR15);
+ if (o >= GOF(VR16) && o+sz <= GOF(VR16)+SZB(VR16)) return 0+ GOF(VR16);
+ if (o >= GOF(VR17) && o+sz <= GOF(VR17)+SZB(VR17)) return 0+ GOF(VR17);
+ if (o >= GOF(VR18) && o+sz <= GOF(VR18)+SZB(VR18)) return 0+ GOF(VR18);
+ if (o >= GOF(VR19) && o+sz <= GOF(VR19)+SZB(VR19)) return 0+ GOF(VR19);
+ if (o >= GOF(VR20) && o+sz <= GOF(VR20)+SZB(VR20)) return 0+ GOF(VR20);
+ if (o >= GOF(VR21) && o+sz <= GOF(VR21)+SZB(VR21)) return 0+ GOF(VR21);
+ if (o >= GOF(VR22) && o+sz <= GOF(VR22)+SZB(VR22)) return 0+ GOF(VR22);
+ if (o >= GOF(VR23) && o+sz <= GOF(VR23)+SZB(VR23)) return 0+ GOF(VR23);
+ if (o >= GOF(VR24) && o+sz <= GOF(VR24)+SZB(VR24)) return 0+ GOF(VR24);
+ if (o >= GOF(VR25) && o+sz <= GOF(VR25)+SZB(VR25)) return 0+ GOF(VR25);
+ if (o >= GOF(VR26) && o+sz <= GOF(VR26)+SZB(VR26)) return 0+ GOF(VR26);
+ if (o >= GOF(VR27) && o+sz <= GOF(VR27)+SZB(VR27)) return 0+ GOF(VR27);
+ if (o >= GOF(VR28) && o+sz <= GOF(VR28)+SZB(VR28)) return 0+ GOF(VR28);
+ if (o >= GOF(VR29) && o+sz <= GOF(VR29)+SZB(VR29)) return 0+ GOF(VR29);
+ if (o >= GOF(VR30) && o+sz <= GOF(VR30)+SZB(VR30)) return 0+ GOF(VR30);
+ if (o >= GOF(VR31) && o+sz <= GOF(VR31)+SZB(VR31)) return 0+ GOF(VR31);
+
+ VG_(printf)("get_shadow_offset(ppc64)(off=%d,sz=%d)\n", offset,szB);
+ tl_assert(0);
+#undef GOF
+#undef SZB
+
+
+
+#elif defined(VGA_ppc32)
+
#define GOF(_fieldname) (offsetof(VexGuestPPC32State,guest_##_fieldname))
#define SZB(_fieldname) (sizeof(((VexGuestPPC32State*)0)->guest_##_fieldname))
Int o = offset;
@@ -3951,7 +4120,7 @@
if (o == GOF(CR7_321) && sz == 1) return 8 +GOF(VR18);
if (o == GOF(CR7_0) && sz == 1) return 8 +GOF(VR19);
- /* Vector Hreegisters .. use offset 0 in VR0 .. VR31. */
+ /* Vector registers .. use offset 0 in VR0 .. VR31. */
if (o >= GOF(VR0) && o+sz <= GOF(VR0) +SZB(VR0)) return 0+ GOF(VR0);
if (o >= GOF(VR1) && o+sz <= GOF(VR1) +SZB(VR1)) return 0+ GOF(VR1);
if (o >= GOF(VR2) && o+sz <= GOF(VR2) +SZB(VR2)) return 0+ GOF(VR2);
|
|
From: <sv...@va...> - 2008-04-14 10:18:48
|
Author: sewardj Date: 2008-04-14 11:18:50 +0100 (Mon, 14 Apr 2008) New Revision: 7869 Log: Make varinfo* regtests build on ppc64-linux (Nuno Lopez). Modified: branches/OTRACK_BY_INSTRUMENTATION/memcheck/tests/Makefile.am Modified: branches/OTRACK_BY_INSTRUMENTATION/memcheck/tests/Makefile.am =================================================================== --- branches/OTRACK_BY_INSTRUMENTATION/memcheck/tests/Makefile.am 2008-04-13 19:38:00 UTC (rev 7868) +++ branches/OTRACK_BY_INSTRUMENTATION/memcheck/tests/Makefile.am 2008-04-14 10:18:50 UTC (rev 7869) @@ -223,12 +223,12 @@ supp2_SOURCES = supp.c # To make it a bit more realistic, have some optimisation enabled # for the varinfo tests. We still expect sane results. -varinfo1_CFLAGS = -O -g -varinfo2_CFLAGS = -O -g -varinfo3_CFLAGS = -O -g -varinfo4_CFLAGS = -O -g -varinfo5_CFLAGS = -O -g -varinfo6_CFLAGS = -O -g +varinfo1_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g +varinfo2_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g +varinfo3_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g +varinfo4_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g +varinfo5_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g +varinfo6_CFLAGS = $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -O -g # C++ tests mismatches_SOURCES = mismatches.cpp |
|
From: <sv...@va...> - 2008-04-14 10:17:36
|
Author: sewardj
Date: 2008-04-14 11:17:36 +0100 (Mon, 14 Apr 2008)
New Revision: 1824
Log:
Fix redzone abi-hinting on ppc, so as to pass NIA. Also, pass a
call-style hint for bctrl, instead of no hint.
Modified:
branches/OTRACK_BY_INSTRUMENTATION/priv/guest-ppc/toIR.c
Modified: branches/OTRACK_BY_INSTRUMENTATION/priv/guest-ppc/toIR.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/priv/guest-ppc/toIR.c 2008-04-09 01:03:14 UTC (rev 1823)
+++ branches/OTRACK_BY_INSTRUMENTATION/priv/guest-ppc/toIR.c 2008-04-14 10:17:36 UTC (rev 1824)
@@ -1211,27 +1211,31 @@
/* Generate AbiHints which mark points at which the ELF or PowerOpen
ABIs say that the stack red zone (viz, -N(r1) .. -1(r1), for some
N) becomes undefined. That is at function calls and returns. ELF
- ppc32 doesn't have this "feature" (how fortunate for it).
+ ppc32 doesn't have this "feature" (how fortunate for it). nia is
+ the address of the next instruction to be executed.
*/
-static void make_redzone_AbiHint ( VexAbiInfo* vbi, HChar* who )
+static void make_redzone_AbiHint ( VexAbiInfo* vbi,
+ IRTemp nia, HChar* who )
{
Int szB = vbi->guest_stack_redzone_size;
if (0) vex_printf("AbiHint: %s\n", who);
-vassert(0); /*FIXME*/
vassert(szB >= 0);
if (szB > 0) {
- if (mode64)
+ if (mode64) {
+ vassert(typeOfIRTemp(irsb->tyenv, nia) == Ity_I64);
stmt( IRStmt_AbiHint(
binop(Iop_Sub64, getIReg(1), mkU64(szB)),
- szB
-,mkU64(0)
+ szB,
+ mkexpr(nia)
));
- else
+ } else {
+ vassert(typeOfIRTemp(irsb->tyenv, nia) == Ity_I32);
stmt( IRStmt_AbiHint(
binop(Iop_Sub32, getIReg(1), mkU32(szB)),
- szB
-,mkU32(0)
+ szB,
+ mkexpr(nia)
));
+ }
}
}
@@ -4311,9 +4315,12 @@
if (flag_LK) {
putGST( PPC_GST_LR, e_nia );
if (vbi->guest_ppc_zap_RZ_at_bl
- && vbi->guest_ppc_zap_RZ_at_bl( (ULong)tgt) )
- make_redzone_AbiHint( vbi,
+ && vbi->guest_ppc_zap_RZ_at_bl( (ULong)tgt) ) {
+ IRTemp t_tgt = newTemp(ty);
+ assign(t_tgt, mode64 ? mkU64(tgt) : mkU32(tgt) );
+ make_redzone_AbiHint( vbi, t_tgt,
"branch-and-link (unconditional call)" );
+ }
}
if (resteerOkFn( callback_opaque, tgt )) {
@@ -4382,6 +4389,8 @@
assign( cond_ok, branch_cond_ok( BO, BI ) );
+ /* FIXME: this is confusing. lr_old holds the old value
+ of ctr, not lr :-) */
assign( lr_old, addr_align( getGST( PPC_GST_CTR ), 4 ));
if (flag_LK)
@@ -4391,7 +4400,12 @@
binop(Iop_CmpEQ32, mkexpr(cond_ok), mkU32(0)),
Ijk_Boring,
c_nia ));
-
+
+ if (flag_LK && vbi->guest_ppc_zap_RZ_at_bl) {
+ make_redzone_AbiHint( vbi, lr_old,
+ "b-ctr-l (indirect call)" );
+ }
+
irsb->jumpkind = flag_LK ? Ijk_Call : Ijk_Boring;
irsb->next = mkexpr(lr_old);
break;
@@ -4427,8 +4441,10 @@
Ijk_Boring,
c_nia ));
- if (vanilla_return && vbi->guest_ppc_zap_RZ_at_blr)
- make_redzone_AbiHint( vbi, "branch-to-lr (unconditional return)" );
+ if (vanilla_return && vbi->guest_ppc_zap_RZ_at_blr) {
+ make_redzone_AbiHint( vbi, lr_old,
+ "branch-to-lr (unconditional return)" );
+ }
/* blrl is pretty strange; it's like a return that sets the
return address of its caller to the insn following this
|
|
From: Tom H. <th...@cy...> - 2008-04-14 02:57:02
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2008-04-14 03:15:03 BST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
else rm -f ".deps/exp_drd_x86_linux-drd_thread.Tpo"; exit 1; \
fi
drd_thread.c: In function `thread_danger_set_up_to_date':
drd_thread.c:917: warning: implicit declaration of function `bm_compare'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -mpreferred-stack-boundary=2 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_vc.Tpo" \
-c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c; \
then mv -f ".deps/exp_drd_x86_linux-drd_vc.Tpo" ".deps/exp_drd_x86_linux-drd_vc.Po"; \
else rm -f ".deps/exp_drd_x86_linux-drd_vc.Tpo"; exit 1; \
fi
gcc -Wno-long-long -o exp-drd-x86-linux -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
exp_drd_x86_linux-drd_thread.o(.text+0x1ecb): In function `thread_danger_set_up_to_date':
/tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
collect2: ld returned 1 exit status
make[3]: *** [exp-drd-x86-linux] Error 1
make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
make: *** [all] Error 2
=================================================
== 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
== 330 tests, 75 stderr failures, 1 stdout failure, 29 post failures ==
memcheck/tests/addressable (stderr)
memcheck/tests/badjump (stderr)
memcheck/tests/describe-block (stderr)
memcheck/tests/erringfds (stderr)
memcheck/tests/leak-0 (stderr)
memcheck/tests/leak-cycle (stderr)
memcheck/tests/leak-pool-0 (stderr)
memcheck/tests/leak-pool-1 (stderr)
memcheck/tests/leak-pool-2 (stderr)
memcheck/tests/leak-pool-3 (stderr)
memcheck/tests/leak-pool-4 (stderr)
memcheck/tests/leak-pool-5 (stderr)
memcheck/tests/leak-regroot (stderr)
memcheck/tests/leak-tree (stderr)
memcheck/tests/long_namespace_xml (stderr)
memcheck/tests/lsframe1 (stderr)
memcheck/tests/lsframe2 (stderr)
memcheck/tests/malloc_free_fill (stderr)
memcheck/tests/match-overrun (stderr)
memcheck/tests/noisy_child (stderr)
memcheck/tests/partial_load_dflt (stderr)
memcheck/tests/partial_load_ok (stderr)
memcheck/tests/partiallydefinedeq (stderr)
memcheck/tests/pointer-trace (stderr)
memcheck/tests/sigkill (stderr)
memcheck/tests/stack_changes (stderr)
memcheck/tests/varinfo1 (stderr)
memcheck/tests/varinfo2 (stderr)
memcheck/tests/varinfo3 (stderr)
memcheck/tests/varinfo4 (stderr)
memcheck/tests/varinfo5 (stderr)
memcheck/tests/varinfo6 (stderr)
memcheck/tests/x86/bug152022 (stderr)
memcheck/tests/x86/scalar (stderr)
memcheck/tests/x86/scalar_supp (stderr)
memcheck/tests/x86/xor-undef-x86 (stderr)
memcheck/tests/xml1 (stderr)
massif/tests/alloc-fns-A (post)
massif/tests/alloc-fns-B (post)
massif/tests/basic (post)
massif/tests/basic2 (post)
massif/tests/big-alloc (post)
massif/tests/culling1 (stderr)
massif/tests/culling2 (stderr)
massif/tests/custom_alloc (post)
massif/tests/deep-A (post)
massif/tests/deep-B (stderr)
massif/tests/deep-B (post)
massif/tests/deep-C (stderr)
massif/tests/deep-C (post)
massif/tests/deep-D (post)
massif/tests/ignoring (post)
massif/tests/insig (post)
massif/tests/long-names (post)
massif/tests/long-time (post)
massif/tests/new-cpp (post)
massif/tests/null (post)
massif/tests/one (post)
massif/tests/overloaded-new (post)
massif/tests/peak (post)
massif/tests/peak2 (stderr)
massif/tests/peak2 (post)
massif/tests/realloc (stderr)
massif/tests/realloc (post)
massif/tests/thresholds_0_0 (post)
massif/tests/thresholds_0_10 (post)
massif/tests/thresholds_10_0 (post)
massif/tests/thresholds_10_10 (post)
massif/tests/thresholds_5_0 (post)
massif/tests/thresholds_5_10 (post)
massif/tests/zero1 (post)
massif/tests/zero2 (post)
none/tests/blockfault (stderr)
none/tests/mremap (stderr)
none/tests/mremap2 (stdout)
none/tests/shell (stderr)
none/tests/shell_valid1 (stderr)
none/tests/shell_valid2 (stderr)
none/tests/shell_valid3 (stderr)
helgrind/tests/hg01_all_ok (stderr)
helgrind/tests/hg02_deadlock (stderr)
helgrind/tests/hg03_inherit (stderr)
helgrind/tests/hg04_race (stderr)
helgrind/tests/hg05_race2 (stderr)
helgrind/tests/hg06_readshared (stderr)
helgrind/tests/tc01_simple_race (stderr)
helgrind/tests/tc02_simple_tls (stderr)
helgrind/tests/tc03_re_excl (stderr)
helgrind/tests/tc05_simple_race (stderr)
helgrind/tests/tc06_two_races (stderr)
helgrind/tests/tc07_hbl1 (stderr)
helgrind/tests/tc08_hbl2 (stderr)
helgrind/tests/tc09_bad_unlock (stderr)
helgrind/tests/tc11_XCHG (stderr)
helgrind/tests/tc12_rwl_trivial (stderr)
helgrind/tests/tc14_laog_dinphils (stderr)
helgrind/tests/tc16_byterace (stderr)
helgrind/tests/tc17_sembar (stderr)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc19_shadowmem (stderr)
helgrind/tests/tc20_verifywrap (stderr)
helgrind/tests/tc21_pthonce (stderr)
helgrind/tests/tc22_exit_w_lock (stderr)
helgrind/tests/tc23_bogus_condwait (stderr)
helgrind/tests/tc24_nonzero_sem (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Mon Apr 14 04:32:05 2008
--- new.short Mon Apr 14 04:00:34 2008
***************
*** 3,115 ****
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 330 tests, 75 stderr failures, 1 stdout failure, 29 post failures ==
! memcheck/tests/addressable (stderr)
! memcheck/tests/badjump (stderr)
! memcheck/tests/describe-block (stderr)
! memcheck/tests/erringfds (stderr)
! memcheck/tests/leak-0 (stderr)
! memcheck/tests/leak-cycle (stderr)
! memcheck/tests/leak-pool-0 (stderr)
! memcheck/tests/leak-pool-1 (stderr)
! memcheck/tests/leak-pool-2 (stderr)
! memcheck/tests/leak-pool-3 (stderr)
! memcheck/tests/leak-pool-4 (stderr)
! memcheck/tests/leak-pool-5 (stderr)
! memcheck/tests/leak-regroot (stderr)
! memcheck/tests/leak-tree (stderr)
! memcheck/tests/long_namespace_xml (stderr)
! memcheck/tests/lsframe1 (stderr)
! memcheck/tests/lsframe2 (stderr)
! memcheck/tests/malloc_free_fill (stderr)
! memcheck/tests/match-overrun (stderr)
! memcheck/tests/noisy_child (stderr)
! memcheck/tests/partial_load_dflt (stderr)
! memcheck/tests/partial_load_ok (stderr)
! memcheck/tests/partiallydefinedeq (stderr)
! memcheck/tests/pointer-trace (stderr)
! memcheck/tests/sigkill (stderr)
! memcheck/tests/stack_changes (stderr)
! memcheck/tests/varinfo1 (stderr)
! memcheck/tests/varinfo2 (stderr)
! memcheck/tests/varinfo3 (stderr)
! memcheck/tests/varinfo4 (stderr)
! memcheck/tests/varinfo5 (stderr)
! memcheck/tests/varinfo6 (stderr)
! memcheck/tests/x86/bug152022 (stderr)
! memcheck/tests/x86/scalar (stderr)
! memcheck/tests/x86/scalar_supp (stderr)
! memcheck/tests/x86/xor-undef-x86 (stderr)
! memcheck/tests/xml1 (stderr)
! massif/tests/alloc-fns-A (post)
! massif/tests/alloc-fns-B (post)
! massif/tests/basic (post)
! massif/tests/basic2 (post)
! massif/tests/big-alloc (post)
! massif/tests/culling1 (stderr)
! massif/tests/culling2 (stderr)
! massif/tests/custom_alloc (post)
! massif/tests/deep-A (post)
! massif/tests/deep-B (stderr)
! massif/tests/deep-B (post)
! massif/tests/deep-C (stderr)
! massif/tests/deep-C (post)
! massif/tests/deep-D (post)
! massif/tests/ignoring (post)
! massif/tests/insig (post)
! massif/tests/long-names (post)
! massif/tests/long-time (post)
! massif/tests/new-cpp (post)
! massif/tests/null (post)
! massif/tests/one (post)
! massif/tests/overloaded-new (post)
! massif/tests/peak (post)
! massif/tests/peak2 (stderr)
! massif/tests/peak2 (post)
! massif/tests/realloc (stderr)
! massif/tests/realloc (post)
! massif/tests/thresholds_0_0 (post)
! massif/tests/thresholds_0_10 (post)
! massif/tests/thresholds_10_0 (post)
! massif/tests/thresholds_10_10 (post)
! massif/tests/thresholds_5_0 (post)
! massif/tests/thresholds_5_10 (post)
! massif/tests/zero1 (post)
! massif/tests/zero2 (post)
! none/tests/blockfault (stderr)
! none/tests/mremap (stderr)
! none/tests/mremap2 (stdout)
! none/tests/shell (stderr)
! none/tests/shell_valid1 (stderr)
! none/tests/shell_valid2 (stderr)
! none/tests/shell_valid3 (stderr)
! helgrind/tests/hg01_all_ok (stderr)
! helgrind/tests/hg02_deadlock (stderr)
! helgrind/tests/hg03_inherit (stderr)
! helgrind/tests/hg04_race (stderr)
! helgrind/tests/hg05_race2 (stderr)
! helgrind/tests/hg06_readshared (stderr)
! helgrind/tests/tc01_simple_race (stderr)
! helgrind/tests/tc02_simple_tls (stderr)
! helgrind/tests/tc03_re_excl (stderr)
! helgrind/tests/tc05_simple_race (stderr)
! helgrind/tests/tc06_two_races (stderr)
! helgrind/tests/tc07_hbl1 (stderr)
! helgrind/tests/tc08_hbl2 (stderr)
! helgrind/tests/tc09_bad_unlock (stderr)
! helgrind/tests/tc11_XCHG (stderr)
! helgrind/tests/tc12_rwl_trivial (stderr)
! helgrind/tests/tc14_laog_dinphils (stderr)
! helgrind/tests/tc16_byterace (stderr)
! helgrind/tests/tc17_sembar (stderr)
! helgrind/tests/tc18_semabuse (stderr)
! helgrind/tests/tc19_shadowmem (stderr)
! helgrind/tests/tc20_verifywrap (stderr)
! helgrind/tests/tc21_pthonce (stderr)
! helgrind/tests/tc22_exit_w_lock (stderr)
! helgrind/tests/tc23_bogus_condwait (stderr)
! helgrind/tests/tc24_nonzero_sem (stderr)
--- 3,26 ----
Configuring valgrind ... done
! Building valgrind ... failed
+ Last 20 lines of verbose log follow echo
+ else rm -f ".deps/exp_drd_x86_linux-drd_thread.Tpo"; exit 1; \
+ fi
+ drd_thread.c: In function `thread_danger_set_up_to_date':
+ drd_thread.c:917: warning: implicit declaration of function `bm_compare'
+ if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -mpreferred-stack-boundary=2 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_vc.Tpo" \
+ -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c; \
+ then mv -f ".deps/exp_drd_x86_linux-drd_vc.Tpo" ".deps/exp_drd_x86_linux-drd_vc.Po"; \
+ else rm -f ".deps/exp_drd_x86_linux-drd_vc.Tpo"; exit 1; \
+ fi
+ gcc -Wno-long-long -o exp-drd-x86-linux -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
+ exp_drd_x86_linux-drd_thread.o(.text+0x1ecb): In function `thread_danger_set_up_to_date':
+ /tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
+ collect2: ld returned 1 exit status
+ make[3]: *** [exp-drd-x86-linux] Error 1
+ make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[2]: *** [all-recursive] Error 1
+ make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[1]: *** [all-recursive] Error 1
+ make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
+ make: *** [all] Error 2
|
|
From: Tom H. <th...@cy...> - 2008-04-14 02:51:51
|
Nightly build on aston ( x86_64, Fedora Core 5 ) started at 2008-04-14 03:20:11 BST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
then mv -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo" ".deps/exp_drd_x86_linux-drd_semaphore.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_suppression.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_suppression.Tpo" -c -o exp_drd_x86_linux-drd_suppression.o `test -f 'drd_suppression.c' || echo './'`drd_suppression.c; \
then mv -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo" ".deps/exp_drd_x86_linux-drd_suppression.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_thread.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_thread.Tpo" -c -o exp_drd_x86_linux-drd_thread.o `test -f 'drd_thread.c' || echo './'`drd_thread.c; \
then mv -f ".deps/exp_drd_x86_linux-drd_thread.Tpo" ".deps/exp_drd_x86_linux-drd_thread.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_thread.Tpo"; exit 1; fi
drd_thread.c: In function 'thread_danger_set_up_to_date':
drd_thread.c:917: warning: implicit declaration of function 'bm_compare'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_vc.Tpo" -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c; \
then mv -f ".deps/exp_drd_x86_linux-drd_vc.Tpo" ".deps/exp_drd_x86_linux-drd_vc.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_vc.Tpo"; exit 1; fi
gcc -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o exp-drd-x86-linux -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
exp_drd_x86_linux-drd_thread.o: In function `thread_danger_set_up_to_date':
/tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
collect2: ld returned 1 exit status
make[3]: *** [exp-drd-x86-linux] Error 1
make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
make: *** [all] Error 2
=================================================
== 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
== 419 tests, 8 stderr failures, 1 stdout failure, 0 post failures ==
memcheck/tests/malloc_free_fill (stderr)
memcheck/tests/pointer-trace (stderr)
memcheck/tests/x86/scalar (stderr)
none/tests/blockfault (stderr)
none/tests/mremap (stderr)
none/tests/mremap2 (stdout)
helgrind/tests/tc20_verifywrap (stderr)
helgrind/tests/tc21_pthonce (stderr)
helgrind/tests/tc22_exit_w_lock (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Mon Apr 14 03:42:49 2008
--- new.short Mon Apr 14 03:51:57 2008
***************
*** 3,19 ****
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 419 tests, 8 stderr failures, 1 stdout failure, 0 post failures ==
! memcheck/tests/malloc_free_fill (stderr)
! memcheck/tests/pointer-trace (stderr)
! memcheck/tests/x86/scalar (stderr)
! none/tests/blockfault (stderr)
! none/tests/mremap (stderr)
! none/tests/mremap2 (stdout)
! helgrind/tests/tc20_verifywrap (stderr)
! helgrind/tests/tc21_pthonce (stderr)
! helgrind/tests/tc22_exit_w_lock (stderr)
--- 3,26 ----
Configuring valgrind ... done
! Building valgrind ... failed
+ Last 20 lines of verbose log follow echo
+ then mv -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo" ".deps/exp_drd_x86_linux-drd_semaphore.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo"; exit 1; fi
+ if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_suppression.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_suppression.Tpo" -c -o exp_drd_x86_linux-drd_suppression.o `test -f 'drd_suppression.c' || echo './'`drd_suppression.c; \
+ then mv -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo" ".deps/exp_drd_x86_linux-drd_suppression.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo"; exit 1; fi
+ if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_thread.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_thread.Tpo" -c -o exp_drd_x86_linux-drd_thread.o `test -f 'drd_thread.c' || echo './'`drd_thread.c; \
+ then mv -f ".deps/exp_drd_x86_linux-drd_thread.Tpo" ".deps/exp_drd_x86_linux-drd_thread.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_thread.Tpo"; exit 1; fi
+ drd_thread.c: In function 'thread_danger_set_up_to_date':
+ drd_thread.c:917: warning: implicit declaration of function 'bm_compare'
+ if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_vc.Tpo" -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c; \
+ then mv -f ".deps/exp_drd_x86_linux-drd_vc.Tpo" ".deps/exp_drd_x86_linux-drd_vc.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_vc.Tpo"; exit 1; fi
+ gcc -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o exp-drd-x86-linux -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
+ exp_drd_x86_linux-drd_thread.o: In function `thread_danger_set_up_to_date':
+ /tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
+ collect2: ld returned 1 exit status
+ make[3]: *** [exp-drd-x86-linux] Error 1
+ make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[2]: *** [all-recursive] Error 1
+ make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[1]: *** [all-recursive] Error 1
+ make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
+ make: *** [all] Error 2
|
|
From: Tom H. <th...@cy...> - 2008-04-14 02:50:58
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2008-04-14 03:15:02 BST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
else rm -f ".deps/exp_drd_x86_linux-drd_thread.Tpo"; exit 1; \
fi
drd_thread.c: In function `thread_danger_set_up_to_date':
drd_thread.c:917: warning: implicit declaration of function `bm_compare'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -mpreferred-stack-boundary=2 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_vc.Tpo" \
-c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c; \
then mv -f ".deps/exp_drd_x86_linux-drd_vc.Tpo" ".deps/exp_drd_x86_linux-drd_vc.Po"; \
else rm -f ".deps/exp_drd_x86_linux-drd_vc.Tpo"; exit 1; \
fi
gcc -Wno-long-long -o exp-drd-x86-linux -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
exp_drd_x86_linux-drd_thread.o(.text+0x1ecb): In function `thread_danger_set_up_to_date':
/tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
collect2: ld returned 1 exit status
make[3]: *** [exp-drd-x86-linux] Error 1
make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
make: *** [all] Error 2
=================================================
== 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
== 326 tests, 75 stderr failures, 1 stdout failure, 29 post failures ==
memcheck/tests/addressable (stderr)
memcheck/tests/badjump (stderr)
memcheck/tests/describe-block (stderr)
memcheck/tests/erringfds (stderr)
memcheck/tests/leak-0 (stderr)
memcheck/tests/leak-cycle (stderr)
memcheck/tests/leak-pool-0 (stderr)
memcheck/tests/leak-pool-1 (stderr)
memcheck/tests/leak-pool-2 (stderr)
memcheck/tests/leak-pool-3 (stderr)
memcheck/tests/leak-pool-4 (stderr)
memcheck/tests/leak-pool-5 (stderr)
memcheck/tests/leak-regroot (stderr)
memcheck/tests/leak-tree (stderr)
memcheck/tests/long_namespace_xml (stderr)
memcheck/tests/lsframe1 (stderr)
memcheck/tests/lsframe2 (stderr)
memcheck/tests/malloc_free_fill (stderr)
memcheck/tests/match-overrun (stderr)
memcheck/tests/noisy_child (stderr)
memcheck/tests/partial_load_dflt (stderr)
memcheck/tests/partial_load_ok (stderr)
memcheck/tests/partiallydefinedeq (stderr)
memcheck/tests/pointer-trace (stderr)
memcheck/tests/sigkill (stderr)
memcheck/tests/stack_changes (stderr)
memcheck/tests/varinfo1 (stderr)
memcheck/tests/varinfo2 (stderr)
memcheck/tests/varinfo3 (stderr)
memcheck/tests/varinfo4 (stderr)
memcheck/tests/varinfo5 (stderr)
memcheck/tests/varinfo6 (stderr)
memcheck/tests/x86/bug152022 (stderr)
memcheck/tests/x86/scalar (stderr)
memcheck/tests/x86/scalar_supp (stderr)
memcheck/tests/x86/xor-undef-x86 (stderr)
memcheck/tests/xml1 (stderr)
massif/tests/alloc-fns-A (post)
massif/tests/alloc-fns-B (post)
massif/tests/basic (post)
massif/tests/basic2 (post)
massif/tests/big-alloc (post)
massif/tests/culling1 (stderr)
massif/tests/culling2 (stderr)
massif/tests/custom_alloc (post)
massif/tests/deep-A (post)
massif/tests/deep-B (stderr)
massif/tests/deep-B (post)
massif/tests/deep-C (stderr)
massif/tests/deep-C (post)
massif/tests/deep-D (post)
massif/tests/ignoring (post)
massif/tests/insig (post)
massif/tests/long-names (post)
massif/tests/long-time (post)
massif/tests/new-cpp (post)
massif/tests/null (post)
massif/tests/one (post)
massif/tests/overloaded-new (post)
massif/tests/peak (post)
massif/tests/peak2 (stderr)
massif/tests/peak2 (post)
massif/tests/realloc (stderr)
massif/tests/realloc (post)
massif/tests/thresholds_0_0 (post)
massif/tests/thresholds_0_10 (post)
massif/tests/thresholds_10_0 (post)
massif/tests/thresholds_10_10 (post)
massif/tests/thresholds_5_0 (post)
massif/tests/thresholds_5_10 (post)
massif/tests/zero1 (post)
massif/tests/zero2 (post)
none/tests/blockfault (stderr)
none/tests/mremap (stderr)
none/tests/mremap2 (stdout)
none/tests/shell (stderr)
none/tests/shell_valid1 (stderr)
none/tests/shell_valid2 (stderr)
none/tests/shell_valid3 (stderr)
helgrind/tests/hg01_all_ok (stderr)
helgrind/tests/hg02_deadlock (stderr)
helgrind/tests/hg03_inherit (stderr)
helgrind/tests/hg04_race (stderr)
helgrind/tests/hg05_race2 (stderr)
helgrind/tests/hg06_readshared (stderr)
helgrind/tests/tc01_simple_race (stderr)
helgrind/tests/tc02_simple_tls (stderr)
helgrind/tests/tc03_re_excl (stderr)
helgrind/tests/tc05_simple_race (stderr)
helgrind/tests/tc06_two_races (stderr)
helgrind/tests/tc07_hbl1 (stderr)
helgrind/tests/tc08_hbl2 (stderr)
helgrind/tests/tc09_bad_unlock (stderr)
helgrind/tests/tc11_XCHG (stderr)
helgrind/tests/tc12_rwl_trivial (stderr)
helgrind/tests/tc14_laog_dinphils (stderr)
helgrind/tests/tc16_byterace (stderr)
helgrind/tests/tc17_sembar (stderr)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc19_shadowmem (stderr)
helgrind/tests/tc20_verifywrap (stderr)
helgrind/tests/tc21_pthonce (stderr)
helgrind/tests/tc22_exit_w_lock (stderr)
helgrind/tests/tc23_bogus_condwait (stderr)
helgrind/tests/tc24_nonzero_sem (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Mon Apr 14 03:43:30 2008
--- new.short Mon Apr 14 03:51:02 2008
***************
*** 3,115 ****
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 326 tests, 75 stderr failures, 1 stdout failure, 29 post failures ==
! memcheck/tests/addressable (stderr)
! memcheck/tests/badjump (stderr)
! memcheck/tests/describe-block (stderr)
! memcheck/tests/erringfds (stderr)
! memcheck/tests/leak-0 (stderr)
! memcheck/tests/leak-cycle (stderr)
! memcheck/tests/leak-pool-0 (stderr)
! memcheck/tests/leak-pool-1 (stderr)
! memcheck/tests/leak-pool-2 (stderr)
! memcheck/tests/leak-pool-3 (stderr)
! memcheck/tests/leak-pool-4 (stderr)
! memcheck/tests/leak-pool-5 (stderr)
! memcheck/tests/leak-regroot (stderr)
! memcheck/tests/leak-tree (stderr)
! memcheck/tests/long_namespace_xml (stderr)
! memcheck/tests/lsframe1 (stderr)
! memcheck/tests/lsframe2 (stderr)
! memcheck/tests/malloc_free_fill (stderr)
! memcheck/tests/match-overrun (stderr)
! memcheck/tests/noisy_child (stderr)
! memcheck/tests/partial_load_dflt (stderr)
! memcheck/tests/partial_load_ok (stderr)
! memcheck/tests/partiallydefinedeq (stderr)
! memcheck/tests/pointer-trace (stderr)
! memcheck/tests/sigkill (stderr)
! memcheck/tests/stack_changes (stderr)
! memcheck/tests/varinfo1 (stderr)
! memcheck/tests/varinfo2 (stderr)
! memcheck/tests/varinfo3 (stderr)
! memcheck/tests/varinfo4 (stderr)
! memcheck/tests/varinfo5 (stderr)
! memcheck/tests/varinfo6 (stderr)
! memcheck/tests/x86/bug152022 (stderr)
! memcheck/tests/x86/scalar (stderr)
! memcheck/tests/x86/scalar_supp (stderr)
! memcheck/tests/x86/xor-undef-x86 (stderr)
! memcheck/tests/xml1 (stderr)
! massif/tests/alloc-fns-A (post)
! massif/tests/alloc-fns-B (post)
! massif/tests/basic (post)
! massif/tests/basic2 (post)
! massif/tests/big-alloc (post)
! massif/tests/culling1 (stderr)
! massif/tests/culling2 (stderr)
! massif/tests/custom_alloc (post)
! massif/tests/deep-A (post)
! massif/tests/deep-B (stderr)
! massif/tests/deep-B (post)
! massif/tests/deep-C (stderr)
! massif/tests/deep-C (post)
! massif/tests/deep-D (post)
! massif/tests/ignoring (post)
! massif/tests/insig (post)
! massif/tests/long-names (post)
! massif/tests/long-time (post)
! massif/tests/new-cpp (post)
! massif/tests/null (post)
! massif/tests/one (post)
! massif/tests/overloaded-new (post)
! massif/tests/peak (post)
! massif/tests/peak2 (stderr)
! massif/tests/peak2 (post)
! massif/tests/realloc (stderr)
! massif/tests/realloc (post)
! massif/tests/thresholds_0_0 (post)
! massif/tests/thresholds_0_10 (post)
! massif/tests/thresholds_10_0 (post)
! massif/tests/thresholds_10_10 (post)
! massif/tests/thresholds_5_0 (post)
! massif/tests/thresholds_5_10 (post)
! massif/tests/zero1 (post)
! massif/tests/zero2 (post)
! none/tests/blockfault (stderr)
! none/tests/mremap (stderr)
! none/tests/mremap2 (stdout)
! none/tests/shell (stderr)
! none/tests/shell_valid1 (stderr)
! none/tests/shell_valid2 (stderr)
! none/tests/shell_valid3 (stderr)
! helgrind/tests/hg01_all_ok (stderr)
! helgrind/tests/hg02_deadlock (stderr)
! helgrind/tests/hg03_inherit (stderr)
! helgrind/tests/hg04_race (stderr)
! helgrind/tests/hg05_race2 (stderr)
! helgrind/tests/hg06_readshared (stderr)
! helgrind/tests/tc01_simple_race (stderr)
! helgrind/tests/tc02_simple_tls (stderr)
! helgrind/tests/tc03_re_excl (stderr)
! helgrind/tests/tc05_simple_race (stderr)
! helgrind/tests/tc06_two_races (stderr)
! helgrind/tests/tc07_hbl1 (stderr)
! helgrind/tests/tc08_hbl2 (stderr)
! helgrind/tests/tc09_bad_unlock (stderr)
! helgrind/tests/tc11_XCHG (stderr)
! helgrind/tests/tc12_rwl_trivial (stderr)
! helgrind/tests/tc14_laog_dinphils (stderr)
! helgrind/tests/tc16_byterace (stderr)
! helgrind/tests/tc17_sembar (stderr)
! helgrind/tests/tc18_semabuse (stderr)
! helgrind/tests/tc19_shadowmem (stderr)
! helgrind/tests/tc20_verifywrap (stderr)
! helgrind/tests/tc21_pthonce (stderr)
! helgrind/tests/tc22_exit_w_lock (stderr)
! helgrind/tests/tc23_bogus_condwait (stderr)
! helgrind/tests/tc24_nonzero_sem (stderr)
--- 3,26 ----
Configuring valgrind ... done
! Building valgrind ... failed
+ Last 20 lines of verbose log follow echo
+ else rm -f ".deps/exp_drd_x86_linux-drd_thread.Tpo"; exit 1; \
+ fi
+ drd_thread.c: In function `thread_danger_set_up_to_date':
+ drd_thread.c:917: warning: implicit declaration of function `bm_compare'
+ if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -mpreferred-stack-boundary=2 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_vc.Tpo" \
+ -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c; \
+ then mv -f ".deps/exp_drd_x86_linux-drd_vc.Tpo" ".deps/exp_drd_x86_linux-drd_vc.Po"; \
+ else rm -f ".deps/exp_drd_x86_linux-drd_vc.Tpo"; exit 1; \
+ fi
+ gcc -Wno-long-long -o exp-drd-x86-linux -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
+ exp_drd_x86_linux-drd_thread.o(.text+0x1ecb): In function `thread_danger_set_up_to_date':
+ /tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
+ collect2: ld returned 1 exit status
+ make[3]: *** [exp-drd-x86-linux] Error 1
+ make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[2]: *** [all-recursive] Error 1
+ make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[1]: *** [all-recursive] Error 1
+ make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
+ make: *** [all] Error 2
|
|
From: Tom H. <th...@cy...> - 2008-04-14 02:47:36
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2008-04-14 03:05:11 BST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
mv -f .deps/exp_drd_x86_linux-drd_semaphore.Tpo .deps/exp_drd_x86_linux-drd_semaphore.Po
gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_suppression.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_suppression.Tpo -c -o exp_drd_x86_linux-drd_suppression.o `test -f 'drd_suppression.c' || echo './'`drd_suppression.c
mv -f .deps/exp_drd_x86_linux-drd_suppression.Tpo .deps/exp_drd_x86_linux-drd_suppression.Po
gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_thread.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_thread.Tpo -c -o exp_drd_x86_linux-drd_thread.o `test -f 'drd_thread.c' || echo './'`drd_thread.c
drd_thread.c: In function 'thread_danger_set_up_to_date':
drd_thread.c:917: warning: implicit declaration of function 'bm_compare'
mv -f .deps/exp_drd_x86_linux-drd_thread.Tpo .deps/exp_drd_x86_linux-drd_thread.Po
gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_vc.Tpo -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c
mv -f .deps/exp_drd_x86_linux-drd_vc.Tpo .deps/exp_drd_x86_linux-drd_vc.Po
gcc -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds -o exp-drd-x86-linux exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
exp_drd_x86_linux-drd_thread.o: In function `thread_danger_set_up_to_date':
/tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
collect2: ld returned 1 exit status
make[3]: *** [exp-drd-x86-linux] Error 1
make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
make: *** [all] Error 2
=================================================
== 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
== 413 tests, 5 stderr failures, 2 stdout failures, 0 post failures ==
memcheck/tests/pointer-trace (stderr)
memcheck/tests/vcpu_fnfns (stdout)
memcheck/tests/x86/scalar (stderr)
none/tests/mremap (stderr)
none/tests/mremap2 (stdout)
helgrind/tests/tc20_verifywrap (stderr)
helgrind/tests/tc22_exit_w_lock (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Mon Apr 14 03:32:44 2008
--- new.short Mon Apr 14 03:47:40 2008
***************
*** 3,17 ****
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 413 tests, 5 stderr failures, 2 stdout failures, 0 post failures ==
! memcheck/tests/pointer-trace (stderr)
! memcheck/tests/vcpu_fnfns (stdout)
! memcheck/tests/x86/scalar (stderr)
! none/tests/mremap (stderr)
! none/tests/mremap2 (stdout)
! helgrind/tests/tc20_verifywrap (stderr)
! helgrind/tests/tc22_exit_w_lock (stderr)
--- 3,26 ----
Configuring valgrind ... done
! Building valgrind ... failed
+ Last 20 lines of verbose log follow echo
+ mv -f .deps/exp_drd_x86_linux-drd_semaphore.Tpo .deps/exp_drd_x86_linux-drd_semaphore.Po
+ gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_suppression.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_suppression.Tpo -c -o exp_drd_x86_linux-drd_suppression.o `test -f 'drd_suppression.c' || echo './'`drd_suppression.c
+ mv -f .deps/exp_drd_x86_linux-drd_suppression.Tpo .deps/exp_drd_x86_linux-drd_suppression.Po
+ gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_thread.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_thread.Tpo -c -o exp_drd_x86_linux-drd_thread.o `test -f 'drd_thread.c' || echo './'`drd_thread.c
+ drd_thread.c: In function 'thread_danger_set_up_to_date':
+ drd_thread.c:917: warning: implicit declaration of function 'bm_compare'
+ mv -f .deps/exp_drd_x86_linux-drd_thread.Tpo .deps/exp_drd_x86_linux-drd_thread.Po
+ gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_vc.Tpo -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c
+ mv -f .deps/exp_drd_x86_linux-drd_vc.Tpo .deps/exp_drd_x86_linux-drd_vc.Po
+ gcc -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds -o exp-drd-x86-linux exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
+ exp_drd_x86_linux-drd_thread.o: In function `thread_danger_set_up_to_date':
+ /tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
+ collect2: ld returned 1 exit status
+ make[3]: *** [exp-drd-x86-linux] Error 1
+ make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[2]: *** [all-recursive] Error 1
+ make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[1]: *** [all-recursive] Error 1
+ make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
+ make: *** [all] Error 2
|
|
From: Tom H. <th...@cy...> - 2008-04-14 02:41:34
|
Nightly build on trojan ( x86_64, Fedora Core 6 ) started at 2008-04-14 03:25:04 BST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
then mv -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo" ".deps/exp_drd_x86_linux-drd_semaphore.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_suppression.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_suppression.Tpo" -c -o exp_drd_x86_linux-drd_suppression.o `test -f 'drd_suppression.c' || echo './'`drd_suppression.c; \
then mv -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo" ".deps/exp_drd_x86_linux-drd_suppression.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_thread.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_thread.Tpo" -c -o exp_drd_x86_linux-drd_thread.o `test -f 'drd_thread.c' || echo './'`drd_thread.c; \
then mv -f ".deps/exp_drd_x86_linux-drd_thread.Tpo" ".deps/exp_drd_x86_linux-drd_thread.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_thread.Tpo"; exit 1; fi
drd_thread.c: In function 'thread_danger_set_up_to_date':
drd_thread.c:917: warning: implicit declaration of function 'bm_compare'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_vc.Tpo" -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c; \
then mv -f ".deps/exp_drd_x86_linux-drd_vc.Tpo" ".deps/exp_drd_x86_linux-drd_vc.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_vc.Tpo"; exit 1; fi
gcc -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o exp-drd-x86-linux -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
exp_drd_x86_linux-drd_thread.o: In function `thread_danger_set_up_to_date':
/tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
collect2: ld returned 1 exit status
make[3]: *** [exp-drd-x86-linux] Error 1
make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
make: *** [all] Error 2
=================================================
== 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
== 417 tests, 7 stderr failures, 5 stdout failures, 0 post failures ==
memcheck/tests/pointer-trace (stderr)
memcheck/tests/vcpu_fnfns (stdout)
memcheck/tests/x86/bug133694 (stdout)
memcheck/tests/x86/bug133694 (stderr)
memcheck/tests/x86/scalar (stderr)
none/tests/cmdline1 (stdout)
none/tests/cmdline2 (stdout)
none/tests/mremap (stderr)
none/tests/mremap2 (stdout)
helgrind/tests/tc20_verifywrap (stderr)
helgrind/tests/tc21_pthonce (stderr)
helgrind/tests/tc22_exit_w_lock (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Mon Apr 14 03:38:08 2008
--- new.short Mon Apr 14 03:41:40 2008
***************
*** 3,22 ****
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 417 tests, 7 stderr failures, 5 stdout failures, 0 post failures ==
! memcheck/tests/pointer-trace (stderr)
! memcheck/tests/vcpu_fnfns (stdout)
! memcheck/tests/x86/bug133694 (stdout)
! memcheck/tests/x86/bug133694 (stderr)
! memcheck/tests/x86/scalar (stderr)
! none/tests/cmdline1 (stdout)
! none/tests/cmdline2 (stdout)
! none/tests/mremap (stderr)
! none/tests/mremap2 (stdout)
! helgrind/tests/tc20_verifywrap (stderr)
! helgrind/tests/tc21_pthonce (stderr)
! helgrind/tests/tc22_exit_w_lock (stderr)
--- 3,26 ----
Configuring valgrind ... done
! Building valgrind ... failed
+ Last 20 lines of verbose log follow echo
+ then mv -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo" ".deps/exp_drd_x86_linux-drd_semaphore.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo"; exit 1; fi
+ if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_suppression.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_suppression.Tpo" -c -o exp_drd_x86_linux-drd_suppression.o `test -f 'drd_suppression.c' || echo './'`drd_suppression.c; \
+ then mv -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo" ".deps/exp_drd_x86_linux-drd_suppression.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo"; exit 1; fi
+ if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_thread.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_thread.Tpo" -c -o exp_drd_x86_linux-drd_thread.o `test -f 'drd_thread.c' || echo './'`drd_thread.c; \
+ then mv -f ".deps/exp_drd_x86_linux-drd_thread.Tpo" ".deps/exp_drd_x86_linux-drd_thread.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_thread.Tpo"; exit 1; fi
+ drd_thread.c: In function 'thread_danger_set_up_to_date':
+ drd_thread.c:917: warning: implicit declaration of function 'bm_compare'
+ if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_vc.Tpo" -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c; \
+ then mv -f ".deps/exp_drd_x86_linux-drd_vc.Tpo" ".deps/exp_drd_x86_linux-drd_vc.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_vc.Tpo"; exit 1; fi
+ gcc -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o exp-drd-x86-linux -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
+ exp_drd_x86_linux-drd_thread.o: In function `thread_danger_set_up_to_date':
+ /tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
+ collect2: ld returned 1 exit status
+ make[3]: *** [exp-drd-x86-linux] Error 1
+ make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[2]: *** [all-recursive] Error 1
+ make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[1]: *** [all-recursive] Error 1
+ make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
+ make: *** [all] Error 2
|
|
From: Tom H. <th...@cy...> - 2008-04-14 02:33:43
|
Nightly build on dellow ( x86_64, Fedora 8 ) started at 2008-04-14 03:10:07 BST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
mv -f .deps/exp_drd_x86_linux-drd_semaphore.Tpo .deps/exp_drd_x86_linux-drd_semaphore.Po
gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_suppression.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_suppression.Tpo -c -o exp_drd_x86_linux-drd_suppression.o `test -f 'drd_suppression.c' || echo './'`drd_suppression.c
mv -f .deps/exp_drd_x86_linux-drd_suppression.Tpo .deps/exp_drd_x86_linux-drd_suppression.Po
gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_thread.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_thread.Tpo -c -o exp_drd_x86_linux-drd_thread.o `test -f 'drd_thread.c' || echo './'`drd_thread.c
drd_thread.c: In function 'thread_danger_set_up_to_date':
drd_thread.c:917: warning: implicit declaration of function 'bm_compare'
mv -f .deps/exp_drd_x86_linux-drd_thread.Tpo .deps/exp_drd_x86_linux-drd_thread.Po
gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_vc.Tpo -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c
mv -f .deps/exp_drd_x86_linux-drd_vc.Tpo .deps/exp_drd_x86_linux-drd_vc.Po
gcc -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds -o exp-drd-x86-linux exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
exp_drd_x86_linux-drd_thread.o: In function `thread_danger_set_up_to_date':
/tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
collect2: ld returned 1 exit status
make[3]: *** [exp-drd-x86-linux] Error 1
make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
make: *** [all] Error 2
=================================================
== 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
== 413 tests, 8 stderr failures, 2 stdout failures, 0 post failures ==
memcheck/tests/pointer-trace (stderr)
memcheck/tests/vcpu_fnfns (stdout)
memcheck/tests/x86/scalar (stderr)
none/tests/blockfault (stderr)
none/tests/mremap (stderr)
none/tests/mremap2 (stdout)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc20_verifywrap (stderr)
helgrind/tests/tc21_pthonce (stderr)
helgrind/tests/tc22_exit_w_lock (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Mon Apr 14 03:26:36 2008
--- new.short Mon Apr 14 03:33:48 2008
***************
*** 3,20 ****
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 413 tests, 8 stderr failures, 2 stdout failures, 0 post failures ==
! memcheck/tests/pointer-trace (stderr)
! memcheck/tests/vcpu_fnfns (stdout)
! memcheck/tests/x86/scalar (stderr)
! none/tests/blockfault (stderr)
! none/tests/mremap (stderr)
! none/tests/mremap2 (stdout)
! helgrind/tests/tc18_semabuse (stderr)
! helgrind/tests/tc20_verifywrap (stderr)
! helgrind/tests/tc21_pthonce (stderr)
! helgrind/tests/tc22_exit_w_lock (stderr)
--- 3,26 ----
Configuring valgrind ... done
! Building valgrind ... failed
+ Last 20 lines of verbose log follow echo
+ mv -f .deps/exp_drd_x86_linux-drd_semaphore.Tpo .deps/exp_drd_x86_linux-drd_semaphore.Po
+ gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_suppression.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_suppression.Tpo -c -o exp_drd_x86_linux-drd_suppression.o `test -f 'drd_suppression.c' || echo './'`drd_suppression.c
+ mv -f .deps/exp_drd_x86_linux-drd_suppression.Tpo .deps/exp_drd_x86_linux-drd_suppression.Po
+ gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_thread.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_thread.Tpo -c -o exp_drd_x86_linux-drd_thread.o `test -f 'drd_thread.c' || echo './'`drd_thread.c
+ drd_thread.c: In function 'thread_danger_set_up_to_date':
+ drd_thread.c:917: warning: implicit declaration of function 'bm_compare'
+ mv -f .deps/exp_drd_x86_linux-drd_thread.Tpo .deps/exp_drd_x86_linux-drd_thread.Po
+ gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF .deps/exp_drd_x86_linux-drd_vc.Tpo -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c
+ mv -f .deps/exp_drd_x86_linux-drd_vc.Tpo .deps/exp_drd_x86_linux-drd_vc.Po
+ gcc -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds -o exp-drd-x86-linux exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
+ exp_drd_x86_linux-drd_thread.o: In function `thread_danger_set_up_to_date':
+ /tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
+ collect2: ld returned 1 exit status
+ make[3]: *** [exp-drd-x86-linux] Error 1
+ make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[2]: *** [all-recursive] Error 1
+ make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[1]: *** [all-recursive] Error 1
+ make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
+ make: *** [all] Error 2
|
|
From: Tom H. <th...@cy...> - 2008-04-14 02:16:20
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-04-14 03:00:05 BST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... failed
Last 20 lines of verbose log follow echo
then mv -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo" ".deps/exp_drd_x86_linux-drd_semaphore.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wdeclaration-after-statement -MT exp_drd_x86_linux-drd_suppression.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_suppression.Tpo" -c -o exp_drd_x86_linux-drd_suppression.o `test -f 'drd_suppression.c' || echo './'`drd_suppression.c; \
then mv -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo" ".deps/exp_drd_x86_linux-drd_suppression.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wdeclaration-after-statement -MT exp_drd_x86_linux-drd_thread.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_thread.Tpo" -c -o exp_drd_x86_linux-drd_thread.o `test -f 'drd_thread.c' || echo './'`drd_thread.c; \
then mv -f ".deps/exp_drd_x86_linux-drd_thread.Tpo" ".deps/exp_drd_x86_linux-drd_thread.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_thread.Tpo"; exit 1; fi
drd_thread.c: In function `thread_danger_set_up_to_date':
drd_thread.c:917: warning: implicit declaration of function `bm_compare'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wdeclaration-after-statement -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_vc.Tpo" -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c; \
then mv -f ".deps/exp_drd_x86_linux-drd_vc.Tpo" ".deps/exp_drd_x86_linux-drd_vc.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_vc.Tpo"; exit 1; fi
gcc -Wno-long-long -Wdeclaration-after-statement -o exp-drd-x86-linux -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
exp_drd_x86_linux-drd_thread.o(.text+0x1eeb): In function `thread_danger_set_up_to_date':
/tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
collect2: ld returned 1 exit status
make[3]: *** [exp-drd-x86-linux] Error 1
make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
make: *** [all] Error 2
=================================================
== 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
== 419 tests, 30 stderr failures, 3 stdout failures, 0 post failures ==
memcheck/tests/malloc_free_fill (stderr)
memcheck/tests/pointer-trace (stderr)
memcheck/tests/stack_switch (stderr)
memcheck/tests/varinfo6 (stderr)
memcheck/tests/x86/scalar (stderr)
memcheck/tests/x86/scalar_supp (stderr)
none/tests/amd64/insn_ssse3 (stdout)
none/tests/amd64/insn_ssse3 (stderr)
none/tests/amd64/ssse3_misaligned (stderr)
none/tests/blockfault (stderr)
none/tests/fdleak_fcntl (stderr)
none/tests/mremap (stderr)
none/tests/mremap2 (stdout)
none/tests/x86/insn_ssse3 (stdout)
none/tests/x86/insn_ssse3 (stderr)
none/tests/x86/ssse3_misaligned (stderr)
helgrind/tests/hg01_all_ok (stderr)
helgrind/tests/hg02_deadlock (stderr)
helgrind/tests/hg03_inherit (stderr)
helgrind/tests/hg04_race (stderr)
helgrind/tests/hg05_race2 (stderr)
helgrind/tests/tc01_simple_race (stderr)
helgrind/tests/tc05_simple_race (stderr)
helgrind/tests/tc06_two_races (stderr)
helgrind/tests/tc09_bad_unlock (stderr)
helgrind/tests/tc14_laog_dinphils (stderr)
helgrind/tests/tc16_byterace (stderr)
helgrind/tests/tc17_sembar (stderr)
helgrind/tests/tc19_shadowmem (stderr)
helgrind/tests/tc20_verifywrap (stderr)
helgrind/tests/tc21_pthonce (stderr)
helgrind/tests/tc22_exit_w_lock (stderr)
helgrind/tests/tc23_bogus_condwait (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Mon Apr 14 03:11:05 2008
--- new.short Mon Apr 14 03:16:22 2008
***************
*** 3,43 ****
Configuring valgrind ... done
! Building valgrind ... done
! Running regression tests ... failed
!
! Regression test results follow
!
! == 419 tests, 30 stderr failures, 3 stdout failures, 0 post failures ==
! memcheck/tests/malloc_free_fill (stderr)
! memcheck/tests/pointer-trace (stderr)
! memcheck/tests/stack_switch (stderr)
! memcheck/tests/varinfo6 (stderr)
! memcheck/tests/x86/scalar (stderr)
! memcheck/tests/x86/scalar_supp (stderr)
! none/tests/amd64/insn_ssse3 (stdout)
! none/tests/amd64/insn_ssse3 (stderr)
! none/tests/amd64/ssse3_misaligned (stderr)
! none/tests/blockfault (stderr)
! none/tests/fdleak_fcntl (stderr)
! none/tests/mremap (stderr)
! none/tests/mremap2 (stdout)
! none/tests/x86/insn_ssse3 (stdout)
! none/tests/x86/insn_ssse3 (stderr)
! none/tests/x86/ssse3_misaligned (stderr)
! helgrind/tests/hg01_all_ok (stderr)
! helgrind/tests/hg02_deadlock (stderr)
! helgrind/tests/hg03_inherit (stderr)
! helgrind/tests/hg04_race (stderr)
! helgrind/tests/hg05_race2 (stderr)
! helgrind/tests/tc01_simple_race (stderr)
! helgrind/tests/tc05_simple_race (stderr)
! helgrind/tests/tc06_two_races (stderr)
! helgrind/tests/tc09_bad_unlock (stderr)
! helgrind/tests/tc14_laog_dinphils (stderr)
! helgrind/tests/tc16_byterace (stderr)
! helgrind/tests/tc17_sembar (stderr)
! helgrind/tests/tc19_shadowmem (stderr)
! helgrind/tests/tc20_verifywrap (stderr)
! helgrind/tests/tc21_pthonce (stderr)
! helgrind/tests/tc22_exit_w_lock (stderr)
! helgrind/tests/tc23_bogus_condwait (stderr)
--- 3,26 ----
Configuring valgrind ... done
! Building valgrind ... failed
+ Last 20 lines of verbose log follow echo
+ then mv -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo" ".deps/exp_drd_x86_linux-drd_semaphore.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_semaphore.Tpo"; exit 1; fi
+ if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wdeclaration-after-statement -MT exp_drd_x86_linux-drd_suppression.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_suppression.Tpo" -c -o exp_drd_x86_linux-drd_suppression.o `test -f 'drd_suppression.c' || echo './'`drd_suppression.c; \
+ then mv -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo" ".deps/exp_drd_x86_linux-drd_suppression.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_suppression.Tpo"; exit 1; fi
+ if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wdeclaration-after-statement -MT exp_drd_x86_linux-drd_thread.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_thread.Tpo" -c -o exp_drd_x86_linux-drd_thread.o `test -f 'drd_thread.c' || echo './'`drd_thread.c; \
+ then mv -f ".deps/exp_drd_x86_linux-drd_thread.Tpo" ".deps/exp_drd_x86_linux-drd_thread.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_thread.Tpo"; exit 1; fi
+ drd_thread.c: In function `thread_danger_set_up_to_date':
+ drd_thread.c:917: warning: implicit declaration of function `bm_compare'
+ if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -O2 -g -Wmissing-prototypes -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -fno-strict-aliasing -Wsign-compare -O2 -DCHECK_FORMAT_STRINGS -Wno-long-long -Wdeclaration-after-statement -MT exp_drd_x86_linux-drd_vc.o -MD -MP -MF ".deps/exp_drd_x86_linux-drd_vc.Tpo" -c -o exp_drd_x86_linux-drd_vc.o `test -f 'drd_vc.c' || echo './'`drd_vc.c; \
+ then mv -f ".deps/exp_drd_x86_linux-drd_vc.Tpo" ".deps/exp_drd_x86_linux-drd_vc.Po"; else rm -f ".deps/exp_drd_x86_linux-drd_vc.Tpo"; exit 1; fi
+ gcc -Wno-long-long -Wdeclaration-after-statement -o exp-drd-x86-linux -static -Wl,-defsym,valt_load_address=0x38000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds exp_drd_x86_linux-drd_barrier.o exp_drd_x86_linux-drd_bitmap.o exp_drd_x86_linux-drd_clientobj.o exp_drd_x86_linux-drd_clientreq.o exp_drd_x86_linux-drd_cond.o exp_drd_x86_linux-drd_error.o exp_drd_x86_linux-drd_main.o exp_drd_x86_linux-drd_malloc_wrappers.o exp_drd_x86_linux-drd_mutex.o exp_drd_x86_linux-drd_rwlock.o exp_drd_x86_linux-drd_segment.o exp_drd_x86_linux-drd_semaphore.o exp_drd_x86_linux-drd_suppression.o exp_drd_x86_linux-drd_thread.o exp_drd_x86_linux-drd_vc.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc
+ exp_drd_x86_linux-drd_thread.o(.text+0x1eeb): In function `thread_danger_set_up_to_date':
+ /tmp/vgtest/2008-04-14/valgrind/exp-drd/drd_thread.c:917: undefined reference to `bm_compare'
+ collect2: ld returned 1 exit status
+ make[3]: *** [exp-drd-x86-linux] Error 1
+ make[3]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[2]: *** [all-recursive] Error 1
+ make[2]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind/exp-drd'
+ make[1]: *** [all-recursive] Error 1
+ make[1]: Leaving directory `/tmp/vgtest/2008-04-14/valgrind'
+ make: *** [all] Error 2
|