From: Magnus Damm <magnus.damm@gmail.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] powerpc host trouble
Date: Sun, 9 Jan 2005 19:32:14 +0100 [thread overview]
Message-ID: <aec7e5c30501091032389aeb53@mail.gmail.com> (raw)
Hello,
I've spent some time today trying to fix powerpc host support. I run
Linux on my powerpc box and it is not possible for me to compile the
code:
gcc -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -I.
-I/home/damm/build/qemu/cvs/src/qemu/target-i386
-I/home/damm/build/qemu/cvs/src/qemu -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:5911: warning: built-in function 'lrint' declared as non-function
./op.h:5933: warning: built-in function 'llrint' declared as non-function
./op.h:8665: warning: built-in function 'sqrt' declared as non-function
./op.h:8798: error: parse error before ')' token
./op.h:8799: error: parse error before ')' token
./op.h:8814: error: parse error before ')' token
./op.h:8815: error: parse error before ')' token
./op.h:8830: error: parse error before ')' token
./op.h:8831: error: parse error before ')' token
./op.h:8846: error: parse error before ')' token
./op.h:8847: error: parse error before ')' token
./op.h:8859: error: parse error before ')' token
./op.h:8860: error: parse error before ')' token
./op.h:8872: error: parse error before ')' token
./op.h:8873: error: parse error before ')' token
make[1]: *** [translate-all.o] Error 1
make[1]: Leaving directory `/home/damm/build/qemu/cvs/src/qemu/i386-softmmu'
make: *** [all] Error 1
Looking at op.h shows me the following:
case INDEX_op_cvtdq2ps: {
long param1, param2;
extern void op_cvtdq2ps();
memcpy(gen_code_ptr, (void *)((char *)&op_cvtdq2ps+0), 176);
param1 = *opparam_ptr++;
param2 = *opparam_ptr++;
*(uint16_t *)(gen_code_ptr + 2) = (param2 + 0 + 0x8000) >> 16;
*(uint16_t *)(gen_code_ptr + 10) = (param2 + 0);
*(uint16_t *)(gen_code_ptr + 22) = ((long)(&) + 56 + 0x8000) >> 16;
*(uint16_t *)(gen_code_ptr + 30) = ((long)(&) + 56);
*(uint16_t *)(gen_code_ptr + 50) = (param1 + 0 + 0x8000) >> 16;
*(uint16_t *)(gen_code_ptr + 58) = (param1 + 0);
gen_code_ptr += 176;
}
break;
The two lines with ((long)(&) are the first two problematic ones: 8798, 8799.
Objdumping op.o shows me:
00011fcc <op_cvtdq2ps>:
11fcc: 3d 20 00 00 lis r9,0
11fd0: 94 21 ff f0 stwu r1,-16(r1)
11fd4: 39 29 00 00 addi r9,r9,0
11fd8: 3d 40 43 30 lis r10,17200
11fdc: 7d 1b 4a 14 add r8,r27,r9
11fe0: 3d 20 00 00 lis r9,0
11fe4: 80 08 00 0c lwz r0,12(r8)
11fe8: 39 29 00 38 addi r9,r9,56
11fec: 91 41 00 08 stw r10,8(r1)
11ff0: 6c 00 80 00 xoris r0,r0,32768
11ff4: c9 a9 00 00 lfd f13,0(r9)
[snip]
Above is 0x11fe2 and 0x11fea the two problematic addresses.
"readelf -a op.o" shows me the following info:
[snip]
00011fe2 00003f06 R_PPC_ADDR16_HA 00000000 .rodata.cst8 + 38
00011fea 00003f04 R_PPC_ADDR16_LO 00000000 .rodata.cst8 + 38
[snip]
This looks to me that the code wants to access data from the
".rodata.cst8" section. But I do not know how to proceed. Any ideas?
/ magnus
reply other threads:[~2005-01-09 18:51 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aec7e5c30501091032389aeb53@mail.gmail.com \
--to=magnus.damm@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).