git: 3fd0f81ce50f - main - emulators/virtualbox-ose{,-kmod,-nox11}-72: Add new ports VirtualBox 7.2.0

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Fri, 29 Aug 2025 15:17:56 UTC
The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3fd0f81ce50f019564e04bf9fdc3161b2aec47c3

commit 3fd0f81ce50f019564e04bf9fdc3161b2aec47c3
Author:     Vladimir Druzenko <vvd@FreeBSD.org>
AuthorDate: 2025-08-29 14:59:22 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-08-29 15:16:27 +0000

    emulators/virtualbox-ose{,-kmod,-nox11}-72: Add new ports VirtualBox 7.2.0
    
    Port based on patch from Stas Timokhin <devel@stasyan.com>.
    The main work on porting was done by the author of the original patch.
    The rest is a several various improvements and bug fixes that have been
    made over the past few months in older versions and one upstream
    regression: https://github.com/VirtualBox/virtualbox/issues/135
    
    The requirements for 7.2.x are the same as for 7.1.x, but for now we'll
    leave both versions: 7.2.x in experimental/test mode and 7.1.x - stable.
    
    Upstream ported on aarch64, but for now we keep ONLY_FOR_ARCHS=amd64.
    If you interested in porting it on aarch64 - create PR with patch.
    
    The following ports also need to be created (they are not available for
    versions 7.0.x and 7.1.x either):
     - emulators/virtualbox-ose-additions-72;
     - emulators/virtualbox-ose-additions-nox11-72.
    
    www/phpvirtualbox-72 already in ports.
    
    Changelog:
    https://www.virtualbox.org/wiki/Changelog-7.2
    
    While here refresh patches.
    
    PR:             289019
    Relnotes:       Add VirtualBox 7.2.0
    Co-authored-by: Stas Timokhin <devel@stasyan.com>
    Co-authored-by: Mario Lobo <lobo@bsd.com.br>
---
 emulators/Makefile                                 |   3 +
 emulators/virtualbox-ose-72/Makefile               |  16 +-
 emulators/virtualbox-ose-72/distinfo               |  14 +-
 emulators/virtualbox-ose-72/files/patch-Config.kmk | 213 +++++++++++----------
 emulators/virtualbox-ose-72/files/patch-configure  |  34 ++--
 ...patch-doc_manual_en__US_dita_UserManual.ditamap |   4 +-
 .../files/patch-include-iprt-x86.h                 |   6 +-
 .../files/patch-include_VBox_com_array.h           |   8 +-
 .../files/patch-include_VBox_sup.h                 |   6 +-
 .../files/patch-include_iprt_string.h              |   4 +-
 ...-Additions-common-VBoxGuest-VBoxGuest-freebsd.c |  26 +--
 ...Box-Additions-common-VBoxGuest-freebsd-Makefile |   8 +-
 ...itions-common-VBoxGuest-freebsd-files_vboxguest |  10 +-
 ...-VBox-Additions-x11-Installer-98vboxadd-xclient |   6 +-
 ...h-src-VBox-Devices-Network-slirp-bsd-sys-mbuf.h |  12 --
 ...ch-src-VBox-HostDrivers-VBoxNetAdp-Makefile.kmk |   8 +-
 ...HostDrivers-VBoxNetFlt-freebsd-files_vboxnetflt |   6 +-
 .../files/patch-src-VBox-Installer-Makefile.kmk    |   4 +-
 ...tch-src-VBox-Main-src-server-VirtualBoxImpl.cpp |   4 +-
 ...untime-r0drv-freebsd-sleepqueue-r0drv-freebsd.h |   6 +-
 ...itions_common_VBoxService_VBoxServiceVMInfo.cpp |  20 +-
 ...tch-src_VBox_Additions_common_pam_pam__vbox.cpp |   6 +-
 .../patch-src_VBox_Additions_freebsd_Makefile      |   6 +-
 .../patch-src_VBox_Additions_freebsd_Makefile.kmk  |   6 +-
 ...src_VBox_Additions_freebsd_drm_vboxvideo__drm.c |   4 +-
 ...ditions_freebsd_mount__vboxvfs_mount__vboxvfs.8 |   4 +-
 ...ditions_freebsd_mount__vboxvfs_mount__vboxvfs.c |   4 +-
 ...ch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h |   6 +-
 ..._VBox_Additions_freebsd_vboxvfs_vboxvfs__prov.c |   4 +-
 ...Box_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c |  13 +-
 ...VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c |   8 +-
 ...h-src_VBox_Additions_x11_vboxmouse_Makefile.kmk |   4 +-
 ...patch-src_VBox_Devices_Graphics_DevVGA-SVGA.cpp |   4 +-
 ...VBox_Devices_Graphics_DevVGA-SVGA3d-dx-dx11.cpp |   4 +-
 .../files/patch-src_VBox_Devices_Makefile.kmk      |  14 +-
 .../patch-src_VBox_Devices_Network_DrvNAT.cpp      |   4 +-
 .../patch-src_VBox_Devices_PC_ipxe_Makefile.kmk    |  10 +-
 ..._Devices_USB_freebsd_USBProxyDevice-freebsd.cpp |   4 +-
 .../files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp  |   8 +-
 ...rc_VBox_Frontends_VBoxHeadless_VBoxHeadless.cpp |   6 +-
 ...Box_Frontends_VBoxManage_VBoxManageModifyVM.cpp |  10 +-
 ..._VirtualBox_src_manager_UIVirtualBoxManager.cpp |  46 +++++
 ...ds_VirtualBox_src_manager_UIVirtualBoxManager.h |  20 ++
 ...s_VirtualBox_src_manager_UIVirtualBoxWidget.cpp |  24 +++
 .../patch-src_VBox_HostDrivers_Support_SUPDrv.cpp  |   6 +-
 ...h-src_VBox_HostDrivers_Support_SUPDrvInternal.h |   4 +-
 ...h-src_VBox_HostDrivers_Support_freebsd_Makefile |  10 +-
 ..._HostDrivers_Support_freebsd_SUPLib-freebsd.cpp |   6 +-
 ...VBox_HostDrivers_Support_freebsd_files__vboxdrv |  12 +-
 ...rc_VBox_HostDrivers_VBoxNetAdp_freebsd_Makefile |   4 +-
 ...ch-src_VBox_HostDrivers_VBoxNetFlt_Makefile.kmk |   4 +-
 ...rc_VBox_HostDrivers_VBoxNetFlt_freebsd_Makefile |   4 +-
 ...h-src_VBox_HostDrivers_adpctl_VBoxNetAdpCtl.cpp |   4 +-
 .../files/patch-src_VBox_Main_Makefile.kmk         |   6 +-
 .../files/patch-src_VBox_Main_include_HostPower.h  |   6 +-
 .../patch-src_VBox_Main_src-server_HostImpl.cpp    |   4 +-
 ..._Main_src-server_freebsd_PerformanceFreeBSD.cpp |   8 +-
 .../files/patch-src_VBox_Runtime_Makefile.kmk      |  10 +-
 ...Box_Runtime_r0drv_freebsd_alloc-r0drv-freebsd.c |  12 +-
 ...ox_Runtime_r0drv_freebsd_assert-r0drv-freebsd.c |   6 +-
 ...ime_r0drv_freebsd_memuserkernel-r0drv-freebsd.c |   6 +-
 ...c_VBox_Runtime_r0drv_freebsd_mp-r0drv-freebsd.c |  20 +-
 ..._Runtime_r0drv_freebsd_semevent-r0drv-freebsd.c |  12 +-
 ...ime_r0drv_freebsd_semeventmulti-r0drv-freebsd.c |  16 +-
 ...time_r0drv_freebsd_semfastmutex-r0drv-freebsd.c |  12 +-
 ..._Runtime_r0drv_freebsd_semmutex-r0drv-freebsd.c |  18 +-
 ..._Runtime_r0drv_freebsd_spinlock-r0drv-freebsd.c |   8 +-
 ...ox_Runtime_r0drv_freebsd_thread-r0drv-freebsd.c |  10 +-
 ...x_Runtime_r0drv_freebsd_thread2-r0drv-freebsd.c |  10 +-
 ...VBox_Runtime_r0drv_freebsd_time-r0drv-freebsd.c |   6 +-
 ...Box_Runtime_r0drv_freebsd_timer-r0drv-freebsd.c |  16 +-
 ...Box_Runtime_r3_posix_process-creation-posix.cpp |  12 +-
 .../files/patch-src_VBox_VMM_Config.kmk            |   6 +-
 ...VBox_VMM_VMMR3_PDMAsyncCompletionFileNormal.cpp |   8 +-
 .../files/patch-src_libs_xpcom18a4_Makefile.kmk    |   4 +-
 ...ibs_xpcom18a4_nsprpub_pr_src_pthreads_ptsynch.c |   4 +-
 ...h-src_libs_xpcom18a4_xpcom_io_nsLocalFileUnix.h |   4 +-
 emulators/virtualbox-ose-72/pkg-plist              |   7 +-
 emulators/virtualbox-ose-kmod-72/Makefile          |  11 +-
 emulators/virtualbox-ose-kmod-72/distinfo          |   6 +-
 emulators/virtualbox-ose-nox11-72/Makefile         |   4 +-
 81 files changed, 516 insertions(+), 427 deletions(-)

