|
From: | C.W. Betts |
Subject: | Re: [Qemu-devel] build failure on x86, any suggestions? |
Date: | Wed, 19 Mar 2008 14:36:44 -0600 |
User-agent: | KMail/1.9.6 (enterprise 20070904.708012) |
On Sunday 16 March 2008 10:20:30 am Blue Swirl wrote: > On 3/16/08, Peter Volkov <address@hidden> wrote: > > В Вск, 16/03/2008 в 00:01 -0600, C.W. Betts пишет: > > > Try setting the compiler flags to use -march=pentium-mmx . That is the > > > max > > > > > > setting for -march that qemu compiles on. also, make sure that the > > > compiler isn't sending any of the -msse functions. > > > > > > I tried to build qemu using -msse -march=pentium3 and it spat out the > > > same thing. > > > > Well with -march=pentium-mmx it works, although it occurs that > > $ export CFLAGS="-march=pentium-mmx" > > is not enough. I have to path CFLAGS to make with > > $ emake OS_CFLAGS="${CFLAGS}" > > CFLAGS are prefixed at the beginning of the compilation command ands > > seems that -g -O2 which will go later redefine something which in turn > > cause the build to fail and OS_CFLAGS passes -march after -g -O2. > > > > Also strange thing is that if I try to disable all sse thing in compiler > > appending -mno-sse{,2,3} -mfpmath=387 qemu does not builds. Either I > > miss something or sse is not the only problem. > > > > Two patches suggested here by Alexander and Blue did no difference here. > > Please try this patch and if it fails, report also the compiler error > message. > > I'm trying to find the range of instructions that need to be converted > to TCG helpers. Okay, the patch makes op.c and translate.c compile. I did have a problem with trying to get the makefile to compile op.c with the additional flags, but I worked around it. However, now the helper.c file spits out: gcc-3.4 -fomit-frame-pointer -I. -I.. -I/home/test/makestuff/qemu-patched/target-i386 -I/home/test/makestuff/qemu-patched -MMD -MP -DNEED_CPU_H -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/test/makestuff/qemu-patched/tcg -I/home/test/makestuff/qemu-patched/tcg/i386 -I/home/test/makestuff/qemu-patched/fpu -DHAS_AUDIO -DHAS_AUDIO_CHOICE -I/home/test/makestuff/qemu-patched/slirp -mfpmath=sse -march=pentium3 -msse -Wall -O2 -g -fno-strict-aliasing -mfpmath=sse -march=pentium3 -msse -m32 -c -o helper.o /home/test/makestuff/qemu-patched/target-i386/helper.c /home/test/makestuff/qemu-patched/target-i386/helper.c: In function `svm_check_intercept_param': /home/test/makestuff/qemu-patched/target-i386/helper.c:4375: error: unable to find a register to spill in class `GENERAL_REGS' /home/test/makestuff/qemu-patched/target-i386/helper.c:4375: error: this is the insn: (insn:HI 353 352 354 39 /home/test/makestuff/qemu-patched/target-i386/helper.c:4368 (parallel [ (set (reg:DI 167 [ <variable>.intercept ]) (lshiftrt:DI (reg:DI 167 [ <variable>.intercept ]) (subreg:QI (reg:SI 166) 0))) (clobber (scratch:SI)) (clobber (reg:CC 17 flags)) ]) 309 {lshrdi3_1} (insn_list 351 (insn_list 352 (nil))) (expr_list:REG_DEAD (reg:SI 166) (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_UNUSED (scratch:SI) (nil))))) /home/test/makestuff/qemu-patched/target-i386/helper.c:4375: confused by earlier errors, bailing out make: *** [helper.o] Error 1 This is only on the i386 target. When I compile the x86_64 target, it works just fine. |
signature.asc
Description: This is a digitally signed message part.
[Prev in Thread] | Current Thread | [Next in Thread] |