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.