List of Solaris gcc compilers which fail compiling QEMU

 Updated December 21, 2007

Solaris gcc-3.4.3, x86, from S10U2

64-bit compiles work, 32-bit compiles on 32-bit hosts work, 32-bit compiles on 64-bit hosts do not work

Nevada is listed below

gcc -v


Reading specs from /usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3/specs
Configured with: /builds/sfw10-gate/usr/src/cmd/gcc/gcc-3.4.3/configure ~--prefix=/usr/sfw 
  ~--with-as=/usr/sfw/bin/gas ~--with-gnu-as ~--with-ld=/usr/ccs/bin/ld
  ~--without-gnu-ld ~--enable-languages=c,c++ ~--enable-shared
Thread model: posix
gcc version 3.4.3 (csl-sol210-3_4-branch+sol_rpath)

Error from compiling 32-bit QEMU on a Solaris 64-bit host


gcc -Wall -O2 -g -fno-strict-aliasing -fomit-frame-pointer -I. -I.. 
  -I/export-1/bent/src/qemu/051807/qemu/target-i386
  -I/export-1/bent/src/qemu/051807/qemu -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
  -D_LARGEFILE_SOURCE -I/export-1/bent/src/qemu/051807/qemu/fpu -DHAS_AUDIO
  -DHAS_AUDIO_CHOICE -I/export-1/bent/src/qemu/051807/qemu/slirp    
  -c -o cpu-exec.o /export-1/bent/src/qemu/051807/qemu/cpu-exec.c
/export-1/bent/src/qemu/051807/qemu/cpu-exec.c: In function `cpu_x86_exec':
/export-1/bent/src/qemu/051807/qemu/cpu-exec.c:822: error: bp cannot be used in asm here
gmake[1]: *** [cpu-exec.o] Error 1
gmake[1]: Leaving directory `/export-1/bent/src/qemu/051807/qemu/i386-softmmu'
gmake: *** [subdir-i386-softmmu] Error 2

Analysis

None yet

Solaris gcc-3.4.3, x86, from Solaris/Nevada

32-bit compiles on 32-bit hosts work, 32-bit compiles on 64-bit hosts work, 64-bit compiles work, but fail on mips-softmmu

Updated December 21, 2007 - gcc-3.4.3 on Nevada for 64-bit will fail on mips-softmmu.
disable that target by removing any mips targets using the --target-list="" like:

./configure --target-list="i386-softmmu,x86_64-softmmu"

gcc -v


Reading specs from /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/specs 
Configured with: /builds2/sfwnv-gate/usr/src/cmd/gcc/gcc-3.4.3/configure 
  ~--prefix=/usr/sfw ~--with-as=/usr/sfw/bin/gas ~--with-gnu-as 
  ~--with-ld=/usr/ccs/bin/ld ~--without-gnu-ld 
  ~--enable-languages=c,c++,f77,objc ~--enable-shared 
Thread model: posix 
gcc version 3.4.3 (csl-sol210-3_4-20050802) 

Error from compiling 64-bit QEMU mips-softmmu on a Solaris 64-bit host


gcc -Wall -O2 -g -fno-strict-aliasing  -fno-reorder-blocks  -fno-gcse
   -fno-optimize-sibling-calls  -fno-crossjumping  -fno-align-labels
   -fno-align-jumps  -fno-align-functions   -m64  -I. -I.. 
   -I/export/var/develop/qemu/test/qemu/target-mips 
   -I/export/var/develop/qemu/test/qemu -MMD -MP -DNEED_CPU_H -D_GNU_SOURCE 
   -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
   -I/export/var/develop/qemu/test/qemu/fpu  -DHAS_AUDIO 
   -I/export/var/develop/qemu/test/qemu/slirp -c -o op.o /export/var/develop/qemu/test/qemu/target-mips/op.c