diff --git a/emulators/Makefile b/emulators/Makefile
index 3940ba358293..bdd2eb0d4009 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -158,6 +158,7 @@
     SUBDIR += virtualbox-ose
     SUBDIR += virtualbox-ose-70
     SUBDIR += virtualbox-ose-71
+    SUBDIR += virtualbox-ose-72
     SUBDIR += virtualbox-ose-additions
     SUBDIR += virtualbox-ose-additions-legacy
     SUBDIR += virtualbox-ose-additions-nox11
@@ -165,11 +166,13 @@
     SUBDIR += virtualbox-ose-kmod
     SUBDIR += virtualbox-ose-kmod-70
     SUBDIR += virtualbox-ose-kmod-71
+    SUBDIR += virtualbox-ose-kmod-72
     SUBDIR += virtualbox-ose-kmod-legacy
     SUBDIR += virtualbox-ose-legacy
     SUBDIR += virtualbox-ose-nox11
     SUBDIR += virtualbox-ose-nox11-70
     SUBDIR += virtualbox-ose-nox11-71
+    SUBDIR += virtualbox-ose-nox11-72
     SUBDIR += virtualbox-ose-nox11-legacy
     SUBDIR += visualboyadvance-m
     SUBDIR += vmips
diff --git a/emulators/virtualbox-ose-72/Makefile b/emulators/virtualbox-ose-72/Makefile
index 7b5d79a0d306..3110b3efe1aa 100644
--- a/emulators/virtualbox-ose-72/Makefile
+++ b/emulators/virtualbox-ose-72/Makefile
@@ -1,10 +1,10 @@
 PORTNAME=	virtualbox-ose
-DISTVERSION=	7.1.12
+DISTVERSION=	7.2.0
 PORTREVISION?=	0
 CATEGORIES=	emulators
 MASTER_SITES=	https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
 		LOCAL/vvd:docs
-PKGNAMESUFFIX?=	-71
+PKGNAMESUFFIX?=	-72
 DISTFILES=	VirtualBox-${DISTVERSION}${EXTRACT_SUFX}:src \
 		VirtualBox-docs-${DISTVERSION}${EXTRACT_SUFX}:docs
 EXTRACT_ONLY=	VirtualBox-${DISTVERSION}${EXTRACT_SUFX} \
