[virtualbox-ose] Build failure: global register variable

soralx at cydem.org soralx at cydem.org
Mon Sep 25 01:06:28 UTC 2017


> > Alternatively, one can try changing 'r14' to 'rbp' in definition
> > of "AREG0" for amd64 at src/recompiler/dyngen-exec.h:81. This is
> > the only place where gcc is needed, as clang cannot handle r14
> > for now [0].
> > 
> > I recompiled kBuild with clang, and succeeded compiling virtualbox-ose
> > with 'r14' to 'rbp' change. It seems to work normally, but I don't
> > know what are the performance implications of using up rbp.
> > 
> > [0] clang/lib/Basic/Targets/X86.h:
> >   860   bool validateGlobalRegisterVariable(StringRef RegName,
> > unsigned RegSize, 861                                       bool
> > &HasSizeMismatch) const override { 862     // rsp and rbp are the
> > only 64-bit registers the x86 backend can currently 863     // handle.
> >   864     if (RegName.equals("rsp") || RegName.equals("rbp")) {
> >   865       // Check that the register size is 64-bit.
> >   866       HasSizeMismatch = RegSize != 64;
> >   867       return true;
> >   868     }  
> 
> Please try the attached patch.

Thanks for the patch! I gave it a quick try (not an extensive test),
and VirtualBox, compiled fully with clang, seems to work as usual.

> Jung-uk Kim

-- 
[SorAlx]  ridin' VN2000 Classic LT


More information about the freebsd-emulation mailing list