From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DmAFy-0007x3-2S for qemu-devel@nongnu.org; Sat, 25 Jun 2005 08:59:34 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DmAFo-0007rb-Sy for qemu-devel@nongnu.org; Sat, 25 Jun 2005 08:59:25 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DmAFm-0007q9-24 for qemu-devel@nongnu.org; Sat, 25 Jun 2005 08:59:22 -0400 Received: from [195.130.132.56] (helo=adicia.telenet-ops.be) by monty-python.gnu.org with esmtp (Exim 4.34) id 1DmAB5-0001ZZ-EY for qemu-devel@nongnu.org; Sat, 25 Jun 2005 08:54:31 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by adicia.telenet-ops.be (Postfix) with SMTP id 85B3144229 for ; Sat, 25 Jun 2005 14:50:37 +0200 (MEST) Received: from [192.168.1.2] (d51A51CF1.access.telenet.be [81.165.28.241]) by adicia.telenet-ops.be (Postfix) with ESMTP id 6630544225 for ; Sat, 25 Jun 2005 14:50:37 +0200 (MEST) From: Bob Deblier Content-Type: text/plain Date: Sat, 25 Jun 2005 14:50:45 +0200 Message-Id: <1119703845.2902.10.camel@orion> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Regression compiling sparc-user on x86_64 host Reply-To: 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 In October last year I reported a problem compiling qemu-sparc on FC3 x86_64, for which a fix was then found. Trying to recompile the latest CVS version on FC4 x86_64 (with compat-gcc-32), I find that the code in dyngen.c has been overhauled, but that compilation fails at: make[1]: Entering directory `/home/bob/cvs/qemu/sparc-user' gcc32 -Wall -O2 -g -fno-strict-aliasing -I. -I/home/bob/cvs/qemu/target-sparc -I/home/bob/cvs/qemu -I/home/bob/cvs/qemu/linux-user -I/home/bob/cvs/qemu/linux-user/sparc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/bob/cvs/qemu/fpu -I/home/bob/cvs/qemu/slirp -c -o translate-op.o /home/bob/cvs/qemu/translate-op.c In file included from /home/bob/cvs/qemu/translate-op.c:36: op.h: In function `dyngen_code': op.h:4631: syntax error before '.' token op.h:4633: syntax error before '.' token make[1]: *** [translate-op.o] Error 1 The code from op.h: case INDEX_op_fnegs: { extern void op_fnegs(); extern char .LC96; memcpy(gen_code_ptr, (void *)((char *)&op_fnegs+0), 31); *(uint32_t *)(gen_code_ptr + 10) = (long)(&.LC96) - (long)(gen_code_ptr + 10) + -4; gen_code_ptr += 31; } break; Unfortunately this time, looking at the relevant section in dyngen.c, I find at line 1593: #if defined(HOST_SPARC) if (sym_name[0] == '.') { fprintf(outfile, "extern char __dot_%s __asm__(\"%s\");\n", sym_name+1, sym_name); continue; } #endif Extending this to #if defined(HOST_SPARC) || defined(HOST_X86_64) produces another error, and none of my attempts to fix this seems to work. It looks like a working symbol generation in dyngen.c was replaced by code which regresses to incorrect behavior on x86_64. Can anyone with more experience please suggest a fix? Sincerely, Bob Deblier