@@ -25,7 +25,7 @@ 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-71
+RUN_DEPENDS=	${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod-72
 
 USES=		compiler:c++17-lang cpe gnome iconv pkgconfig qt:6 ssl tar:bzip2
 CPE_VENDOR=	oracle
@@ -45,10 +45,10 @@ CONFLICTS_INSTALL=	virtualbox-ose-legacy \
 			virtualbox-ose-nox11 \
 			virtualbox-ose-70 \
 			virtualbox-ose-nox11-70 \
-			virtualbox-ose-72 \
-			virtualbox-ose-nox11-72
+			virtualbox-ose-71 \
+			virtualbox-ose-nox11-71
 
-PORTSCOUT=	limit:^7\.1\.
+PORTSCOUT=	limit:^7\.2\.
 SUB_FILES=	pkg-message
 SUB_LIST=	VBOXDIR=${VBOX_DIR} \
 		VBOX_ETC=${VBOX_ETC} \
@@ -148,9 +148,9 @@ ENV=
 .include <bsd.port.options.mk>
 
 .if ${SLAVE_PORT} == no
-CONFLICTS_INSTALL+=	virtualbox-ose-nox11-71
+CONFLICTS_INSTALL+=	virtualbox-ose-nox11-72
 .else
-CONFLICTS_INSTALL+=	virtualbox-ose-71
+CONFLICTS_INSTALL+=	virtualbox-ose-72
 .endif
 
 .if ${PORT_OPTIONS:MDEBUG}
diff --git a/emulators/virtualbox-ose-72/distinfo b/emulators/virtualbox-ose-72/distinfo
index e7b992b0b10c..ed4ac420cdd3 100644
--- a/emulators/virtualbox-ose-72/distinfo
+++ b/emulators/virtualbox-ose-72/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1752700000
-SHA256 (VirtualBox-7.1.12.tar.bz2) = 6f9618f39168898134975f51df7c2d6d5129c0aa82b6ae11cf47f920c70df276
-SIZE (VirtualBox-7.1.12.tar.bz2) = 214691769
-SHA256 (VirtualBox-docs-7.1.12.tar.bz2) = ba48f2da2593d8cae56fcf601c132d77dbf1d16b1e26db162c89449250c269bd
-SIZE (VirtualBox-docs-7.1.12.tar.bz2) = 10109084
-SHA256 (VBoxGuestAdditions_7.1.12.iso) = 256883e2eabf7ab5c10fb3b6831c294942ce34bc615807f9d0cf6c3d2e882236
-SIZE (VBoxGuestAdditions_7.1.12.iso) = 61331456
+TIMESTAMP = 1756400000
+SHA256 (VirtualBox-7.2.0.tar.bz2) = 4f2804ff27848ea772aee6b637bb1e10ee74ec2da117c257413e2d2c4f670ba0
+SIZE (VirtualBox-7.2.0.tar.bz2) = 206755781
+SHA256 (VirtualBox-docs-7.2.0.tar.bz2) = 12b27989f2ab9b9316384322a8f1cdadd7003d2e2d6592298e1a84e81f5e0572
+SIZE (VirtualBox-docs-7.2.0.tar.bz2) = 9200668
+SHA256 (VBoxGuestAdditions_7.2.0.iso) = 43f7a1045cad0aab40e3af906fea37244ba6873b91b4e227245a14e51b399abd
+SIZE (VBoxGuestAdditions_7.2.0.iso) = 53143552
diff --git a/emulators/virtualbox-ose-72/files/patch-Config.kmk b/emulators/virtualbox-ose-72/files/patch-Config.kmk
index 7aaf90147847..c284262eb189 100644
--- a/emulators/virtualbox-ose-72/files/patch-Config.kmk
+++ b/emulators/virtualbox-ose-72/files/patch-Config.kmk
@@ -1,6 +1,6 @@
---- Config.kmk.orig	2025-05-10 18:43:02 UTC
+--- Config.kmk.orig	2025-08-28 22:09:24 UTC
 +++ Config.kmk
-@@ -610,11 +610,11 @@ endif
+@@ -624,11 +624,11 @@ endif
   # Enable OSS audio support.
   VBOX_WITH_AUDIO_OSS = 1
  endif
@@ -14,7 +14,7 @@
   # Enable PulseAudio audio support.
   VBOX_WITH_AUDIO_PULSE = 1
  endif
-@@ -627,11 +627,11 @@ VBOX_WITH_PCI_PASSTHROUGH =
+@@ -641,11 +641,11 @@ VBOX_WITH_PCI_PASSTHROUGH =
  # (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.
-@@ -639,7 +639,7 @@ VBOX_WITH_VMSVGA = 1
+@@ -653,7 +653,7 @@ VBOX_WITH_VMSVGA = 1
  # Enable vmsvga (svga2) graphics device variant, 2D part
  VBOX_WITH_VMSVGA = 1
  # Enable vmsvga (svga2) graphics device variant, 3D part
@@ -37,7 +37,7 @@
   VBOX_WITH_VMSVGA3D = 1
  endif
  # Enable vmsvga (svga2) graphics device variant, 3D part, VGPU10 DX commands
-@@ -825,7 +825,7 @@ VBOX_WITH_VBOXMANAGE_NLS  = 1
+@@ -847,7 +847,7 @@ VBOX_WITH_VBOXMANAGE_NLS  = 1
  #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,7 +46,7 @@
   VBOX_WITH_XPCOM_NAMESPACE_CLEANUP = 1
  endif
  # The webservices api.
-@@ -1357,10 +1357,6 @@ endif
+@@ -1376,10 +1376,6 @@ endif
   endif
  endif
  
@@ -57,7 +57,7 @@
  ifeq ($(KBUILD_TARGET),haiku)
   VBOX_WITH_VRDP_RDESKTOP =
   # Permanent (no working SDL).
-@@ -1545,7 +1541,7 @@ ifdef VBOX_OSE
+@@ -1563,7 +1559,7 @@ ifdef VBOX_OSE
   # not yet
   VBOX_WITH_PLUGIN_CRYPT =
   VBOX_WITH_DRAG_AND_DROP_PROMISES =
@@ -66,11 +66,12 @@
    VBOX_WITH_DOCS =
    VBOX_WITH_DOCS_PACKING =
   endif
-@@ -3680,19 +3676,7 @@ ifndef VBOX_GCC_std
+@@ -3637,19 +3633,19 @@ ifndef VBOX_GCC_std
  #
  ## @todo consider maxing this out.
  ifndef VBOX_GCC_std
-- if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.arm64) # Go straight for c++17 here.
+- if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.arm64 linux.arm64) # Go straight for c++17 here.
++# if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.arm64 linux.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
@@ -83,10 +84,21 @@
 - else if "$(VBOX_GCC_VERSION_CXX)" vge 40600
 -  VBOX_GCC_std := -std=c++0x
 - endif
++#  # 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
-@@ -5682,11 +5666,11 @@ ifeq ($(VBOX_LDR_FMT),elf)
+@@ -5688,11 +5684,11 @@ ifeq ($(VBOX_LDR_FMT),elf)
    # Solaris driver signing.
    TEMPLATE_VBoxR0_POST_CMDS         = $(VBOX_SIGN_DRIVER_CMDS)
   else
@@ -100,7 +112,7 @@
    VBOX_WITH_VBOXR0_AS_DLL = 1
    TEMPLATE_VBoxR0_DLLSUFF           = .r0
    TEMPLATE_VBoxR0_CFLAGS           += -fPIC
-@@ -5697,7 +5681,7 @@ ifeq ($(VBOX_LDR_FMT),elf)
+@@ -5703,7 +5699,7 @@ ifeq ($(VBOX_LDR_FMT),elf)
   else
    TEMPLATE_VBoxR0_CFLAGS.amd64     += -mcmodel=kernel
    TEMPLATE_VBoxR0_CXXFLAGS.amd64   += -mcmodel=kernel
