From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Cni9u-0001PL-W1 for qemu-devel@nongnu.org; Sun, 09 Jan 2005 13:51:27 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Cni7G-0000fb-KQ for qemu-devel@nongnu.org; Sun, 09 Jan 2005 13:48:53 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Cni7E-0000c9-N0 for qemu-devel@nongnu.org; Sun, 09 Jan 2005 13:48:40 -0500 Received: from [64.233.184.203] (helo=wproxy.gmail.com) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CnhrL-0005qP-7y for qemu-devel@nongnu.org; Sun, 09 Jan 2005 13:32:15 -0500 Received: by wproxy.gmail.com with SMTP id 40so609059wri for ; Sun, 09 Jan 2005 10:32:14 -0800 (PST) Message-ID: Date: Sun, 9 Jan 2005 19:32:14 +0100 From: Magnus Damm Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] powerpc host trouble Reply-To: Magnus Damm , qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org 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 : 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