Can't compile VirtualBox OSE on gentoo-hardened-amd64

Discussions related to using the OSE version of VirtualBox.
Post Reply
mikb
Posts: 3
Joined: 2. Jul 2009, 21:50
Primary OS: Other
VBox Version: OSE self-compiled
Guest OSses: Windows, Linux

Can't compile VirtualBox OSE on gentoo-hardened-amd64

Post by mikb »

I can't get OSE to build on my hardened Gentoo system (amd64). I've actually had this problem with every version since about 2.1.4. I'm using gcc 4.3. Here's the error I see from trying 3.0.0:

Code: Select all

  CXX     RuntimeR0 - {C}/src/VBox/Runtime/common/checksum/crc32.cpp                                                                                                                                
/var/tmp/portage/app-emulation/virtualbox-ose-3.0.0/work/VirtualBox-3.0.0_OSE/src/VBox/Runtime/common/checksum/crc32.cpp:1: error: code model kernel does not support PIC mode                      
/var/tmp/portage/app-emulation/virtualbox-ose-3.0.0/work/VirtualBox-3.0.0_OSE/src/VBox/Runtime/common/checksum/crc32.cpp:1: error: code model 'kernel' not supported in the 64 bit mode             
kmk[2]: *** [/var/tmp/portage/app-emulation/virtualbox-ose-3.0.0/work/VirtualBox-3.0.0_OSE/out/linux.amd64/release/obj/RuntimeR0/common/checksum/crc32.o] Error 1                                   
The failing command:                                                                                                                                                                                
@x86_64-pc-linux-gnu-g++ -c -O2 -nostdinc -g -pipe -pedantic -Wall -Wextra -Wno-missing-field-initializers -Wno-unused -Wno-trigraphs -Wno-long-long -Wno-variadic-macros -fno-rtti -fno-exceptions -O2 -mtune=generic -fno-omit-frame-pointer -fno-strict-aliasing -fno-stack-protector -fvisibility-inlines-hidden -fvisibility=hidden -DVBOX_HAVE_VISIBILITY_HIDDEN -DRT_USE_VISIBILITY_DEFAULT -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables -I/var/tmp/portage/app-emulation/virtualbox-ose-3.0.0/work/VirtualBox-3.0.0_OSE/src/VBox/Runtime/include -I/var/tmp/portage/app-emulation/virtualbox-ose-3.0.0/work/VirtualBox-3.0.0_OSE/include/iprt/nocrt -I/var/tmp/portage/app-emulation/virtualbox-ose-3.0.0/work/VirtualBox-3.0.0_OSE/include -I/var/tmp/portage/app-emulation/virtualbox-ose-3.0.0/work/VirtualBox-3.0.0_OSE/out/linux.amd64/release -DVBOX -DVBOX_OSE -DVBOX_WITH_64_BITS_GUESTS -DVBOX_WITH_HARDENING -DRTPATH_APP_PRIVATE=\"/usr/share/virtualbox-ose\" -DRTPATH_APP_PRIVATE_ARCH=\"/usr/lib64/virtualbox-ose\" -DRTPATH_SHARED_LIBS=\"/usr/lib64/virtualbox-ose\" -DRTPATH_APP_DOCS=\"\" -DRT_OS_LINUX -D_FILE_OFFSET_BITS=64 -DRT_ARCH_AMD64 -D__AMD64__ -DIN_RING0 -DIN_RING0_AGNOSTIC -DIPRT_NO_CRT -DRT_WITH_NOCRT_ALIASES -DHC_ARCH_BITS=64 -DGC_ARCH_BITS=64 -DIN_RT_R0 -DRT_WITH_VBOX -Wp,-MD,/var/tmp/portage/app-emulation/virtualbox-ose-3.0.0/work/VirtualBox-3.0.0_OSE/out/linux.amd64/release/obj/RuntimeR0/common/checksum/crc32.o.dep -Wp,-MT,/var/tmp/portage/app-emulation/virtualbox-ose-3.0.0/work/VirtualBox-3.0.0_OSE/out/linux.amd64/release/obj/RuntimeR0/common/checksum/crc32.o -Wp,-MP -o /var/tmp/portage/app-emulation/virtualbox-ose-3.0.0/work/VirtualBox-3.0.0_OSE/out/linux.amd64/release/obj/RuntimeR0/common/checksum/crc32.o /var/tmp/portage/app-emulation/virtualbox-ose-3.0.0/work/VirtualBox-3.0.0_OSE/src/VBox/Runtime/common/checksum/crc32.cpp                                                        
The problem appears to be that gcc is implicitly building PIC, but the kernel model (needed for the RING0 code) doesn't support relocation? Any one familiar enough with Gcc to know how to override this?

Any help would be appreciated.
frank
Oracle Corporation
Posts: 3362
Joined: 7. Jun 2007, 09:11
Primary OS: Debian Sid
VBox Version: PUEL
Guest OSses: Linux, Windows
Location: Dresden, Germany
Contact:

Re: Can't compile VirtualBox OSE on gentoo-hardened-amd64

Post by frank »

Well, the Gentoo bug mentions that you can compile the code with -fno-PIC.
Post Reply