[vbox-dev] (no subject)

Frank Mehnert Frank.Mehnert at Sun.COM
Thu Feb 5 03:43:02 PST 2009


Eric,

the error below is a result of a gcc-4.3 bug. It happens that the compiler
runs out of registers although older versions of gcc compile this code
fine. Unfortunately, gcc-4.3 has some other optimizations which requires
to change assembler code which was compiling fine for previous versions.

As a hack, edit the file include/iprt/asm.h and search for 403. You
should fine three hits. Changing '>= 403' to  '> 403' should make the
code compile again. The resulting code is probably not correct but it
concerns testcases only (execute tstInlineASM -- this will succeed and
tstInlineAsmPIC and tstInlineASMPIC3 -- these two will fail).

Kind regards,

Frank

On Thursday 05 February 2009, evt at texelsoft.com wrote:
> I get the following error trying to build with BUILD_TYPE=debug. Has anyone
> seen this? I updated from svn late yesterday. Thanks.
>
> - Eric van Tassell
>
>
> kBuild: Compiling tstInlineAsmPIC3 -
> /home/evt/wrk/vbx/vbox/src/VBox/Runtime/testcase/tstInlineAsm.cpp
> /home/evt/wrk/vbx/vbox/include/iprt/asm.h: In function ‘bool
> ASMAtomicCmpXchgU64(volatile uint64_t*, uint64_t, uint64_t)’:
> /home/evt/wrk/vbx/vbox/include/iprt/asm.h:2899: error: can't find a
> register in class ‘GENERAL_REGS’ while reloading ‘asm’
> /home/evt/wrk/vbx/vbox/include/iprt/asm.h:2899: error: ‘asm’ operand
> has impossible constraints kmk[2]: ***
> [/home/evt/wrk/vbx/vbox/out/linux.x86/debug/obj/tstInlineAsmPIC/tstInlineAs
>m.o] Error 1 The failing command:
> @g++ -c -g -g -pipe -pedantic -Wall -Wextra -Wno-missing-field-initializers
> -Wno-unused -Wno-trigraphs -Wno-long-long -Wno-variadic-macros -march=i586
> -O0 -fno-omit-frame-pointer -fno-strict-aliasing
> -fvisibility-inlines-hidden -fvisibility=hidden
> -DVBOX_HAVE_VISIBILITY_HIDDEN -DRT_USE_VISIBILITY_DEFAULT -fPIC -m32
> -I/home/evt/wrk/vbx/vbox/include
> -I/home/evt/wrk/vbx/vbox/out/linux.x86/debug -DVBOX -DVBOX_OSE
> -DVBOX_WITH_64_BITS_GUESTS -DDEBUG -DDEBUG_evt -DDEBUG_USERNAME=evt
> -DRT_OS_LINUX -D_FILE_OFFSET_BITS=64 -DRT_ARCH_X86 -D__X86__ -DIN_RING3
> -DHC_ARCH_BITS=32 -DGC_ARCH_BITS=64 -DPIC -Wp,
> -MD,/home/evt/wrk/vbx/vbox/out/linux.x86/debug/obj/tstInlineAsmPIC/tstInlin
>eAsm.o.dep
> -Wp,-MT,/home/evt/wrk/vbx/vbox/out/linux.x86/debug/obj/tstInlineAsmPIC/tstI
>nlineAsm.o -Wp,-MP -o
> /home/evt/wrk/vbx/vbox/out/linux.x86/debug/obj/tstInlineAsmPIC/tstInlineAsm
>.o /home/evt/wrk/vbx/vbox/src/VBox/Runtime/testcase/tstInlineAsm.cpp



-- 
Dr.-Ing. Frank Mehnert    Sun Microsystems    http://www.sun.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://www.virtualbox.org/pipermail/vbox-dev/attachments/20090205/822735b2/attachment-0001.bin 


More information about the vbox-dev mailing list