@@ -109,7 +121,7 @@
   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
-@@ -6081,7 +6065,7 @@ ifeq ($(KBUILD_TARGET),freebsd)
+@@ -6100,7 +6096,7 @@ ifeq ($(KBUILD_TARGET),freebsd)
   # 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 \
@@ -118,7 +130,7 @@
   #   -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
-@@ -6092,7 +6076,7 @@ ifeq ($(KBUILD_TARGET),freebsd)
+@@ -6111,7 +6107,7 @@ ifeq ($(KBUILD_TARGET),freebsd)
   #
   # AMD64 FreeBSD (7.1):
   #  cc -O2 -fno-strict-aliasing -pipe -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I. -I@ -I@/contrib/altq \
@@ -127,7 +139,7 @@
   #  -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 \
-@@ -6174,7 +6158,7 @@ ifeq ($(KBUILD_TARGET),freebsd)
+@@ -6193,7 +6189,7 @@ ifeq ($(KBUILD_TARGET),freebsd)
  		| xargs -J% objcopy % $(outbase).kld
  
     # Link the final .ko (a shared object).
@@ -136,8 +148,8 @@
    endef
   endif # x86
  
-@@ -6209,7 +6193,7 @@ ifeq ($(KBUILD_TARGET),netbsd)
-  	$(VBOX_GCC_fdiagnostics-show-option) \
+@@ -6228,7 +6224,7 @@ ifeq ($(KBUILD_TARGET),netbsd)
+  	$(VBOX_GCC_fdiagnostics-show-option) $(VBOX_GCC_fdiagnostics-color) \
   	-Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
   	-Wimplicit-function-declaration -Werror-implicit-function-declaration \
 - 	-O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
@@ -145,7 +157,7 @@
   	$(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 \
-@@ -6220,7 +6204,7 @@ ifeq ($(KBUILD_TARGET),netbsd)
+@@ -6239,7 +6235,7 @@ ifeq ($(KBUILD_TARGET),netbsd)
   	-fno-asynchronous-unwind-tables -mno-fp-ret-in-387
   TEMPLATE_VBoxR0Drv_CXXFLAGS           = -fno-exceptions -fno-rtti \
   	$(VBOX_GCC_WARN) -Wpointer-arith -Winline \
@@ -154,26 +166,26 @@
   	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
   	-nostdinc -msoft-float
   TEMPLATE_VBoxR0Drv_CXXFLAGS.x86       = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86)
-@@ -6528,11 +6512,11 @@ else # the gcc guys
-   TEMPLATE_VBoxR3Exe_LIBS              = pthread m rt dl
+@@ -6565,11 +6561,11 @@ else # the gcc guys
+   TEMPLATE_VBoxR3Exe_LATE_LIBS         = pthread m rt dl
   else ifeq ($(KBUILD_TARGET),os2)
    TEMPLATE_VBoxR3Exe_TOOL              = GXX3OMF
--  TEMPLATE_VBoxR3Exe_LIBS              = socket iconv
-+  TEMPLATE_VBoxR3Exe_LIBS              = socket 
+-  TEMPLATE_VBoxR3Exe_LATE_LIBS         = socket iconv
++  TEMPLATE_VBoxR3Exe_LATE_LIBS         = socket
   else ifeq ($(KBUILD_TARGET),darwin)
    TEMPLATE_VBoxR3Exe_TOOL              = $(VBOX_GCC_TOOL)
-   TEMPLATE_VBoxR3Exe_LIBS              =
+   TEMPLATE_VBoxR3Exe_LATE_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
-@@ -6549,17 +6533,26 @@ else # the gcc guys
+@@ -6585,24 +6581,29 @@ else # the gcc guys
   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_POST_CMDS         = $(VBOX_HAIKU_XRES_SETVER_CMDS)
+-  TEMPLATE_VBoxR3Exe_LATE_LIBS         = network iconv stdc++ supc++
++  TEMPLATE_VBoxR3Exe_LATE_LIBS         = network stdc++ supc++
    TEMPLATE_VBoxR3Exe_LIBPATH          += \
    	/boot/common/lib
    # Haiku uses PIC by default...
@@ -181,23 +193,30 @@
    TEMPLATE_VBoxR3Exe_CXXFLAGS         += -fno-pic
    TEMPLATE_VBoxR3Exe_LDFLAGS          += -fno-pic
 - else if1of ($(KBUILD_TARGET), freebsd openbsd)
-+ else ifeq ($(KBUILD_TARGET), freebsd)
++ else if1of ($(KBUILD_TARGET), freebsd)
    TEMPLATE_VBoxR3Exe_TOOL              = GXX3
-   TEMPLATE_VBoxR3Exe_LIBS              = pthread
+   TEMPLATE_VBoxR3Exe_LATE_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
+-  	/usr/include \
+-  	/usr/X11R6/include \
+   	/usr/local/include
+   TEMPLATE_VBoxR3Exe_LIBPATH          += \
+-  	/usr/lib \
+-  	/usr/X11R6/lib \
+   	/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
-@@ -6578,7 +6571,7 @@ else # the gcc guys
++        /usr/include \
++        /usr/X11R6/include \
++        /usr/local/include
+  else ifeq ($(KBUILD_TARGET),netbsd)
+   TEMPLATE_VBoxR3Exe_TOOL              = GXX3
+   TEMPLATE_VBoxR3Exe_LATE_LIBS              = pthread
+@@ -6614,7 +6615,7 @@ else # the gcc guys
    	/usr/X11R7/lib
   else ifeq ($(KBUILD_TARGET),solaris)
    TEMPLATE_VBoxR3Exe_TOOL              = GXX3PLAIN
@@ -206,7 +225,7 @@
    if $(VBOX_GCC_VERSION_CC) < 30500
     TEMPLATE_VBoxR3Exe_CFLAGS          += -std=gnu99
    endif
-@@ -6594,6 +6587,7 @@ else # the gcc guys
+@@ -6630,6 +6631,7 @@ else # the gcc guys
    TEMPLATE_VBoxR3Exe_LDFLAGS          += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
   endif
   ifdef VBOX_WITH_ORIGIN
@@ -214,7 +233,7 @@
    TEMPLATE_VBoxR3Exe_LDFLAGS.linux    += $(VBOX_GCC_ORIGIN_OPT)
   endif
  endif