/export/var/develop/qemu/test/qemu/target-mips/op.c: In function `op_goto_tb0':
/export/var/develop/qemu/test/qemu/target-mips/op.c:916: warning: cast to pointer from integer of different size
/export/var/develop/qemu/test/qemu/target-mips/op.c: In function `op_goto_tb1':
/export/var/develop/qemu/test/qemu/target-mips/op.c:922: warning: cast to pointer from integer of different size
/export/var/develop/qemu/test/qemu/target-mips/op_mem.c: In function `op_lwl_raw':
/export/var/develop/qemu/test/qemu/target-mips/op_mem.c:110: internal compiler error: Segmentation Fault
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.
gmake[1]: *** [op.o] Error 1
gmake[1]: Leaving directory `/export/var/develop/qemu/test/qemu/mips-softmmu'
gmake: *** [subdir-mips-softmmu] Error 2 

Analysis

None yet

Blastwave gcc-3.4.5, x86

32-bit compiles work, 64-bit compiles do not work

gcc -v


Reading specs from /opt/csw/gcc3/lib/gcc/i386-pc-solaris2.8/3.4.5/specs
Configured with: ../sources/gcc-3.4.5/configure ~--prefix=/opt/csw/gcc3 ~--with-local-prefix=/opt/csw 
  ~--with-gnu-as  ~--with-as=/opt/csw/bin/gas ~--without-gnu-ld ~--with-ld=/usr/ccs/bin/ld 
  ~--enable-threads=posix ~--enable-shared ~--enable-multilib ~--enable-nls ~--with-included-gettext 
  ~--with-libiconv-prefix=/opt/csw ~--with-x  ~--enable-java-awt=xlib ~--enable-languages=all
Thread model: posix
gcc version 3.4.5

Error from compiling 64-bit QEMU on a Solaris 64-bit host


gcc -m64 -DQEMU_TOOL -Wall -O2 -g -fno-strict-aliasing -I. -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
  -g  -o qemu-img qemu-img.c cutils.c block.c block-raw.c block-cow.c block-qcow.c aes.c block-vmdk.c 
  block-cloop.c block-dmg.c block-bochs.c block-vpc.c block-vvfat.c block-qcow2.c -lz  -lrt
qemu-img.c:1: sorry, unimplemented: 64-bit mode not compiled in

Analysis

Blastwave gcc-3.4.5 not configured to compile 64-bit

Sunfreeware gcc-3.4.6, x86, 32-bit only, 64-bit mode not enabled

gcc -v


Reading specs from /usr/local/lib/gcc/i386-pc-solaris2.10/3.4.6/specs
Configured with: ../configure ~--with-as=/usr/ccs/bin/as ~--with-ld=/usr/ccs/bin/ld 
  ~--enable-shared ~--enable-languages=c,c++,f77
Thread model: posix
gcc version 3.4.6

Error from compiling 32-bit QEMU on an Solaris 64-bit host


Assembler: apic.c
        "/var/tmp//ccDghpdc.s", line 182 : Illegal mnemonic
        Near line: "    bsr %edx, %eax"
        "/var/tmp//ccDghpdc.s", line 182 : Syntax error
        Near line: "    bsr %edx, %eax"
        "/var/tmp//ccDghpdc.s", line 650 : Illegal mnemonic
        Near line: "    bsf %edx, %eax"
        "/var/tmp//ccDghpdc.s", line 650 : Syntax error
        Near line: "    bsf %edx, %eax"
gmake[1]: *** [apic.o] Error 1
gmake[1]: Leaving directory `/export-1/bent/src/qemu/051807/qemu/i386-softmmu'
gmake: *** [subdir-i386-softmmu] Error 2

Analysis

Most likely due to using Solaris' native as, as opposed to /usr/sfw/bin/gas, and not configured to compile 64-bit.

last modified by admin on 2009/10/26 12:17
Collectives
Project


© Sun Microsystems Inc. 2009
XWiki Enterprise 1.8.2.19075 - Documentation
Terms Of Use | Privacy | Trademarks | Copyright Policy | Site Guidelines | Site map | Help
Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.