From nobody Sun Feb 02 23:29:09 2025 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4YmQnL2vrjz5lZXY; Sun, 02 Feb 2025 23:29:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YmQnL0Z75z3P6V; Sun, 02 Feb 2025 23:29:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1738538950; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oTWzLk9+xVICl7u0fGOqy18GQIed+iRIHvcJYpKEvUE=; b=D/Rfl+A0B7tisBzX7w+TQVZUOLqcFpe2I6Q0GPw3dwrxofcI8+TQ+4KsJ68Cc1SDNxvBzZ 3qKdbWHl2BMzilNCCulm+qu5cFg4pC53r4LPlJ8eq6yniDaE61ctuK1G6hW2IyuF4bM9LB Dp/fdz+xHzq9aQFSb8zk9nOj3yOFtRu6n5OVsktGED7A8Z+6YLJllqdK0FriTdS2bjt+BR nsiJgrd+WC+NY6hn+FnJ8lCsPhaRJcnQibMq/bm+2MFP4a073ffXHf23YOGYMUCmizuwYl yximmiABHc77tAyCHcZlxOY7e2WrTkWY3OU8QI/A3VOi5BKm/zEuUK2+Vj1RDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1738538950; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oTWzLk9+xVICl7u0fGOqy18GQIed+iRIHvcJYpKEvUE=; b=FT9WBZxa4i/i56ZZps36s3VdVX9mmEa1O+dSIhX/EG3H5TQ7vp1scKzR/R9oTxrAiI2I+V 3rBTCsQye+qrOfKWT0nxylWQ6XBirFBf173z0Ae9BPNSZeenihueRrIzUJVk/uAtUJosZ/ mIttrnMq4Nf4tf9edmnFcwX6V/N5RAE6EmPAtSDd4s2YRyyyK/4ftHZvhSBviggvKYq766 X99jAa+xr0fqZKNPF5IyCXkFwlB3M8jr313tDN9OGfasVRqGzG+mh9yfzqWXkt10/bEnLw g1c/1Z0CdV7zNYKjs2YdxSsK01PTKTL3c20R8Kcyv4UnIV7yygATUsMMDjcjlg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1738538950; a=rsa-sha256; cv=none; b=p4Y/zKcCm8uukiaKvZ1Sf0fBGV+KtJ54kPyDQ1/g+67wCKNtC+biZRm9/9b9WH2As6nab2 ZmiXT7niElfe9polnMflWEqkA7DPEqdmB7zF/G5bomcgmTzLHqGKE0ZszK7HlW3Epgktln TFzF12feLFBilm5qPfAlFo4qJIYrYN47MMZa6u2qex5QmsFRs83a36+nlzg5g2gj2qsK1f ujfHLhrc68HKozFr5VHdWRqqSFh+IbS5r/NBwDijicfWkfxKsWcFSZTOsuJEaPupjva4Xc vUuBGQz/KTljMikNW0jVU1oEDe3vtHOzJhuht0D7W6jeUOtMHwk1KiiNN5rk0A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4YmQnL027Kz19Tb; Sun, 02 Feb 2025 23:29:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 512NT9uP043344; Sun, 2 Feb 2025 23:29:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 512NT9V6043341; Sun, 2 Feb 2025 23:29:09 GMT (envelope-from git) Date: Sun, 2 Feb 2025 23:29:09 GMT Message-Id: <202502022329.512NT9V6043341@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Vladimir Druzenko Subject: git: f24fdd9f8516 - main - emulators/virtualbox-ose{,-kmod,-nox11}-70: Add new ports VirtualBox 7.0.24 List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-all@freebsd.org Sender: owner-dev-commits-ports-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vvd X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f24fdd9f85160185dfe981a8bba587246e7db148 Auto-Submitted: auto-generated The branch main has been updated by vvd: URL: https://cgit.FreeBSD.org/ports/commit/?id=f24fdd9f85160185dfe981a8bba587246e7db148 commit f24fdd9f85160185dfe981a8bba587246e7db148 Author: Vladimir Druzenko AuthorDate: 2025-02-02 23:19:31 +0000 Commit: Vladimir Druzenko 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 .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 .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 , 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 --#include -+#include - 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 #include #include @@ -8,7 +8,7 @@ #include #include #include -@@ -61,6 +62,7 @@ +@@ -71,6 +72,7 @@ #include #include #include @@ -16,7 +16,7 @@ #include #include #include -@@ -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 ***