-@@ -6808,7 +6802,7 @@ else
+@@ -6868,7 +6870,7 @@ else
   ifdef VBOX_WITH_NOCRT_STATIC
    TEMPLATE_VBoxR3StaticBase_DEFS           += RT_WITH_NOCRT_WRAPPERS
   endif
@@ -223,24 +242,24 @@
    # 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
-@@ -6876,7 +6870,7 @@ else
-  	$(SDK_VBoxZlib_LIBS) \
+@@ -6936,7 +6938,7 @@ else
+  	$(SDK_VBoxZlib_LATE_LIBS) \
   	$(SDK_VBoxLibLzma_LIBS)
   if1of ($(KBUILD_TARGET), darwin freebsd)
--  TEMPLATE_VBoxR3Static_LIBS       += iconv
-+  TEMPLATE_VBoxR3Static_LIBS       += 
+-  TEMPLATE_VBoxR3Static_LATE_LIBS  += iconv
++  TEMPLATE_VBoxR3Static_LATE_LIBS  +=
   else ifeq ($(KBUILD_TARGET),solaris)
-   TEMPLATE_VBoxR3Static_LIBS       += kstat
+   TEMPLATE_VBoxR3Static_LATE_LIBS  += kstat
   endif
-@@ -7048,6 +7042,7 @@ else ifn1of ($(KBUILD_TARGET), os2)
+@@ -7137,6 +7139,7 @@ else ifn1of ($(KBUILD_TARGET), os2)
  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))
+   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
-@@ -7079,6 +7074,7 @@ ifn1of ($(KBUILD_TARGET), win os2)
+@@ -7168,6 +7171,7 @@ ifn1of ($(KBUILD_TARGET), win os2)
  	$(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))
@@ -248,7 +267,7 @@
   TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3TstDll_LDFLAGS.linux))
  endif
  
-@@ -7102,6 +7098,7 @@ ifndef VBOX_WITH_HARDENING
+@@ -7192,6 +7196,7 @@ ifndef VBOX_WITH_HARDENING
    TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
   endif
   ifdef VBOX_WITH_ORIGIN
@@ -256,7 +275,7 @@
    TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS.linux += $(VBOX_GCC_ORIGIN_OPT)
   endif
  endif
-@@ -7454,7 +7451,7 @@ else # the GCC guys:
+@@ -7570,7 +7575,7 @@ else # the GCC guys:
   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 \
@@ -265,20 +284,20 @@
   	$(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")
-@@ -7518,10 +7515,19 @@ else # the GCC guys:
+@@ -7633,10 +7638,19 @@ else # the GCC guys:
   else ifeq ($(KBUILD_TARGET),haiku)
    TEMPLATE_VBoxMainExe_TOOL              = GXX3
-   TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME) network stdc++ supc++
+   TEMPLATE_VBoxMainExe_LATE_LIBS         = $(LIB_RUNTIME) network stdc++ supc++
 - else if1of ($(KBUILD_TARGET), freebsd openbsd)
-+ else ifeq ($(KBUILD_TARGET), freebsd)
++ else if1of ($(KBUILD_TARGET), freebsd)
    TEMPLATE_VBoxMainExe_TOOL              = GXX3
-   TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME)
+   TEMPLATE_VBoxMainExe_LATE_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
++	/usr/local/include
 +  TEMPLATE_VBoxMainExe_LIBPATH          += \
-+  	/usr/local/lib
++	/usr/local/lib
 + else ifeq ($(KBUILD_TARGET), openbsd)
 +  TEMPLATE_VBoxMainExe_TOOL              = GXX3
 +  TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME)
@@ -286,7 +305,7 @@
    	/usr/include \
    	/usr/X11R6/include \
    	/usr/local/include
-@@ -7553,6 +7559,7 @@ else # the GCC guys:
+@@ -7668,6 +7682,7 @@ else # the GCC guys:
    TEMPLATE_VBoxMainExe_LDFLAGS          += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
   endif
   ifdef VBOX_WITH_ORIGIN
@@ -294,7 +313,7 @@
    TEMPLATE_VBoxMainExe_LDFLAGS.linux    += $(VBOX_GCC_ORIGIN_OPT)
   endif
  
-@@ -8181,14 +8188,13 @@ ifdef VBOX_WITH_QTGUI
+@@ -8352,14 +8367,13 @@ ifdef VBOX_WITH_QTGUI
     TEMPLATE_VBoxQtGuiExe_LIBPATH += \
     	$(VBOX_LIBPATH_X11)
     ifeq ($(KBUILD_TARGET),freebsd)
@@ -312,31 +331,31 @@
     endif
     ifeq ($(KBUILD_TARGET),solaris)
      TEMPLATE_VBoxQtGuiExe_LDFLAGS.solaris = -Wl,-z,ignore # Same as VBOX_LD_as_needed.
-@@ -8460,7 +8466,7 @@ else
-   TEMPLATE_VBoxBldProg_LIBS              = pthread m rt dl
+@@ -8623,7 +8637,7 @@ else
+   TEMPLATE_VBoxBldProg_LATE_LIBS         = pthread m rt dl
   else ifeq ($(KBUILD_HOST),os2)
    TEMPLATE_VBoxBldProg_TOOL              = GXX3OMF
--  TEMPLATE_VBoxBldProg_LIBS              = socket iconv
-+  TEMPLATE_VBoxBldProg_LIBS              = socket 
+-  TEMPLATE_VBoxBldProg_LATE_LIBS         = socket iconv
++  TEMPLATE_VBoxBldProg_LATE_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"
-@@ -8500,13 +8506,20 @@ else
-   TEMPLATE_VBoxBldProg_LIBS              =
+@@ -8663,13 +8677,20 @@ else
+   TEMPLATE_VBoxBldProg_LATE_LIBS         =
   else ifeq ($(KBUILD_HOST),haiku)
    TEMPLATE_VBoxBldProg_TOOL              = GXX3
--  TEMPLATE_VBoxBldProg_LIBS              = network iconv
-+  TEMPLATE_VBoxBldProg_LIBS              = network 
+-  TEMPLATE_VBoxBldProg_LATE_LIBS         = network iconv
++  TEMPLATE_VBoxBldProg_LATE_LIBS         = network
    TEMPLATE_VBoxBldProg_LIBPATH          += \
    	/boot/common/lib
 - else if1of ($(KBUILD_HOST), freebsd openbsd)
-+ else ifeq ($(KBUILD_HOST), freebsd)
++ else if1of ($(KBUILD_HOST), freebsd)
    TEMPLATE_VBoxBldProg_TOOL              = $(VBOX_GCC_TOOL)
