1f7fd647da
Some functions in the time manager, for example 'TMTimerSet()' and 'TMTimerStop()' let VirtualBox abort with a failed assertion if the timer does not change to a 'stable' state after 1000 calls of a mixture of 'yield' and 'sleep'. On Genode, this happens sometimes when the 'EMT' thread is executing 'TMTimerSet()' and gets interrupted by the 'TAP' thread, which calls 'TMTimerStop()' and waits for the 'EMT' thread to finish setting the timer. Since the 'EMT' thread has the lowest priority, 1000 retries can be too few. Without the assertion, these functions would return an error code, which is often ignored by the caller, so it seems safer to keep retrying until the function can return successfully. Fixes #1437
100 lines
5.0 KiB
Plaintext
100 lines
5.0 KiB
Plaintext
LICENSE := GPLv2
|
|
VERSION := 4.3.16
|
|
DOWNLOADS := virtualbox.archive
|
|
|
|
VIRTUALBOX_TBZ2 := VirtualBox-$(VERSION).tar.bz2
|
|
|
|
URL(virtualbox) := http://download.virtualbox.org/virtualbox/$(VERSION)/$(VIRTUALBOX_TBZ2)
|
|
DIR(virtualbox) := src/app/virtualbox
|
|
SHA(virtualbox) := e4c23b713e8715b8e0172fa066f2197756e901fe
|
|
|
|
PATCHES_LIST := acpi_drv dev_e1000 eminternal fake_pci_vendor iconv mouse
|
|
PATCHES_LIST += pdm_driver poke sharedfolder_pagelist
|
|
PATCHES_LIST += time-log-deadlock tm_retries vbox_inc vbox_main network
|
|
PATCHES_LIST += vga_fb vga_vbva vmdk vmmdev avoid_yield serial rem_irq usb
|
|
|
|
PATCHES := $(addsuffix .patch, $(PATCHES_LIST))
|
|
PATCHES := $(addprefix src/virtualbox/patches/, $(PATCHES))
|
|
|
|
$(call check_tool,xsltproc)
|
|
|
|
VBOX_MAIN_GLUE := AutoLock EventQueue string xpcom/helpers
|
|
|
|
VBOX_MAIN_ALL := DisplayResampleImage DisplayUtils EventImpl Global HashedPw
|
|
VBOX_MAIN_ALL += PCIDeviceAttachmentImpl ProgressImpl SharedFolderImpl
|
|
VBOX_MAIN_ALL += VirtualBoxBase
|
|
|
|
VBOX_MAIN_CLI := AdditionsFacilityImpl ConsoleImpl2 DisplayImpl HGCM HGCMThread
|
|
VBOX_MAIN_CLI += HGCMObjects
|
|
VBOX_MAIN_CLI += KeyboardImpl SessionImpl VMMDevInterface BusAssignmentManager
|
|
VBOX_MAIN_CLI += ConsoleImpl GuestImpl MouseImpl VBoxDriversRegister
|
|
|
|
VBOX_MAIN_SRV := AudioAdapterImpl DHCPServerImpl MediumAttachmentImpl
|
|
VBOX_MAIN_SRV += NATEngineImpl SerialPortImpl
|
|
VBOX_MAIN_SRV += BandwidthControlImpl GuestOSTypeImpl MediumFormatImpl
|
|
VBOX_MAIN_SRV += NetworkAdapterImpl SnapshotImpl
|
|
VBOX_MAIN_SRV += BandwidthGroupImpl MachineImplCloneVM MediumImpl
|
|
VBOX_MAIN_SRV += NetworkServiceRunner StorageControllerImpl VirtualBoxImpl
|
|
VBOX_MAIN_SRV += BIOSSettingsImpl MachineImpl MediumLock ParallelPortImpl
|
|
VBOX_MAIN_SRV += SystemPropertiesImpl VRDEServerImpl TokenImpl
|
|
VBOX_MAIN_SRV += USBControllerImpl USBDeviceFilterImpl USBDeviceFiltersImpl
|
|
|
|
VBOX_MAIN_INC := AdditionsFacilityImpl AudioAdapterImpl AudioSnifferInterface
|
|
VBOX_MAIN_INC += AutoCaller AutostartDb AutoStateDep BandwidthControlImpl
|
|
VBOX_MAIN_INC += BandwidthGroupImpl BIOSSettingsImpl BusAssignmentManager Nvram
|
|
VBOX_MAIN_INC += ConsoleEvents ConsoleImpl DHCPServerImpl DisplayImpl HostImpl
|
|
VBOX_MAIN_INC += DisplayUtils EventImpl FramebufferImpl Global
|
|
VBOX_MAIN_INC += GuestCtrlImplPrivate GuestDirectoryImpl GuestDnDImpl Logging
|
|
VBOX_MAIN_INC += GuestFileImpl GuestFsObjInfoImpl GuestImpl GuestOSTypeImpl
|
|
VBOX_MAIN_INC += GuestSessionImpl HashedPw KeyboardImpl MachineImplCloneVM
|
|
VBOX_MAIN_INC += HGCM HGCMThread HGCMObjects
|
|
VBOX_MAIN_INC += MachineImpl MediumAttachmentImpl MediumFormatImpl MediumImpl
|
|
VBOX_MAIN_INC += MediumLock MouseImpl NATEngineImpl NATNetworkImpl objectslist
|
|
VBOX_MAIN_INC += NetworkAdapterImpl NetworkServiceRunner ParallelPortImpl
|
|
VBOX_MAIN_INC += PCIDeviceAttachmentImpl Performance ProgressImpl SnapshotImpl
|
|
VBOX_MAIN_INC += ProgressProxyImpl SerialPortImpl SessionImpl SharedFolderImpl
|
|
VBOX_MAIN_INC += StorageControllerImpl SystemPropertiesImpl TokenImpl VMMDev
|
|
VBOX_MAIN_INC += USBControllerImpl USBDeviceFilterImpl USBDeviceFiltersImpl
|
|
VBOX_MAIN_INC += USBProxyService VirtualBoxImpl VRDEServerImpl GuestProcessImpl
|
|
VBOX_MAIN_INC += USBDeviceImpl HostUSBDeviceImpl Matching
|
|
|
|
VBOX_SRC_VBOX := VMM Devices Runtime GuestHost/HGSMI Storage Disassembler
|
|
VBOX_SRC_VBOX += HostServices/SharedFolders Main/xml/Settings.cpp
|
|
VBOX_SRC_VBOX += Main/xml/VirtualBox-settings.xsd Main/xml/SchemaDefs.xsl
|
|
VBOX_SRC_VBOX += $(addsuffix .h, $(addprefix Main/include/, $(VBOX_MAIN_INC)))
|
|
VBOX_SRC_VBOX += $(addsuffix .cpp, $(addprefix Main/src-client/, $(VBOX_MAIN_CLI)))
|
|
VBOX_SRC_VBOX += $(addsuffix .cpp, $(addprefix Main/src-server/, $(VBOX_MAIN_SRV)))
|
|
VBOX_SRC_VBOX += $(addsuffix .cpp, $(addprefix Main/src-all/, $(VBOX_MAIN_ALL)))
|
|
VBOX_SRC_VBOX += $(addsuffix .cpp, $(addprefix Main/glue/, $(VBOX_MAIN_GLUE)))
|
|
|
|
VBOX_INC += types.h cdefs.h hgcmsvc.h err.h dis.h disopcode.h log.h sup.h pci.h
|
|
VBOX_INC += param.h ostypes.h VMMDev.h VMMDev2.h vusb.h dbg.h version.h HGSMI
|
|
VBOX_INC += VBoxVideo.h Hardware bioslogo.h scsi.h shflsvc.h VBoxGuest2.h vd.h
|
|
VBOX_INC += vd-plugin.h vd-ifs.h vd-ifs-internal.h vd-image-backend.h
|
|
VBOX_INC += vd-cache-backend.h vd-filter-backend.h msi.h asmdefs.mac err.mac
|
|
VBOX_INC += VBoxVideoHost3D.h VBoxVideo3D.h settings.h VBoxAuth.h
|
|
VBOX_INC += usb.h usbfilter.h
|
|
|
|
VBOX_INC_COM := array.h assert.h AutoLock.h ErrorInfo.h EventQueue.h Guid.h
|
|
VBOX_INC_COM += list.h MultiResult.h string.h
|
|
|
|
VBOX_CONTENT += $(addprefix src/VBox/, $(VBOX_SRC_VBOX))
|
|
VBOX_CONTENT += $(addprefix include/VBox/, $(VBOX_INC))
|
|
VBOX_CONTENT += $(addprefix include/VBox/com/, $(VBOX_INC_COM))
|
|
|
|
VBOX_CONTENT += src/libs/zlib-1.2.6 src/libs/liblzf-3.4 src/libs/libxml2-2.6.31
|
|
VBOX_CONTENT += src/recompiler include/VBox/vmm include/iprt Config.kmk
|
|
|
|
|
|
TAR_OPT(virtualbox) := \
|
|
--strip-components 1 \
|
|
$(addprefix $(VIRTUALBOX_TBZ2:.tar.bz2=)/,$(VBOX_CONTENT))
|
|
|
|
|
|
default : additional_steps
|
|
additional_steps : $(DOWNLOADS)
|
|
xsltproc --stringparam mode declare \
|
|
-o src/app/virtualbox/src/VBox/Main/xml/SchemaDefs.h \
|
|
src/app/virtualbox/src/VBox/Main/xml/SchemaDefs.xsl \
|
|
src/app/virtualbox/src/VBox/Main/xml/VirtualBox-settings.xsd
|