aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2014-03-29 07:35:31 +0800
committerJung-uk Kim <jkim@FreeBSD.org>2014-03-29 07:35:31 +0800
commit5470a075ae2d397bc76901eac95732f987ef93a2 (patch)
tree6dc3fbdd44cfda15522541dbca53afb4772b18d8
parent7924b2f93748f4de30ebbba67bc2883b7e687abd (diff)
downloadfreebsd-ports-gnome-5470a075ae2d397bc76901eac95732f987ef93a2.tar.gz
freebsd-ports-gnome-5470a075ae2d397bc76901eac95732f987ef93a2.tar.zst
freebsd-ports-gnome-5470a075ae2d397bc76901eac95732f987ef93a2.zip
- Update to 4.3.10.
- Build with base C/C++ compiler, i.e., clang on 10.0+, as much as we can to remove GCC run-time dependency and to reduce possible C++ ABI conflicts.
-rw-r--r--emulators/virtualbox-ose-additions/Makefile20
-rw-r--r--emulators/virtualbox-ose-additions/distinfo4
-rw-r--r--emulators/virtualbox-ose-additions/pkg-plist1
-rw-r--r--emulators/virtualbox-ose-kmod/Makefile3
-rw-r--r--emulators/virtualbox-ose-kmod/distinfo4
-rw-r--r--emulators/virtualbox-ose-kmod/pkg-plist1
-rw-r--r--emulators/virtualbox-ose/Makefile22
-rw-r--r--emulators/virtualbox-ose/distinfo8
-rw-r--r--emulators/virtualbox-ose/files/extrapatch-Config.kmk22
-rw-r--r--emulators/virtualbox-ose/files/extrapatch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk11
-rw-r--r--emulators/virtualbox-ose/files/extrapatch-src-VBox-Additions-x11-vboxvideo-Makefile.kmk12
-rw-r--r--emulators/virtualbox-ose/files/extrapatch-src-VBox-Devices-PC-ipxe-Makefile.kmk11
-rw-r--r--emulators/virtualbox-ose/files/extrapatch-src-recompiler-Makefile.kmk10
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile10
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Additions-freebsd-Makefile19
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Devices-PC-DrvACPI.cpp29
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Devices-Storage-DevAHCI.cpp11
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Main-src-client-ConsoleImpl2.cpp36
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-MachineImpl.cpp47
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp11
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-freebsd-HostHardwareFreeBSD.cpp15
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-NetworkServices-NAT-VBoxNetLwipNAT.cpp11
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Runtime-Makefile.kmk2
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Runtime-common-misc-uri.cpp14
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r3-freebsd-fileaio-freebsd.cpp11
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r3-freebsd-mp-freebsd.cpp29
26 files changed, 307 insertions, 67 deletions
diff --git a/emulators/virtualbox-ose-additions/Makefile b/emulators/virtualbox-ose-additions/Makefile
index e7e28ec02d2e..2b7e2b8bc683 100644
--- a/emulators/virtualbox-ose-additions/Makefile
+++ b/emulators/virtualbox-ose-additions/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= virtualbox-ose
-DISTVERSION= 4.3.8
-PORTREVISION= 1
+DISTVERSION= 4.3.10
CATEGORIES= emulators
MASTER_SITES= http://download.virtualbox.org/virtualbox/${DISTVERSION}/ \
http://tmp.chruetertee.ch/ \
@@ -24,8 +23,7 @@ UNIQUENAME= ${PORTNAME}${PKGNAMESUFFIX}
PATCHDIR= ${.CURDIR}/../${PORTNAME}/files
WRKSRC= ${WRKDIR}/VirtualBox-${PORTVERSION}
USE_RC_SUBR= vboxguest vboxservice
-USES= iconv kmod tar:bzip2
-USE_GCC= any
+USES= compiler:features iconv kmod tar:bzip2
ONLY_FOR_ARCHS= i386 amd64
USE_PYTHON_BUILD= yes
MAKE_JOBS_UNSAFE= yes
@@ -93,6 +91,14 @@ XSERVER_ABI:= ${XSERVER_VER:S/.//:R}
.include <bsd.port.pre.mk>
+.if ${COMPILER_TYPE} == clang
+EXTRA_PATCHES= ${PATCHDIR}/extrapatch-Config.kmk \
+ ${PATCHDIR}/extrapatch-src-VBox-Additions-x11-vboxvideo-Makefile.kmk
+.if ${COMPILER_FEATURES:Mlibc++}
+EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk
+.endif
+.endif
+
pre-everything::
.if ${ARCH} == "amd64"
.if !exists(/usr/lib32/libc.so)
@@ -105,6 +111,12 @@ pre-everything::
post-patch:
@${ECHO} 'VBOX_ONLY_ADDITIONS = 1' > ${WRKSRC}/LocalConfig.kmk
@${ECHO} 'VBOX_WITH_X11_ADDITIONS = ${VBOX_WITH_X11}' >> ${WRKSRC}/LocalConfig.kmk
+.if ${COMPILER_TYPE} == clang
+ @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \
+ -e 's| -fno-merge-constants||' \
+ -e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk
+ @${ECHO} 'VBOX_GCC_Wno-unused-parameter = -Wno-unused-parameter' >> ${WRKSRC}/LocalConfig.kmk
+.endif
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/Config.kmk \
${WRKSRC}/configure \
diff --git a/emulators/virtualbox-ose-additions/distinfo b/emulators/virtualbox-ose-additions/distinfo
index 3ccbbdbc199b..92ceaf76cc8e 100644
--- a/emulators/virtualbox-ose-additions/distinfo
+++ b/emulators/virtualbox-ose-additions/distinfo
@@ -1,2 +1,2 @@
-SHA256 (VirtualBox-4.3.8.tar.bz2) = ffabd8735bdc80753cec29d01b499769f41e083f37a3f58b3055f19d3b1b9641
-SIZE (VirtualBox-4.3.8.tar.bz2) = 90224116
+SHA256 (VirtualBox-4.3.10.tar.bz2) = 739835aee3274a663b23eeb748bd0430e8a5d8ba2f4d0eae5dc47ff2c485e23b
+SIZE (VirtualBox-4.3.10.tar.bz2) = 90333712
diff --git a/emulators/virtualbox-ose-additions/pkg-plist b/emulators/virtualbox-ose-additions/pkg-plist
index 84a993167952..6c9a75c6bc64 100644
--- a/emulators/virtualbox-ose-additions/pkg-plist
+++ b/emulators/virtualbox-ose-additions/pkg-plist
@@ -1,4 +1,3 @@
-@comment $FreeBSD: ports/emulators/virtualbox-ose-additions/pkg-plist,v 1.6 2012/11/17 05:57:24 svnexp Exp $
%%X11%%bin/VBoxClient
%%X11%%bin/VBoxClient-all
%%X11%%etc/xdg/autostart/vboxclient.desktop
diff --git a/emulators/virtualbox-ose-kmod/Makefile b/emulators/virtualbox-ose-kmod/Makefile
index 464ff700b8f2..c17fb9d13e57 100644
--- a/emulators/virtualbox-ose-kmod/Makefile
+++ b/emulators/virtualbox-ose-kmod/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= virtualbox-ose
-DISTVERSION= 4.3.8
-PORTREVISION= 1
+DISTVERSION= 4.3.10
CATEGORIES= emulators
MASTER_SITES= http://download.virtualbox.org/virtualbox/${DISTVERSION}/ \
http://tmp.chruetertee.ch/ \
diff --git a/emulators/virtualbox-ose-kmod/distinfo b/emulators/virtualbox-ose-kmod/distinfo
index 3ccbbdbc199b..92ceaf76cc8e 100644
--- a/emulators/virtualbox-ose-kmod/distinfo
+++ b/emulators/virtualbox-ose-kmod/distinfo
@@ -1,2 +1,2 @@
-SHA256 (VirtualBox-4.3.8.tar.bz2) = ffabd8735bdc80753cec29d01b499769f41e083f37a3f58b3055f19d3b1b9641
-SIZE (VirtualBox-4.3.8.tar.bz2) = 90224116
+SHA256 (VirtualBox-4.3.10.tar.bz2) = 739835aee3274a663b23eeb748bd0430e8a5d8ba2f4d0eae5dc47ff2c485e23b
+SIZE (VirtualBox-4.3.10.tar.bz2) = 90333712
diff --git a/emulators/virtualbox-ose-kmod/pkg-plist b/emulators/virtualbox-ose-kmod/pkg-plist
index 0fdfc43f46e5..5e38a81279be 100644
--- a/emulators/virtualbox-ose-kmod/pkg-plist
+++ b/emulators/virtualbox-ose-kmod/pkg-plist
@@ -1,4 +1,3 @@
-@comment $FreeBSD$
@cwd /
%%KMODDIR%%/vboxdrv.ko
%%DEBUG%%%%KMODDIR%%/vboxdrv.ko.symbols
diff --git a/emulators/virtualbox-ose/Makefile b/emulators/virtualbox-ose/Makefile
index 3f8ba8826e98..a3e6c35bf753 100644
--- a/emulators/virtualbox-ose/Makefile
+++ b/emulators/virtualbox-ose/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= virtualbox-ose
-DISTVERSION= 4.3.8
+DISTVERSION= 4.3.10
CATEGORIES= emulators
MASTER_SITES= http://download.virtualbox.org/virtualbox/${DISTVERSION}/ \
http://tmp.chruetertee.ch/ \
@@ -30,8 +30,7 @@ RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:${PORTSDIR}/emulators/virtualbox-ose-
WRKSRC= ${WRKDIR}/VirtualBox-${PORTVERSION}
ONLY_FOR_ARCHS= i386 amd64
-USES= iconv pkgconfig tar:bzip2
-USE_GCC= any
+USES= compiler iconv pkgconfig tar:bzip2
USE_GNOME= libidl
USE_PYTHON_BUILD= yes
@@ -169,6 +168,13 @@ EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-src-VBox-Devices-PC-vbox.dsl \
${PATCHDIR}/extrapatch-src-VBox-Main-src-server-generic-NetIf-generic.cpp
.endif
+.if ${COMPILER_TYPE} == clang
+PATCH_DEPENDS+= ${LOCALBASE}/share/kBuild/tools/GXX3.kmk:${PORTSDIR}/devel/kBuild
+EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-Config.kmk \
+ ${PATCHDIR}/extrapatch-src-VBox-Devices-PC-ipxe-Makefile.kmk \
+ ${PATCHDIR}/extrapatch-src-recompiler-Makefile.kmk
+.endif
+
pre-everything::
.if ${ARCH} == "amd64"
.if !exists(/usr/lib32/libc.so)
@@ -181,7 +187,7 @@ pre-everything::
post-patch:
@${ECHO} 'VBOX_PATH_APP_PRIVATE_ARCH = ${PREFIX}/lib/virtualbox' > ${WRKSRC}/LocalConfig.kmk
@${ECHO} 'VBOX_PATH_SHARED_LIBS = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
- @var=${_GCC_RUNTIME}; ${ECHO} "VBOX_WITH_RUNPATH = $${var:+$${var}:}${PREFIX}/lib/virtualbox" >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'VBOX_WITH_RUNPATH = ${PREFIX}/lib/virtualbox' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk
@@ -208,6 +214,14 @@ post-patch:
@${ECHO} 'VBOX_PATH_GSOAP_IMPORT = ${PREFIX}/share/gsoap/import' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO} 'VBOX_GCC_PEDANTIC_CXX = -Wshadow $(VBOX_GCC_WARN) -Wno-long-long' >> ${WRKSRC}/LocalConfig.kmk
.endif
+.if ${COMPILER_TYPE} == clang
+ @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \
+ -e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk
+ @${REINPLACE_CMD} -e 's| -fpermissive||' ${WRKSRC}/Config.kmk ${WRKSRC}/src/VBox/Main/webservice/Makefile.kmk
+ @${ECHO} 'VBOX_GCC_Wno-unused-parameter = -Wno-unused-parameter' >> ${WRKSRC}/LocalConfig.kmk
+ @${ECHO} 'TOOL_VBoxGccFreeBSD_LD = ${CXX}' >> ${WRKSRC}/LocalConfig.kmk
+ @${SED} -e 's|GXX3|VBoxGccFreeBSD|g' ${LOCALBASE}/share/kBuild/tools/GXX3.kmk > ${WRKSRC}/tools/kBuildTools/VBoxGccFreeBSD.kmk
+.endif
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/Config.kmk ${WRKSRC}/configure \
${WRKSRC}/kBuild/units/qt3.kmk ${WRKSRC}/kBuild/units/qt4.kmk \
diff --git a/emulators/virtualbox-ose/distinfo b/emulators/virtualbox-ose/distinfo
index 50082a66d3fa..a89c312f023e 100644
--- a/emulators/virtualbox-ose/distinfo
+++ b/emulators/virtualbox-ose/distinfo
@@ -1,4 +1,4 @@
-SHA256 (VirtualBox-4.3.8.tar.bz2) = ffabd8735bdc80753cec29d01b499769f41e083f37a3f58b3055f19d3b1b9641
-SIZE (VirtualBox-4.3.8.tar.bz2) = 90224116
-SHA256 (VBoxGuestAdditions_4.3.8.iso) = a1e58f3a15cab81b82424c6382a490bb02377d78d537a57538692fa83ce448c7
-SIZE (VBoxGuestAdditions_4.3.8.iso) = 64540672
+SHA256 (VirtualBox-4.3.10.tar.bz2) = 739835aee3274a663b23eeb748bd0430e8a5d8ba2f4d0eae5dc47ff2c485e23b
+SIZE (VirtualBox-4.3.10.tar.bz2) = 90333712
+SHA256 (VBoxGuestAdditions_4.3.10.iso) = 247e15e9a205dcd4761f6cb547ceca2a61e8d6905c1930870939fd323f4cd1ae
+SIZE (VBoxGuestAdditions_4.3.10.iso) = 64647168
diff --git a/emulators/virtualbox-ose/files/extrapatch-Config.kmk b/emulators/virtualbox-ose/files/extrapatch-Config.kmk
index 7df1b0883f27..9b28c84d9ba2 100644
--- a/emulators/virtualbox-ose/files/extrapatch-Config.kmk
+++ b/emulators/virtualbox-ose/files/extrapatch-Config.kmk
@@ -1,6 +1,22 @@
---- Config.kmk.orig 2012-05-24 01:15:53.393052000 +0200
-+++ Config.kmk 2012-05-24 01:16:15.883067161 +0200
-@@ -3188,7 +3188,7 @@
+--- Config.kmk.orig 2013-11-29 14:20:04.000000000 -0500
++++ Config.kmk 2013-12-18 18:40:34.000000000 -0500
+@@ -3036,6 +3036,7 @@
+ ifeq ($(VBOX_LDR_FMT32),elf)
+ TEMPLATE_VBoxRc_TOOL = $(VBOX_GCC32_TOOL)
+ TEMPLATE_VBoxRc_CXXFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) -fno-rtti
++ TEMPLATE_VBoxRc_CXXFLAGS.freebsd = -fno-builtin
+ TEMPLATE_VBoxRc_CFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden)
+ ifeq ($(KBUILD_TARGET),solaris)
+ TEMPLATE_VBoxRc_LDFLAGS = -r
+@@ -3167,6 +3168,7 @@
+ TEMPLATE_VBoxR0_TOOL = $(VBOX_GCC_TOOL)
+ TEMPLATE_VBoxR0_CFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99
+ TEMPLATE_VBoxR0_CXXFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) -fno-rtti
++TEMPLATE_VBoxR0_CXXFLAGS.freebsd = -fno-builtin
+ TEMPLATE_VBoxR0_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables -ffreestanding
+ TEMPLATE_VBoxR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables
+ ifeq ($(KBUILD_TARGET),solaris)
+@@ -3188,7 +3190,7 @@
| xargs -J% objcopy % $(out)
## Strip debug info (comment out if debugging or something).
diff --git a/emulators/virtualbox-ose/files/extrapatch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk b/emulators/virtualbox-ose/files/extrapatch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk
new file mode 100644
index 000000000000..70fce51927bb
--- /dev/null
+++ b/emulators/virtualbox-ose/files/extrapatch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk
@@ -0,0 +1,11 @@
+--- src/VBox/Additions/x11/VBoxClient/Makefile.kmk.orig 2013-11-29 14:20:43.000000000 -0500
++++ src/VBox/Additions/x11/VBoxClient/Makefile.kmk 2013-12-16 14:03:08.000000000 -0500
+@@ -50,7 +50,7 @@
+ # Xtst
+ # These are static replacements for gcc-specific parts of libstdc++
+ VBoxClient_LIBS += \
+- supc++ \
++ cxxrt \
+ gcc_eh
+ ifdef VBOX_X11_SEAMLESS_GUEST
+ VBoxClient_DEFS += SEAMLESS_GUEST DYNAMIC_RESIZE
diff --git a/emulators/virtualbox-ose/files/extrapatch-src-VBox-Additions-x11-vboxvideo-Makefile.kmk b/emulators/virtualbox-ose/files/extrapatch-src-VBox-Additions-x11-vboxvideo-Makefile.kmk
new file mode 100644
index 000000000000..752f96c844b9
--- /dev/null
+++ b/emulators/virtualbox-ose/files/extrapatch-src-VBox-Additions-x11-vboxvideo-Makefile.kmk
@@ -0,0 +1,12 @@
+--- src/VBox/Additions/x11/vboxvideo/Makefile.kmk.orig 2013-11-29 14:20:43.000000000 -0500
++++ src/VBox/Additions/x11/vboxvideo/Makefile.kmk 2013-12-16 13:47:34.000000000 -0500
+@@ -27,6 +27,9 @@
+
+ vboxvideo_70_DEFS := \
+ IN_MODULE XORG_7X RENDER=1 IN_RT_STATIC
++ifeq ($(KBUILD_TARGET),freebsd) # don't use .freebsd or anything here.
++ vboxvideo_70_DEFS += GCCUSESGAS
++endif
+ ifeq ($(KBUILD_TARGET),solaris) # don't use .solaris or anything here.
+ vboxvideo_70_DEFS += __EXTENSIONS__ ## @todo Why this?
+ endif
diff --git a/emulators/virtualbox-ose/files/extrapatch-src-VBox-Devices-PC-ipxe-Makefile.kmk b/emulators/virtualbox-ose/files/extrapatch-src-VBox-Devices-PC-ipxe-Makefile.kmk
new file mode 100644
index 000000000000..c2a39f402b18
--- /dev/null
+++ b/emulators/virtualbox-ose/files/extrapatch-src-VBox-Devices-PC-ipxe-Makefile.kmk
@@ -0,0 +1,11 @@
+--- src/VBox/Devices/PC/ipxe/Makefile.kmk.orig 2013-11-29 14:23:32.000000000 -0500
++++ src/VBox/Devices/PC/ipxe/Makefile.kmk 2013-12-13 15:06:45.000000000 -0500
+@@ -35,7 +35,7 @@
+ iPxeBiosBin_CLEAN = \
+ $(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c \
+
+-if1of ($(KBUILD_TARGET), darwin os2 solaris win)
++if1of ($(KBUILD_TARGET), darwin freebsd os2 solaris win)
+ $$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c: $(PATH_SUB_CURRENT)/iPxeBiosBin.rom $(VBOX_BIN2C) | $$(dir $$@)
+ $(call MSG_TOOL,bin2c,iPxeBiosBin,$<,$@)
+ $(QUIET)$(VBOX_BIN2C) -min 32 -max 56 -mask 0x1ff -export NetBiosBinary $< $@
diff --git a/emulators/virtualbox-ose/files/extrapatch-src-recompiler-Makefile.kmk b/emulators/virtualbox-ose/files/extrapatch-src-recompiler-Makefile.kmk
new file mode 100644
index 000000000000..cb720f90e1ff
--- /dev/null
+++ b/emulators/virtualbox-ose/files/extrapatch-src-recompiler-Makefile.kmk
@@ -0,0 +1,10 @@
+--- src/recompiler/Makefile.kmk.orig 2013-11-29 14:25:09.000000000 -0500
++++ src/recompiler/Makefile.kmk 2013-12-13 14:23:11.000000000 -0500
+@@ -41,6 +41,7 @@
+ #
+ ifneq ($(KBUILD_TARGET),win)
+ VBoxRemPrimary_TEMPLATE = VBOXR3NP
++ VBoxRemPrimary_TOOL.freebsd = VBoxGccFreeBSD
+ # workaround the regparm bug in gcc <= 3.3
+ VBoxRemPrimary_DEFS = $(if $(VBOX_GCC_BUGGY_REGPARM),GCC_WITH_BUGGY_REGPARM,)
+ else
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile b/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
deleted file mode 100644
index ed9f2b80ce46..000000000000
--- a/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-VBoxGuest-freebsd-Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/VBox/Additions/common/VBoxGuest/freebsd/Makefile.orig 2013-11-29 14:20:37.000000000 -0500
-+++ src/VBox/Additions/common/VBoxGuest/freebsd/Makefile 2013-12-15 00:12:59.000000000 -0500
-@@ -155,6 +155,7 @@
- SRCS += \
- semspinmutex-r0drv-generic.c \
- mpnotification-r0drv-generic.c \
-+ threadctxhooks-r0drv-generic.c \
- RTMpIsCpuWorkPending-r0drv-generic.c
-
- .PATH: ${.CURDIR}/VBox
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Additions-freebsd-Makefile b/emulators/virtualbox-ose/files/patch-src-VBox-Additions-freebsd-Makefile
deleted file mode 100644
index 0908c1b15eb2..000000000000
--- a/emulators/virtualbox-ose/files/patch-src-VBox-Additions-freebsd-Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
---- src/VBox/Additions/freebsd/Makefile.orig 2014-02-25 12:00:30.000000000 -0500
-+++ src/VBox/Additions/freebsd/Makefile 2014-03-03 15:27:32.000000000 -0500
-@@ -19,14 +19,14 @@
-
- all:
- @echo "*** Building 'vboxguest' module ***"
-- @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest
-+ @$(MAKE) CC=cc LDFLAGS= KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest
- @if [ -f vboxguest/vboxguest.ko ]; then \
- cp vboxguest/vboxguest.ko .; \
- fi
- @echo
- @if [ -d vboxvfs ]; then \
- echo "*** Building 'vboxvfs' module ***"; \
-- $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvfs; \
-+ $(MAKE) CC=cc LDFLAGS= KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvfs; \
- if [ -f vboxvfs/vboxvfs.ko ]; then \
- cp vboxvfs/vboxvfs.ko .; \
- fi; \
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Devices-PC-DrvACPI.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-PC-DrvACPI.cpp
new file mode 100644
index 000000000000..87efc5ea76aa
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-PC-DrvACPI.cpp
@@ -0,0 +1,29 @@
+--- src/VBox/Devices/PC/DrvACPI.cpp.orig 2013-11-29 14:23:31.000000000 -0500
++++ src/VBox/Devices/PC/DrvACPI.cpp 2013-12-13 17:36:50.000000000 -0500
+@@ -204,7 +204,7 @@
+ int fAcLine = 0;
+ size_t cbParameter = sizeof(fAcLine);
+
+- int rc = sysctlbyname("hw.acpi.acline", &fAcLine, &cbParameter, NULL, NULL);
++ int rc = sysctlbyname("hw.acpi.acline", &fAcLine, &cbParameter, NULL, 0);
+
+ if (!rc)
+ {
+@@ -463,7 +463,7 @@
+ int fBatteryState = 0;
+ size_t cbParameter = sizeof(fBatteryState);
+
+- rc = sysctlbyname("hw.acpi.battery.state", &fBatteryState, &cbParameter, NULL, NULL);
++ rc = sysctlbyname("hw.acpi.battery.state", &fBatteryState, &cbParameter, NULL, 0);
+ if (!rc)
+ {
+ if ((fBatteryState & ACPI_BATT_STAT_NOT_PRESENT) == ACPI_BATT_STAT_NOT_PRESENT)
+@@ -485,7 +485,7 @@
+ /* Get battery level. */
+ int curCapacity = 0;
+ cbParameter = sizeof(curCapacity);
+- rc = sysctlbyname("hw.acpi.battery.life", &curCapacity, &cbParameter, NULL, NULL);
++ rc = sysctlbyname("hw.acpi.battery.life", &curCapacity, &cbParameter, NULL, 0);
+ if (!rc && curCapacity >= 0)
+ *penmRemainingCapacity = (PDMACPIBATCAPACITY)curCapacity;
+
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Storage-DevAHCI.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Storage-DevAHCI.cpp
new file mode 100644
index 000000000000..1bf7e5490699
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Storage-DevAHCI.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Devices/Storage/DevAHCI.cpp.orig 2013-11-29 14:23:47.000000000 -0500
++++ src/VBox/Devices/Storage/DevAHCI.cpp 2013-12-13 20:05:56.000000000 -0500
+@@ -3242,7 +3242,7 @@
+ return 0;
+
+ ataH2BE_U16(pbBuf, 0x0); /* feature 0: list of profiles supported */
+- pbBuf[2] = (0 << 2) | (1 << 1) | (1 || 0); /* version 0, persistent, current */
++ pbBuf[2] = (0 << 2) | (1 << 1) | (1 << 0); /* version 0, persistent, current */
+ pbBuf[3] = 8; /* additional bytes for profiles */
+ /* The MMC-3 spec says that DVD-ROM read capability should be reported
+ * before CD-ROM read capability. */
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-client-ConsoleImpl2.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-client-ConsoleImpl2.cpp
new file mode 100644
index 000000000000..5297d38f48a6
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-client-ConsoleImpl2.cpp
@@ -0,0 +1,36 @@
+--- src/VBox/Main/src-client/ConsoleImpl2.cpp.orig 2013-09-06 08:30:10.000000000 -0400
++++ src/VBox/Main/src-client/ConsoleImpl2.cpp 2013-09-12 13:03:34.000000000 -0400
+@@ -4031,12 +4031,13 @@
+ }
+ }
+
+- Assert((int)maTapFD[uInstance] >= 0);
+- if ((int)maTapFD[uInstance] >= 0)
++ const int fd = (int)(uintptr_t)maTapFD[uInstance];
++ Assert(fd >= 0);
++ if (fd >= 0)
+ {
+ InsertConfigString(pLunL0, "Driver", "HostInterface");
+ InsertConfigNode(pLunL0, "Config", &pCfg);
+- InsertConfigInteger(pCfg, "FileHandle", maTapFD[uInstance]);
++ InsertConfigInteger(pCfg, "FileHandle", fd);
+ }
+
+ #elif defined(VBOX_WITH_NETFLT)
+@@ -4230,12 +4231,13 @@
+ }
+ }
+
+- Assert((int)maTapFD[uInstance] >= 0);
+- if ((int)maTapFD[uInstance] >= 0)
++ const int fd = (int)(uintptr_t)maTapFD[uInstance];
++ Assert(fd >= 0);
++ if (fd >= 0)
+ {
+ InsertConfigString(pLunL0, "Driver", "HostInterface");
+ InsertConfigNode(pLunL0, "Config", &pCfg);
+- InsertConfigInteger(pCfg, "FileHandle", maTapFD[uInstance]);
++ InsertConfigInteger(pCfg, "FileHandle", fd);
+ }
+ break;
+ }
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-MachineImpl.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-MachineImpl.cpp
new file mode 100644
index 000000000000..aeb572ebfb2b
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-MachineImpl.cpp
@@ -0,0 +1,47 @@
+--- src/VBox/Main/src-server/MachineImpl.cpp.orig 2013-12-18 11:10:25.000000000 -0500
++++ src/VBox/Main/src-server/MachineImpl.cpp 2014-02-20 19:17:10.000000000 -0500
+@@ -2374,7 +2374,7 @@
+ case 0x8:
+ case 0x9:
+ case 0xA:
+- AssertCompile(RT_ELEMENTS(mHWData->mCpuIdStdLeafs) == 0xB);
++ // AssertCompile(RT_ELEMENTS(mHWData->mCpuIdStdLeafs) == 0xB);
+ AssertRelease(aId < RT_ELEMENTS(mHWData->mCpuIdStdLeafs));
+ setModified(IsModified_MachineData);
+ mHWData.backup();
+@@ -2396,7 +2396,7 @@
+ case 0x80000008:
+ case 0x80000009:
+ case 0x8000000A:
+- AssertCompile(RT_ELEMENTS(mHWData->mCpuIdExtLeafs) == 0xB);
++ // AssertCompile(RT_ELEMENTS(mHWData->mCpuIdExtLeafs) == 0xB);
+ AssertRelease(aId - 0x80000000 < RT_ELEMENTS(mHWData->mCpuIdExtLeafs));
+ setModified(IsModified_MachineData);
+ mHWData.backup();
+@@ -2436,7 +2436,7 @@
+ case 0x8:
+ case 0x9:
+ case 0xA:
+- AssertCompile(RT_ELEMENTS(mHWData->mCpuIdStdLeafs) == 0xB);
++ // AssertCompile(RT_ELEMENTS(mHWData->mCpuIdStdLeafs) == 0xB);
+ AssertRelease(aId < RT_ELEMENTS(mHWData->mCpuIdStdLeafs));
+ setModified(IsModified_MachineData);
+ mHWData.backup();
+@@ -2455,7 +2455,7 @@
+ case 0x80000008:
+ case 0x80000009:
+ case 0x8000000A:
+- AssertCompile(RT_ELEMENTS(mHWData->mCpuIdExtLeafs) == 0xB);
++ // AssertCompile(RT_ELEMENTS(mHWData->mCpuIdExtLeafs) == 0xB);
+ AssertRelease(aId - 0x80000000 < RT_ELEMENTS(mHWData->mCpuIdExtLeafs));
+ setModified(IsModified_MachineData);
+ mHWData.backup();
+@@ -9322,7 +9322,7 @@
+ mHWData->mVideoCaptureEnabled = data.fVideoCaptureEnabled;
+ for (unsigned i = 0; i < RT_ELEMENTS(mHWData->maVideoCaptureScreens); i++)
+ mHWData->maVideoCaptureScreens[i] = ASMBitTest(&data.u64VideoCaptureScreens, i);
+- AssertCompile(RT_ELEMENTS(mHWData->maVideoCaptureScreens) == sizeof(data.u64VideoCaptureScreens) * 8);
++ // AssertCompile(RT_ELEMENTS(mHWData->maVideoCaptureScreens) == sizeof(data.u64VideoCaptureScreens) * 8);
+ mHWData->mVideoCaptureRate = data.ulVideoCaptureRate;
+ mHWData->mVideoCaptureFPS = data.ulVideoCaptureFPS;
+ if (!data.strVideoCaptureFile.isEmpty())
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp
new file mode 100644
index 000000000000..6bc69386d9ab
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-VirtualBoxImpl.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Main/src-server/VirtualBoxImpl.cpp.orig 2013-12-18 11:10:25.000000000 -0500
++++ src/VBox/Main/src-server/VirtualBoxImpl.cpp 2014-02-20 19:51:23.000000000 -0500
+@@ -2355,7 +2355,7 @@
+ if (aCiphertextSize < 32)
+ return VERR_INVALID_PARAMETER;
+
+- AssertCompile(sizeof(m->SettingsCipherKey) >= 32);
++ // AssertCompile(sizeof(m->SettingsCipherKey) >= 32);
+
+ /* store the first 8 bytes of the cipherkey for verification */
+ for (i = 0, j = 0; i < 8; i++, j++)
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-freebsd-HostHardwareFreeBSD.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-freebsd-HostHardwareFreeBSD.cpp
index c77c65da5b21..5183592f247a 100644
--- a/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-freebsd-HostHardwareFreeBSD.cpp
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Main-src-server-freebsd-HostHardwareFreeBSD.cpp
@@ -1,6 +1,6 @@
---- src/VBox/Main/src-server/freebsd/HostHardwareFreeBSD.cpp.orig 2012-12-19 19:27:17.000000000 +0100
-+++ src/VBox/Main/src-server/freebsd/HostHardwareFreeBSD.cpp 2012-12-20 14:55:59.501850255 +0100
-@@ -40,6 +40,7 @@
+--- src/VBox/Main/src-server/freebsd/HostHardwareFreeBSD.cpp.orig 2013-11-29 14:24:12.000000000 -0500
++++ src/VBox/Main/src-server/freebsd/HostHardwareFreeBSD.cpp 2013-12-13 18:03:02.000000000 -0500
+@@ -39,6 +39,7 @@
# include <sys/stat.h>
# include <unistd.h>
# include <sys/ioctl.h>
@@ -8,3 +8,12 @@
# include <fcntl.h>
# include <cam/cam.h>
# include <cam/cam_ccb.h>
+@@ -250,7 +251,7 @@
+ PeriphMatchPattern.pattern.periph_pattern.path_id = paMatches[i].result.device_result.path_id;
+ PeriphMatchPattern.pattern.periph_pattern.target_id = paMatches[i].result.device_result.target_id;
+ PeriphMatchPattern.pattern.periph_pattern.target_lun = paMatches[i].result.device_result.target_lun;
+- PeriphMatchPattern.pattern.periph_pattern.flags = PERIPH_MATCH_PATH | PERIPH_MATCH_TARGET | PERIPH_MATCH_LUN;
++ PeriphMatchPattern.pattern.periph_pattern.flags = static_cast<periph_pattern_flags>(PERIPH_MATCH_PATH | PERIPH_MATCH_TARGET | PERIPH_MATCH_LUN);
+ PeriphCCB.cdm.num_patterns = 1;
+ PeriphCCB.cdm.pattern_buf_len = sizeof(struct dev_match_result);
+ PeriphCCB.cdm.patterns = &PeriphMatchPattern;
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-NetworkServices-NAT-VBoxNetLwipNAT.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-NetworkServices-NAT-VBoxNetLwipNAT.cpp
deleted file mode 100644
index aff879d1cd90..000000000000
--- a/emulators/virtualbox-ose/files/patch-src-VBox-NetworkServices-NAT-VBoxNetLwipNAT.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/VBox/NetworkServices/NAT/VBoxNetLwipNAT.cpp.orig 2014-02-25 12:09:19.000000000 -0500
-+++ src/VBox/NetworkServices/NAT/VBoxNetLwipNAT.cpp 2014-03-03 14:50:41.000000000 -0500
-@@ -73,6 +73,8 @@
- #include <vector>
- #include <string>
-
-+#include <stdio.h>
-+
- #include "../NetLib/VBoxNetLib.h"
- #include "../NetLib/VBoxNetBaseService.h"
- #include "../NetLib/utils.h"
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-Makefile.kmk b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-Makefile.kmk
index b97bedd1591a..255f2563dda1 100644
--- a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-Makefile.kmk
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-Makefile.kmk
@@ -1,5 +1,5 @@
--- src/VBox/Runtime/Makefile.kmk.orig 2013-12-18 11:10:31.000000000 -0500
-+++ src/VBox/Runtime/Makefile.kmk 2014-02-20 18:14:28.000000000 -0500
++++ src/VBox/Runtime/Makefile.kmk 2014-02-21 13:45:17.000000000 -0500
@@ -157,6 +157,11 @@
IPRT_BLDCFG_TYPE=\"$(KBUILD_TYPE)\"
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-common-misc-uri.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-common-misc-uri.cpp
new file mode 100644
index 000000000000..54e3c3a221a0
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-common-misc-uri.cpp
@@ -0,0 +1,14 @@
+--- src/VBox/Runtime/common/misc/uri.cpp.orig 2013-12-18 11:10:34.000000000 -0500
++++ src/VBox/Runtime/common/misc/uri.cpp 2013-12-19 20:57:32.000000000 -0500
+@@ -132,7 +132,10 @@
+ /* % encoding means the percent sign and exactly 2 hexadecimal
+ * digits describing the ASCII number of the character. */
+ ++iIn;
+- char szNum[] = { pszString[iIn++], pszString[iIn++], '\0' };
++ char szNum[3];
++ szNum[0] = pszString[iIn++];
++ szNum[1] = pszString[iIn++];
++ szNum[2] = '\0';
+ uint8_t u8;
+ rc = RTStrToUInt8Ex(szNum, NULL, 16, &u8);
+ if (RT_FAILURE(rc))
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r3-freebsd-fileaio-freebsd.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r3-freebsd-fileaio-freebsd.cpp
new file mode 100644
index 000000000000..b7295d0921db
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r3-freebsd-fileaio-freebsd.cpp
@@ -0,0 +1,11 @@
+--- src/VBox/Runtime/r3/freebsd/fileaio-freebsd.cpp.orig 2013-11-29 14:24:23.000000000 -0500
++++ src/VBox/Runtime/r3/freebsd/fileaio-freebsd.cpp 2013-12-13 17:32:50.000000000 -0500
+@@ -124,7 +124,7 @@
+ &cReqsOutstandingMax, /* Where to store the old value. */
+ &cbParameter, /* Size of the memory pointed to. */
+ NULL, /* Where the new value is located. */
+- NULL); /* Where the size of the new value is stored. */
++ 0); /* Where the size of the new value is stored. */
+ if (rcBSD == -1)
+ {
+ /* ENOENT means the value is unknown thus the module is not loaded. */
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r3-freebsd-mp-freebsd.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r3-freebsd-mp-freebsd.cpp
new file mode 100644
index 000000000000..ae2ffca5be5c
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r3-freebsd-mp-freebsd.cpp
@@ -0,0 +1,29 @@
+--- src/VBox/Runtime/r3/freebsd/mp-freebsd.cpp.orig 2013-11-29 14:24:23.000000000 -0500
++++ src/VBox/Runtime/r3/freebsd/mp-freebsd.cpp 2013-12-13 16:25:44.000000000 -0500
+@@ -93,7 +93,7 @@
+ char szDriver[10];
+ size_t cbDriver = sizeof(szDriver);
+ RT_ZERO(szDriver); /* this shouldn't be necessary. */
+- int rcBsd = sysctlbyname(szName, szDriver, &cbDriver, NULL, NULL);
++ int rcBsd = sysctlbyname(szName, szDriver, &cbDriver, NULL, 0);
+ if (rcBsd == 0)
+ return true;
+
+@@ -154,7 +154,7 @@
+ return 0;
+
+ /* CPU's have a common frequency. */
+- int rc = sysctlbyname("dev.cpu.0.freq", &uFreqCurr, &cbParameter, NULL, NULL);
++ int rc = sysctlbyname("dev.cpu.0.freq", &uFreqCurr, &cbParameter, NULL, 0);
+ if (rc)
+ return 0;
+
+@@ -176,7 +176,7 @@
+ * CPU 0 has the freq levels entry. ENOMEM is ok as we don't need all supported
+ * levels but only the first one.
+ */
+- int rc = sysctlbyname("dev.cpu.0.freq_levels", szFreqLevels, &cbFreqLevels, NULL, NULL);
++ int rc = sysctlbyname("dev.cpu.0.freq_levels", szFreqLevels, &cbFreqLevels, NULL, 0);
+ if ( (rc && (errno != ENOMEM))
+ || (cbFreqLevels == 0))
+ return 0;