-   TEMPLATE_VBoxBldProg_LIBS              = pthread
+   TEMPLATE_VBoxBldProg_LATE_LIBS         = pthread
    TEMPLATE_VBoxBldProg_INCS             += \
-+  	/usr/local/include
++	/usr/local/include
 +  TEMPLATE_VBoxBldProg_LIBPATH          += \
-+  	/usr/local/lib
++	/usr/local/lib
 + else ifeq ($(KBUILD_HOST), openbsd)
 +  TEMPLATE_VBoxBldProg_TOOL              = $(VBOX_GCC_TOOL)
 +  TEMPLATE_VBoxBldProg_LIBS              = pthread
@@ -344,21 +363,21 @@
    	/usr/include \
    	/usr/X11R6/include \
    	/usr/local/include
-@@ -8553,11 +8566,11 @@ TEMPLATE_VBoxAdvBldProg_LIBS.darwin = \
- 	$(TEMPLATE_VBoxBldProg_LIBS)
- TEMPLATE_VBoxAdvBldProg_LIBS.darwin = \
- 	$(TEMPLATE_VBoxAdvBldProg_LIBS) \
+@@ -8716,11 +8737,11 @@ TEMPLATE_VBoxAdvBldProg_LATE_LIBS.darwin = \
+ 	$(TEMPLATE_VBoxBldProg_LATE_LIBS)
+ TEMPLATE_VBoxAdvBldProg_LATE_LIBS.darwin = \
+ 	$(TEMPLATE_VBoxAdvBldProg_LATE_LIBS) \
 -	iconv \
-+	 \
- 	$(TEMPLATE_VBoxBldProg_LIBS.darwin)
- TEMPLATE_VBoxAdvBldProg_LIBS.freebsd = \
- 	$(TEMPLATE_VBoxAdvBldProg_LIBS) \
++	\
+ 	$(TEMPLATE_VBoxBldProg_LATE_LIBS.darwin)
+ TEMPLATE_VBoxAdvBldProg_LATE_LIBS.freebsd = \
+ 	$(TEMPLATE_VBoxAdvBldProg_LATE_LIBS) \
 -	iconv \
-+	 \
++	\
  	rt \
- 	$(TEMPLATE_VBoxBldProg_LIBS.freebsd)
- TEMPLATE_VBoxAdvBldProg_LIBS.linux = \
-@@ -8648,6 +8661,7 @@ else # the gcc guys
+ 	$(TEMPLATE_VBoxBldProg_LATE_LIBS.freebsd)
+ TEMPLATE_VBoxAdvBldProg_LATE_LIBS.linux = \
+@@ -8813,6 +8834,7 @@ else # the gcc guys
   # 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)
@@ -366,16 +385,16 @@
   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))
-@@ -8671,7 +8685,7 @@ else if1of ($(KBUILD_TARGET), darwin freebsd openbsd)
+@@ -8836,7 +8858,7 @@ else if1of ($(KBUILD_TARGET), darwin freebsd openbsd)
  ifeq ($(KBUILD_TARGET),linux) # As few libs as possible on linux.
-  TEMPLATE_VBoxGuestR3ExeBase_LIBS     = pthread rt m dl
+  TEMPLATE_VBoxGuestR3ExeBase_LATE_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) 
+- TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LATE_LIBS) iconv
++ TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LATE_LIBS)
  else ifeq ($(KBUILD_TARGET),solaris)
-  TEMPLATE_VBoxGuestR3ExeBase_LIBS     = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) nsl
+  TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LATE_LIBS) nsl
  endif
-@@ -8684,6 +8698,7 @@ TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.linux      = $(TEMP
+@@ -8849,6 +8871,7 @@ TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.linux      = $(TEMP
  	$(VBOX_GCC_fno-stack-protector)
  TEMPLATE_VBoxGuestR3ExeBase_CFLAGS.linux      = $(TEMPLATE_VBoxGuestR3ExeBase_CXXFLAGS.linux)
  # The GNU_HASH ELF tag is not supported by older systems.
@@ -383,7 +402,7 @@
  TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.linux    += $(VBOX_LD_hash_style_sysv)
  
  
-@@ -8929,6 +8944,7 @@ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TARGET
+@@ -9085,6 +9108,7 @@ TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TARGET
  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.
@@ -391,12 +410,12 @@
  TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.linux            = $(subst -Wl$(COMMA),,$(VBOX_LD_hash_style_sysv))
  TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.$(KBUILD_TYPE)   = $(NO_SUCH_VARIABLE)
  TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS                 := -r
-@@ -8970,7 +8986,7 @@ TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TARGET)   = 
- 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           += 
- 
- 
- #
+@@ -9128,7 +9152,7 @@ TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TARGET)
+ TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS                  = $(VBOX_LIB_VBGL_R3_XORG)
+ TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TYPE)   = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE)
+-TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.freebsd          = iconv
++TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.freebsd          = 
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS                       = $(NO_SUCH_VARIABLE) # These three aren't necessary, just being careful.
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TYPE)        = $(NO_SUCH_VARIABLE)
+ TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TARGET)      = $(NO_SUCH_VARIABLE)
diff --git a/emulators/virtualbox-ose-72/files/patch-configure b/emulators/virtualbox-ose-72/files/patch-configure
index 3645d1236ea8..76ed44e26acf 100644
--- a/emulators/virtualbox-ose-72/files/patch-configure
+++ b/emulators/virtualbox-ose-72/files/patch-configure
@@ -1,6 +1,6 @@
---- configure.orig	2025-04-14 17:41:37 UTC
+--- configure.orig	2025-08-13 19:37:05 UTC
 +++ configure
-@@ -158,10 +158,14 @@ if [ "$OS" = "freebsd" ]; then
+@@ -155,10 +155,14 @@ if [ "$OS" = "freebsd" ]; then
  if [ "$OS" = "freebsd" ]; then
    INCCURL="-I/usr/local/include"
    LIBCURL="-L/usr/local/lib -lcurl"
@@ -15,7 +15,7 @@
  else
    INCCURL=""
    LIBCURL="-lcurl"
-@@ -1211,6 +1215,9 @@ extern "C" int main(int argc, char** argv)
+@@ -1171,6 +1175,9 @@ extern "C" int main(int argc, char** argv)
    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
-@@ -1295,7 +1302,7 @@ EOF
+@@ -1255,7 +1262,7 @@ EOF
  #endif
  }
  EOF
