git: f24fdd9f8516 - main - emulators/virtualbox-ose{,-kmod,-nox11}-70: Add new ports VirtualBox 7.0.24
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 02 Feb 2025 23:29:09 UTC
The branch main has been updated by vvd:
URL: https://cgit.FreeBSD.org/ports/commit/?id=f24fdd9f85160185dfe981a8bba587246e7db148
commit f24fdd9f85160185dfe981a8bba587246e7db148
Author: Vladimir Druzenko <vvd@FreeBSD.org>
AuthorDate: 2025-02-02 23:19:31 +0000
Commit: Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-02-02 23:19:31 +0000
emulators/virtualbox-ose{,-kmod,-nox11}-70: Add new ports VirtualBox 7.0.24
General status:
* VirtualBox 7.1.x is still not fully ported to FreeBSD, so we are
adding 7.0.x in experimental/test mode.
* 7.0.x is being tested on hosts of several FreeBSD developers and
users.
* As far as we know, 7.0.x has the same system requirements as 6.1.x -
amd64 with VT-x (we even tested it on Core 2 Duo E6xxx), so after
confirming stability with more users, 7.0.x is expected to replace
6.1.x.
* The following ports also need to be created for this replacement:
- emulators/virtualbox-ose-additions-70;
- emulators/virtualbox-ose-additions-nox11-70;
- www/phpvirtualbox-70.
* If 7.1.x has the same system requirements, then when we port 7.1.x,
it will replace 7.0.x.
This patch is a joint effort by several FreeBSD developers and users.
Thanks to everyone involved!
Changelog:
https://www.virtualbox.org/wiki/Changelog-7.0
PR: 271146
---
emulators/virtualbox-ose-70/Makefile | 57 +--
emulators/virtualbox-ose-70/distinfo | 14 +-
.../virtualbox-ose-70/files/extrapatch-Config.kmk | 2 +-
emulators/virtualbox-ose-70/files/patch-Config.kmk | 458 ++++++++++++++-------
emulators/virtualbox-ose-70/files/patch-configure | 35 +-
.../files/patch-include_VBox_sup.h | 11 +
...-Additions-common-VBoxGuest-VBoxGuest-freebsd.c | 52 ++-
...HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt | 8 +-
...h-src-VBox-Installer-freebsd-virtualbox.desktop | 10 -
.../patch-src-VBox-Main-webservice-Makefile.kmk | 39 --
...src_VBox_Additions_freebsd_vboxvfs_Makefile.kmk | 50 ---
...h-src_VBox_Additions_x11_VBoxClient_logging.cpp | 10 -
...h-src_VBox_Additions_x11_vboxvideo_Makefile.kmk | 15 -
...s_x11_x11include_xproto-7.0.18_X11_Xfuncproto.h | 230 -----------
.../files/patch-src_VBox_Debugger_Makefile.kmk | 10 -
.../files/patch-src_VBox_Devices_Makefile.kmk | 34 +-
.../patch-src_VBox_Devices_PC_ipxe_Makefile.kmk | 12 +-
...rc_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp | 11 +
...rc_VBox_Frontends_VBoxManage_VBoxManageHelp.cpp | 43 --
...Box_Frontends_VBoxManage_VBoxManageModifyVM.cpp | 22 +-
...atch-src_VBox_Frontends_VirtualBox_Makefile.kmk | 18 -
.../patch-src_VBox_HostDrivers_Support_SUPDrv.cpp | 24 +-
...h-src_VBox_HostDrivers_Support_freebsd_Makefile | 26 +-
...ox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c | 54 ++-
..._HostDrivers_Support_freebsd_SUPLib-freebsd.cpp | 11 +
...VBox_HostDrivers_Support_freebsd_files__vboxdrv | 26 +-
...ch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk | 4 +-
.../files/patch-src_VBox_Main_Makefile.kmk | 14 +-
...src_VBox_NetworkServices_Dhcpd_VBoxNetDhcpd.cpp | 11 -
.../patch-src_VBox_RDP_client-1.8.4_Makefile.kmk | 13 -
.../files/patch-src_VBox_Runtime_Makefile.kmk | 12 +
...Box_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c | 51 +--
...ox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c | 240 +++++------
...c_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp | 39 --
.../files/patch-src_VBox_VMM_VMMR3_PGMPhys.cpp | 11 -
.../files/patch-src_VMM_Config.kmk | 11 +
.../virtualbox-ose-70/files/virtualbox.desktop | 17 +
emulators/virtualbox-ose-70/pkg-plist | 6 +-
emulators/virtualbox-ose-kmod-70/Makefile | 13 +-
emulators/virtualbox-ose-kmod-70/distinfo | 6 +-
emulators/virtualbox-ose-nox11-70/Makefile | 6 +-
41 files changed, 683 insertions(+), 1053 deletions(-)
diff --git a/emulators/virtualbox-ose-70/Makefile b/emulators/virtualbox-ose-70/Makefile
index fdd678179189..b86de1fac4d1 100644
--- a/emulators/virtualbox-ose-70/Makefile
+++ b/emulators/virtualbox-ose-70/Makefile
@@ -1,9 +1,11 @@
PORTNAME= virtualbox-ose
-DISTVERSION= 6.1.50
-PORTREVISION?= 8
+DISTVERSION= 7.0.24
+PORTREVISION?= 0
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
- LOCAL/bofh/emulators/virtualbox-ose:docs
+ LOCAL/bofh/emulators/virtualbox-ose:docs \
+ LOCAL/vvd:docs
+PKGNAMESUFFIX?= -70
DISTFILES= VirtualBox-${DISTVERSION}${EXTRACT_SUFX}:src \
VirtualBox-docs-${DISTVERSION}${EXTRACT_SUFX}:docs
EXTRACT_ONLY= VirtualBox-${DISTVERSION}${EXTRACT_SUFX} \
@@ -25,12 +27,13 @@ BUILD_DEPENDS= gtar:archivers/gtar \
xsltproc:textproc/libxslt
LIB_DEPENDS= libpng.so:graphics/png \
libcurl.so:ftp/curl
-RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod
+RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod-70
-USES= compiler:c++14-lang cpe gnome iconv pkgconfig ssl tar:bzip2
+USES= compiler:c++14-lang cpe gnome iconv qt:5 pkgconfig ssl tar:bzip2
CPE_VENDOR= oracle
CPE_PRODUCT= vm_virtualbox
USE_GNOME= libxml2
+USE_QT= buildtools:build linguisttools:build
USE_RC_SUBR= vboxheadless vboxwatchdog
HAS_CONFIGURE= yes
@@ -39,10 +42,10 @@ CONFIGURE_ARGS+= --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-legacy \
virtualbox-ose-nox11-legacy \
- virtualbox-ose-70 \
- virtualbox-ose-nox11-70
+ virtualbox-ose \
+ virtualbox-ose-nox11
-PORTSCOUT= limit:^6\.
+PORTSCOUT= limit:^7\.0\.
SUB_FILES= pkg-message
SUB_LIST= VBOXDIR=${VBOX_DIR} \
VBOX_ETC=${VBOX_ETC} \
@@ -72,7 +75,7 @@ PLIST_SUB= GUEST_VER=${DISTVERSION} \
SLAVE_PORT?= no
-OPTIONS_DEFINE= AIO ALSA DBUS DEBUG DOCS GUESTADDITIONS NLS OPUS PULSEAUDIO \
+OPTIONS_DEFINE= AIO ALSA DBUS DEBUG DOCS GUESTADDITIONS NLS PULSEAUDIO \
PYTHON QT5 R0LOGGING UDPTUNNEL VBOXIMG VDE VNC WEBSERVICE VPX X11
OPTIONS_DEFAULT= AIO DBUS QT5 UDPTUNNEL VNC WEBSERVICE X11
.if ${SLAVE_PORT} == no
@@ -87,7 +90,6 @@ AIO_DESC= Enable Asyncronous IO support (check pkg-message)
DEBUG_DESC= Debug symbols, additional logs and assertions
GUESTADDITIONS_DESC= Build with Guest Additions
NLS_DESC= Native language support (requires QT5)
-OPUS_DESC= Use libvpx for audio recording (requires VPX)
QT5_DESC= Build with QT5 frontend (requires X11)
R0LOGGING_DESC= Enable R0 logging (requires DEBUG)
UDPTUNNEL_DESC= Build with UDP tunnel support
@@ -103,9 +105,6 @@ DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
DBUS_CONFIGURE_OFF= --disable-dbus
DEBUG_CONFIGURE_ON= --build-debug
NLS_IMPLIES= QT5
-OPUS_IMPLIES= VPX
-OPUS_LIB_DEPENDS= libopus.so:audio/opus
-OPUS_CONFIGURE_OFF= --disable-libopus
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_CONFIGURE_OFF= --disable-pulse
PYTHON_USES= python
@@ -116,7 +115,7 @@ PYTHON_VARS= pydistutils_pkgname=vboxapi pydistutils_pkgversion=1.0
QT5_IMPLIES= X11
QT5_USES= gl qmake:no_env qt:5 xorg
QT5_USE= QT=buildtools:build,core,dbus,gui,linguisttools:build,opengl \
- QT=printsupport,widgets,x11extras XORG=xcb GL=gl
+ QT=printsupport,widgets,x11extras,xml XORG=xcb GL=gl
QT5_CONFIGURE_ON= --enable-qt5
QT5_CONFIGURE_OFF= --disable-qt
R0LOGGING_IMPLIES= DEBUG
@@ -129,8 +128,8 @@ VNC_CONFIGURE_ON= --enable-vnc
VPX_LIB_DEPENDS= libvpx.so:multimedia/libvpx
VPX_CONFIGURE_OFF= --disable-libvpx
WEBSERVICE_BUILD_DEPENDS= soapcpp2:devel/gsoap
-X11_USES= sdl xorg
-X11_USE= SDL=sdl XORG=x11,xcursor,xext,xinerama,xmu,xorgproto,xt
+X11_USES= gl sdl xorg
+X11_USE= GL=gl SDL=sdl XORG=x11,xcursor,xext,xinerama,xmu,xorgproto,xt
X11_CONFIGURE_OFF= --build-headless
ENV=
@@ -139,9 +138,9 @@ ENV=
.include <bsd.port.options.mk>
.if ${SLAVE_PORT} == no
-CONFLICTS_INSTALL+= virtualbox-ose-nox11
+CONFLICTS_INSTALL+= virtualbox-ose-nox11-70
.else
-CONFLICTS_INSTALL+= virtualbox-ose
+CONFLICTS_INSTALL+= virtualbox-ose-70
.endif
.if ${PORT_OPTIONS:MDEBUG}
@@ -177,7 +176,7 @@ VBOX_UTILS+= vboxwebsrv webtest
.endif
.if ${PORT_OPTIONS:MX11}
-VBOX_PROGS+= VBoxSDL
+#VBOX_PROGS+= VBoxSDL
.endif
.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE}
@@ -204,24 +203,6 @@ KMK_FLAGS+= -j${MAKE_JOBS_NUMBER}
.include <bsd.port.pre.mk>
.if ${CHOSEN_COMPILER_TYPE} == clang
-# 1) llvm10 in FreeBSD before r364284 miscompiles virtualbox 6.1 causing errors.
-# 2) llvm15 in FreeBSD miscompiles virtualbox 6.1 causing errors: PR#270189.
-# Force llvm from ports.
-.if ${OPSYS} == FreeBSD
-# USES must be before .include <bsd.port.pre.mk>, but CHOSEN_COMPILER_TYPE must be after.
-# This is a workaround with possibility to define different llvm via VBOX_LLVM_VER in make.conf.
-#USES+= llvm:min=11,max=14
-#CC= clang${LLVM_VERSION}
-#CXX= clang++${LLVM_VERSION}
-BUILD_DEPENDS+= clang${VBOX_LLVM_VER}:devel/llvm${VBOX_LLVM_VER}
-CC= clang${VBOX_LLVM_VER}
-CXX= clang++${VBOX_LLVM_VER}
-.if ${LLVM_DEFAULT} < 11 || ${LLVM_DEFAULT} > 14
-VBOX_LLVM_VER?= 14
-.else
-VBOX_LLVM_VER?= ${LLVM_DEFAULT}
-.endif
-.endif
PATCH_DEPENDS+= ${LOCALBASE}/share/kBuild/tools/GXX3.kmk:devel/kBuild
.endif
@@ -402,7 +383,7 @@ do-install:
${WRKSRC}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_48px.png \
${STAGEDIR}${PREFIX}/share/pixmaps/VBox.png
${INSTALL_DATA} \
- ${WRKSRC}/src/VBox/Installer/freebsd/virtualbox.desktop \
+ ${FILESDIR}/virtualbox.desktop \
${STAGEDIR}${PREFIX}/share/applications/virtualbox.desktop
.endif
diff --git a/emulators/virtualbox-ose-70/distinfo b/emulators/virtualbox-ose-70/distinfo
index 08ac88176444..774d7e8d44a7 100644
--- a/emulators/virtualbox-ose-70/distinfo
+++ b/emulators/virtualbox-ose-70/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1716920210
-SHA256 (VirtualBox-6.1.50.tar.bz2) = 73ff603842896cb8d86ac5a817eb5037d7d225d3c46ea238e39d7ba5aaf61a57
-SIZE (VirtualBox-6.1.50.tar.bz2) = 165959648
-SHA256 (VBoxGuestAdditions_6.1.50.iso) = af53e34c5a5ec143f3418ac01d00ed5f33f6b31bfdc92eb4714c99d9bccb6602
-SIZE (VBoxGuestAdditions_6.1.50.iso) = 64051200
-SHA256 (VirtualBox-docs-6.1.50.tar.bz2) = e5dc118e8bb8352c06d5359e4f75ceb339a3917f0727fd74ad02ff07251e67db
-SIZE (VirtualBox-docs-6.1.50.tar.bz2) = 4063302
+TIMESTAMP = 1738097405
+SHA256 (VirtualBox-7.0.24.tar.bz2) = 340d66f52251e23d9bc1eb4fdf70e44cb9d1db69bc5064e3f7bdfb8bc0e3a458
+SIZE (VirtualBox-7.0.24.tar.bz2) = 174663788
+SHA256 (VirtualBox-docs-7.0.24.tar.bz2) = a4005ab62ff6352b820f3aba2c5a98b4541317433afff0d58d4b8c2678e75cdd
+SIZE (VirtualBox-docs-7.0.24.tar.bz2) = 4766637
+SHA256 (VBoxGuestAdditions_7.0.24.iso) = 17b01cd40bc34a7b79e4922c8f68bea3da3b2348bc4cdeadc962f84f1a63e225
+SIZE (VBoxGuestAdditions_7.0.24.iso) = 54804480
diff --git a/emulators/virtualbox-ose-70/files/extrapatch-Config.kmk b/emulators/virtualbox-ose-70/files/extrapatch-Config.kmk
index 775508d23b1b..4a91ac89097b 100644
--- a/emulators/virtualbox-ose-70/files/extrapatch-Config.kmk
+++ b/emulators/virtualbox-ose-70/files/extrapatch-Config.kmk
@@ -1,6 +1,6 @@
--- Config.kmk.orig 2021-04-28 16:21:25 UTC
+++ Config.kmk
-@@ -4931,7 +4931,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS
+@@ -5958,7 +5942,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS
| xargs -J% objcopy % $(out)
## Strip debug info (comment out if debugging or something).
diff --git a/emulators/virtualbox-ose-70/files/patch-Config.kmk b/emulators/virtualbox-ose-70/files/patch-Config.kmk
index 119926c9e025..9fe5ecdc458d 100644
--- a/emulators/virtualbox-ose-70/files/patch-Config.kmk
+++ b/emulators/virtualbox-ose-70/files/patch-Config.kmk
@@ -1,6 +1,6 @@
---- Config.kmk.orig 2021-01-07 15:31:21 UTC
-+++ Config.kmk
-@@ -469,11 +469,11 @@ ifn1of ($(KBUILD_TARGET), win darwin)
+--- Config.kmk.orig 2024-10-10 20:19:24.000000000 +0200
++++ Config.kmk 2024-12-27 17:28:48.466891000 +0100
+@@ -579,11 +579,11 @@
# Enable OSS audio support.
VBOX_WITH_AUDIO_OSS = 1
endif
@@ -14,7 +14,7 @@
# Enable PulseAudio audio support.
VBOX_WITH_AUDIO_PULSE = 1
endif
-@@ -489,11 +489,11 @@ VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT = 1
+@@ -596,11 +596,11 @@
# (disabled with 6.1, since it's not complete/useful enough)
VBOX_WITH_PCI_PASSTHROUGH =
# Enable statically linked dbus support.
@@ -28,7 +28,7 @@
VBOX_WITH_PAM = 1
endif
# Enable internal networking.
-@@ -501,7 +501,7 @@ VBOX_WITH_INTERNAL_NETWORKING = 1
+@@ -608,7 +608,7 @@
# Enable vmsvga (svga2) graphics device variant, 2D part
VBOX_WITH_VMSVGA = 1
# Enable vmsvga (svga2) graphics device variant, 3D part
@@ -36,8 +36,8 @@
+if1of ($(KBUILD_TARGET), darwin freebsd linux win)
VBOX_WITH_VMSVGA3D = 1
endif
- # Enable the generic 3D settings support if at least one 3D capable solution is enabled
-@@ -647,7 +647,7 @@ VBOX_WITH_MAIN_USB_ID_DATABASE = 1
+ # Enable vmsvga (svga2) graphics device variant, 3D part, VGPU10 DX commands
+@@ -787,7 +787,7 @@
#endif
# Set this to prefix all C symbols in XPCOM, to avoid dynamic linking problems
# caused by our XPCOM library polluting the symbol namespace for system libs.
@@ -46,97 +46,209 @@
VBOX_WITH_XPCOM_NAMESPACE_CLEANUP = 1
endif
# The webservices api.
-@@ -1064,10 +1064,6 @@ ifeq ($(KBUILD_TARGET),darwin)
- VBOX_WITH_VBOXSDL=
+@@ -1295,10 +1295,6 @@
+ endif
endif
-ifeq ($(KBUILD_TARGET),freebsd)
-- VBOX_WITH_DOCS=
+- VBOX_WITH_DOCS =
-endif
-
ifeq ($(KBUILD_TARGET),haiku)
- # Don't bother with SDL ttf for now.
- VBOX_WITH_SECURELABEL=
-@@ -1228,7 +1224,7 @@ ifdef VBOX_OSE
- VBOX_WITH_KCHMVIEWER=
- VBOX_WITH_PLUGIN_CRYPT=
- VBOX_WITH_DRAG_AND_DROP_PROMISES=
+ VBOX_WITH_VRDP_RDESKTOP =
+ # Permanent (no working SDL).
+@@ -1457,7 +1453,7 @@
+ # not yet
+ VBOX_WITH_PLUGIN_CRYPT =
+ VBOX_WITH_DRAG_AND_DROP_PROMISES =
- ifn1of ($(KBUILD_TARGET), linux)
+ ifn1of ($(KBUILD_TARGET), freebsd linux)
- VBOX_WITH_DOCS=
- VBOX_WITH_DOCS_PACKING=
+ VBOX_WITH_DOCS =
+ VBOX_WITH_DOCS_PACKING =
endif
-@@ -4928,7 +4924,7 @@ define TOOL_FREEBSDKMODLD_LINK_SYSMOD_CMDS
+@@ -3518,19 +3514,7 @@
+ #
+ ## @todo consider maxing this out.
+ ifndef VBOX_GCC_std
+- if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.arm64) # Go straight for c++17 here.
+ VBOX_GCC_std := -std=c++17
+- # else if "$(VBOX_CLANG_VERSION_CXX)" vge 60000 # Most language features complete by v6. Lib stuff was less complete in v6, but hopefully acceptable for out purposes.
+- #VBOX_GCC_std := -std=c++17
+- else if "$(VBOX_CLANG_VERSION_CXX)" vge 50000 # darwin Xcode 5 allegedly knows what C++11 is
+- VBOX_GCC_std := -std=c++11
+- # else if "$(VBOX_GCC_VERSION_CXX)" vge 70000 # Language feature P0512R0 was v8, rest v7 or earlier. Most lib stuff present in 7, complete in v12.
+- #VBOX_GCC_std := -std=gnu++17
+- else if "$(VBOX_GCC_VERSION_CXX)" vge 40800
+- VBOX_GCC_std := -std=c++11
+- else if "$(VBOX_GCC_VERSION_CXX)" vge 40600
+- VBOX_GCC_std := -std=c++0x
+- endif
+ endif
+ ifndef VBOX_VCC_std
+ if $(VBOX_VCC_TOOL_STEM) >= VCC141 # since 2017 15.3
+@@ -5484,11 +5468,11 @@
+ # Solaris driver signing.
+ TEMPLATE_VBoxR0_POST_CMDS = $(VBOX_SIGN_DRIVER_CMDS)
+ else
+- TEMPLATE_VBoxR0_LDFLAGS = -nostdlib -Bsymbolic -g
++ TEMPLATE_VBoxR0_LDFLAGS = -nostdlib -Bsymbolic -g -fuse-ld=bfd
+ ## @todo WTF doesn't the globals work? Debug info is supposed to be split everywhere. GRR
+ TEMPLATE_VBoxR0_LD_DEBUG = split
+ endif
+- if "$(KBUILD_TARGET)" == "linux" && !defined(VBOX_WITH_KMOD_WRAPPED_R0_MODS)
++ if ( "$(KBUILD_TARGET)" == "linux" || "$(KBUILD_TARGET)" == "freebsd") && !defined(VBOX_WITH_KMOD_WRAPPED_R0_MODS)
+ VBOX_WITH_VBOXR0_AS_DLL = 1
+ TEMPLATE_VBoxR0_DLLSUFF = .r0
+ TEMPLATE_VBoxR0_CFLAGS += -fPIC
+@@ -5499,7 +5483,7 @@
+ else
+ TEMPLATE_VBoxR0_CFLAGS.amd64 += -mcmodel=kernel
+ TEMPLATE_VBoxR0_CXXFLAGS.amd64 += -mcmodel=kernel
+- endif
++endif
+ ifdef VBOX_WITH_KMOD_WRAPPED_R0_MODS # For BTF/pahold issue we use -g1
+ TEMPLATE_VBoxR0_DEFS += VBOX_WITH_KMOD_WRAPPED_R0_MODS
+ TEMPLATE_VBoxR0_LDFLAGS.linux += $(PATH_ROOT)/src/VBox/HostDrivers/Support/linux/VBoxR0-wrapped.lds
+@@ -5880,7 +5864,7 @@
+ # x86 FreeBSD (6.2 or something):
+ # cc -O2 -fno-strict-aliasing -pipe -Werror -D_KERNEL -DKLD_MODULE \
+ # -nostdinc -I- -I. -I@ -I@/contrib/altq -I@/../include -I/usr/include \
+- # -finline-limit=8000 -fno-common -mno-align-long-strings -mpreferred-stack-boundary=2 \
++ # -fno-common -mno-align-long-strings \
+ # -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -ffreestanding -Wall -Wredundant-decls -Wnested-externs \
+ # -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions \
+ # -std=c99 -c ../my.c
+@@ -5891,7 +5875,7 @@
+ #
+ # AMD64 FreeBSD (7.1):
+ # cc -O2 -fno-strict-aliasing -pipe -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I. -I@ -I@/contrib/altq \
+- # -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common \
++ # --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common \
+ # -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx \
+ # -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding \
+ # -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign \
+@@ -5973,7 +5957,7 @@
| xargs -J% objcopy % $(outbase).kld
- # Link the final .ko (a shared object).
+ # Link the final .ko (a shared object).
- ld $(flags) -Bshareable -o $(out) $(outbase).kld
-+ ld $(flags) -Bshareable -znotext -o $(out) $(outbase).kld
- endef
++ ld $(flags) -Bshareable -znotext -o $(out) $(outbase).kld
+ endef
endif # x86
-@@ -5205,6 +5201,7 @@ TEMPLATE_VBOXR3EXE_LDFLAGS.x86 = -m32
- TEMPLATE_VBOXR3EXE_LDFLAGS.amd64 = -m64
- TEMPLATE_VBOXR3EXE_LDFLAGS.sparc32 = -m32
- TEMPLATE_VBOXR3EXE_LDFLAGS.sparc64 = -m64
-+TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
- TEMPLATE_VBOXR3EXE_LDFLAGS.linux = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
- TEMPLATE_VBOXR3EXE_LDFLAGS.solaris = -Wl,-z,ignore # same as VBOX_LD_as_needed
- TEMPLATE_VBOXR3EXE_LDFLAGS.debug = $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_SANITIZER_LDFLAGS)
-@@ -5238,10 +5235,18 @@ TEMPLATE_VBOXR3EXE_LIBPATH += \
- TEMPLATE_VBOXR3EXE_CFLAGS += -fno-pic
- TEMPLATE_VBOXR3EXE_CXXFLAGS += -fno-pic
- TEMPLATE_VBOXR3EXE_LDFLAGS += -fno-pic
+@@ -6008,7 +5992,7 @@
+ $(VBOX_GCC_fdiagnostics-show-option) \
+ -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
+ -Wimplicit-function-declaration -Werror-implicit-function-declaration \
+- -O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
++ -O2 -ffreestanding -fno-strict-aliasing -fno-common \
+ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ -nostdinc -std=c99 -msoft-float
+ TEMPLATE_VBoxR0Drv_CFLAGS.x86 = -m32 -mno-mmx -mno-sse -mno-avx \
+@@ -6019,7 +6003,7 @@
+ -fno-asynchronous-unwind-tables -mno-fp-ret-in-387
+ TEMPLATE_VBoxR0Drv_CXXFLAGS = -fno-exceptions -fno-rtti \
+ $(VBOX_GCC_WARN) -Wpointer-arith -Winline \
+- -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \
++ -O2 -fno-strict-aliasing -fno-common \
+ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ -nostdinc -msoft-float
+ TEMPLATE_VBoxR0Drv_CXXFLAGS.x86 = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86)
+@@ -6318,11 +6302,11 @@
+ TEMPLATE_VBoxR3Exe_LIBS = pthread m rt dl
+ else ifeq ($(KBUILD_TARGET),os2)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3OMF
+- TEMPLATE_VBoxR3Exe_LIBS = socket iconv
++ TEMPLATE_VBoxR3Exe_LIBS = socket
+ else ifeq ($(KBUILD_TARGET),darwin)
+ TEMPLATE_VBoxR3Exe_TOOL = $(VBOX_GCC_TOOL)
+ TEMPLATE_VBoxR3Exe_LIBS =
+- TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG # Avoid 3rd party libiconv (from macports).
++ TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG # Avoid 3rd party lib (from macports).
+ TEMPLATE_VBoxR3Exe_SDKS.darwin = $(VBOX_DARWIN_DEF_SDK_SDKS)
+ TEMPLATE_VBoxR3Exe_DEFS.darwin = $(VBOX_DARWIN_DEF_SDK_DEFS)
+ TEMPLATE_VBoxR3Exe_CFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -fno-common
+@@ -6339,17 +6323,26 @@
+ else ifeq ($(KBUILD_TARGET),haiku)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3
+ TEMPLATE_VBoxR3Exe_POST_CMDS = $(VBOX_HAIKU_XRES_SETVER_CMDS)
+- TEMPLATE_VBoxR3Exe_LIBS = network iconv stdc++ supc++
++ TEMPLATE_VBoxR3Exe_LIBS = network stdc++ supc++
+ TEMPLATE_VBoxR3Exe_LIBPATH += \
+ /boot/common/lib
+ # Haiku uses PIC by default...
+ TEMPLATE_VBoxR3Exe_CFLAGS += -fno-pic
+ TEMPLATE_VBoxR3Exe_CXXFLAGS += -fno-pic
+ TEMPLATE_VBoxR3Exe_LDFLAGS += -fno-pic
- else if1of ($(KBUILD_TARGET), freebsd openbsd)
-+ else ifeq ($(KBUILD_TARGET),freebsd)
- TEMPLATE_VBOXR3EXE_TOOL = GXX3
- TEMPLATE_VBOXR3EXE_LIBS = pthread
-+TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext
- TEMPLATE_VBOXR3EXE_INCS += \
-+ /usr/local/include
-+TEMPLATE_VBOXR3EXE_LIBPATH += \
-+ /usr/local/lib
-+ else ifeq ($(KBUILD_TARGET),openbsd)
-+TEMPLATE_VBOXR3EXE_TOOL = GXX3
-+TEMPLATE_VBOXR3EXE_LIBS = pthread
-+TEMPLATE_VBOXR3EXE_INCS += \
- /usr/include \
- /usr/X11R6/include \
- /usr/local/include
-@@ -5273,6 +5278,7 @@ TEMPLATE_VBOXR3EXE_CXXFLAGS.kprofile = $(TEMPLATE_VB
- TEMPLATE_VBOXR3EXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
++ else ifeq ($(KBUILD_TARGET), freebsd)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3
+ TEMPLATE_VBoxR3Exe_LIBS = pthread
++ TEMPLATE_VBoxR3Exe_LDFLAGS = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
++ TEMPLATE_VBoxR3Exe_LDFLAGS.freebsd.x86 = -Wl,-z,notext
+ TEMPLATE_VBoxR3Exe_INCS += \
++ /usr/local/include
++ TEMPLATE_VBoxR3Exe_LIBPATH += \
++ /usr/local/lib
++ else ifeq ($(KBUILD_TARGET), openbsd)
++ TEMPLATE_VBoxR3Exe_TOOL = GXX3
++ TEMPLATE_VBoxR3Exe_LIBS = pthread
++ TEMPLATE_VBoxR3Exe_INCS += \
+ /usr/include \
+ /usr/X11R6/include \
+ /usr/local/include
+@@ -6368,7 +6361,7 @@
+ /usr/X11R7/lib
+ else ifeq ($(KBUILD_TARGET),solaris)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3PLAIN
+- TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG _REENTRANT # Avoid the GNU libiconv, for now at least.
++ TEMPLATE_VBoxR3Exe_DEFS += LIBICONV_PLUG _REENTRANT # Avoid the GNU lib, for now at least.
+ if $(VBOX_GCC_VERSION_CC) < 30500
+ TEMPLATE_VBoxR3Exe_CFLAGS += -std=gnu99
+ endif
+@@ -6384,6 +6377,7 @@
+ TEMPLATE_VBoxR3Exe_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
endif
ifdef VBOX_WITH_ORIGIN
-+ TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT)
- TEMPLATE_VBOXR3EXE_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
++ TEMPLATE_VBoxR3Exe_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT)
+ TEMPLATE_VBoxR3Exe_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
endif
endif
-@@ -5412,7 +5418,7 @@ ifeq ($(KBUILD_TARGET),win)
- $(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
- $(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib \
- $(PATH_TOOL_$(TEMPLATE_VBOXR3STATIC_TOOL.win.amd64)_LIB)/oldnames.lib
--else ifn1of ($(KBUILD_TARGET), darwin linux solaris)
-+else ifn1of ($(KBUILD_TARGET), darwin freebsd linux solaris)
- # The gcc guys sans darwin, linux and solaris (don't depend on statically compiled system libs there)
- TEMPLATE_VBOXR3STATIC_CFLAGS = $(TEMPLATE_VBOXR3EXE_CFLAGS) -static
- TEMPLATE_VBOXR3STATIC_CXXFLAGS = $(TEMPLATE_VBOXR3EXE_CXXFLAGS) -static
-@@ -5557,6 +5563,7 @@ ifeq ($(KBUILD_TARGET),win) # No CRT!
- else ifn1of ($(KBUILD_TARGET), os2 solaris)
- # We want to keep the RPATH on Solaris to be able to find libgcc_1/libstdc++ within $(VBOX_WITH_RUNPATH)
- TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS))
-+ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.freebsd))
- TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux))
+@@ -6590,7 +6584,7 @@
+ ifdef VBOX_WITH_NOCRT_STATIC
+ TEMPLATE_VBoxR3StaticBase_DEFS += RT_WITH_NOCRT_WRAPPERS
+ endif
+- ifn1of ($(KBUILD_TARGET), darwin linux solaris)
++ ifn1of ($(KBUILD_TARGET), darwin freebsd linux solaris)
+ # The gcc guys sans darwin, linux and solaris (don't depend on statically compiled system libs there)
+ TEMPLATE_VBoxR3StaticBase_CFLAGS = $(TEMPLATE_VBoxR3Exe_CFLAGS) -static
+ TEMPLATE_VBoxR3StaticBase_CXXFLAGS = $(TEMPLATE_VBoxR3Exe_CXXFLAGS) -static
+@@ -6656,7 +6650,7 @@
+ $(SDK_VBoxLzf_LIBS) \
+ $(SDK_VBoxZlib_LIBS)
+ if1of ($(KBUILD_TARGET), darwin freebsd)
+- TEMPLATE_VBoxR3Static_LIBS += iconv
++ TEMPLATE_VBoxR3Static_LIBS +=
+ else ifeq ($(KBUILD_TARGET),solaris)
+ TEMPLATE_VBoxR3Static_LIBS += kstat
+ endif
+@@ -6830,6 +6824,7 @@
+ else ifn1of ($(KBUILD_TARGET), os2)
+ ifneq ($(KBUILD_TYPE),asan) # Keep RPATH in asan builds so we can find libasan.so.X and libubsan.so.Y.
+ TEMPLATE_VBoxR3HardenedExe_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3Exe_LDFLAGS))
++ TEMPLATE_VBoxR3HardenedExe_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3Exe_LDFLAGS.freebsd))
+ TEMPLATE_VBoxR3HardenedExe_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3Exe_LDFLAGS.linux))
+ endif
endif
-
-@@ -5584,6 +5591,7 @@ TEMPLATE_VBoxR3HardenedTstDll_INST = $(INST_TESTCASE)
- TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.win = $(TEMPLATE_VBoxR3TstDll_LDFLAGS.win) -IntegrityCheck
+@@ -6861,6 +6856,7 @@
+ $(if-expr !defined(VBOX_WITHOUT_WINDOWS_KERNEL_CODE_SIGNING_CERT),-IntegrityCheck,)
ifn1of ($(KBUILD_TARGET), win os2)
TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3TstDll_LDFLAGS))
+ TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.freebsd))
TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.linux))
endif
-@@ -5606,6 +5614,7 @@ ifndef VBOX_WITH_HARDENING
+@@ -6884,6 +6880,7 @@
TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
endif
ifdef VBOX_WITH_ORIGIN
@@ -144,91 +256,145 @@
TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
endif
endif
-@@ -6132,10 +6141,19 @@ TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTI
+@@ -7208,7 +7205,7 @@
+ endif
+ TEMPLATE_VBoxMainExe_CXXFLAGS = -g $(VBOX_GCC_pipe) \
+ $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_Wno-multistatement-macros) $(VBOX_GCC_Wno-class-memaccess) -Wshadow \
+- -fshort-wchar -fpermissive -fexceptions -frtti $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing \
++ -fshort-wchar -fexceptions -frtti $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing \
+ $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK) \
+ $(VBOX_GCC_SANITIZER_FLAGS)
+ if !defined("VBOX_GCC_Wno-delete-non-virtual-dtor") && defined("VBOX_GCC_Wno-non-virtual-dtor")
+@@ -7272,10 +7269,19 @@
else ifeq ($(KBUILD_TARGET),haiku)
- TEMPLATE_VBOXMAINEXE_TOOL = GXX3
- TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME) network stdc++ supc++
+ TEMPLATE_VBoxMainExe_TOOL = GXX3
+ TEMPLATE_VBoxMainExe_LIBS = $(LIB_RUNTIME) network stdc++ supc++
- else if1of ($(KBUILD_TARGET), freebsd openbsd)
-+ else ifeq ($(KBUILD_TARGET),freebsd)
- TEMPLATE_VBOXMAINEXE_TOOL = GXX3
- TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME)
-+TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
-+TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext
- TEMPLATE_VBOXMAINEXE_INCS += \
-+ /usr/local/include
-+TEMPLATE_VBOXMAINEXE_LIBPATH += \
-+ /usr/local/lib
-+ else ifeq ($(KBUILD_TARGET),openbsd)
-+TEMPLATE_VBOXMAINEXE_TOOL = GXX3
-+TEMPLATE_VBOXMAINEXE_LIBS = $(LIB_RUNTIME)
-+TEMPLATE_VBOXMAINEXE_INCS += \
- /usr/include \
- /usr/X11R6/include \
- /usr/local/include
-@@ -6167,6 +6185,7 @@ TEMPLATE_VBOXMAINEXE_LDFLAGS += '$(VBOX_GCC
- TEMPLATE_VBOXMAINEXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
++ else ifeq ($(KBUILD_TARGET), freebsd)
+ TEMPLATE_VBoxMainExe_TOOL = GXX3
+ TEMPLATE_VBoxMainExe_LIBS = $(LIB_RUNTIME)
++ TEMPLATE_VBoxMainExe_LDFLAGS = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
++ TEMPLATE_VBoxMainExe_LDFLAGS.freebsd.x86 = -Wl,-z,notext
+ TEMPLATE_VBoxMainExe_INCS += \
++ /usr/local/include
++ TEMPLATE_VBoxMainExe_LIBPATH += \
++ /usr/local/lib
++ else ifeq ($(KBUILD_TARGET), openbsd)
++ TEMPLATE_VBoxMainExe_TOOL = GXX3
++ TEMPLATE_VBoxMainExe_LIBS = $(LIB_RUNTIME)
++ TEMPLATE_VBoxMainExe_INCS += \
+ /usr/include \
+ /usr/X11R6/include \
+ /usr/local/include
+@@ -7307,6 +7313,7 @@
+ TEMPLATE_VBoxMainExe_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
endif
ifdef VBOX_WITH_ORIGIN
-+TEMPLATE_VBOXMAINEXE_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT)
- TEMPLATE_VBOXMAINEXE_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
++ TEMPLATE_VBoxMainExe_LDFLAGS.freebsd += $(VBOX_GCC_ORIGIN_OPT)
+ TEMPLATE_VBoxMainExe_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
endif
-@@ -6735,13 +6754,11 @@ ifdef VBOX_WITH_QTGUI
- TEMPLATE_VBOXQTGUIEXE_LIBPATH += \
- $(VBOX_LIBPATH_X11)
+@@ -7943,13 +7950,11 @@
+ TEMPLATE_VBoxQtGuiExe_LIBPATH += \
+ $(VBOX_LIBPATH_X11)
ifeq ($(KBUILD_TARGET),freebsd)
-+ TEMPLATE_VBOXQTGUIEXE_LDFLAGS += -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
-+ TEMPLATE_VBOXQTGUIEXE_LDFLAGS.freebsd.x86 = -Wl,-z,notext
- TEMPLATE_VBOXQTGUIEXE_INCS += \
-- /usr/include \
-- /usr/X11R6/include \
- /usr/local/include
- TEMPLATE_VBOXQTGUIEXE_LIBPATH += \
-- /usr/lib \
-- /usr/X11R6/lib \
- /usr/local/lib
++ TEMPLATE_VBoxQtGuiExe_LDFLAGS += -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
++ TEMPLATE_VBoxQtGuiExe_LDFLAGS.freebsd.x86 = -Wl,-z,notext
+ TEMPLATE_VBoxQtGuiExe_INCS += \
+- /usr/include \
+- /usr/X11R6/include \
+ /usr/local/include
+ TEMPLATE_VBoxQtGuiExe_LIBPATH += \
+- /usr/lib \
+- /usr/X11R6/lib \
+ /usr/local/lib
endif
ifeq ($(KBUILD_TARGET),solaris)
-@@ -6988,10 +7005,17 @@ TEMPLATE_VBoxBldProg_TOOL = GXX3
- TEMPLATE_VBoxBldProg_LIBS = network iconv
- TEMPLATE_VBoxBldProg_LIBPATH += \
- /boot/common/lib
+@@ -8231,7 +8236,7 @@
+ TEMPLATE_VBoxBldProg_LIBS = pthread m rt dl
+ else ifeq ($(KBUILD_HOST),os2)
+ TEMPLATE_VBoxBldProg_TOOL = GXX3OMF
+- TEMPLATE_VBoxBldProg_LIBS = socket iconv
++ TEMPLATE_VBoxBldProg_LIBS = socket
+ else ifeq ($(KBUILD_HOST),darwin)
+ TEMPLATE_VBoxBldProg_TOOL = $(VBOX_GCC_TOOL)
+ if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.7" || "$(VBOX_DARWIN_HOST_VERSION_MAJOR)" == "7"
+@@ -8271,13 +8276,20 @@
+ TEMPLATE_VBoxBldProg_LIBS =
+ else ifeq ($(KBUILD_HOST),haiku)
+ TEMPLATE_VBoxBldProg_TOOL = GXX3
+- TEMPLATE_VBoxBldProg_LIBS = network iconv
++ TEMPLATE_VBoxBldProg_LIBS = network
+ TEMPLATE_VBoxBldProg_LIBPATH += \
+ /boot/common/lib
- else if1of ($(KBUILD_HOST), freebsd openbsd)
-+ else ifeq ($(KBUILD_HOST),freebsd)
- TEMPLATE_VBoxBldProg_TOOL = GXX3
- TEMPLATE_VBoxBldProg_LIBS = pthread
- TEMPLATE_VBoxBldProg_INCS += \
-+ /usr/local/include
-+TEMPLATE_VBoxBldProg_LIBPATH += \
-+ /usr/local/lib
-+ else ifeq ($(KBUILD_HOST),openbsd)
-+TEMPLATE_VBoxBldProg_TOOL = GXX3
-+TEMPLATE_VBoxBldProg_LIBS = pthread
-+TEMPLATE_VBoxBldProg_INCS += \
- /usr/include \
- /usr/X11R6/include \
- /usr/local/include
-@@ -7115,6 +7139,7 @@ else # the gcc guys
- # Do not inherit sanitizer flags from VBOXR3EXE in guest executables. Deal with them separately.
- TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.debug = $(NO_SUCH_VARIABLE)
- TEMPLATE_VBOXGUESTR3EXE_CFLAGS.debug = $(NO_SUCH_VARIABLE)
-+ TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.freebsd))
- TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux))
- TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.debug = $(NO_SUCH_VARIABLE)
- TEMPLATE_VBOXGUESTR3EXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS))
-@@ -7138,6 +7163,7 @@ TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.linux = \
++ else ifeq ($(KBUILD_HOST), freebsd)
+ TEMPLATE_VBoxBldProg_TOOL = $(VBOX_GCC_TOOL)
+ TEMPLATE_VBoxBldProg_LIBS = pthread
+ TEMPLATE_VBoxBldProg_INCS += \
++ /usr/local/include
++ TEMPLATE_VBoxBldProg_LIBPATH += \
++ /usr/local/lib
++ else ifeq ($(KBUILD_HOST), openbsd)
++ TEMPLATE_VBoxBldProg_TOOL = $(VBOX_GCC_TOOL)
++ TEMPLATE_VBoxBldProg_LIBS = pthread
++ TEMPLATE_VBoxBldProg_INCS += \
+ /usr/include \
+ /usr/X11R6/include \
+ /usr/local/include
+@@ -8324,11 +8336,11 @@
+ $(TEMPLATE_VBoxBldProg_LIBS)
+ TEMPLATE_VBoxAdvBldProg_LIBS.darwin = \
+ $(TEMPLATE_VBoxAdvBldProg_LIBS) \
+- iconv \
++ \
+ $(TEMPLATE_VBoxBldProg_LIBS.darwin)
+ TEMPLATE_VBoxAdvBldProg_LIBS.freebsd = \
+ $(TEMPLATE_VBoxAdvBldProg_LIBS) \
+- iconv \
++ \
+ rt \
+ $(TEMPLATE_VBoxBldProg_LIBS.freebsd)
+ TEMPLATE_VBoxAdvBldProg_LIBS.linux = \
+@@ -8419,6 +8431,7 @@
+ # Do not inherit sanitizer flags from VBoxR3Exe in guest executables. Deal with them separately.
+ TEMPLATE_VBoxGuestR3ExeBase_CXXFLAGS.debug = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.debug = $(NO_SUCH_VARIABLE)
++ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.freebsd = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LDFLAGS.freebsd))
+ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LDFLAGS.linux))
+ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.debug = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LDFLAGS))
+@@ -8442,7 +8455,7 @@
+ ifeq ($(KBUILD_TARGET),linux) # As few libs as possible on linux.
+ TEMPLATE_VBoxGuestR3ExeBase_LIBS = pthread rt m dl
+ else if1of ($(KBUILD_TARGET), darwin freebsd openbsd)
+- TEMPLATE_VBoxGuestR3ExeBase_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) iconv
++ TEMPLATE_VBoxGuestR3ExeBase_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS)
+ else ifeq ($(KBUILD_TARGET),solaris)
+ TEMPLATE_VBoxGuestR3ExeBase_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) nsl
+ endif
+@@ -8455,6 +8468,7 @@
$(VBOX_GCC_fno-stack-protector)
- TEMPLATE_VBOXGUESTR3EXE_CFLAGS.linux = $(TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS.linux)
+ TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.linux = $(TEMPLATE_VBoxGuestR3ExeBase_CXXFLAGS.linux)
# The GNU_HASH ELF tag is not supported by older systems.
-+TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.freebsd += $(VBOX_LD_hash_style_sysv)
- TEMPLATE_VBOXGUESTR3EXE_LDFLAGS.linux += $(VBOX_LD_hash_style_sysv)
++TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.freebsd += $(VBOX_LD_hash_style_sysv)
+ TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.linux += $(VBOX_LD_hash_style_sysv)
- #
-@@ -7345,6 +7371,7 @@ TEMPLATE_VBOXGUESTR3XF86MOD_LIBS.$(KBUILD_TYPE) =
- TEMPLATE_VBOXGUESTR3XF86MOD_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE)
- TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE)
+
+@@ -8684,6 +8698,7 @@
+ TEMPLATE_VBoxGuestR3XFree86Mod_CXXFLAGS.linux = $(VBOX_GCC_fno-stack-protector) # Remove symvers.h
+ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE)
# The GNU_HASH ELF tag is not supported by older glibc dynamic linkers.
-+TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.freebsd = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv))
- TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.linux = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv))
- TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE)
- TEMPLATE_VBOXGUESTR3XF86MOD_LDFLAGS = -r
++TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.freebsd = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv))
+ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.linux = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv))
+ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS := -r
+@@ -8725,7 +8740,7 @@
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS = $(VBOX_LIB_VBGL_R3_XORG)
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TYPE) = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE)
+-TEMPLATE_VBoxGuestR3XOrgMod_LIBS.freebsd += iconv
++TEMPLATE_VBoxGuestR3XOrgMod_LIBS.freebsd +=
+
+
+ #
diff --git a/emulators/virtualbox-ose-70/files/patch-configure b/emulators/virtualbox-ose-70/files/patch-configure
index 25015e642bc1..fe0f4247089b 100644
--- a/emulators/virtualbox-ose-70/files/patch-configure
+++ b/emulators/virtualbox-ose-70/files/patch-configure
@@ -1,6 +1,6 @@
---- configure.orig 2021-10-18 17:47:25 UTC
-+++ configure
-@@ -139,10 +139,14 @@ CXX_FLAGS=""
+--- configure.orig 2024-10-10 20:19:24.000000000 +0200
++++ configure 2024-12-27 13:12:46.010746000 +0100
+@@ -154,10 +154,14 @@
if [ "$OS" = "freebsd" ]; then
INCCURL="-I/usr/local/include"
LIBCURL="-L/usr/local/lib -lcurl"
@@ -15,7 +15,7 @@
else
INCCURL=""
LIBCURL="-lcurl"
-@@ -1173,6 +1177,9 @@ extern "C" int main(int argc, char** arg
+@@ -1207,6 +1211,9 @@
printf("found version %d.%d.%d",
SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL);
#if SDL_VERSION_ATLEAST(1,2,7)
@@ -25,7 +25,7 @@
printf(", OK.\n");
return 0;
#else
-@@ -1257,7 +1264,7 @@ extern "C" int main(void)
+@@ -1291,7 +1298,7 @@
#endif
}
EOF
@@ -34,7 +34,7 @@
test_execute
fi
}
-@@ -1564,6 +1571,7 @@ EOF
+@@ -1605,6 +1612,7 @@
FLGQT5=`pkg-config Qt5Core --cflags`
# gcc 4.8 is able to compile with C++11 (see also VBOX_GCC_std in Config.kmk)
[ $(($cc_maj * 100 + $cc_min)) -ge 408 ] && FLGQT5="$FLGQT5 -std=c++11"
@@ -42,16 +42,7 @@
INCQT5=`strip_I "$FLGQT5"`
LIBDIR5=`pkg-config Qt5Core --variable=libdir`
LIBQT5=`pkg-config Qt5Core Qt5Gui --libs`
-@@ -1702,7 +1710,7 @@ check_libopus()
- fi
- cat > $ODIR.tmp_src.cc << EOF
- #include <cstdio>
--#include <opus/opus.h>
-+#include <opus.h>
- extern "C" int main(void)
- {
- OpusEncoder *test;
-@@ -2034,8 +2042,8 @@ EOF
+@@ -2180,8 +2188,8 @@
echo "compiling the following source file:" >> $LOG
cat $ODIR.tmp_src.cc >> $LOG
echo "using the following command line:" >> $LOG
@@ -62,7 +53,7 @@
if [ $? -eq 0 ]; then
found=1
break
-@@ -2151,7 +2159,7 @@ check_gsoap()
+@@ -2297,7 +2305,7 @@
else
cnf_append "VBOX_GSOAP_CXX_SOURCES" ""
fi
@@ -71,16 +62,16 @@
gsoap_version=`pkg-config gsoapssl++ --modversion`
log_success "found version $gsoap_version"
return
-@@ -2519,7 +2527,7 @@ for option in "$@"; do
+@@ -2661,7 +2669,7 @@
--with-openssl-dir=*)
OPENSSLDIR=`echo $option | cut -d'=' -f2`
INCCRYPTO="-I${OPENSSLDIR}/include"
- LIBCRYPTO="${OPENSSLDIR}/lib/libssl.a ${OPENSSLDIR}/lib/libcrypto.a"
+ LIBCRYPTO="-L${OPENSSLDIR}/lib -lssl -lcrypto"
+ # On Darwin (at least for macports) static OpenSSL also needs zlib.
+ [ "$OS" = "darwin" ] && LIBCRYPTO="$LIBCRYPTO ${OPENSSLDIR}/lib/libz.a"
# On Linux static OpenSSL typically needs a few additional libraries.
- [ "$OS" = "linux" ] && LIBCRYPTO="-ldl $LIBPTHREAD -lm"
- ;;
-@@ -2865,12 +2873,22 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then
+@@ -3028,12 +3036,22 @@
[ $WITH_JAVA -eq 1 ] && check_java
# PulseAudio
@@ -109,7 +100,7 @@
fi
fi
-@@ -2886,14 +2904,6 @@ if [ "$OS" = "linux" ]; then
+@@ -3049,14 +3067,6 @@
cnf_append "VBOX_WITHOUT_LINUX_TEST_BUILDS" "1"
fi
if [ $ONLY_ADDITIONS -eq 0 ]; then
diff --git a/emulators/virtualbox-ose-70/files/patch-include_VBox_sup.h b/emulators/virtualbox-ose-70/files/patch-include_VBox_sup.h
new file mode 100644
index 000000000000..9cf3fabe63f1
--- /dev/null
+++ b/emulators/virtualbox-ose-70/files/patch-include_VBox_sup.h
@@ -0,0 +1,11 @@
+--- include/VBox/sup.h.orig 2024-12-27 04:08:45.986426000 +0100
++++ include/VBox/sup.h 2024-12-27 04:09:08.925387000 +0100
+@@ -2248,7 +2248,7 @@
+
+ SUPR0DECL(void) SUPR0BadContext(PSUPDRVSESSION pSession, const char *pszFile, uint32_t uLine, const char *pszExpr);
+
+-#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD)
++#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS)
+ /**
+ * Translates a physical address to a virtual mapping (valid up to end of page).
+ * @returns VBox status code.
diff --git a/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
index 8fd24bda91f1..e790f372f95f 100644
--- a/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
+++ b/emulators/virtualbox-ose-70/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
@@ -1,6 +1,6 @@
---- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2022-03-22 23:37:46 UTC
-+++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c
-@@ -45,6 +45,7 @@
+--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig 2022-10-06 19:03:06.000000000 +0200
++++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c 2024-12-26 15:28:38.066230000 +0100
+@@ -55,6 +55,7 @@
#include <sys/uio.h>
#include <sys/bus.h>
#include <sys/poll.h>
@@ -8,7 +8,7 @@
#include <sys/selinfo.h>
#include <sys/queue.h>
#include <sys/lock.h>
-@@ -61,6 +62,7 @@
+@@ -71,6 +72,7 @@
#include <VBox/version.h>
#include <VBox/log.h>
#include <iprt/assert.h>
@@ -16,7 +16,7 @@
#include <iprt/initterm.h>
#include <iprt/process.h>
#include <iprt/string.h>
-@@ -102,8 +104,6 @@ struct VBoxGuestDeviceState
+@@ -112,8 +114,6 @@
struct resource *pIrqRes;
/** Pointer to the IRQ handler. */
void *pfnIrqHandler;
@@ -25,7 +25,7 @@
};
-@@ -113,8 +113,7 @@ struct VBoxGuestDeviceState
+@@ -123,8 +123,7 @@
/*
* Character device file handlers.
*/
@@ -35,7 +35,7 @@
static d_ioctl_t vgdrvFreeBSDIOCtl;
static int vgdrvFreeBSDIOCtlSlow(PVBOXGUESTSESSION pSession, u_long ulCmd, caddr_t pvData, struct thread *pTd);
static d_write_t vgdrvFreeBSDWrite;
-@@ -145,8 +144,7 @@ static struct cdevsw g_vgdrvFreeBSDChrDevSW =
+@@ -155,8 +154,7 @@
{
.d_version = D_VERSION,
.d_flags = D_TRACKCLOSE | D_NEEDMINOR,
@@ -45,7 +45,7 @@
.d_ioctl = vgdrvFreeBSDIOCtl,
.d_read = vgdrvFreeBSDRead,
.d_write = vgdrvFreeBSDWrite,
-@@ -154,81 +152,28 @@ static struct cdevsw g_vgdrvFreeBSDChrDevSW =
+@@ -164,81 +162,28 @@
.d_name = "vboxguest"
};
@@ -134,7 +134,7 @@
{
int rc;
PVBOXGUESTSESSION pSession;
-@@ -240,12 +185,6 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
+@@ -250,12 +195,6 @@
LogFlow(("vgdrvFreeBSDOpen:\n"));
/*
@@ -147,7 +147,7 @@
* Create a new session.
*/
*** 1849 LINES SKIPPED ***