* [Qemu-devel] sparc-user build error
@ 2004-10-10 17:04 Magnus Damm
2004-10-10 17:47 ` Fabrice Bellard
2004-10-10 17:50 ` Johannes Schindelin
0 siblings, 2 replies; 4+ messages in thread
From: Magnus Damm @ 2004-10-10 17:04 UTC (permalink / raw)
To: qemu-devel
Hello,
I'm unable to build sparc-user on my powerpc box. I use gcc-3.4.1 from
Gentoo stable ppc, and I'm building the CVS version of QEMU.
make[1]: Entering directory
`/home/damm/build/qemu/cvs/src/qemu/sparc-user'
gcc -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -I.
-I/home/damm/build/qemu/cvs/src/qemu/target-sparc
-I/home/damm/build/qemu/cvs/src/qemu
-I/home/damm/build/qemu/cvs/src/qemu/linux-user
-I/home/damm/build/qemu/cvs/src/qemu/linux-user/sparc -D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-I/home/damm/build/qemu/cvs/src/qemu/slirp -c -o exec.o
/home/damm/build/qemu/cvs/src/qemu/exec.c
gcc -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -I.
-I/home/damm/build/qemu/cvs/src/qemu/target-sparc
-I/home/damm/build/qemu/cvs/src/qemu
-I/home/damm/build/qemu/cvs/src/qemu/linux-user
-I/home/damm/build/qemu/cvs/src/qemu/linux-user/sparc -D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-I/home/damm/build/qemu/cvs/src/qemu/slirp -c -o translate-all.o
/home/damm/build/qemu/cvs/src/qemu/translate-all.c
In file included from
/home/damm/build/qemu/cvs/src/qemu/translate-all.c:41:
./op.h: In function `dyngen_code':
./op.h:4783: error: parse error before ')' token
./op.h:4784: error: parse error before ')' token
./op.h:4799: error: parse error before ')' token
./op.h:4800: error: parse error before ')' token
make[1]: *** [translate-all.o] Error 1
It seems to me that "op_fitos" and "op_fitod" in "target-sparc/op.c"
gets converted to wierd code in "sparc-user/op.h" by dyngen:
op.c:
void OPPROTO op_fitos(void)
{
FT0 = (float) *((int32_t *)&FT1);
}
op.h:
case INDEX_op_fitos: {
extern void op_fitos();
memcpy(gen_code_ptr, (void *)((char *)&op_fitos+0), 56);
*(uint16_t *)(gen_code_ptr + 18) = ((long)(&) + 0 + 0x8000) >> 16;
*(uint16_t *)(gen_code_ptr + 26) = ((long)(&) + 0);
gen_code_ptr += 56;
}
break;
The same goes for "op_fitod". Look at the "(long)(&)", any ideas?
/ magnus
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] sparc-user build error
2004-10-10 17:04 [Qemu-devel] sparc-user build error Magnus Damm
@ 2004-10-10 17:47 ` Fabrice Bellard
2004-10-10 18:35 ` Magnus Damm
2004-10-10 17:50 ` Johannes Schindelin
1 sibling, 1 reply; 4+ messages in thread
From: Fabrice Bellard @ 2004-10-10 17:47 UTC (permalink / raw)
To: qemu-devel
It should work now.
Fabrice.
Magnus Damm wrote:
> Hello,
>
> I'm unable to build sparc-user on my powerpc box. I use gcc-3.4.1 from
> Gentoo stable ppc, and I'm building the CVS version of QEMU.
>
> make[1]: Entering directory
> `/home/damm/build/qemu/cvs/src/qemu/sparc-user'
> gcc -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -I.
> -I/home/damm/build/qemu/cvs/src/qemu/target-sparc
> -I/home/damm/build/qemu/cvs/src/qemu
> -I/home/damm/build/qemu/cvs/src/qemu/linux-user
> -I/home/damm/build/qemu/cvs/src/qemu/linux-user/sparc -D_GNU_SOURCE
> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
> -I/home/damm/build/qemu/cvs/src/qemu/slirp -c -o exec.o
> /home/damm/build/qemu/cvs/src/qemu/exec.c
> gcc -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -I.
> -I/home/damm/build/qemu/cvs/src/qemu/target-sparc
> -I/home/damm/build/qemu/cvs/src/qemu
> -I/home/damm/build/qemu/cvs/src/qemu/linux-user
> -I/home/damm/build/qemu/cvs/src/qemu/linux-user/sparc -D_GNU_SOURCE
> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
> -I/home/damm/build/qemu/cvs/src/qemu/slirp -c -o translate-all.o
> /home/damm/build/qemu/cvs/src/qemu/translate-all.c
> In file included from
> /home/damm/build/qemu/cvs/src/qemu/translate-all.c:41:
> ./op.h: In function `dyngen_code':
> ./op.h:4783: error: parse error before ')' token
> ./op.h:4784: error: parse error before ')' token
> ./op.h:4799: error: parse error before ')' token
> ./op.h:4800: error: parse error before ')' token
> make[1]: *** [translate-all.o] Error 1
>
> It seems to me that "op_fitos" and "op_fitod" in "target-sparc/op.c"
> gets converted to wierd code in "sparc-user/op.h" by dyngen:
>
> op.c:
>
> void OPPROTO op_fitos(void)
> {
> FT0 = (float) *((int32_t *)&FT1);
> }
>
> op.h:
>
> case INDEX_op_fitos: {
> extern void op_fitos();
> memcpy(gen_code_ptr, (void *)((char *)&op_fitos+0), 56);
> *(uint16_t *)(gen_code_ptr + 18) = ((long)(&) + 0 + 0x8000) >> 16;
> *(uint16_t *)(gen_code_ptr + 26) = ((long)(&) + 0);
> gen_code_ptr += 56;
> }
> break;
>
> The same goes for "op_fitod". Look at the "(long)(&)", any ideas?
>
> / magnus
>
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] sparc-user build error
2004-10-10 17:04 [Qemu-devel] sparc-user build error Magnus Damm
2004-10-10 17:47 ` Fabrice Bellard
@ 2004-10-10 17:50 ` Johannes Schindelin
1 sibling, 0 replies; 4+ messages in thread
From: Johannes Schindelin @ 2004-10-10 17:50 UTC (permalink / raw)
To: qemu-devel
Hi,
On Sun, 10 Oct 2004, Magnus Damm wrote:
> I'm unable to build sparc-user on my powerpc box. I use gcc-3.4.1 from
> Gentoo stable ppc, and I'm building the CVS version of QEMU.
>
> [...]
>
> op.h:
>
> case INDEX_op_fitos: {
> extern void op_fitos();
> memcpy(gen_code_ptr, (void *)((char *)&op_fitos+0), 56);
> *(uint16_t *)(gen_code_ptr + 18) = ((long)(&) + 0 + 0x8000) >> 16;
> *(uint16_t *)(gen_code_ptr + 26) = ((long)(&) + 0);
> gen_code_ptr += 56;
> }
> break;
>
> The same goes for "op_fitod". Look at the "(long)(&)", any ideas?
It's a similar problem to
http://lists.gnu.org/archive/html/qemu-devel/2004-10/msg00092.html
You are building on i386, right? Then try to add the lines
if (strstart(sym_name, "__op_param", &p)) {
snprintf(name, sizeof(name), "param%s", p);
+ } else if(sym_name[0]==0) {
+ continue;
} else {
snprintf(name, sizeof(name), "(long)(&%s)",
sym_name);
}
in dyngen.c at line 1643 (the two lines to be added are the ones with a
'+' at the left).
A bone for general discussion: How many reasons can you think of to patch
relocations other than "__op_param*" and "__op_jump*"?
Ciao,
Dscho
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] sparc-user build error
2004-10-10 17:47 ` Fabrice Bellard
@ 2004-10-10 18:35 ` Magnus Damm
0 siblings, 0 replies; 4+ messages in thread
From: Magnus Damm @ 2004-10-10 18:35 UTC (permalink / raw)
To: qemu-devel
Much better, thanks!
/ magnus
On Sun, 2004-10-10 at 19:47, Fabrice Bellard wrote:
> It should work now.
>
> Fabrice.
>
> Magnus Damm wrote:
> > Hello,
> >
> > I'm unable to build sparc-user on my powerpc box. I use gcc-3.4.1 from
> > Gentoo stable ppc, and I'm building the CVS version of QEMU.
> >
> > make[1]: Entering directory
> > `/home/damm/build/qemu/cvs/src/qemu/sparc-user'
> > gcc -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -I.
> > -I/home/damm/build/qemu/cvs/src/qemu/target-sparc
> > -I/home/damm/build/qemu/cvs/src/qemu
> > -I/home/damm/build/qemu/cvs/src/qemu/linux-user
> > -I/home/damm/build/qemu/cvs/src/qemu/linux-user/sparc -D_GNU_SOURCE
> > -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
> > -I/home/damm/build/qemu/cvs/src/qemu/slirp -c -o exec.o
> > /home/damm/build/qemu/cvs/src/qemu/exec.c
> > gcc -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -I.
> > -I/home/damm/build/qemu/cvs/src/qemu/target-sparc
> > -I/home/damm/build/qemu/cvs/src/qemu
> > -I/home/damm/build/qemu/cvs/src/qemu/linux-user
> > -I/home/damm/build/qemu/cvs/src/qemu/linux-user/sparc -D_GNU_SOURCE
> > -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
> > -I/home/damm/build/qemu/cvs/src/qemu/slirp -c -o translate-all.o
> > /home/damm/build/qemu/cvs/src/qemu/translate-all.c
> > In file included from
> > /home/damm/build/qemu/cvs/src/qemu/translate-all.c:41:
> > ./op.h: In function `dyngen_code':
> > ./op.h:4783: error: parse error before ')' token
> > ./op.h:4784: error: parse error before ')' token
> > ./op.h:4799: error: parse error before ')' token
> > ./op.h:4800: error: parse error before ')' token
> > make[1]: *** [translate-all.o] Error 1
> >
> > It seems to me that "op_fitos" and "op_fitod" in "target-sparc/op.c"
> > gets converted to wierd code in "sparc-user/op.h" by dyngen:
> >
> > op.c:
> >
> > void OPPROTO op_fitos(void)
> > {
> > FT0 = (float) *((int32_t *)&FT1);
> > }
> >
> > op.h:
> >
> > case INDEX_op_fitos: {
> > extern void op_fitos();
> > memcpy(gen_code_ptr, (void *)((char *)&op_fitos+0), 56);
> > *(uint16_t *)(gen_code_ptr + 18) = ((long)(&) + 0 + 0x8000) >> 16;
> > *(uint16_t *)(gen_code_ptr + 26) = ((long)(&) + 0);
> > gen_code_ptr += 56;
> > }
> > break;
> >
> > The same goes for "op_fitod". Look at the "(long)(&)", any ideas?
> >
> > / magnus
> >
> >
> >
> > _______________________________________________
> > Qemu-devel mailing list
> > Qemu-devel@nongnu.org
> > http://lists.nongnu.org/mailman/listinfo/qemu-devel
> >
> >
>
>
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-10-10 18:35 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-10 17:04 [Qemu-devel] sparc-user build error Magnus Damm
2004-10-10 17:47 ` Fabrice Bellard
2004-10-10 18:35 ` Magnus Damm
2004-10-10 17:50 ` Johannes Schindelin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).