@@ -34,7 +34,7 @@
      test_execute
    fi
  }
-@@ -1599,6 +1606,7 @@ EOF
+@@ -1559,6 +1566,7 @@ EOF
          SDKQT6=$PATH_SDK_QT6
        fi
        FLGQT6="-framework QtCore -std=c++17 -Wl,-rpath,`L_to_PATH "$LIBQT6"`"
@@ -42,19 +42,7 @@
      else
        log_failure "Qt6 framework not found (can be disabled using --disable-qt)"
        fail
-@@ -1875,9 +1883,9 @@ check_libvorbis()
-   if which_wrapper pkg-config > /dev/null; then
-     libvorbis_ver=`pkg-config vorbis --modversion 2>> $LOG`
-     if [ $? -eq 0 ]; then
--      FLGVRB=`pkg-config vorbis --cflags`
-+      FLGVRB=`pkg-config vorbis vorbisenc --cflags`
-       INCVRB=`strip_I "$FLGVRB"`
--      LIBVRB=`pkg-config vorbis --libs`
-+      LIBVRB=`pkg-config vorbis vorbisenc --libs`
-     fi
-     cat > $ODIR.tmp_src.cc << EOF
- #include <cstdio>
-@@ -1927,7 +1935,7 @@ EOF
+@@ -1897,7 +1905,7 @@ EOF
    return 0;
  }
  EOF
@@ -63,7 +51,7 @@
      if test_compile "$LIBOGG $I_INCOGG" ogg ogg nofatal; then
        if test_execute; then
          cnf_append "SDK_VBoxLibOgg_INCS" "$INCOGG"
-@@ -2194,8 +2202,8 @@ EOF
+@@ -2125,8 +2133,8 @@ EOF
          echo "compiling the following source file:" >> $LOG
          cat $ODIR.tmp_src.cc >> $LOG
          echo "using the following command line:" >> $LOG
@@ -74,7 +62,7 @@
          if [ $? -eq 0 ]; then
            found=1
            break
-@@ -2311,7 +2319,7 @@ check_gsoap()
+@@ -2246,7 +2254,7 @@ check_gsoap()
          else
            cnf_append "VBOX_GSOAP_CXX_SOURCES" ""
          fi
@@ -83,7 +71,7 @@
          gsoap_version=`pkg-config gsoapssl++ --modversion`
          log_success "found version $gsoap_version"
          return
-@@ -2687,7 +2695,7 @@ for option in "$@"; do
+@@ -2619,7 +2627,7 @@ for option in "$@"; do
      --with-openssl-dir=*)
        OPENSSLDIR=`echo $option | cut -d'=' -f2`
        INCCRYPTO="-I${OPENSSLDIR}/include"
@@ -92,7 +80,7 @@
        # 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.
-@@ -3054,12 +3062,22 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then
+@@ -2978,12 +2986,22 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then
    [ $WITH_JAVA   -eq 1 ] && check_java
  
    # PulseAudio
@@ -121,7 +109,7 @@
    fi
  fi
  
-@@ -3075,14 +3093,6 @@ if [ "$OS" = "linux" ]; then
+@@ -2999,14 +3017,6 @@ if [ "$OS" = "linux" ]; then
      cnf_append "VBOX_WITHOUT_LINUX_TEST_BUILDS" "1"
    fi
    if [ $ONLY_ADDITIONS -eq 0 ]; then
diff --git a/emulators/virtualbox-ose-72/files/patch-doc_manual_en__US_dita_UserManual.ditamap b/emulators/virtualbox-ose-72/files/patch-doc_manual_en__US_dita_UserManual.ditamap
index 93550ddbf766..c8337d7aeba6 100644
--- a/emulators/virtualbox-ose-72/files/patch-doc_manual_en__US_dita_UserManual.ditamap
+++ b/emulators/virtualbox-ose-72/files/patch-doc_manual_en__US_dita_UserManual.ditamap
@@ -1,6 +1,6 @@
---- doc/manual/en_US/dita/UserManual.ditamap.orig	2025-04-14 17:41:38 UTC
+--- doc/manual/en_US/dita/UserManual.ditamap.orig	2025-08-13 19:37:06 UTC
 +++ doc/manual/en_US/dita/UserManual.ditamap
-@@ -613,7 +613,7 @@
+@@ -540,7 +540,7 @@
           <topicref href="topics/security-model.dita"/>
           <topicref href="topics/secure-config-vms.dita">
              <topicref href="topics/security-networking.dita"/>
diff --git a/emulators/virtualbox-ose-72/files/patch-include-iprt-x86.h b/emulators/virtualbox-ose-72/files/patch-include-iprt-x86.h
index ca73a306df88..cedf78a0ef02 100644
--- a/emulators/virtualbox-ose-72/files/patch-include-iprt-x86.h
+++ b/emulators/virtualbox-ose-72/files/patch-include-iprt-x86.h
@@ -1,6 +1,6 @@
---- include/iprt/x86.h.orig	2021-04-20 04:22:23 UTC
+--- include/iprt/x86.h.orig	2025-08-13 19:37:26 UTC
 +++ include/iprt/x86.h
-@@ -38,6 +38,16 @@
+@@ -53,6 +53,16 @@
  # pragma D depends_on library vbox-types.d
  #endif
  
@@ -15,5 +15,5 @@
 +#endif
 +
  /** Workaround for Solaris sys/regset.h defining CS, DS and sys/controlregs.h
-  * defining MSR_IA32_FLUSH_CMD */
+  * defining MSR_IA32_FLUSH_CMD and MSR_AMD_VIRT_SPEC_CTL */
  #ifdef RT_OS_SOLARIS
diff --git a/emulators/virtualbox-ose-72/files/patch-include_VBox_com_array.h b/emulators/virtualbox-ose-72/files/patch-include_VBox_com_array.h
index 9d65058e6b50..77d77ddd3e11 100644
--- a/emulators/virtualbox-ose-72/files/patch-include_VBox_com_array.h
+++ b/emulators/virtualbox-ose-72/files/patch-include_VBox_com_array.h
@@ -1,6 +1,6 @@
---- include/VBox/com/array.h.orig	2021-01-07 15:31:25 UTC
+--- include/VBox/com/array.h.orig	2025-08-13 19:37:15 UTC
 +++ include/VBox/com/array.h
-@@ -171,7 +171,7 @@
+@@ -181,7 +181,7 @@
  
  #include "VBox/com/defs.h"
  
