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
(10) |
2
(22) |
3
(15) |
4
(14) |
5
(8) |
6
(10) |
7
(14) |
|
8
(9) |
9
(10) |
10
(21) |
11
(16) |
12
(17) |
13
(15) |
14
(8) |
|
15
(12) |
16
(8) |
17
(44) |
18
(24) |
19
(29) |
20
(29) |
21
(17) |
|
22
(17) |
23
(16) |
24
(18) |
25
(16) |
26
(15) |
27
(16) |
28
(11) |
|
29
(11) |
30
(10) |
31
(12) |
|
|
|
|
|
From: <sv...@va...> - 2006-01-05 14:13:20
|
Author: sewardj
Date: 2006-01-05 14:13:14 +0000 (Thu, 05 Jan 2006)
New Revision: 5503
Log:
Even more ppc64-linux syscalls.
Modified:
trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
Modified: trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2006-01-05 14:12:53 U=
TC (rev 5502)
+++ trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2006-01-05 14:13:14 U=
TC (rev 5503)
@@ -1211,7 +1211,7 @@
LINX_(__NR_utime, sys_utime), // 30
// _____(__NR_stty, sys_stty), // 31
// _____(__NR_gtty, sys_gtty), // 32
-// _____(__NR_access, sys_access), // 33
+ GENX_(__NR_access, sys_access), // 33
// _____(__NR_nice, sys_nice), // 34
=20
// _____(__NR_ftime, sys_ftime), // 35
@@ -1350,7 +1350,7 @@
GENX_(__NR_writev, sys_writev), // 146
// _____(__NR_getsid, sys_getsid), // 147
// _____(__NR_fdatasync, sys_fdatasync), // 148
-// _____(__NR__sysctl, sys__sysctl), // 149
+ LINXY(__NR__sysctl, sys_sysctl), // 149
=20
// _____(__NR_mlock, sys_mlock), // 150
// _____(__NR_munlock, sys_munlock), // 151
|
|
From: <sv...@va...> - 2006-01-05 14:13:09
|
Author: sewardj
Date: 2006-01-05 14:12:53 +0000 (Thu, 05 Jan 2006)
New Revision: 5502
Log:
This is logically part of r5501 (ppc64-linux symbol reading fixes)
but got missed from 5501.
Modified:
trunk/coregrind/m_debuginfo/priv_symtab.h
Modified: trunk/coregrind/m_debuginfo/priv_symtab.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_debuginfo/priv_symtab.h 2006-01-05 14:11:31 UTC (re=
v 5501)
+++ trunk/coregrind/m_debuginfo/priv_symtab.h 2006-01-05 14:12:53 UTC (re=
v 5502)
@@ -212,15 +212,17 @@
*/
OffT offset;
=20
- /* Bounds of data, BSS, PLT and GOT, so that tools can see what
- section an address is in */
- Addr plt_start;
+ /* Bounds of data, BSS, PLT, GOT and OPD (for ppc64-linux) so that
+ tools can see what section an address is in. In the running image=
! */
+ Addr plt_start_vma;
UInt plt_size;
- Addr got_start;
+ Addr got_start_vma;
UInt got_size;
- Addr data_start;
+ Addr opd_start_vma;
+ UInt opd_size;
+ Addr data_start_vma;
UInt data_size;
- Addr bss_start;
+ Addr bss_start_vma;
UInt bss_size;
=20
/* data used by stabs parser */
|
|
From: <sv...@va...> - 2006-01-05 14:11:49
|
Author: sewardj
Date: 2006-01-05 14:11:31 +0000 (Thu, 05 Jan 2006)
New Revision: 5501
Log:
Make symbol table reading understand the .opd section conventions used
for ppc64-linux on gcc 4.0.0 and above.
As part of this, simplify the FIND macros and rename some fields in
SegInfo to be a bit clearer.
Modified:
trunk/coregrind/m_debuginfo/symtab.c
Modified: trunk/coregrind/m_debuginfo/symtab.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_debuginfo/symtab.c 2006-01-05 14:09:46 UTC (rev 550=
0)
+++ trunk/coregrind/m_debuginfo/symtab.c 2006-01-05 14:11:31 UTC (rev 550=
1)
@@ -1105,9 +1105,22 @@
return False;
}
=20
-static Bool is_interesting_symbol(SegInfo* si, ElfXX_Sym* sym,=20
- Char* sym_name, Addr sym_addr)
+/* Decide whether SYM is something we should collect. It may also
+ decide to change the stated address of the symbol, in which case a
+ different value is assigned to *SYM_ADDR_REALLY; otherwise SYM is
+ copied to *SYM_ADDR_REALLY. */
+
+static Bool is_interesting_symbol( SegInfo* si,=20
+ ElfXX_Sym* sym,=20
+ Char* sym_name,=20
+ Addr sym_addr,
+ UChar* opd_filea, /* oimage addr =
of .opd sec
+ (ppc64-linux=
only) */
+ /*OUT*/Addr* sym_addr_really )
{
+ /* Set default real address for the symbol. */
+ *sym_addr_really =3D sym_addr;
+
/* Figure out if we're interested in the symbol.
Firstly, is it of the right flavour? */
if ( ! ( (ELFXX_ST_BIND(sym->st_info) =3D=3D STB_GLOBAL ||
@@ -1123,15 +1136,15 @@
=20
/* Secondly, if it's apparently in a GOT or PLT, it's really
a reference to a symbol defined elsewhere, so ignore it. */
- if (si->got_start !=3D 0
- && sym_addr >=3D si->got_start=20
- && sym_addr < si->got_start + si->got_size) {
+ if (si->got_start_vma !=3D 0
+ && sym_addr >=3D si->got_start_vma=20
+ && sym_addr < si->got_start_vma + si->got_size) {
TRACE_SYMTAB("ignore -- in GOT: %s\n", sym_name);
return False;
}
- if (si->plt_start !=3D 0
- && sym_addr >=3D si->plt_start
- && sym_addr < si->plt_start + si->plt_size) {
+ if (si->plt_start_vma !=3D 0
+ && sym_addr >=3D si->plt_start_vma
+ && sym_addr < si->plt_start_vma + si->plt_size) {
TRACE_SYMTAB("ignore -- in PLT: %s\n", sym_name);
return False;
}
@@ -1154,6 +1167,67 @@
return False;
}
=20
+ /* ppc64-linux nasty hack: if the symbol is in a .opd section, then
+ really what we have is the address of a function descriptor. So
+ use the first word of that as the function's text.
+
+ See thread starting at
+ http://gcc.gnu.org/ml/gcc-patches/2004-08/msg00557.html
+ */
+ if (si->opd_start_vma !=3D 0
+ && sym_addr >=3D si->opd_start_vma
+ && sym_addr < si->opd_start_vma + si->opd_size) {
+# if !defined(VGP_ppc64_linux)
+ TRACE_SYMTAB("ignore -- in OPD: %s\n", sym_name);
+ return False;
+# else
+ Int offset_in_opd;
+ ULong* fn_descr;
+
+ if (0) VG_(printf)("opdXXX: si->offset %p, sym_addr %p\n",=20
+ (void*)(si->offset), (void*)sym_addr);
+
+ if (!VG_IS_8_ALIGNED(sym_addr))
+ return False;
+
+ /* sym_addr is a vma pointing into the .opd section. We know
+ the vma of the opd section start, so we can figure out how
+ far into the opd section this is. */
+
+ offset_in_opd =3D (Addr)sym_addr - (Addr)(si->opd_start_vma);
+ if (offset_in_opd < 0 || offset_in_opd >=3D si->opd_size)
+ return False;
+
+ /* Now we want to know what's at that offset in the .opd
+ section. We can't look in the running image since it won't
+ necessarily have been mapped. But we can consult the oimage.
+ opd_filea is the start address of the .opd in the oimage.
+ Hence: */
+
+ fn_descr =3D (ULong*)(opd_filea + offset_in_opd);
+
+ if (0) VG_(printf)("opdXXY: offset %d, fn_descr %p\n", offset_in_=
opd, fn_descr);
+ if (0) VG_(printf)("opdXXZ: *fn_descr %p\n", (void*)(fn_descr[0]))=
;
+
+ sym_addr =3D fn_descr[0];
+
+ /* Hopefully sym_addr is now an offset into the text section.
+ Problem is, where did the text section get mapped? Well,
+ this SegInfo (si) exists because a text section got mapped,
+ and it got mapped to si->start. Hence add si->start to the
+ sym_addr to get the real vma. */
+
+ sym_addr +=3D si->offset;
+ *sym_addr_really =3D sym_addr;
+
+ /* Do a final sanity check: if the symbol falls outside the
+ SegInfo's mapped range, ignore it. Since sym_addr has been
+ updated, that can be achieved simply by falling through to
+ the test below. */
+
+# endif /* ppc64-linux nasty hack */
+ }
+
/* If no part of the symbol falls within the mapped range,
ignore it. */
if (sym_addr+sym->st_size <=3D si->start
@@ -1170,10 +1244,11 @@
static
void read_symtab( SegInfo* si, Char* tab_name, Bool do_intercepts,
ElfXX_Sym* o_symtab, UInt o_symtab_sz,
- UChar* o_strtab, UInt o_strtab_sz )
+ UChar* o_strtab, UInt o_strtab_sz,
+ UChar* opd_filea /* ppc64-linux only */ )
{
Int i;
- Addr sym_addr;
+ Addr sym_addr, sym_addr_really;
Char* sym_name;
RiSym risym;
Char* name;
@@ -1224,9 +1299,18 @@
} =20
=20
// Record interesting symbols in our symtab.
- if ( is_interesting_symbol(si, sym, sym_name, sym_addr) ) {
+ if ( is_interesting_symbol(si, sym, sym_name, sym_addr, opd_filea,=
&sym_addr_really) ) {
vg_assert(sym->st_name !=3D 0);
vg_assert(sym_name[0] !=3D 0);
+# if defined(VGP_ppc64_linux)
+ /* It's crucial that we never add symbol addresses in the
+ .opd section. This would completely mess up function
+ redirection and intercepting. This assert ensures that
+ any symbols that make it into the symbol table on
+ ppc64-linux don't point into .opd. */
+ vg_assert(sym_addr_really + sym->st_size <=3D si->opd_start_vma
+ || sym_addr_really >=3D si->opd_start_vma + si->opd_s=
ize);
+# endif
name =3D ML_(addStr) ( si, sym_name, -1 );
vg_assert(name !=3D NULL);
=20
@@ -1238,10 +1322,10 @@
* the string table. Importantly, it never makes it bigger.
*/
if (do_intercepts) {
- VG_(maybe_redir_or_notify)( name, sym_addr );
+ VG_(maybe_redir_or_notify)( name, sym_addr_really );
}
=20
- risym.addr =3D sym_addr;
+ risym.addr =3D sym_addr_really;
risym.size =3D sym->st_size;
risym.name =3D name;
addSym ( si, &risym );
@@ -1531,11 +1615,11 @@
// Get the data and bss start/size if appropriate
mapped =3D o_phdr->p_vaddr + si->offset;
mapped_end =3D mapped + o_phdr->p_memsz;
- if (si->data_start =3D=3D 0 &&
+ if (si->data_start_vma =3D=3D 0 &&
(o_phdr->p_flags & (PF_R|PF_W|PF_X)) =3D=3D (PF_R|PF_W)) {
- si->data_start =3D mapped;
- si->data_size =3D o_phdr->p_filesz;
- si->bss_start =3D mapped + o_phdr->p_filesz;
+ si->data_start_vma =3D mapped;
+ si->data_size =3D o_phdr->p_filesz;
+ si->bss_start_vma =3D mapped + o_phdr->p_filesz;
if (o_phdr->p_memsz > o_phdr->p_filesz)
si->bss_size =3D o_phdr->p_memsz - o_phdr->p_filesz;
else
@@ -1575,7 +1659,8 @@
/* Find interesting sections, read the symbol table(s), read any debu=
g
information */
{
- /* Pointers to start of sections */
+ /* Pointers to start of sections (in the oimage, not in the
+ running image) */
UChar* o_strtab =3D NULL; /* .strtab */
ElfXX_Sym* o_symtab =3D NULL; /* .symtab */
UChar* o_dynstr =3D NULL; /* .dynstr */
@@ -1590,6 +1675,8 @@
UChar* dwarf1d =3D NULL; /* .debug (dwarf1) */
UChar* dwarf1l =3D NULL; /* .line (dwarf1) */
UChar* ehframe =3D NULL; /* .eh_frame (dwarf2) */
+ UChar* opd_filea =3D NULL; /* .opd (dwarf2, ppc64-=
linux) */
+ UChar* dummy_filea =3D NULL;
=20
/* Section sizes, in bytes */
UInt o_strtab_sz =3D 0;
@@ -1608,25 +1695,36 @@
UInt ehframe_sz =3D 0;
=20
/* Section virtual addresses */
- Addr dummy_addr =3D 0;
- Addr ehframe_addr =3D 0;
+ Addr dummy_vma =3D 0;
+ Addr ehframe_vma =3D 0;
=20
/* Find all interesting sections */
+
+ /* What FIND does: it finds the section called SEC_NAME. The
+ size of it is assigned to SEC_SIZE. The address that it will
+ appear in the running image is assigned to SEC_VMA (note,
+ this will be meaningless for sections which are not marked
+ loadable. Even for sections which are marked loadable, the
+ client's ld.so may not have loaded them yet, so there is no
+ guarantee that we can safely prod around in any such area)
+ The address of the section in the transiently loaded oimage
+ is assigned to SEC_FILEA. Because the entire object file is
+ transiently mapped aboard for inspection, it's always safe to
+ inspect that area. */
+
for (i =3D 0; i < ehdr->e_shnum; i++) {
-# define FIND(sec_name, sec_data, sec_size, sec_addr, in_exec, ty=
pe) \
+
+# define FIND(sec_name, sec_size, sec_filea, sec_vma) \
if (0 =3D=3D VG_(strcmp)(sec_name, sh_strtab + shdr[i].sh_name)=
) { \
Bool nobits; \
- if (0 !=3D sec_data) \
- VG_(core_panic)("repeated section!\n"); \
- if (in_exec) \
- sec_data =3D (type)(si->offset + shdr[i].sh_addr); \
- else \
- sec_data =3D (type)(oimage + shdr[i].sh_offset); \
- sec_size =3D shdr[i].sh_size; \
+ sec_vma =3D (Addr)(si->offset + shdr[i].sh_addr); \
+ sec_filea =3D (void*)(oimage + shdr[i].sh_offset); \
+ sec_size =3D shdr[i].sh_size; \
nobits =3D shdr[i].sh_type =3D=3D SHT_NOBITS; \
- sec_addr =3D si->offset + shdr[i].sh_addr; \
- TRACE_SYMTAB( "%18s: %p .. %p\n", \
- sec_name, sec_data, sec_data + sec_size - 1); =
\
+ TRACE_SYMTAB( "%18s: filea %p .. %p, vma %p .. %p\n", \
+ sec_name, (UChar*)sec_filea, \
+ ((UChar*)sec_filea) + sec_size - 1, =
\
+ sec_vma, sec_vma + sec_size - 1); \
/* SHT_NOBITS sections have zero size in the file. */ \
if ( shdr[i].sh_offset + (nobits ? 0 : sec_size) > n_oimage =
) { \
ML_(symerr)(" section beyond image end?!"); \
@@ -1636,27 +1734,29 @@
=20
/* Nb: must find where .got and .plt sections will be in the
* executable image, not in the object image transiently loaded=
. */
- FIND(".dynsym", o_dynsym, o_dynsym_sz, dummy_a=
ddr, 0, ElfXX_Sym*)
- else FIND(".dynstr", o_dynstr, o_dynstr_sz, dummy_a=
ddr, 0, UChar*)
- else FIND(".symtab", o_symtab, o_symtab_sz, dummy_a=
ddr, 0, ElfXX_Sym*)
- else FIND(".strtab", o_strtab, o_strtab_sz, dummy_a=
ddr, 0, UChar*)
+ /* NAME SIZE ADDR_IN_OIMAGE ADDR_WHEN=
_MAPPED */
+ FIND(".dynsym", o_dynsym_sz, o_dynsym, dummy_vma=
)
+ FIND(".dynstr", o_dynstr_sz, o_dynstr, dummy_vma=
)
+ FIND(".symtab", o_symtab_sz, o_symtab, dummy_vma=
)
+ FIND(".strtab", o_strtab_sz, o_strtab, dummy_vma=
)
=20
- else FIND(".gnu_debuglink", debuglink, debuglink_sz, dummy_a=
ddr, 0, Char*)
+ FIND(".gnu_debuglink", debuglink_sz, debuglink, dummy_vma=
)
=20
- else FIND(".stab", stab, stab_sz, dummy_a=
ddr, 0, UChar*)
- else FIND(".stabstr", stabstr, stabstr_sz, dummy_a=
ddr, 0, UChar*)
+ FIND(".stab", stab_sz, stab, dummy_vma=
)
+ FIND(".stabstr", stabstr_sz, stabstr, dummy_vma=
)
=20
- else FIND(".debug_line", debug_line, debug_line_sz, dummy_a=
ddr, 0, UChar*)
- else FIND(".debug_info", debug_info, debug_info_sz, dummy_a=
ddr, 0, UChar*)
- else FIND(".debug_abbrev", debug_abbv, debug_abbv_sz, dummy_a=
ddr, 0, UChar*)
- else FIND(".debug_str", debug_str, debug_str_sz, dummy_a=
ddr, 0, UChar*)
+ FIND(".debug_line", debug_line_sz, debug_line, dummy_vma=
)
+ FIND(".debug_info", debug_info_sz, debug_info, dummy_vma=
)
+ FIND(".debug_abbrev", debug_abbv_sz, debug_abbv, dummy_vma=
)
+ FIND(".debug_str", debug_str_sz, debug_str, dummy_vma=
)
=20
- else FIND(".debug", dwarf1d, dwarf1d_sz, dummy_a=
ddr, 0, UChar*)
- else FIND(".line", dwarf1l, dwarf1l_sz, dummy_a=
ddr, 0, UChar*)
- else FIND(".eh_frame", ehframe, ehframe_sz, ehframe=
_addr, 0, UChar*)
+ FIND(".debug", dwarf1d_sz, dwarf1d, dummy_vma=
)
+ FIND(".line", dwarf1l_sz, dwarf1l, dummy_vma=
)
+ FIND(".eh_frame", ehframe_sz, ehframe, ehframe_v=
ma)
=20
- else FIND(".got", si->got_start, si->got_size, dummy_a=
ddr, 1, Addr)
- else FIND(".plt", si->plt_start, si->plt_size, dummy_a=
ddr, 1, Addr)
+ FIND(".got", si->got_size, dummy_filea, si->got_s=
tart_vma)
+ FIND(".plt", si->plt_size, dummy_filea, si->plt_s=
tart_vma)
+ FIND(".opd", si->opd_size, opd_filea, si->opd_s=
tart_vma)
=20
# undef FIND
}
@@ -1679,23 +1779,27 @@
if ((dimage =3D find_debug_file(si->filename, debuglink, crc, &=
n_dimage)) !=3D 0) {
ehdr =3D (ElfXX_Ehdr*)dimage;
=20
- if (n_dimage >=3D sizeof(ElfXX_Ehdr) && is_elf_object_file(e=
hdr))
- {
+ if (n_dimage >=3D sizeof(ElfXX_Ehdr) && is_elf_object_file(e=
hdr)) {
shdr =3D (ElfXX_Shdr*)(dimage + ehdr->e_shoff);
sh_strtab =3D (UChar*)(dimage + shdr[ehdr->e_shstrndx].sh=
_offset);
=20
+ /* Same deal as previous FIND, except simpler - doesn't
+ look for vma, only oimage address. */
+
/* Find all interesting sections */
for (i =3D 0; i < ehdr->e_shnum; i++) {
-# define FIND(sec_name, sec_data, sec_size, type) \
+
+# define FIND(sec_name, sec_size, sec_filea) \
if (0 =3D=3D VG_(strcmp)(sec_name, sh_strtab + shdr[i]=
.sh_name)) { \
Bool nobits; \
- if (0 !=3D sec_data) \
+ if (0 !=3D sec_filea) \
VG_(core_panic)("repeated section!\n"); \
- sec_data =3D (type)(dimage + shdr[i].sh_offset); \
- sec_size =3D shdr[i].sh_size; \
+ sec_filea =3D (void*)(dimage + shdr[i].sh_offset); =
\
+ sec_size =3D shdr[i].sh_size; \
nobits =3D shdr[i].sh_type =3D=3D SHT_NOBITS; \
- TRACE_SYMTAB( "%18s: %p .. %p\n", \
- sec_name, sec_data, sec_data + sec_si=
ze - 1); \
+ TRACE_SYMTAB( "%18s: filea %p .. %p\n", \
+ sec_name, (UChar*)sec_filea, \
+ ((UChar*)sec_filea) + sec_s=
ize - 1); \
/* SHT_NOBITS sections have zero size in the file. =
*/ \
if ( shdr[i].sh_offset + (nobits ? 0 : sec_size) > =
n_dimage ) { \
ML_(symerr)(" section beyond image end?!"); \
@@ -1703,16 +1807,14 @@
} \
}
=20
- /* Nb: must find where .got and .plt sections will be =
in the
- * executable image, not in the object image transient=
ly loaded. */
- FIND(".stab", stab, stab_sz, =
UChar*)
- else FIND(".stabstr", stabstr, stabstr_sz, =
UChar*)
- else FIND(".debug_line", debug_line, debug_line_sz=
, UChar*)
- else FIND(".debug_info", debug_info, debug_info_sz=
, UChar*)
- else FIND(".debug_abbrev", debug_abbv, debug_abbv_sz=
, UChar*)
- else FIND(".debug_str", debug_str, debug_str_sz,=
UChar*)
- else FIND(".debug", dwarf1d, dwarf1d_sz, =
UChar*)
- else FIND(".line", dwarf1l, dwarf1l_sz, =
UChar*)
+ FIND(".stab", stab_sz, stab)
+ FIND(".stabstr", stabstr_sz, stabstr)
+ FIND(".debug_line", debug_line_sz, debug_line)
+ FIND(".debug_info", debug_info_sz, debug_info)
+ FIND(".debug_abbrev", debug_abbv_sz, debug_abbv)
+ FIND(".debug_str", debug_str_sz, debug_str)
+ FIND(".debug", dwarf1d_sz, dwarf1d)
+ FIND(".line", dwarf1l_sz, dwarf1l)
=20
# undef FIND
}
@@ -1723,15 +1825,15 @@
/* Read symbols */
read_symtab(si, "symbol table", False,
o_symtab, o_symtab_sz,
- o_strtab, o_strtab_sz);
+ o_strtab, o_strtab_sz, opd_filea);
=20
read_symtab(si, "dynamic symbol table", True,
o_dynsym, o_dynsym_sz,
- o_dynstr, o_dynstr_sz);
+ o_dynstr, o_dynstr_sz, opd_filea);
=20
/* Read .eh_frame (call-frame-info) if any */
if (ehframe) {
- ML_(read_callframe_info_dwarf2) ( si, ehframe, ehframe_sz, ehfr=
ame_addr );
+ ML_(read_callframe_info_dwarf2) ( si, ehframe, ehframe_sz, ehfr=
ame_vma );
}
=20
/* Read the stabs and/or dwarf2 debug information, if any. It
@@ -2748,19 +2850,22 @@
if (0)
VG_(printf)("addr=3D%p si=3D%p %s got=3D%p %d plt=3D%p %d data=3D%=
p %d bss=3D%p %d\n",
a, si, si->filename,=20
- si->got_start, si->got_size,
- si->plt_start, si->plt_size,
- si->data_start, si->data_size,
- si->bss_start, si->bss_size);
+ si->got_start_vma, si->got_size,
+ si->plt_start_vma, si->plt_size,
+ si->data_start_vma, si->data_size,
+ si->bss_start_vma, si->bss_size);
ret =3D Vg_SectText;
=20
- if (a >=3D si->data_start && a < (si->data_start + si->data_size))
+ if (a >=3D si->data_start_vma && a < (si->data_start_vma + si->data_si=
ze))
ret =3D Vg_SectData;
- else if (a >=3D si->bss_start && a < (si->bss_start + si->bss_size))
+ else=20
+ if (a >=3D si->bss_start_vma && a < (si->bss_start_vma + si->bs=
s_size))
ret =3D Vg_SectBSS;
- else if (a >=3D si->plt_start && a < (si->plt_start + si->plt_size))
+ else=20
+ if (a >=3D si->plt_start_vma && a < (si->plt_start_vma + si->pl=
t_size))
ret =3D Vg_SectPLT;
- else if (a >=3D si->got_start && a < (si->got_start + si->got_size))
+ else=20
+ if (a >=3D si->got_start_vma && a < (si->got_start_vma + si->go=
t_size))
ret =3D Vg_SectGOT;
}
}
|
|
From: <sv...@va...> - 2006-01-05 14:10:01
|
Author: sewardj
Date: 2006-01-05 14:09:46 +0000 (Thu, 05 Jan 2006)
New Revision: 5500
Log:
Fix a casting bug in the LOADV8 slow (misaligned) case spotted by Nick.
Modified:
trunk/docs/internals/3_1_BUGSTATUS.txt
trunk/memcheck/mc_main.c
Modified: trunk/docs/internals/3_1_BUGSTATUS.txt
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/internals/3_1_BUGSTATUS.txt 2006-01-05 14:07:04 UTC (rev 5=
499)
+++ trunk/docs/internals/3_1_BUGSTATUS.txt 2006-01-05 14:09:46 UTC (rev 5=
500)
@@ -36,3 +36,4 @@
v5445 pending n-i-bz VG_(getgroups) fix (Shinichi Noda)
vx1519 pending n-i-bz ppc32/64: allocate from callee-saved FP/VMX=
regs
vx1521/2 pending 119297 Incorrect error message for sse code
+v5500 pending n-i-bz misaligned path word-size bug in mc_main.c
Modified: trunk/memcheck/mc_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mc_main.c 2006-01-05 14:07:04 UTC (rev 5499)
+++ trunk/memcheck/mc_main.c 2006-01-05 14:09:46 UTC (rev 5500)
@@ -1518,7 +1518,7 @@
/* slow-path case. */ \
if (EXPECTED_NOT_TAKEN(a & mask)) { \
PROF_EVENT(201, #nAME"-slow1"); \
- return (UWord)mc_LOADVn_slow( aA, 8, iS_BIGENDIAN ); \
+ return (ULong)mc_LOADVn_slow( aA, 8, iS_BIGENDIAN ); \
} \
\
sec_no =3D (UWord)(a >> 16); \
|
|
From: <sv...@va...> - 2006-01-05 14:07:15
|
Author: sewardj
Date: 2006-01-05 14:07:04 +0000 (Thu, 05 Jan 2006)
New Revision: 5499
Log:
Initial redirect stuff for ppc64-linux.
Modified:
trunk/coregrind/m_main.c
trunk/coregrind/m_redir.c
trunk/coregrind/m_trampoline.S
trunk/coregrind/pub_core_trampoline.h
Modified: trunk/coregrind/m_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_main.c 2006-01-04 15:40:16 UTC (rev 5498)
+++ trunk/coregrind/m_main.c 2006-01-05 14:07:04 UTC (rev 5499)
@@ -2398,8 +2398,12 @@
// p: aspacem
//--------------------------------------------------------------
{ Bool change_ownership_v_c_OK;
- Addr co_start =3D VG_PGROUNDDN( (Addr)&VG_(trampoline_stuff_start=
) );
- Addr co_endPlus =3D VG_PGROUNDUP( (Addr)&VG_(trampoline_stuff_end) =
);
+ Addr co_start =3D VG_PGROUNDDN(=20
+ (Addr)VG_(fnptr_to_fnentry)(=20
+ &VG_(trampoline_stuff_start) ) );
+ Addr co_endPlus =3D VG_PGROUNDUP(=20
+ (Addr)VG_(fnptr_to_fnentry)(=20
+ &VG_(trampoline_stuff_end) ) );
VG_(debugLog)(1,"redir",
"transfer ownership V -> C of 0x%llx .. 0x%llx\n",
(ULong)co_start, (ULong)co_endPlus-1 );
Modified: trunk/coregrind/m_redir.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_redir.c 2006-01-04 15:40:16 UTC (rev 5498)
+++ trunk/coregrind/m_redir.c 2006-01-05 14:07:04 UTC (rev 5499)
@@ -43,6 +43,7 @@
#include "pub_core_trampoline.h"
#include "pub_core_transtab.h"
#include "pub_core_tooliface.h" // VG_(needs).malloc_replacement
+#include "pub_tool_machine.h" // VG_(fnptr_to_fnentry)
=20
=20
/*------------------------------------------------------------*/
@@ -406,8 +407,17 @@
=20
#elif defined(VGP_ppc64_linux)
=20
- // we'll have to stick some godawful hacks in here, no doubt
+ /* If we're using memcheck, use these intercepts right from
+ the start, otherwise ld.so makes a lot of noise. */
+ if (0=3D=3DVG_(strcmp)("Memcheck", VG_(details).name)) {
=20
+ add_redirect_sym_to_addr(
+ "soname:ld64.so.1", "strlen",
+ (Addr)VG_(fnptr_to_fnentry)( &VG_(ppc64_linux_REDIR_FOR_strlen)=
)
+ ); =20
+
+ }
+
#else
# error Unknown platform
#endif
Modified: trunk/coregrind/m_trampoline.S
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_trampoline.S 2006-01-04 15:40:16 UTC (rev 5498)
+++ trunk/coregrind/m_trampoline.S 2006-01-05 14:07:04 UTC (rev 5499)
@@ -277,6 +277,9 @@
.global VG_(trampoline_stuff_end)
VG_(trampoline_stuff_end):
=20
+ /* and a trailing page of unexecutable code */
+ UD2_PAGE
+
# undef UD2_16
# undef UD2_64
# undef UD2_256
@@ -306,9 +309,34 @@
.type .VG_(trampoline_stuff_start),@function
.global .VG_(trampoline_stuff_start)
.VG_(trampoline_stuff_start):
-=09
=20
.align 2
+.globl VG_(ppc64_linux_REDIR_FOR_strlen)
+.section ".opd","aw"
+.align 3
+VG_(ppc64_linux_REDIR_FOR_strlen):
+.quad .L.VG_(ppc64_linux_REDIR_FOR_strlen),.TOC.@tocbase
+.previous
+.type VG_(ppc64_linux_REDIR_FOR_strlen), @function
+.L.VG_(ppc64_linux_REDIR_FOR_strlen):
+ mr 9,3
+ lbz 0,0(3)
+ li 3,0
+ cmpwi 7,0,0
+ beqlr 7
+ li 3,0
+.L5:
+ addi 0,3,1
+ extsw 3,0
+ lbzx 0,9,3
+ cmpwi 7,0,0
+ bne 7,.L5
+ blr
+ .long 0
+ .byte 0,0,0,0,0,0,0,0
+ .size VG_(ppc64_linux_REDIR_FOR_strlen),.-.L.VG_(ppc64_linux_R=
EDIR_FOR_strlen)
+
+.align 2
.global VG_(trampoline_stuff_end)
.section ".opd","aw"
.align 3
@@ -319,6 +347,9 @@
.global .VG_(trampoline_stuff_end)
.VG_(trampoline_stuff_end):
=20
+ /* and a trailing page of unexecutable code */
+ UD2_PAGE
+
# undef UD2_16
# undef UD2_64
# undef UD2_256
Modified: trunk/coregrind/pub_core_trampoline.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/pub_core_trampoline.h 2006-01-04 15:40:16 UTC (rev 54=
98)
+++ trunk/coregrind/pub_core_trampoline.h 2006-01-05 14:07:04 UTC (rev 54=
99)
@@ -65,6 +65,10 @@
extern UInt VG_(ppc32_linux_REDIR_FOR_strcmp)( void*, void* );
extern void* VG_(ppc32_linux_REDIR_FOR_strchr)( void*, Int );
#endif
+
+#if defined(VGP_ppc64_linux)
+extern UInt VG_(ppc64_linux_REDIR_FOR_strlen)( void* );
+#endif
=20
#endif // __PUB_CORE_TRAMPOLINE_H
=20
|
|
From: <sv...@va...> - 2006-01-05 13:12:21
|
Author: cerion
Date: 2006-01-05 13:11:59 +0000 (Thu, 05 Jan 2006)
New Revision: 1532
Log:
ppc: deal with L flag properly for different sync forms.
Modified:
trunk/priv/guest-ppc/toIR.c
Modified: trunk/priv/guest-ppc/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-ppc/toIR.c 2006-01-04 10:53:00 UTC (rev 1531)
+++ trunk/priv/guest-ppc/toIR.c 2006-01-05 13:11:59 UTC (rev 1532)
@@ -4428,6 +4428,8 @@
/* X-Form, XL-Form */
UChar opc1 =3D ifieldOPC(theInstr);
UInt b11to25 =3D IFIELD(theInstr, 11, 15);
+ UChar flag_L =3D ifieldRegDS(theInstr);
+ UInt b11to20 =3D IFIELD(theInstr, 11, 10);
UChar rD_addr =3D ifieldRegDS(theInstr);
UChar rS_addr =3D rD_addr;
UChar rA_addr =3D ifieldRegA(theInstr);
@@ -4522,7 +4524,7 @@
}
=20
case 0x256: // sync (Synchronize, PPC32 p543),=20
- // also lwsync, which appears to be undocumented
+ // also lwsync (L=3D=3D1), ptesync (L=3D=3D2)
/* http://sources.redhat.com/ml/binutils/2000-12/msg00311.html
=20
The PowerPC architecture used in IBM chips has expanded
@@ -4542,12 +4544,17 @@
=20
sync =3D sync 0
lwsync =3D sync 1
+ ptesync =3D sync 2 *** TODO - not implemented ***
*/
- if ((b11to25 !=3D 0/*sync*/ && b11to25 !=3D 1024/*lwsync*/) || =
b0 !=3D 0) {
- vex_printf("dis_memsync(ppc)(sync/lwsync,b11to25|b0)\n");
+ if (b11to20 !=3D 0 || b0 !=3D 0) {
+ vex_printf("dis_memsync(ppc)(sync/lwsync,b11to20|b0)\n");
return False;
}
- DIP("%ssync\n", b11to25 =3D=3D 1024 ? "lw" : "");
+ if (flag_L !=3D 0/*sync*/ && flag_L !=3D 1/*lwsync*/) {
+ vex_printf("dis_memsync(ppc)(sync/lwsync,flag_L)\n");
+ return False;
+ }
+ DIP("%ssync\n", flag_L =3D=3D 1 ? "lw" : "");
/* Insert a memory fence. It's sometimes important that these
are carried through to the generated code. */
stmt( IRStmt_MFence() );
|
|
From: <js...@ac...> - 2006-01-05 03:46:26
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-01-05 04:40:00 CET Results differ from 24 hours ago Checking out valgrind source tree ... failed Last 20 lines of verbose log follow echo Checking out valgrind source tree ... svn co svn://svn.valgrind.org/valgrind/trunk -r {2006-01-05T04:40:00} valgrind svn: Can't connect to host 'svn.valgrind.org': Connection timed out ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... failed Last 20 lines of verbose log follow echo Checking out valgrind source tree ... svn co svn://svn.valgrind.org/valgrind/trunk -r {2006-01-04T04:40:00} valgrind svn: Can't connect to host 'svn.valgrind.org': Connection timed out ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Jan 5 04:43:11 2006 --- new.short Thu Jan 5 04:46:20 2006 *************** *** 5,7 **** ! Checking out valgrind source tree ... svn co svn://svn.valgrind.org/valgrind/trunk -r {2006-01-04T04:40:00} valgrind svn: Can't connect to host 'svn.valgrind.org': Connection timed out --- 5,7 ---- ! Checking out valgrind source tree ... svn co svn://svn.valgrind.org/valgrind/trunk -r {2006-01-05T04:40:00} valgrind svn: Can't connect to host 'svn.valgrind.org': Connection timed out |
|
From: <js...@ac...> - 2006-01-05 03:36:04
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-01-05 03:30:01 GMT Checking out vex source tree ... failed Last 20 lines of verbose log follow echo Checking out vex source tree ... svn co svn://svn.valgrind.org/vex/trunk -r {2006-01-05T03:30:01} vex svn: Can't connect to host 'svn.valgrind.org': Connection timed out ================================================= == Results from 24 hours ago == ================================================= Checking out vex source tree ... failed Last 20 lines of verbose log follow echo Checking out vex source tree ... svn co svn://svn.valgrind.org/vex/trunk -r {2006-01-04T03:30:01} vex svn: Can't connect to host 'svn.valgrind.org': Connection timed out ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Jan 5 03:33:22 2006 --- new.short Thu Jan 5 03:36:31 2006 *************** *** 5,7 **** ! Checking out vex source tree ... svn co svn://svn.valgrind.org/vex/trunk -r {2006-01-04T03:30:01} vex svn: Can't connect to host 'svn.valgrind.org': Connection timed out --- 5,7 ---- ! Checking out vex source tree ... svn co svn://svn.valgrind.org/vex/trunk -r {2006-01-05T03:30:01} vex svn: Can't connect to host 'svn.valgrind.org': Connection timed out |
|
From: <sv...@va...> - 2006-01-04 15:41:10
|
Author: sewardj
Date: 2006-01-04 15:40:16 +0000 (Wed, 04 Jan 2006)
New Revision: 5498
Log:
More syscalls ...
Modified:
trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
Modified: trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2006-01-04 04:23:30 U=
TC (rev 5497)
+++ trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2006-01-04 15:40:16 U=
TC (rev 5498)
@@ -1222,7 +1222,7 @@
=20
// _____(__NR_rmdir, sys_rmdir), // 40
GENXY(__NR_dup, sys_dup), // 41
-// _____(__NR_pipe, sys_pipe), // 42
+ LINXY(__NR_pipe, sys_pipe), // 42
// _____(__NR_times, sys_times), // 43
// _____(__NR_prof, sys_prof), // 44
=20
@@ -1247,7 +1247,7 @@
// _____(__NR_umask, sys_umask), // 60
// _____(__NR_chroot, sys_chroot), // 61
// _____(__NR_ustat, sys_ustat), // 62
-// _____(__NR_dup2, sys_dup2), // 63
+ GENXY(__NR_dup2, sys_dup2), // 63
// _____(__NR_getppid, sys_getppid), // 64
=20
// _____(__NR_getpgrp, sys_getpgrp), // 65
@@ -1383,7 +1383,7 @@
LINXY(__NR_rt_sigprocmask, sys_rt_sigprocmask), // 174
=20
// _____(__NR_rt_sigpending, sys_rt_sigpending), // 175
-// _____(__NR_rt_sigtimedwait, sys_rt_sigtimedwait), // 176
+ LINXY(__NR_rt_sigtimedwait, sys_rt_sigtimedwait), // 176
// _____(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo), // 177
// _____(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 178
// _____(__NR_pread64, sys_pread64), // 179
|
|
From: <sv...@va...> - 2006-01-04 13:42:01
|
Author: sewardj Date: 2006-01-04 13:41:39 +0000 (Wed, 04 Jan 2006) New Revision: 264 Log: Add info to the build-from-svn section. Modified: trunk/downloads/repository.html Modified: trunk/downloads/repository.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/downloads/repository.html 2005-12-26 18:29:59 UTC (rev 263) +++ trunk/downloads/repository.html 2006-01-04 13:41:39 UTC (rev 264) @@ -31,7 +31,7 @@ svn co svn://svn.valgrind.org/valgrind/trunk valgrind </pre> =20 -<p>As of December 2005, the code from this repository works +<p>As of January 2006, the code from this repository works well on x86/Linux, AMD64/Linux and PPC32/Linux. PPC64/Linux is under development. </p> @@ -49,9 +49,15 @@ make install </pre> =20 -<p>You'll need autoconf, and automake version 1.7 or later. These -should come as standard on any non-ancient Linux distribution.</p> +<p>To do the checkout, you'll need a Subversion client, version 1.1.0 or= later. +Versions prior to 1.1.0 do not properly handle the symbolic links in our +tree.</p> =20 +<p>To do the build, you'll need autoconf, and automake version 1.7 or la= ter. These +should come as standard on any non-ancient Linux distribution. You also= need +to have the svnversion program (part of the Subversion client suite) in = your +path - if you don't, building the VEX library will fail.</p> + <!-- <p> If you are behind a firewall that doesn't allow the svn protocol, you |
|
From: <sv...@va...> - 2006-01-04 10:53:10
|
Author: cerion
Date: 2006-01-04 10:53:00 +0000 (Wed, 04 Jan 2006)
New Revision: 1531
Log:
ppc: re-enable mtfsb1 instruction.
Note: Only the rounding mode field of the FPSCR is supported.
- Reads from any other bits return zero.
- Writes to any other bits are ignored. Writes to 'exception control' b=
its or the 'non-ieee mode' bit results in an emulation warning.
Modified:
trunk/priv/guest-ppc/toIR.c
Modified: trunk/priv/guest-ppc/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-ppc/toIR.c 2006-01-03 18:41:00 UTC (rev 1530)
+++ trunk/priv/guest-ppc/toIR.c 2006-01-04 10:53:00 UTC (rev 1531)
@@ -2058,10 +2058,6 @@
switch (reg) {
=20
case PPC_GST_FPSCR: {
- vassert((mask & 0x3) =3D=3D 0x3 || (mask & 0x3) =3D=3D 0x=
0);
- vassert((mask & 0xF000) =3D=3D 0xF000 || (mask & 0xF000) =3D=3D 0x=
0);
- /* all masks now refer to valid fields */
- =20
/* Vex-generated code expects the FPSCR to be set as follows:
all exceptions masked, round-to-nearest.
This corresponds to a FPSCR value of 0x0. */
@@ -2192,10 +2188,6 @@
=20
switch (reg) {
case PPC_GST_FPSCR: {
- vassert((mask & 0x3) =3D=3D 0x3 || (mask & 0x3) =3D=3D 0x=
0);
- vassert((mask & 0xF000) =3D=3D 0xF000 || (mask & 0xF000) =3D=3D 0x=
0);
- /* all masks now refer to valid fields */
-
/* Allow writes to Rounding Mode */
if (mask & 0x3) {
stmt( IRStmt_Put( OFFB_FPROUND,
@@ -6110,20 +6102,20 @@
}
=20
switch (opc2) {
-//zz case 0x026: { // mtfsb1 (Move to FPSCR Bit 1, PPC32 p479)
-//zz // Bit crbD of the FPSCR is set.
-//zz UChar crbD =3D ifieldRegDS(theInstr);
-//zz UInt b11to20 =3D IFIELD(theInstr, 11, 10);
-//zz=20
-//zz if (b11to20 !=3D 0) {
-//zz vex_printf("dis_fp_scr(ppc)(instr,mtfsb1)\n");
-//zz return False;
-//zz }
-//zz DIP("mtfsb1%s crb%d \n", flag_rC ? ".":"", crbD);
-//zz putGST_masked( PPC_GST_FPSCR, mkU32(1<<(31-crbD)), 1<<(31-crb=
D) );
-//zz break;
-//zz }
-//zz=20
+ case 0x026: { // mtfsb1 (Move to FPSCR Bit 1, PPC32 p479)
+ // Bit crbD of the FPSCR is set.
+ UChar crbD =3D ifieldRegDS(theInstr);
+ UInt b11to20 =3D IFIELD(theInstr, 11, 10);
+
+ if (b11to20 !=3D 0) {
+ vex_printf("dis_fp_scr(ppc)(instr,mtfsb1)\n");
+ return False;
+ }
+ DIP("mtfsb1%s crb%d \n", flag_rC ? ".":"", crbD);
+ putGST_masked( PPC_GST_FPSCR, mkU32(1<<(31-crbD)), 1<<(31-crbD) );
+ break;
+ }
+
//zz case 0x040: { // mcrfs (Move to Condition Register from FPSCR, P=
PC32 p465)
//zz UChar crfD =3D toUChar( IFIELD( theInstr, 23, 3 ) );
//zz UChar b21to22 =3D toUChar( IFIELD( theInstr, 21, 2 ) );
@@ -8582,7 +8574,7 @@
goto decode_failure;
=20
/* Floating Point Status/Control Register Instructions */ =20
-//zz case 0x026: // mtfsb1
+ case 0x026: // mtfsb1
//zz case 0x040: // mcrfs
case 0x046: // mtfsb0
case 0x086: // mtfsfi
|
|
From: <sv...@va...> - 2006-01-04 04:23:35
|
Author: sewardj Date: 2006-01-04 04:23:30 +0000 (Wed, 04 Jan 2006) New Revision: 5497 Log: Build fix for oset_test following recent build system hackery. Modified: trunk/memcheck/tests/Makefile.am Modified: trunk/memcheck/tests/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/memcheck/tests/Makefile.am 2006-01-04 03:31:07 UTC (rev 5496) +++ trunk/memcheck/tests/Makefile.am 2006-01-04 04:23:30 UTC (rev 5497) @@ -151,7 +151,8 @@ # Extra stuff for C tests memcmptest_CFLAGS =3D $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -fno-builtin-mem= cmp oset_test_CFLAGS =3D $(AM_FLAG_M3264_PRI) \ - -DVGA_$(VG_ARCH) -DVGO_$(VG_OS) -DVGP_$(VG_PLATFORM) + -DVGA_$(VG_ARCH)=3D1 -DVGO_$(VG_OS)=3D1 \ + -DVGP_$(VG_ARCH)_$(VG_OS)=3D1 # Don't allow GCC to inline memcpy(), because then we can't intercept it overlap_CFLAGS =3D $(AM_CFLAGS) -fno-builtin-memcpy stack_switch_LDADD =3D -lpthread |
|
From: <js...@ac...> - 2006-01-04 04:00:59
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-01-04 03:30:02 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 209 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <js...@ac...> - 2006-01-04 03:53:10
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-01-04 04:40:01 CET Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo make[4]: Leaving directory `/home/sewardj/Nightly/valgrind/none/tests/ppc32' Making check in ppc64 make[4]: Entering directory `/home/sewardj/Nightly/valgrind/none/tests/ppc64' make jm-insns make[5]: Entering directory `/home/sewardj/Nightly/valgrind/none/tests/ppc64' if gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -Winline -Wall -O -mregnames -DHAS_ALTIVEC -maltivec -m64 -Wno-long-long -MT jm_insns-jm-insns.o -MD -MP -MF ".deps/jm_insns-jm-insns.Tpo" -c -o jm_insns-jm-insns.o `test -f 'jm-insns.c' || echo './'`jm-insns.c; \ then mv -f ".deps/jm_insns-jm-insns.Tpo" ".deps/jm_insns-jm-insns.Po"; else rm -f ".deps/jm_insns-jm-insns.Tpo"; exit 1; fi jm-insns.c:1: error: syntax error before '.' token jm-insns.c:1:25: warning: no newline at end of file make[5]: *** [jm_insns-jm-insns.o] Error 1 make[5]: Leaving directory `/home/sewardj/Nightly/valgrind/none/tests/ppc64' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/home/sewardj/Nightly/valgrind/none/tests/ppc64' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/home/sewardj/Nightly/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/home/sewardj/Nightly/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/home/sewardj/Nightly/valgrind' make: *** [check] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 176 tests, 15 stderr failures, 1 stdout failure ================= memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/xml1 (stderr) massif/tests/toobig-allocs (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Jan 4 04:48:10 2006 --- new.short Wed Jan 4 04:53:06 2006 *************** *** 6,26 **** ! Regression test results follow ! ! == 176 tests, 15 stderr failures, 1 stdout failure ================= ! memcheck/tests/badjump (stderr) ! memcheck/tests/badjump2 (stderr) ! memcheck/tests/leak-cycle (stderr) ! memcheck/tests/leak-tree (stderr) ! memcheck/tests/leakotron (stdout) ! memcheck/tests/mempool (stderr) ! memcheck/tests/partiallydefinedeq (stderr) ! memcheck/tests/pointer-trace (stderr) ! memcheck/tests/supp1 (stderr) ! memcheck/tests/supp_unknown (stderr) ! memcheck/tests/toobig-allocs (stderr) ! memcheck/tests/xml1 (stderr) ! massif/tests/toobig-allocs (stderr) ! none/tests/faultstatus (stderr) ! none/tests/fdleak_cmsg (stderr) ! none/tests/mremap (stderr) ! --- 6,27 ---- ! Last 20 lines of verbose log follow echo ! make[4]: Leaving directory `/home/sewardj/Nightly/valgrind/none/tests/ppc32' ! Making check in ppc64 ! make[4]: Entering directory `/home/sewardj/Nightly/valgrind/none/tests/ppc64' ! make jm-insns ! make[5]: Entering directory `/home/sewardj/Nightly/valgrind/none/tests/ppc64' ! if gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -Winline -Wall -O -mregnames -DHAS_ALTIVEC -maltivec -m64 -Wno-long-long -MT jm_insns-jm-insns.o -MD -MP -MF ".deps/jm_insns-jm-insns.Tpo" -c -o jm_insns-jm-insns.o `test -f 'jm-insns.c' || echo './'`jm-insns.c; \ ! then mv -f ".deps/jm_insns-jm-insns.Tpo" ".deps/jm_insns-jm-insns.Po"; else rm -f ".deps/jm_insns-jm-insns.Tpo"; exit 1; fi ! jm-insns.c:1: error: syntax error before '.' token ! jm-insns.c:1:25: warning: no newline at end of file ! make[5]: *** [jm_insns-jm-insns.o] Error 1 ! make[5]: Leaving directory `/home/sewardj/Nightly/valgrind/none/tests/ppc64' ! make[4]: *** [check-am] Error 2 ! make[4]: Leaving directory `/home/sewardj/Nightly/valgrind/none/tests/ppc64' ! make[3]: *** [check-recursive] Error 1 ! make[3]: Leaving directory `/home/sewardj/Nightly/valgrind/none/tests' ! make[2]: *** [check-recursive] Error 1 ! make[2]: Leaving directory `/home/sewardj/Nightly/valgrind/none' ! make[1]: *** [check-recursive] Error 1 ! make[1]: Leaving directory `/home/sewardj/Nightly/valgrind' ! make: *** [check] Error 2 |
|
From: Tom H. <to...@co...> - 2006-01-04 03:42:58
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-01-04 03:30:04 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 211 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <sv...@va...> - 2006-01-04 03:31:19
|
Author: sewardj
Date: 2006-01-04 03:31:07 +0000 (Wed, 04 Jan 2006)
New Revision: 5496
Log:
Minor cleanups:
- get rid of some unused _ALL defns
- clarify logic in setting up VG_<platform>
- clarify some comments
Modified:
trunk/configure.in
trunk/docs/internals/multiple-architectures.txt
Modified: trunk/configure.in
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/configure.in 2006-01-04 03:08:16 UTC (rev 5495)
+++ trunk/configure.in 2006-01-04 03:31:07 UTC (rev 5496)
@@ -113,8 +113,7 @@
=20
AC_MSG_CHECKING([for a supported CPU])
AC_SUBST(VG_ARCH)
-AC_SUBST(VG_ARCH_ALL)
-VG_ARCH_ALL=3D"amd64 ppc32 ppc64 x86"
+
AC_SUBST(VALT_LOAD_ADDRESS)
=20
case "${host_cpu}" in
@@ -170,8 +169,6 @@
=20
AC_MSG_CHECKING([for a supported OS])
AC_SUBST(VG_OS)
-AC_SUBST(VG_OS_ALL)
-VG_OS_ALL=3D"linux"
=20
case "${host_os}" in
*linux*)
@@ -213,20 +210,14 @@
;;
esac
=20
-# What's this used for?
-AC_SUBST(VG_PLATFORM_ALL)
-VG_PLATFORM_ALL=3D"amd64-linux ppc32-linux ppc64-linux x86-linux"
=20
# Establish VG_PLATFORM_PRI. This is the primary build target. The
# entire system, including regression and performance tests, will be
-# built for this target. On 32-bit systems this is the only build
-# target.
+# built for this target.
#
-# Now establish VG_PLATFORM_SEC, the secondary build target, if
+# Also establish VG_PLATFORM_SEC, the secondary build target, if
# possible. The system will also be built for this target, but not
-# the regression or performance tests. Also decide what -m32/-m64
-# flags are needed for the primary and secondary build targets.
-# XXXXXXXXXXXXX is this needed?
+# the regression or performance tests.
#
AC_MSG_CHECKING([for a supported CPU/OS combination])
=20
@@ -265,11 +256,13 @@
# Set up VG_<platform>. Either one or two of these become defined.
#
AM_CONDITIONAL(VG_X86_LINUX, =20
- test x$VG_PLATFORM_PRI =3D xX86_LINUX -o x$VG_PLATFORM_PR=
I =3D xAMD64_LINUX)
+ test x$VG_PLATFORM_PRI =3D xX86_LINUX \
+ -o x$VG_PLATFORM_SEC =3D xX86_LINUX)
AM_CONDITIONAL(VG_AMD64_LINUX,=20
test x$VG_PLATFORM_PRI =3D xAMD64_LINUX)
AM_CONDITIONAL(VG_PPC32_LINUX,=20
- test x$VG_PLATFORM_PRI =3D xPPC32_LINUX -o x$VG_PLATFORM_=
PRI =3D xPPC64_LINUX)
+ test x$VG_PLATFORM_PRI =3D xPPC32_LINUX \=20
+ -o x$VG_PLATFORM_SEC =3D xPPC32_LINUX)
AM_CONDITIONAL(VG_PPC64_LINUX,=20
test x$VG_PLATFORM_PRI =3D xPPC64_LINUX)
=20
Modified: trunk/docs/internals/multiple-architectures.txt
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/internals/multiple-architectures.txt 2006-01-04 03:08:16 U=
TC (rev 5495)
+++ trunk/docs/internals/multiple-architectures.txt 2006-01-04 03:31:07 U=
TC (rev 5496)
@@ -44,9 +44,6 @@
VG_PLATFORM_PRI to be the primary target
VG_PLATFORM_SEC to be the secondary target, if any
=20
-(VG_PLATFORM_SEC is only used for printing an informational message at
-configure time).
-
It also sets one (single-arch build) or two (dual-arch build) of
the following:
=20
|
|
From: Tom H. <th...@cy...> - 2006-01-04 03:29:10
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2006-01-04 03:00:03 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 230 tests, 5 stderr failures, 2 stdout failures ================= memcheck/tests/oset_test (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/tls (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == 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 == 230 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/oset_test (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Jan 4 03:10:24 2006 --- new.short Wed Jan 4 03:28:59 2006 *************** *** 8,10 **** ! == 230 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/oset_test (stderr) --- 8,10 ---- ! == 230 tests, 5 stderr failures, 2 stdout failures ================= memcheck/tests/oset_test (stderr) *************** *** 13,14 **** --- 13,15 ---- none/tests/fdleak_fcntl (stderr) + none/tests/tls (stdout) none/tests/x86/faultstatus (stderr) |
|
From: Tom H. <th...@cy...> - 2006-01-04 03:22:50
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2006-01-04 03:10:08 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 230 tests, 6 stderr failures, 3 stdout failures ================= memcheck/tests/leakotron (stdout) memcheck/tests/oset_test (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == 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 == 230 tests, 7 stderr failures, 3 stdout failures ================= memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/oset_test (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Jan 4 03:17:23 2006 --- new.short Wed Jan 4 03:22:45 2006 *************** *** 8,12 **** ! == 230 tests, 7 stderr failures, 3 stdout failures ================= memcheck/tests/leakotron (stdout) - memcheck/tests/mempool (stderr) memcheck/tests/oset_test (stderr) --- 8,11 ---- ! == 230 tests, 6 stderr failures, 3 stdout failures ================= memcheck/tests/leakotron (stdout) memcheck/tests/oset_test (stderr) |
|
From: Tom H. <th...@cy...> - 2006-01-04 03:19:34
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2006-01-04 03:05:09 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 230 tests, 6 stderr failures, 2 stdout failures ================= memcheck/tests/oset_test (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/mremap2 (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <sv...@va...> - 2006-01-04 03:08:49
|
Author: sewardj
Date: 2006-01-04 03:08:16 +0000 (Wed, 04 Jan 2006)
New Revision: 5495
Log:
Do ppc32 tests on ppc64-capable platforms.
Modified:
trunk/tests/cputest.c
Modified: trunk/tests/cputest.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/tests/cputest.c 2006-01-04 02:55:03 UTC (rev 5494)
+++ trunk/tests/cputest.c 2006-01-04 03:08:16 UTC (rev 5495)
@@ -27,8 +27,7 @@
{
if ( strcmp( cpu, "ppc32" ) =3D=3D 0 )
return True;
- else=20
- return False;
+ return False;
}
#endif // __powerpc__ (32)
=20
@@ -37,8 +36,9 @@
{
if ( strcmp( cpu, "ppc64" ) =3D=3D 0 )
return True;
- else=20
- return False;
+ if ( strcmp( cpu, "ppc32" ) =3D=3D 0 )
+ return True;
+ return False;
}
#endif // __powerpc__ (64)
=20
|
|
From: <sv...@va...> - 2006-01-04 02:55:09
|
Author: sewardj Date: 2006-01-04 02:55:03 +0000 (Wed, 04 Jan 2006) New Revision: 5494 Log: amd64-linux adjustments as a followup to r5493. Modified: trunk/cachegrind/tests/amd64/Makefile.am trunk/memcheck/tests/amd64/Makefile.am trunk/none/tests/amd64/Makefile.am Modified: trunk/cachegrind/tests/amd64/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/cachegrind/tests/amd64/Makefile.am 2006-01-04 01:20:28 UTC (rev= 5493) +++ trunk/cachegrind/tests/amd64/Makefile.am 2006-01-04 02:55:03 UTC (rev= 5494) @@ -0,0 +1,3 @@ + +# if any tests appear here, remember to include @FLAG_M64@ in the +# compilation flags Modified: trunk/memcheck/tests/amd64/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/memcheck/tests/amd64/Makefile.am 2006-01-04 01:20:28 UTC (rev 5= 493) +++ trunk/memcheck/tests/amd64/Makefile.am 2006-01-04 02:55:03 UTC (rev 5= 494) @@ -14,4 +14,5 @@ =20 AM_CPPFLAGS =3D -I$(top_srcdir)/include AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/inc= lude + @FLAG_M64@ AM_CXXFLAGS =3D $(AM_CFLAGS) Modified: trunk/none/tests/amd64/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/none/tests/amd64/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493) +++ trunk/none/tests/amd64/Makefile.am 2006-01-04 02:55:03 UTC (rev 5494) @@ -19,6 +19,7 @@ faultstatus $(INSN_TESTS) looper jrcxz smc1 shrld =20 AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/inc= lude + @FLAG_M64@ AM_CXXFLAGS =3D $(AM_CFLAGS) =20 # generic C ones |
|
From: <sv...@va...> - 2006-01-04 01:20:53
|
Author: sewardj
Date: 2006-01-04 01:20:28 +0000 (Wed, 04 Jan 2006)
New Revision: 5493
Log:
Somewhat rehash the biarch-build machinery so as to (1) formalise the
distinction between primary and secondary build targets, and (2) make
it independent of the default behaviour of gcc (iow, what gcc does
when you specify neither -m32 nor -m64).
As a result, an out-of-the-box build on ppc64-linux now builds a
system which is basically for 64-bit PowerPC, but also has the ability
to run 32-bit ppc-linux binaries (exactly the same arrangement as you
get when building on amd64-linux).
There are various twists and turns. multiple-architectures.txt is
updated all the gory details.
This will break amd64 builds until such time as
<tool>/tests/{amd64,x86}/Makefile.am are fixed up (shortly).
Modified:
trunk/Makefile.flags.am
trunk/auxprogs/Makefile.am
trunk/cachegrind/tests/Makefile.am
trunk/cachegrind/tests/ppc32/Makefile.am
trunk/cachegrind/tests/ppc64/Makefile.am
trunk/configure.in
trunk/coregrind/Makefile.am
trunk/docs/internals/multiple-architectures.txt
trunk/helgrind/tests/Makefile.am
trunk/massif/hp2ps/Makefile.am
trunk/massif/tests/Makefile.am
trunk/memcheck/tests/Makefile.am
trunk/memcheck/tests/ppc32/Makefile.am
trunk/memcheck/tests/ppc64/Makefile.am
trunk/none/tests/Makefile.am
trunk/none/tests/ppc32/Makefile.am
trunk/none/tests/ppc64/Makefile.am
trunk/perf/Makefile.am
trunk/tests/Makefile.am
Modified: trunk/Makefile.flags.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/Makefile.flags.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/Makefile.flags.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -1,3 +1,5 @@
+
+# Baseline flags for all compilations
AM_CFLAGS_BASE =3D -O -g -Wmissing-prototypes -Winline -Wall -Wshadow \
-Wpointer-arith -Wstrict-prototypes -Wmissing-declarati=
ons
=20
@@ -3,21 +5,33 @@
AM_CFLAGS_PIC =3D -fpic -fno-omit-frame-pointer
=20
-AM_CPPFLAGS_X86_LINUX =3D $(add_includes_x86_linux)
-AM_CFLAGS_X86_LINUX =3D $(WERROR) @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ =
$(AM_CFLAGS_BASE)
-AM_CCASFLAGS_X86_LINUX =3D $(add_includes_x86_linux) @FLAG_M32@ -g
+# Flags for specific targets
+AM_FLAG_M3264_X86_LINUX =3D @FLAG_M32@
+AM_CPPFLAGS_X86_LINUX =3D $(add_includes_x86_linux)
+AM_CFLAGS_X86_LINUX =3D $(WERROR) @FLAG_M32@ @PREFERRED_STACK_BOUN=
DARY@ \
+ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_X86_LINUX =3D $(add_includes_x86_linux) @FLAG_M32@ -g
=20
-AM_CPPFLAGS_AMD64_LINUX =3D $(add_includes_amd64_linux)
-AM_CFLAGS_AMD64_LINUX =3D $(WERROR) -m64 -fomit-frame-pointer @PREFERRED=
_STACK_BOUNDARY@ $(AM_CFLAGS_BASE)
-AM_CCASFLAGS_AMD64_LINUX =3D $(add_includes_amd64_linux) -m64 -g
+AM_FLAG_M3264_AMD64_LINUX =3D @FLAG_M64@
+AM_CPPFLAGS_AMD64_LINUX =3D $(add_includes_amd64_linux)
+AM_CFLAGS_AMD64_LINUX =3D $(WERROR) @FLAG_M64@ -fomit-frame-pointer =
\
+ @PREFERRED_STACK_BOUNDARY@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_AMD64_LINUX =3D $(add_includes_amd64_linux) -m64 -g
=20
-AM_CPPFLAGS_PPC32_LINUX =3D $(add_includes_ppc32_linux)
-AM_CFLAGS_PPC32_LINUX =3D $(WERROR) @FLAG_M32@ $(AM_CFLAGS_BASE)
-AM_CCASFLAGS_PPC32_LINUX =3D $(add_includes_ppc32_linux) -Wa,-maltivec @=
FLAG_M32@ -g
+AM_FLAG_M3264_PPC32_LINUX =3D @FLAG_M32@
+AM_CPPFLAGS_PPC32_LINUX =3D $(add_includes_ppc32_linux)
+AM_CFLAGS_PPC32_LINUX =3D $(WERROR) @FLAG_M32@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC32_LINUX =3D $(add_includes_ppc32_linux) -Wa,-maltivec =
@FLAG_M32@ -g
=20
-AM_CPPFLAGS_PPC64_LINUX =3D $(add_includes_ppc64_linux)
-AM_CFLAGS_PPC64_LINUX =3D $(WERROR) -m64 $(AM_CFLAGS_BASE)
-AM_CCASFLAGS_PPC64_LINUX =3D $(add_includes_ppc64_linux) -Wa,-maltivec -=
m64 -g
+AM_FLAG_M3264_PPC64_LINUX =3D @FLAG_M64@
+AM_CPPFLAGS_PPC64_LINUX =3D $(add_includes_ppc64_linux)
+AM_CFLAGS_PPC64_LINUX =3D $(WERROR) @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64_LINUX =3D $(add_includes_ppc64_linux) -Wa,-maltivec =
-m64 -g
=20
-AM_CPPFLAGS =3D $(AM_CPPFLAGS_@VG_MAKE_PLATFORM@)
-AM_CFLAGS =3D $(AM_CFLAGS_@VG_MAKE_PLATFORM@)
-AM_CCASFLAGS =3D $(AM_CCASFLAGS_@VG_MAKE_PLATFORM@)
+# Flags for the primary target. These must be used to build the
+# regtests and performance tests. In fact, these must be used to
+# build anything which is built only once on a dual-arch build.
+#
+AM_FLAG_M3264_PRI =3D $(AM_FLAG_M3264_@VG_PLATFORM_PRI@)
+AM_CPPFLAGS_PRI =3D $(AM_CPPFLAGS_@VG_PLATFORM_PRI@)
+AM_CFLAGS_PRI =3D $(AM_CFLAGS_@VG_PLATFORM_PRI@)
+AM_CCASFLAGS_PRI =3D $(AM_CCASFLAGS_@VG_PLATFORM_PRI@)
Modified: trunk/auxprogs/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/auxprogs/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/auxprogs/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -8,5 +8,17 @@
=20
EXTRA_DIST =3D $(noinst_SCRIPTS)
=20
+
+#------------------------- listener -----------------------
+# Build valgrind_listener for the primary target only.
+#
valgrind_listener_SOURCES =3D valgrind-listener.c
=20
+valgrind_listener_CPPFLAGS =3D $(AM_CPPFLAGS_PRI)
+valgrind_listener_CFLAGS =3D $(AM_CFLAGS_PRI)
+valgrind_listener_CCASFLAGS =3D $(AM_CCASFLAGS_PRI)
+valgrind_listener_LDFLAGS =3D $(AM_CFLAGS_PRI)
+#
+#----------------------------------------------------------
+
+
Modified: trunk/cachegrind/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/cachegrind/tests/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/cachegrind/tests/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -1,3 +1,7 @@
+
+# For AM_FLAG_M3264_PRI
+include $(top_srcdir)/Makefile.flags.am
+
SUBDIRS =3D .
if VG_X86_LINUX
SUBDIRS +=3D x86
@@ -24,10 +28,10 @@
check_PROGRAMS =3D \
chdir clreq dlclose myprint.so
=20
-AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g
+AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI=
)
=20
# C ones
dlclose_LDADD =3D -ldl
myprint_so_SOURCES =3D myprint.c
-myprint_so_LDFLAGS =3D -shared -fPIC
-myprint_so_CFLAGS =3D -fPIC
+myprint_so_LDFLAGS =3D $(AM_FLAG_M3264_PRI) -shared -fPIC
+myprint_so_CFLAGS =3D $(AM_FLAG_M3264_PRI) -fPIC
Modified: trunk/cachegrind/tests/ppc32/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/cachegrind/tests/ppc32/Makefile.am 2006-01-03 18:08:38 UTC (rev=
5492)
+++ trunk/cachegrind/tests/ppc32/Makefile.am 2006-01-04 01:20:28 UTC (rev=
5493)
@@ -0,0 +1,3 @@
+
+# if any tests appear here, remember to include @FLAG_M32@ in the
+# compilation flags
Modified: trunk/cachegrind/tests/ppc64/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/cachegrind/tests/ppc64/Makefile.am 2006-01-03 18:08:38 UTC (rev=
5492)
+++ trunk/cachegrind/tests/ppc64/Makefile.am 2006-01-04 01:20:28 UTC (rev=
5493)
@@ -0,0 +1,3 @@
+
+# if any tests appear here, remember to include @FLAG_M64@ in the
+# compilation flags
Modified: trunk/configure.in
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/configure.in 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/configure.in 2006-01-04 01:20:28 UTC (rev 5493)
@@ -1,3 +1,12 @@
+
+##------------------------------------------------------------##
+#=20
+# The multiple-architecture stuff in this file is pretty
+# cryptic. Read docs/internals/multiple-architectures.txt
+# for at least a partial explanation of what is going on.
+#
+##------------------------------------------------------------##
+
# Process this file with autoconf to produce a configure script.
AC_INIT(Valgrind, 3.2.0.SVN, val...@li...)
AC_CONFIG_SRCDIR(coregrind/m_main.c)
@@ -73,12 +82,7 @@
AC_SUBST(ASFLAGS)
])
=20
-# This variable will collect the individual suppression files
-# depending on the results of autoconf
=20
-DEFAULT_SUPP=3D""
-
-
# We don't want gcc < 3.0
AC_MSG_CHECKING([for a supported version of gcc])
=20
@@ -209,48 +213,73 @@
;;
esac
=20
-AC_MSG_CHECKING([for a supported CPU/OS combination])
-AC_SUBST(VG_PLATFORM)
+# What's this used for?
AC_SUBST(VG_PLATFORM_ALL)
VG_PLATFORM_ALL=3D"amd64-linux ppc32-linux ppc64-linux x86-linux"
=20
-VG_PLATFORM=3D"$VG_ARCH-$VG_OS"
+# Establish VG_PLATFORM_PRI. This is the primary build target. The
+# entire system, including regression and performance tests, will be
+# built for this target. On 32-bit systems this is the only build
+# target.
+#
+# Now establish VG_PLATFORM_SEC, the secondary build target, if
+# possible. The system will also be built for this target, but not
+# the regression or performance tests. Also decide what -m32/-m64
+# flags are needed for the primary and secondary build targets.
+# XXXXXXXXXXXXX is this needed?
+#
+AC_MSG_CHECKING([for a supported CPU/OS combination])
=20
-case $VG_PLATFORM in
- x86-linux|amd64-linux|ppc32-linux|ppc64-linux)
- AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
- ;;
+AC_SUBST(VG_PLATFORM_PRI)
+AC_SUBST(VG_PLATFORM_SEC)
=20
- *)
- AC_MSG_RESULT([no (${host_cpu}-${host_os})])
- AC_MSG_ERROR([Valgrind is platform specific. Sorry. Please consi=
der doing a port.])
- ;;
-esac
-
-AM_CONDITIONAL(VG_X86_LINUX, test x$VG_PLATFORM =3D xx86-linux -o x$VG=
_PLATFORM =3D xamd64-linux)
-AM_CONDITIONAL(VG_AMD64_LINUX, test x$VG_PLATFORM =3D xamd64-linux)
-AM_CONDITIONAL(VG_PPC32_LINUX, test x$VG_PLATFORM =3D xppc32-linux -o x$=
VG_PLATFORM =3D xppc64-linux)
-AM_CONDITIONAL(VG_PPC64_LINUX, test x$VG_PLATFORM =3D xppc64-linux)
-
-AC_SUBST(VG_MAKE_PLATFORM)
-case $VG_PLATFORM in
+case "$VG_ARCH-$VG_OS" in
x86-linux)
- VG_MAKE_PLATFORM=3DX86_LINUX
+ VG_PLATFORM_PRI=3D"X86_LINUX"
+ VG_PLATFORM_SEC=3D""
+ AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
;;
amd64-linux)
- VG_MAKE_PLATFORM=3DAMD64_LINUX
+ VG_PLATFORM_PRI=3D"AMD64_LINUX"
+ VG_PLATFORM_SEC=3D"X86_LINUX"
+ AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
;;
- ppc32-linux|ppc64-linux)
- VG_MAKE_PLATFORM=3DPPC32_LINUX
+ ppc32-linux)
+ VG_PLATFORM_PRI=3D"PPC32_LINUX"
+ VG_PLATFORM_SEC=3D""
+ AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
;;
- *)
- AC_MSG_ERROR([VG_PLATFORM is not known -- configure script bug])
+ ppc64-linux)
+ VG_PLATFORM_PRI=3D"PPC64_LINUX"
+ VG_PLATFORM_SEC=3D"PPC32_LINUX"
+ AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
;;
+ *)
+ VG_PLATFORM_PRI=3D"unknown"
+ VG_PLATFORM_SEC=3D"unknown"
+ AC_MSG_RESULT([no (${host_cpu}-${host_os})])
+ AC_MSG_ERROR([Valgrind is platform specific. Sorry. Please consi=
der doing a port.])
+ ;;
esac
-##VG_MAKE_PLATFORM=3D`echo $VG_PLATFORM | tr [a-z-] [A-Z_]`
=20
+# Set up VG_<platform>. Either one or two of these become defined.
+#
+AM_CONDITIONAL(VG_X86_LINUX, =20
+ test x$VG_PLATFORM_PRI =3D xX86_LINUX -o x$VG_PLATFORM_PR=
I =3D xAMD64_LINUX)
+AM_CONDITIONAL(VG_AMD64_LINUX,=20
+ test x$VG_PLATFORM_PRI =3D xAMD64_LINUX)
+AM_CONDITIONAL(VG_PPC32_LINUX,=20
+ test x$VG_PLATFORM_PRI =3D xPPC32_LINUX -o x$VG_PLATFORM_=
PRI =3D xPPC64_LINUX)
+AM_CONDITIONAL(VG_PPC64_LINUX,=20
+ test x$VG_PLATFORM_PRI =3D xPPC64_LINUX)
+
+
+# This variable will collect the individual suppression files
+# depending on the results of autoconf
+DEFAULT_SUPP=3D""
AC_SUBST(DEFAULT_SUPP)
=20
+
glibc=3D""
=20
AC_EGREP_CPP([GLIBC_22], [
@@ -289,19 +318,19 @@
2.2)
AC_MSG_RESULT(2.2 family)
AC_DEFINE([GLIBC_2_2], 1, [Define to 1 if you're using glibc 2.2.x])
- DEFAULT_SUPP=3D"${DEFAULT_SUPP} glibc-2.2.supp"
+ DEFAULT_SUPP=3D"glibc-2.2.supp ${DEFAULT_SUPP}"
;;
=20
2.3)
AC_MSG_RESULT(2.3 family)
AC_DEFINE([GLIBC_2_3], 1, [Define to 1 if you're using glibc 2.3.x])
- DEFAULT_SUPP=3D"${DEFAULT_SUPP} glibc-2.3.supp"
+ DEFAULT_SUPP=3D"glibc-2.3.supp ${DEFAULT_SUPP}"
;;
=20
2.4)
AC_MSG_RESULT(2.4 family)
AC_DEFINE([GLIBC_2_4], 1, [Define to 1 if you're using glibc 2.4.x])
- DEFAULT_SUPP=3D"${DEFAULT_SUPP} glibc-2.4.supp"
+ DEFAULT_SUPP=3D"glibc-2.4.supp ${DEFAULT_SUPP}"
;;
=20
*)
@@ -317,8 +346,8 @@
# versions 3 and 4.
AC_PATH_X
if test "${no_x}" !=3D 'yes' ; then
- DEFAULT_SUPP=3D"${DEFAULT_SUPP} xfree-4.supp"
- DEFAULT_SUPP=3D"${DEFAULT_SUPP} xfree-3.supp"
+ DEFAULT_SUPP=3D"xfree-4.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP=3D"xfree-3.supp ${DEFAULT_SUPP}"
fi
=20
=20
@@ -343,6 +372,27 @@
AC_SUBST(FLAG_M32)
=20
=20
+# does this compiler support -m64 ?
+AC_MSG_CHECKING([if gcc accepts -m64])
+
+safe_CFLAGS=3D$CFLAGS
+CFLAGS=3D"-m64"
+
+AC_TRY_COMPILE(, [
+int main () { return 0 ; }
+],
+[
+FLAG_M64=3D"-m64"
+AC_MSG_RESULT([yes])
+], [
+FLAG_M64=3D""
+AC_MSG_RESULT([no])
+])
+CFLAGS=3D$safe_CFLAGS
+
+AC_SUBST(FLAG_M64)
+
+
# does this compiler support -mmmx ?
AC_MSG_CHECKING([if gcc accepts -mmmx])
=20
@@ -557,9 +607,10 @@
=20
cat<<EOF
=20
-Using the following suppressions by default:=20
+ Primary build target: ${VG_PLATFORM_PRI}
+ Secondary target: ${VG_PLATFORM_SEC}
+ Default supp files: ${DEFAULT_SUPP}
=20
- ${DEFAULT_SUPP}
EOF
=20
cat<<EOF > default.supp
Modified: trunk/coregrind/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/coregrind/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -30,9 +30,24 @@
noinst_LIBRARIES +=3D libcoregrind_ppc64_linux.a libreplacemalloc_toolpr=
eload_ppc64_linux.a
endif
=20
+#------------------------- launcher -----------------------
+# Build the launcher (valgrind) for the primary target only.
+#
bin_PROGRAMS =3D \
valgrind
=20
+valgrind_SOURCES =3D \
+ launcher.c \
+ m_debuglog.c
+
+valgrind_CPPFLAGS =3D $(AM_CPPFLAGS_PRI)
+valgrind_CFLAGS =3D $(AM_CFLAGS_PRI)
+valgrind_CCASFLAGS =3D $(AM_CCASFLAGS_PRI)
+valgrind_LDFLAGS =3D $(AM_CFLAGS_PRI)
+#
+#----------------------------------------------------------
+
+
noinst_PROGRAMS =3D
if VG_X86_LINUX
noinst_PROGRAMS +=3D vgpreload_core-x86-linux.so
@@ -114,9 +129,6 @@
BUILT_SOURCES =3D=20
CLEANFILES =3D=20
=20
-valgrind_SOURCES =3D \
- launcher.c \
- m_debuglog.c
=20
COREGRIND_SOURCES_COMMON =3D \
m_commandline.c \
Modified: trunk/docs/internals/multiple-architectures.txt
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/internals/multiple-architectures.txt 2006-01-03 18:08:38 U=
TC (rev 5492)
+++ trunk/docs/internals/multiple-architectures.txt 2006-01-04 01:20:28 U=
TC (rev 5493)
@@ -2,25 +2,63 @@
Guide to multiple architecture support
-------------------------------------------------------------------
=20
-Valgrind supports systems where binaries for more than one architecture
-can be run and will allow all sorts of binaries to be run under valgrind=
.
+What is achieved
+~~~~~~~~~~~~~~~~
+Valgrind supports systems where binaries for more than one
+architecture can be run. The current arrangements build:
=20
-To support this the valgrind build system can now build multiple version=
s
-of the coregrind library and the VEX library and then build and link mul=
tiple
-versions of each tool.
+- single-arch support on x86 and ppc32 systems
+- dual-arch support on amd64 and ppc64 systems
=20
-The configure script selects which architectures to build support for
-by defining a conditional for each platform that indicates whether or
-not support for that platform should be built. There are currently three
-such conditionals:
+To support this the valgrind build system can now build multiple
+versions of the coregrind library and of VEX, and then build and link
+multiple versions of each tool.
=20
+A central notion is that of 'primary' vs 'secondary' platforms. The
+system is built in its entirety for the primary platform, including
+performance and regression suites and all auxiliary programs. For
+dual-arch systems, the primary platform is amd64 and ppc64
+respectively.
+
+On dual-arch systems, there is a 'secondary' target - x86 and ppc32=20
+respectively. The tools are built again for the secondary target, and
+the 'valgrind' launcher program can handle executables for either the=20
+primary or secondary target. However, the regression and performance
+tests and everything else is not rebuilt for the secondary target.
+
+On single-arch systems, there is no secondary target.
+
+
+How the build system does that
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The keys to understanding this are in:
+
+- configure.in
+- Makefile.flags.am
+- <tool>/tests/Makefile.am
+- <tool>/tests/<arch>/Makefile.am
+- perf/Makefile.am
+
+The configure script inspects the CPU. It then sets
+
+ VG_PLATFORM_PRI to be the primary target
+ VG_PLATFORM_SEC to be the secondary target, if any
+
+(VG_PLATFORM_SEC is only used for printing an informational message at
+configure time).
+
+It also sets one (single-arch build) or two (dual-arch build) of
+the following:
+
VG_X86_LINUX
VG_AMD64_LINUX
VG_PPC32_LINUX
+ VG_PPC64_LINUX
=20
On an amd64 system both VG_X86_LINUX and VG_AMD64_LINUX will be true
-so that two versions of all the tools will be built. The coregrind
-libraries will be named:
+so that two versions of all the tools will be built. Similarly on a
+ppc64 system both VG_PPC32_LINUX and VG_PPC64_LINUX will be defined.
+For the amd64 example, the coregrind libraries will be named:
=20
libcoregrind_x86_linux.a
libcoregrind_amd64_linux.a
@@ -67,12 +105,61 @@
<prefix>/lib/valgrind/xfree-4.supp
<prefix>/lib/valgrind/glibc-2.2.supp
=20
-The launcher program (ie the valgrind binary itself) is always
-built as a native program (so a 64 bit program on amd64) but will
-peek at the program which it is being asked to run and decide which
-of the possible tools to run taking both the requested tool and the
-format of the program being run into account.
+The launcher program (ie the valgrind binary itself) is always built
+as a program for the primary target (so a 64 bit program on amd64 and
+ppc64) but will peek at the program which it is being asked to run and
+decide which of the possible tools to run taking both the requested
+tool and the format of the program being run into account.
=20
Because the execv system call is now routed back through the launcher
it is also possible to exec an x86 program from an amd64 program and
-vice versa.
+vice versa. Ditto ppc32 and ppc64.
+
+
+Rules for Makefile.am hacking
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In places where compilation should happen twice (on a dual-arch
+system), the decision about which directories and flags to use is
+guarded by the symbols:
+
+ VG_X86_LINUX
+ VG_AMD64_LINUX
+ VG_PPC32_LINUX
+ VG_PPC64_LINUX
+
+But there are also places where building must only happen once,
+for the primary architecture. These places are (at least):
+
+* the launcher, valgrind.c
+* all the architecture-independent regression tests
+* the performance tests
+* optionally, auxilary programs like hp2ps and valgrind-listener
+
+In order to do that, we need to know what flags to use to build for
+the primary target, and in particular whether to hand -m32 or -m64 to
+gcc. This is where Makefile.flags.am comes in.
+
+At the bottom of that file are defined AM_CPPFLAGS_PRI, AM_CFLAGS_PRI
+and AM_CCASFLAGS_PRI that must be used for compiling for the primary
+architecture. For example, look in coregrind/Makefile.am, and you
+will see these flag-sets being used to build the launcher (valgrind).
+
+Also at the bottom of Makefile.flags.am, AM_FLAG_M3264_PRI is defined.
+This gives the -m32/-m64 flag needed to build for the primary target.
+That flag is also contained within AM_CFLAGS_PRI -- AM_FLAG_M3264_PRI
+merely facilitates getting hold of it without the surrounding gunk.
+
+This leads to the final complication: building the regression tests.
+Most of them are architecture-neutral and so should be built for the
+primary target. The /test/ Makefile.am's duly include
+AM_FLAG_M3264_PRI in the compilation invokations, and you should
+ensure you preserve that when adding more tests.
+
+However, there are some arch-specific test directories (eg,
+none/tests/ppc32, etc). In each of these, we implicitly 'know'
+whether -m32 or -m64 is the right thing to specify. So instead of
+messing with AM_FLAG_M3264_PRI, these directories merely specific
+@FLAG_M32@ or @FLAG_M64@ directly. (These two symbols are also
+automagically set up by configure.in. Do not use -m32 and -m64
+directly - older compilers barf on them).
+
Modified: trunk/helgrind/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/helgrind/tests/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/helgrind/tests/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -1,3 +1,7 @@
+
+# For AM_FLAG_M3264_PRI
+include $(top_srcdir)/Makefile.flags.am
+
noinst_SCRIPTS =3D filter_stderr
=20
EXTRA_DIST =3D $(noinst_SCRIPTS) \
@@ -13,5 +17,5 @@
allok deadlock inherit race race2 readshared
=20
# force -gstabs, because we don't print symaddr for DWARF yet
-AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -gstabs
+AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -gstabs $(AM_FLAG_M3264_=
PRI)
LDADD =3D -lpthread
Modified: trunk/massif/hp2ps/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/massif/hp2ps/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/massif/hp2ps/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -1,4 +1,6 @@
+
include $(top_srcdir)/Makefile.all.am
+include $(top_srcdir)/Makefile.flags.am
=20
AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -O -g
=20
@@ -31,8 +33,14 @@
Scale.c \
Shade.c \
Utilities.c
-hp2ps_LDADD =3D -lm
=20
+# Build hp2ps for the primary target only.
+hp2ps_LDADD =3D -lm
+hp2ps_CPPFLAGS =3D $(AM_CPPFLAGS_PRI)
+hp2ps_CFLAGS =3D $(AM_CFLAGS_PRI)
+hp2ps_CCASFLAGS =3D $(AM_CCASFLAGS_PRI)
+hp2ps_LDFLAGS =3D $(AM_CFLAGS_PRI)
+
noinst_HEADERS =3D \
AreaBelow.h \
AuxFile.h \
Modified: trunk/massif/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/massif/tests/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/massif/tests/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -1,3 +1,7 @@
+
+# For AM_FLAG_M3264_PRI
+include $(top_srcdir)/Makefile.flags.am
+
noinst_SCRIPTS =3D filter_stderr
=20
EXTRA_DIST =3D $(noinst_SCRIPTS) \
@@ -6,7 +10,7 @@
true_html.stderr.exp true_html.vgtest \
true_text.stderr.exp true_text.vgtest
=20
-AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g=20
+AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI=
)
=20
check_PROGRAMS =3D \
basic_malloc
Modified: trunk/memcheck/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/memcheck/tests/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -1,3 +1,7 @@
+
+# For AM_FLAG_M3264_PRI
+include $(top_srcdir)/Makefile.flags.am
+
SUBDIRS =3D .
if VG_X86_LINUX
SUBDIRS +=3D x86
@@ -138,13 +142,16 @@
writev zeropage
=20
=20
-AM_CPPFLAGS =3D -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_srcdir)/=
coregrind -I$(top_builddir)/include -I@VEX_DIR@/pub
-AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g=20
+AM_CPPFLAGS =3D -I$(top_srcdir) -I$(top_srcdir)/include \
+ -I$(top_srcdir)/coregrind -I$(top_builddir)/include \
+ -I@VEX_DIR@/pub
+AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI=
)
AM_CXXFLAGS =3D $(AM_CFLAGS)
=20
# Extra stuff for C tests
-memcmptest_CFLAGS =3D $(AM_CFLAGS) -fno-builtin-memcmp
-oset_test_CFLAGS =3D -DVGA_$(VG_ARCH) -DVGO_$(VG_OS) -DVGP_$(VG_PLATFORM=
)
+memcmptest_CFLAGS =3D $(AM_FLAG_M3264_PRI) $(AM_CFLAGS) -fno-builtin-mem=
cmp
+oset_test_CFLAGS =3D $(AM_FLAG_M3264_PRI) \
+ -DVGA_$(VG_ARCH) -DVGO_$(VG_OS) -DVGP_$(VG_PLATFORM)
# Don't allow GCC to inline memcpy(), because then we can't intercept it
overlap_CFLAGS =3D $(AM_CFLAGS) -fno-builtin-memcpy
stack_switch_LDADD =3D -lpthread
Modified: trunk/memcheck/tests/ppc32/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/ppc32/Makefile.am 2006-01-03 18:08:38 UTC (rev 5=
492)
+++ trunk/memcheck/tests/ppc32/Makefile.am 2006-01-04 01:20:28 UTC (rev 5=
493)
@@ -0,0 +1,3 @@
+
+# if any tests appear here, remember to include @FLAG_M32@ in the
+# compilation flags
Modified: trunk/memcheck/tests/ppc64/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/ppc64/Makefile.am 2006-01-03 18:08:38 UTC (rev 5=
492)
+++ trunk/memcheck/tests/ppc64/Makefile.am 2006-01-04 01:20:28 UTC (rev 5=
493)
@@ -0,0 +1,3 @@
+
+# if any tests appear here, remember to include @FLAG_M64@ in the
+# compilation flags
Modified: trunk/none/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/none/tests/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -1,3 +1,7 @@
+
+# For AM_FLAG_M3264_PRI
+include $(top_srcdir)/Makefile.flags.am
+
SUBDIRS =3D .
if VG_X86_LINUX
SUBDIRS +=3D x86
@@ -145,12 +149,12 @@
tls tls.so tls2.so vgprintf \
coolo_sigaction gxx304
=20
-AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g
+AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI=
)
AM_CPPFLAGS =3D -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_builddir=
)/include
AM_CXXFLAGS =3D $(AM_CFLAGS)
=20
# Extra stuff for C tests
-ansi_CFLAGS =3D -ansi
+ansi_CFLAGS =3D $(AM_FLAG_M3264_PRI) -ansi
floored_LDADD =3D -lm
manythreads_LDADD =3D -lpthread
mq_LDADD =3D -lrt
@@ -180,7 +184,7 @@
tls_so_LDADD =3D tls2.so
tls_so_DEPENDENCIES =3D tls2.so
tls_so_LDFLAGS =3D -Wl,-rpath,$(top_builddir)/none/tests -shared -fPIC
-tls_so_CFLAGS =3D -fPIC
+tls_so_CFLAGS =3D $(AM_FLAG_M3264_PRI) -fPIC
tls2_so_SOURCES =3D tls2_so.c
tls2_so_LDFLAGS =3D -shared
=20
Modified: trunk/none/tests/ppc32/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/ppc32/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/none/tests/ppc32/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -11,8 +11,11 @@
check_PROGRAMS =3D \
lsw jm-insns testVMX
=20
-AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/inc=
lude
-AM_CXXFLAGS =3D $(AM_CFLAGS)
+AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/inc=
lude \
+ @FLAG_M32@
+AM_CXXFLAGS =3D $(AM_CFLAGS) @FLAG_M32@
=20
-jm_insns_CFLAGS =3D -Winline -Wall -O -mregnames -DHAS_ALTIVEC -maltivec=
=20
-testVMX_CFLAGS =3D -O -g -Wall -maltivec -mabi=3Daltivec -DALTIVEC -DGC=
C_COMPILER
+jm_insns_CFLAGS =3D -Winline -Wall -O -mregnames \
+ -DHAS_ALTIVEC -maltivec @FLAG_M32@
+testVMX_CFLAGS =3D -O -g -Wall -maltivec -mabi=3Daltivec -DALTIVEC \
+ -DGCC_COMPILER @FLAG_M32@
Modified: trunk/none/tests/ppc64/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/ppc64/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/none/tests/ppc64/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -9,8 +9,9 @@
check_PROGRAMS =3D \
jm-insns
=20
-AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/inc=
lude
-AM_CXXFLAGS =3D $(AM_CFLAGS)
+AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/inc=
lude \
+ @FLAG_M64@
+AM_CXXFLAGS =3D $(AM_CFLAGS) @FLAG_M64@
=20
-jm_insns_CFLAGS =3D -Winline -Wall -O -mregnames -DHAS_ALTIVEC -maltivec=
-m64=20
-jm_insns_LDFLAGS =3D -m64
+jm_insns_CFLAGS =3D -Winline -Wall -O -mregnames -DHAS_ALTIVEC -maltivec=
\
+ @FLAG_M64@
Modified: trunk/perf/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/perf/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/perf/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -1,4 +1,7 @@
=20
+# For AM_FLAG_M3264_PRI
+include $(top_srcdir)/Makefile.flags.am
+
noinst_SCRIPTS =3D vg_perf
=20
noinst_HEADERS =3D stdarg.h stddef.h
@@ -16,11 +19,11 @@
check_PROGRAMS =3D \
bigcode bz2 fbench ffbench heap sarp tinycc
=20
-AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -O
+AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -O $(AM_FLAG_M3264_=
PRI)
AM_CPPFLAGS =3D -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_builddir=
)/include
AM_CXXFLAGS =3D $(AM_CFLAGS)
=20
# Extra stuff
-fbench_CFLAGS =3D -g -O2
+fbench_CFLAGS =3D $(AM_FLAG_M3264_PRI) -g -O2
fbench_LDADD =3D=20
ffbench_LDADD =3D -lm
Modified: trunk/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/tests/Makefile.am 2006-01-03 18:08:38 UTC (rev 5492)
+++ trunk/tests/Makefile.am 2006-01-04 01:20:28 UTC (rev 5493)
@@ -1,4 +1,7 @@
=20
+# For AM_FLAG_M3264_PRI
+include $(top_srcdir)/Makefile.flags.am
+
noinst_SCRIPTS =3D \
vg_regtest \
filter_addresses \
@@ -16,7 +19,7 @@
toobig-allocs \
true
=20
-AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g
+AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI=
)
AM_CXXFLAGS =3D $(AM_CFLAGS)
=20
# generic C ones
|
|
From: <sv...@va...> - 2006-01-03 18:41:04
|
Author: sewardj
Date: 2006-01-03 18:41:00 +0000 (Tue, 03 Jan 2006)
New Revision: 1530
Log:
Fix magic-sequence spotting in 64-bit mode.
Modified:
trunk/priv/guest-ppc/toIR.c
Modified: trunk/priv/guest-ppc/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-ppc/toIR.c 2006-01-03 18:40:18 UTC (rev 1529)
+++ trunk/priv/guest-ppc/toIR.c 2006-01-03 18:41:00 UTC (rev 1530)
@@ -8361,11 +8361,39 @@
=20
/* Spot the client-request magic sequence. */
// Essentially a v. unlikely sequence of noops that we can catch
- {
+ if (mode64) {
+ /* Spot the magic sequence, 64-bit mode */
UChar* code =3D (UChar*)(&guest_code[delta]);
=20
/* Spot this: =20
0x7C03D808 tw 0,3,27 =3D> trap word if (0) =3D> no=
p
+ 0x7800E802 rotldi 0,0,61 =3D> ro =3D rotl(r0,61)
+ 0x78001800 rotldi 0,0,3 =3D> ro =3D rotl(r0,3)
+ 0x78006800 rotldi 0,0,13 =3D> ro =3D rotl(r0,13)
+ 0x78009802 rotldi 0,0,51 =3D> ro =3D rotl(r0,51)
+ 0x60000000 nop
+ */
+ if (getUIntBigendianly(code+ 0) =3D=3D 0x7C03D808 &&
+ getUIntBigendianly(code+ 4) =3D=3D 0x7800E802 &&
+ getUIntBigendianly(code+ 8) =3D=3D 0x78001800 &&
+ getUIntBigendianly(code+12) =3D=3D 0x78006800 &&
+ getUIntBigendianly(code+16) =3D=3D 0x78009802 &&
+ getUIntBigendianly(code+20) =3D=3D 0x60000000) {
+ DIP("%%r3 =3D client_request ( %%r31 )\n");
+ dres.len =3D 24;
+ delta +=3D 24;
+
+ irbb->next =3D mkSzImm( ty, guest_CIA_bbstart + delta );
+ irbb->jumpkind =3D Ijk_ClientReq;
+ dres.whatNext =3D Dis_StopHere;
+ goto decode_success;
+ }
+ } else {
+ /* Spot the magic sequence, 32-bit mode */
+ UChar* code =3D (UChar*)(&guest_code[delta]);
+
+ /* Spot this: =20
+ 0x7C03D808 tw 0,3,27 =3D> trap word if (0) =3D> no=
p
0x5400E800 rlwinm 0,0,29,0,0 =3D> r0 =3D rotl(r0,29)
0x54001800 rlwinm 0,0, 3,0,0 =3D> r0 =3D rotl(r0, 3)
0x54006800 rlwinm 0,0,13,0,0 =3D> r0 =3D rotl(r0,13)
|
|
From: <sv...@va...> - 2006-01-03 18:40:22
|
Author: sewardj
Date: 2006-01-03 18:40:18 +0000 (Tue, 03 Jan 2006)
New Revision: 1529
Log:
Add missing function.
Modified:
trunk/priv/guest-ppc/ghelpers.c
Modified: trunk/priv/guest-ppc/ghelpers.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-ppc/ghelpers.c 2006-01-02 15:15:45 UTC (rev 1528)
+++ trunk/priv/guest-ppc/ghelpers.c 2006-01-03 18:40:18 UTC (rev 1529)
@@ -306,6 +306,16 @@
vex_state->guest_XER_CA =3D toUChar((xer_native >> 29) & 0x1);
}
=20
+/* VISIBLE TO LIBVEX CLIENT */
+/* Note: %XER is 32 bits even for ppc64 */
+void LibVEX_GuestPPC64_put_XER ( UInt xer_native,
+ /*OUT*/VexGuestPPC64State* vex_state )
+{
+ vex_state->guest_XER_BC =3D toUChar(xer_native & 0xFF);
+ vex_state->guest_XER_SO =3D toUChar((xer_native >> 31) & 0x1);
+ vex_state->guest_XER_OV =3D toUChar((xer_native >> 30) & 0x1);
+ vex_state->guest_XER_CA =3D toUChar((xer_native >> 29) & 0x1);
+}
=20
/* VISIBLE TO LIBVEX CLIENT */
void LibVEX_GuestPPC32_initialise ( /*OUT*/VexGuestPPC32State* vex_state=
)
|
|
From: <sv...@va...> - 2006-01-03 18:08:48
|
Author: dirk
Date: 2006-01-03 18:08:38 +0000 (Tue, 03 Jan 2006)
New Revision: 5492
Log:
update suppression for Xorg 6.9.0
Modified:
branches/VALGRIND_3_1_BRANCH/xfree-4.supp
Modified: branches/VALGRIND_3_1_BRANCH/xfree-4.supp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/VALGRIND_3_1_BRANCH/xfree-4.supp 2006-01-03 18:04:32 UTC (re=
v 5491)
+++ branches/VALGRIND_3_1_BRANCH/xfree-4.supp 2006-01-03 18:08:38 UTC (re=
v 5492)
@@ -183,5 +183,16 @@
fun:_XSend
}
=20
+{
+ Xorg 6.9.0 writev uninit padding
+ Memcheck:Param
+ writev(vector[...])
+ fun:do_writev
+ fun:writev
+ obj:/usr/X11R6/lib*/libX11.so.6.2
+ fun:_X11TransWritev
+ fun:_XSend
+}
+
##----------------------------------------------------------------------=
##
=20
|