@@ -9,7 +9,7 @@
  /** @def VBOX_WITH_TYPE_TRAITS
   * Type traits are a C++ 11 feature, so not available everywhere (yet).
   * Only GCC 4.6 or newer and MSVC++ 16.0 (Visual Studio 2010) or newer.
-@@ -960,12 +960,12 @@ class SafeArray : public Traits (public)
+@@ -1014,12 +1014,12 @@ class SafeArray : public Traits (public)
      {
          /** @todo r=klaus should do this as a AssertCompile, but cannot find a way which works. */
          Assert(sizeof(T) <= sizeof(Zeroes));
@@ -25,7 +25,7 @@
          return m.raw[aIdx];
  #endif
      }
-@@ -980,7 +980,7 @@ class SafeArray : public Traits (public)
+@@ -1034,7 +1034,7 @@ class SafeArray : public Traits (public)
  #ifdef VBOX_WITH_XPCOM
          return m.arr[aIdx];
  #else
diff --git a/emulators/virtualbox-ose-72/files/patch-include_VBox_sup.h b/emulators/virtualbox-ose-72/files/patch-include_VBox_sup.h
index 9cf3fabe63f1..77fee2d23d0a 100644
--- a/emulators/virtualbox-ose-72/files/patch-include_VBox_sup.h
+++ b/emulators/virtualbox-ose-72/files/patch-include_VBox_sup.h
@@ -1,6 +1,6 @@
---- 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 @@
+--- include/VBox/sup.h.orig	2025-08-13 19:37:16 UTC
++++ include/VBox/sup.h
+@@ -2325,7 +2325,7 @@ SUPR0DECL(void) SUPR0BadContext(PSUPDRVSESSION pSessio
  
  SUPR0DECL(void) SUPR0BadContext(PSUPDRVSESSION pSession, const char *pszFile, uint32_t uLine, const char *pszExpr);
  
diff --git a/emulators/virtualbox-ose-72/files/patch-include_iprt_string.h b/emulators/virtualbox-ose-72/files/patch-include_iprt_string.h
index 95119057d1ca..b06991588730 100644
--- a/emulators/virtualbox-ose-72/files/patch-include_iprt_string.h
+++ b/emulators/virtualbox-ose-72/files/patch-include_iprt_string.h
@@ -1,6 +1,6 @@
---- include/iprt/string.h.orig	2021-01-07 15:31:33 UTC
+--- include/iprt/string.h.orig	2025-08-13 19:37:25 UTC
 +++ include/iprt/string.h
-@@ -46,6 +46,11 @@
+@@ -57,6 +57,11 @@
  #elif defined(RT_OS_FREEBSD) && defined(_KERNEL)
    RT_C_DECLS_BEGIN
  # include <sys/libkern.h>
diff --git a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
index e790f372f95f..5344a7ab812f 100644
--- a/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
+++ b/emulators/virtualbox-ose-72/files/patch-src-VBox-Additions-common-VBoxGuest-VBoxGuest-freebsd.c
@@ -1,5 +1,5 @@
---- 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
+--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c.orig	2025-08-13 19:41:14 UTC
++++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c
 @@ -55,6 +55,7 @@
  #include <sys/uio.h>
  #include <sys/bus.h>
@@ -16,7 +16,7 @@
  #include <iprt/initterm.h>
  #include <iprt/process.h>
  #include <iprt/string.h>
-@@ -112,8 +114,6 @@
+@@ -112,8 +114,6 @@ struct VBoxGuestDeviceState
      struct resource   *pIrqRes;
      /** Pointer to the IRQ handler. */
      void              *pfnIrqHandler;
@@ -25,7 +25,7 @@
  };
  
  
-@@ -123,8 +123,7 @@
+@@ -123,8 +123,7 @@ struct VBoxGuestDeviceState
  /*
   * 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;
-@@ -155,8 +154,7 @@
+@@ -155,8 +154,7 @@ static struct cdevsw    g_vgdrvFreeBSDChrDevSW =
  {
      .d_version =        D_VERSION,
      .d_flags =          D_TRACKCLOSE | D_NEEDMINOR,
@@ -45,7 +45,7 @@
      .d_ioctl =          vgdrvFreeBSDIOCtl,
      .d_read =           vgdrvFreeBSDRead,
      .d_write =          vgdrvFreeBSDWrite,
-@@ -164,81 +162,28 @@
+@@ -164,81 +162,28 @@ static struct cdevsw    g_vgdrvFreeBSDChrDevSW =
      .d_name =           "vboxguest"
  };
  
@@ -134,7 +134,7 @@
  {
      int                 rc;
      PVBOXGUESTSESSION   pSession;
-@@ -250,12 +195,6 @@
+@@ -250,12 +195,6 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
      LogFlow(("vgdrvFreeBSDOpen:\n"));
  
      /*
@@ -147,7 +147,7 @@
       * Create a new session.
       */
      fRequestor = VMMDEV_REQUESTOR_USERMODE | VMMDEV_REQUESTOR_TRUST_NOT_GIVEN;
-@@ -272,47 +211,20 @@
+@@ -272,47 +211,20 @@ static int vgdrvFreeBSDOpen(struct cdev *pDev, int fOp
      rc = VGDrvCommonCreateUserSession(&g_DevExt, fRequestor, &pSession);
      if (RT_SUCCESS(rc))
      {
@@ -201,7 +201,7 @@
  /**
   * I/O control request.
   *
-@@ -326,8 +238,12 @@
+@@ -326,8 +238,12 @@ static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long
  static int vgdrvFreeBSDIOCtl(struct cdev *pDev, u_long ulCmd, caddr_t pvData, int fFile, struct thread *pTd)
  {
      PVBOXGUESTSESSION pSession;
@@ -215,7 +215,7 @@
      /*
       * Deal with the fast ioctl path first.
       */
-@@ -526,8 +442,10 @@
+@@ -526,8 +442,10 @@ static int vgdrvFreeBSDPoll(struct cdev *pDev, int fEv
  
      LogFlow(("vgdrvFreeBSDPoll: fEvents=%d\n", fEvents));
  
@@ -228,7 +228,7 @@
          Log(("vgdrvFreeBSDPoll: no state data for %s\n", devtoname(pDev)));
          return (fEvents & (POLLHUP|POLLIN|POLLRDNORM|POLLOUT|POLLWRNORM));
      }
-@@ -568,11 +486,8 @@
+@@ -568,11 +486,8 @@ static int vgdrvFreeBSDDetach(device_t pDevice)
      /*
*** 1888 LINES SKIPPED ***