VirtualBox

Changeset 98397 in vbox


Ignore:
Timestamp:
Feb 1, 2023 2:44:15 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
155641
Message:

/Config.kmk: Automatic scm cleanups. bugref:10348

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r98388 r98397  
    174174VBOX_PATH_ADDITIONS_ISO = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_ISO))
    175175VBOX_PATH_ADDITIONS_LIB = $(patsubst %/,%,$(PATH_STAGE)/$(INST_ADDITIONS_LIB))
    176 VBOX_PATH_EXTPACK_PUEL= $(patsubst %/,%,$(PATH_STAGE)/$(INST_EXTPACK_PUEL))
     176VBOX_PATH_EXTPACK_PUEL = $(patsubst %/,%,$(PATH_STAGE)/$(INST_EXTPACK_PUEL))
    177177VBOX_PATH_PACKAGES    = $(patsubst %/,%,$(PATH_STAGE)/$(INST_PACKAGES))
    178178VBOX_PATH_TOOLS       = $(patsubst %/,%,$(PATH_STAGE)/$(VBOX_INST_TOOLS))
     
    193193# Notify about important kBuild updates.
    194194#
    195 if  $(KBUILD_VERSION_MAJOR) == 0 \
    196  && (   $(KBUILD_VERSION_MINOR) >= 2 \
    197      || (   $(KBUILD_VERSION_MINOR) == 1 \
    198          && $(KBUILD_VERSION_PATCH) >= 999))
     195if   $(KBUILD_VERSION_MAJOR) == 0 \
     196  && (   $(KBUILD_VERSION_MINOR) >= 2 \
     197      || (   $(KBUILD_VERSION_MINOR) == 1 \
     198  && $(KBUILD_VERSION_PATCH) >= 999))
    199199 VBOX_MIN_KMK_REVISION        := 3093
    200200 VBOX_MIN_KBUILD_KMK_REVISION := $(if-expr "$(KBUILD_HOST)" == "win",3097,$(if-expr "$(KBUILD_HOST).$(KBUILD_HOST_ARCH)" == "solaris.sparc64",2511,3074))
     
    264264# @returns 1 if true, 0 if false.  For use with 'if'.
    265265VBOX_VERSION_PREREQ = $(expr $(call VBOX_FULL_VERSION_MAKE,$(VBOX_VERSION_MAJOR),$(VBOX_VERSION_MINOR),$(VBOX_VERSION_BUILD)) \
    266                              >= $(call VBOX_FULL_VERSION_MAKE,$1,$2,$3))
     266        >= $(call VBOX_FULL_VERSION_MAKE,$1,$2,$3))
    267267
    268268
    269269# Force the additions.sh script to get an exact additions build when we're doing the release.
    270270if $(VBOX_VERSION_BUILD) % 2 == 0
    271   ifeq ($(VBOX_VERSION_PRERELEASE),)
    272     VBOX_RELEASE_EXACT_MATCH=1
    273   endif
     271 ifeq ($(VBOX_VERSION_PRERELEASE),)
     272  VBOX_RELEASE_EXACT_MATCH  = 1
     273 endif
    274274endif
    275275ifneq ($(VBOX_RELEASE_EXACT_MATCH),)
     
    307307#
    308308ifeq ($(KBUILD_TARGET),win)
    309   VBOX_PACKAGE_OS = WINDOWS
     309 VBOX_PACKAGE_OS = WINDOWS
    310310else ifeq ($(KBUILD_TARGET),linux)
    311   VBOX_PACKAGE_OS = LINUX
     311 VBOX_PACKAGE_OS = LINUX
    312312else ifeq ($(KBUILD_TARGET),darwin)
    313   VBOX_PACKAGE_OS = DARWIN
     313 VBOX_PACKAGE_OS = DARWIN
    314314else ifeq ($(KBUILD_TARGET),solaris)
    315   VBOX_PACKAGE_OS = SOLARIS
     315 VBOX_PACKAGE_OS = SOLARIS
    316316else ifeq ($(KBUILD_TARGET),os2)
    317   VBOX_PACKAGE_OS = OS2
     317 VBOX_PACKAGE_OS = OS2
    318318else ifeq ($(KBUILD_TARGET),haiku)
    319   VBOX_PACKAGE_OS = HAIKU
     319 VBOX_PACKAGE_OS = HAIKU
    320320else if1of ($(KBUILD_TARGET), dragonfly freebsd netbsd openbsd)
    321   VBOX_PACKAGE_OS = BSD
     321 VBOX_PACKAGE_OS = BSD
    322322else
    323   $(error Cannot determine VBOX_PACKAGE_OS)
     323 $(error Cannot determine VBOX_PACKAGE_OS)
    324324endif
    325325ifeq ($(KBUILD_TARGET_ARCH),x86)
    326   VBOX_PACKAGE_ARCH = 32BITS
     326 VBOX_PACKAGE_ARCH = 32BITS
    327327else
    328   VBOX_PACKAGE_ARCH = 64BITS
     328 VBOX_PACKAGE_ARCH = 64BITS
    329329endif
    330330# distribution, mostly for Linux/Solaris where we support different distributions
     
    350350
    351351# Indicate VBOX_ONLY build if any of the VBOX_ONLY_* variables are set.
    352 VBOX_ONLY_BUILD := $(strip $(foreach x, ADDITIONS DOCS EXTPACKS SDK VALIDATIONKIT\
     352VBOX_ONLY_BUILD := $(strip $(foreach x, ADDITIONS DOCS EXTPACKS SDK VALIDATIONKIT \
    353353        , $(if-expr defined(VBOX_ONLY_$(x)),VBOX_ONLY_$(x))))
    354354if $(words $(VBOX_ONLY_BUILD)) > 1
     
    359359ifeq ($(KBUILD_HOST),darwin)
    360360 if "$(KBUILD_TARGET_ARCH)" == "arm64"
    361 VBOX_WITH_EVEN_NEWER_XCODE := 1
     361  VBOX_WITH_EVEN_NEWER_XCODE := 1
    362362 else if !defined(VBOX_WITH_EVEN_NEWER_XCODE) && !defined(VBOX_WITHOUT_EVEN_NEWER_XCODE) && !defined(VBOX_WITH_NEW_XCODE) && $(KBUILD_HOST_VERSION_MAJOR) >= 16 # (OS X 10.12 Sierra)
    363 VBOX_WITH_EVEN_NEWER_XCODE := 1
     363  VBOX_WITH_EVEN_NEWER_XCODE := 1
    364364 else if !defined(VBOX_WITH_NEW_XCODE) && !defined(VBOX_WITHOUT_NEW_XCODE) && $(KBUILD_HOST_VERSION_MAJOR) >= 13 # (OS X 10.9 Mavericks)
    365 VBOX_WITH_NEW_XCODE := 1
     365  VBOX_WITH_NEW_XCODE := 1
    366366 endif
    367367endif
     
    425425# VBOX_ONLY_RPM_ADDITIONS = 1
    426426ifdef VBOX_ONLY_RPM_ADDITIONS
    427  VBOX_ONLY_ADDITIONS=1
    428  VBOX_ONLY_ADDITIONS_WITHOUT_RTISOMAKER=1
     427 VBOX_ONLY_ADDITIONS = 1
     428 VBOX_ONLY_ADDITIONS_WITHOUT_RTISOMAKER = 1
    429429 # We build the RPMs using public sources.
    430  VBOX_OSE=1
     430 VBOX_OSE = 1
    431431 # We want to re-use parts of the packing pass, but not all.
    432  VBOX_WITHOUT_LINUX_GUEST_PACKAGE=1
    433  VBOX_WITHOUT_ADDITIONS_ISO=1
     432 VBOX_WITHOUT_LINUX_GUEST_PACKAGE = 1
     433 VBOX_WITHOUT_ADDITIONS_ISO = 1
    434434endif
    435435
     
    605605# Enable vmsvga (svga2) graphics device variant, 3D part, VGPU10 DX commands
    606606ifdef VBOX_WITH_VMSVGA3D
    607  VBOX_WITH_VMSVGA3D_DX=1
     607 VBOX_WITH_VMSVGA3D_DX = 1
    608608 # Enable DXVK library for supporting VGPU10 DX on non Windows hosts
    609609 if1of ($(KBUILD_TARGET), linux)
     
    629629 VBOX_WITH_VDMA = 1
    630630else ifdef VBOX_WITH_VDMA
    631   undefine VBOX_WITH_VDMA
     631 undefine VBOX_WITH_VDMA
    632632endif
    633633# Gallium based WDDM driver
     
    665665ifdef VBOX_WITH_USB
    666666 VBOX_WITH_VUSB = 1
    667  VBOX_WITH_XHCI_IMPL=1
     667 VBOX_WITH_XHCI_IMPL = 1
    668668endif
    669669ifdef VBOX_WITH_EHCI
     
    775775# Whether to enable message translation in VBoxManage.
    776776#ifndef VBOX_ONLY_BUILD
    777  VBOX_WITH_VBOXMANAGE_NLS = 1
     777VBOX_WITH_VBOXMANAGE_NLS = 1
    778778#endif
    779779# Set this to prefix all C symbols in XPCOM, to avoid dynamic linking problems
     
    10061006if1of ($(KBUILD_TARGET), darwin linux solaris)
    10071007 if1of ($(KBUILD_TARGET_ARCH), x86 amd64) ## @todo bugref:9898
    1008 VBOX_WITH_DTRACE_R3 := 1
    1009 VBOX_WITH_DTRACE_R3_MAIN := 1
     1008  VBOX_WITH_DTRACE_R3 := 1
     1009  VBOX_WITH_DTRACE_R3_MAIN := 1
    10101010 endif
    10111011endif
     
    10131013if1of ($(KBUILD_TARGET), darwin solaris)
    10141014 if1of ($(KBUILD_TARGET_ARCH), x86 amd64) ## @todo bugref:9898
    1015 VBOX_WITH_DTRACE_R0DRV := 1
     1015  VBOX_WITH_DTRACE_R0DRV := 1
    10161016 endif
    10171017endif
     
    10191019ifn1of ($(KBUILD_TARGET), os2)
    10201020 if1of ($(KBUILD_TARGET_ARCH), x86 amd64) ## @todo bugref:9898
    1021 VBOX_WITH_DTRACE_R0 := 1
     1021  VBOX_WITH_DTRACE_R0 := 1
    10221022 endif
    10231023endif
     
    10251025if1of ($(KBUILD_TARGET), linux solaris)
    10261026 if1of ($(KBUILD_TARGET_ARCH), x86 amd64) ## @todo bugref:9898
    1027 VBOX_WITH_DTRACE_RC := 1
     1027  VBOX_WITH_DTRACE_RC := 1
    10281028 endif
    10291029endif
     
    10331033if1of ($(KBUILD_TARGET), darwin solaris)
    10341034 if1of ($(KBUILD_TARGET_ARCH), x86 amd64) ## @todo bugref:9898
    1035 VBOX_WITH_NATIVE_DTRACE := 1
     1035  VBOX_WITH_NATIVE_DTRACE := 1
    10361036 endif
    10371037endif
     
    11831183# when multiple VBoxSVC starts for the same user
    11841184# it is enabled for windows build only
    1185 ifeq  ($(KBUILD_TARGET),win)
     1185ifeq ($(KBUILD_TARGET),win)
    11861186 VBOX_WITH_SDS = 1
    11871187endif
     
    12331233ifdef VBOX_QUICK
    12341234 # undefine variables by assigning blank.
    1235  VBOX_WITH_ADDITIONS=
    1236  VBOX_WITH_VALIDATIONKIT=
    1237  VBOX_WITH_TESTCASES=
    1238  VBOX_WITH_VBOXSDL=
    1239  VBOX_WITH_HEADLESS=
    1240  VBOX_WITH_VRDP=
    1241  VBOX_WITH_VRDP_RDESKTOP=
    1242  VBOX_WITH_DOCS=
    1243  VBOX_WITH_WEBSERVICES=
    1244  VBOX_WITH_32_ON_64_MAIN_API=
     1235 VBOX_WITH_ADDITIONS =
     1236 VBOX_WITH_VALIDATIONKIT =
     1237 VBOX_WITH_TESTCASES =
     1238 VBOX_WITH_VBOXSDL =
     1239 VBOX_WITH_HEADLESS =
     1240 VBOX_WITH_VRDP =
     1241 VBOX_WITH_VRDP_RDESKTOP =
     1242 VBOX_WITH_DOCS =
     1243 VBOX_WITH_WEBSERVICES =
     1244 VBOX_WITH_32_ON_64_MAIN_API =
    12451245endif # VBOX_QUICK
    12461246
    12471247# Only AMD64 is supported for the main product, so disable most of the other bits.
    12481248ifn1of ($(KBUILD_TARGET_ARCH), $(VBOX_SUPPORTED_HOST_ARCHS))
    1249  VBOX_WITH_MAIN=
    1250  VBOX_WITH_QTGUI=
    1251  VBOX_WITH_VBOXSDL=
    1252  VBOX_WITH_VBOXHEADLESS=
    1253  VBOX_WITH_WEBSERVICES=
    1254  VBOX_WITH_DEBUGGER_GUI=
     1249 VBOX_WITH_MAIN =
     1250 VBOX_WITH_QTGUI =
     1251 VBOX_WITH_VBOXSDL =
     1252 VBOX_WITH_VBOXHEADLESS =
     1253 VBOX_WITH_WEBSERVICES =
     1254 VBOX_WITH_DEBUGGER_GUI =
    12551255endif
    12561256
    12571257ifeq ($(KBUILD_TARGET),darwin)
    1258  VBOX_WITH_VRDP_RDESKTOP=
     1258 VBOX_WITH_VRDP_RDESKTOP =
    12591259 # Permanent (no working SDL).
    1260  VBOX_WITH_VBOXSDL=
     1260 VBOX_WITH_VBOXSDL =
    12611261
    12621262 ifeq ($(KBUILD_TARGET_ARCH),arm64)
     
    12811281
    12821282ifeq ($(KBUILD_TARGET),freebsd)
    1283  VBOX_WITH_DOCS=
     1283 VBOX_WITH_DOCS =
    12841284endif
    12851285
    12861286ifeq ($(KBUILD_TARGET),haiku)
    1287  VBOX_WITH_VRDP_RDESKTOP=
     1287 VBOX_WITH_VRDP_RDESKTOP =
    12881288 # Permanent (no working SDL).
    1289  VBOX_WITH_VBOXSDL=
    1290  VBOX_WITH_DOCS=
    1291  VBOX_WITH_VBOXDRV=
    1292  VBOX_WITH_VRDP=
    1293  VBOX_WITH_HEADLESS=
    1294  VBOX_WITH_VBOXSDL=
    1295  VBOX_WITH_QTGUI=
    1296 # VBOX_WITH_MAIN=
    1297  VBOX_WITH_DOCS=
    1298  VBOX_WITH_ISCSI=
    1299  VBOX_WITH_INIP=
    1300  VBOX_WITH_INTERNAL_NETWORKING=
    1301  VBOX_WITH_PDM_ASYNC_COMPLETION=
    1302  VBOX_WITH_HARDENING=
     1289 VBOX_WITH_VBOXSDL =
     1290 VBOX_WITH_DOCS =
     1291 VBOX_WITH_VBOXDRV =
     1292 VBOX_WITH_VRDP =
     1293 VBOX_WITH_HEADLESS =
     1294 VBOX_WITH_VBOXSDL =
     1295 VBOX_WITH_QTGUI =
     1296 # VBOX_WITH_MAIN=
     1297 VBOX_WITH_DOCS =
     1298 VBOX_WITH_ISCSI =
     1299 VBOX_WITH_INIP =
     1300 VBOX_WITH_INTERNAL_NETWORKING =
     1301 VBOX_WITH_PDM_ASYNC_COMPLETION =
     1302 VBOX_WITH_HARDENING =
    13031303endif
    13041304
    13051305
    13061306ifeq ($(KBUILD_TARGET),os2)
    1307  VBOX_WITH_WEBSERVICES=
    1308  VBOX_WITH_INSTALLER=
    1309  VBOX_WITH_VRDP_AUTHMOD=
    1310  VBOX_WITH_VRDP_RDESKTOP=
    1311  VBOX_WITH_VALIDATIONKIT=
    1312  VBOX_WITH_QTGUI=
    1313  VBOX_WITH_USB=
    1314  VBOX_WITH_EHCI=
    1315  VBOX_WITH_DOCS=
    1316  VBOX_WITH_PDM_ASYNC_COMPLETION=
    1317  VBOX_WITH_HARDENING=
     1307 VBOX_WITH_WEBSERVICES =
     1308 VBOX_WITH_INSTALLER =
     1309 VBOX_WITH_VRDP_AUTHMOD =
     1310 VBOX_WITH_VRDP_RDESKTOP =
     1311 VBOX_WITH_VALIDATIONKIT =
     1312 VBOX_WITH_QTGUI =
     1313 VBOX_WITH_USB =
     1314 VBOX_WITH_EHCI =
     1315 VBOX_WITH_DOCS =
     1316 VBOX_WITH_PDM_ASYNC_COMPLETION =
     1317 VBOX_WITH_HARDENING =
    13181318endif
    13191319
    13201320ifeq ($(KBUILD_TARGET),win)
    1321  VBOX_WITH_VRDP_RDESKTOP=
     1321 VBOX_WITH_VRDP_RDESKTOP =
    13221322endif
    13231323
    13241324ifn1of ($(KBUILD_TARGET_ARCH), x86 amd64 arm64)
    1325  VBOX_WITH_ADDITION_DRIVERS=
    1326  VBOX_WITH_DEBUGGER=
    1327  VBOX_WITH_DOCS=
    1328  VBOX_WITH_EHCI=
    1329  VBOX_WITH_HARDENING=
    1330  VBOX_WITH_HEADLESS=
    1331  VBOX_WITH_HGCM=
    1332  VBOX_WITH_HGSMI=
    1333  VBOX_WITH_INIP=
    1334  VBOX_WITH_INSTALLER=
    1335  VBOX_WITH_INTERNAL_NETWORKING=
    1336  VBOX_WITH_ISCSI=
    1337  VBOX_WITH_MAIN=
    1338  VBOX_WITH_PDM_ASYNC_COMPLETION=
    1339  VBOX_WITH_QTGUI=
    1340  VBOX_WITH_RAW_MODE=
    1341  VBOX_WITH_VALIDATIONKIT=
    1342  VBOX_WITH_USB=
    1343  VBOX_WITH_VBOXDRV=
    1344  VBOX_WITH_VBOXSDL=
    1345  VBOX_WITH_WEBSERVICES=
    1346  VBOX_WITH_XPCOM=
    1347  VBOX_WITHOUT_HARDENING=1
     1325 VBOX_WITH_ADDITION_DRIVERS =
     1326 VBOX_WITH_DEBUGGER =
     1327 VBOX_WITH_DOCS =
     1328 VBOX_WITH_EHCI =
     1329 VBOX_WITH_HARDENING =
     1330 VBOX_WITH_HEADLESS =
     1331 VBOX_WITH_HGCM =
     1332 VBOX_WITH_HGSMI =
     1333 VBOX_WITH_INIP =
     1334 VBOX_WITH_INSTALLER =
     1335 VBOX_WITH_INTERNAL_NETWORKING =
     1336 VBOX_WITH_ISCSI =
     1337 VBOX_WITH_MAIN =
     1338 VBOX_WITH_PDM_ASYNC_COMPLETION =
     1339 VBOX_WITH_QTGUI =
     1340 VBOX_WITH_RAW_MODE =
     1341 VBOX_WITH_VALIDATIONKIT =
     1342 VBOX_WITH_USB =
     1343 VBOX_WITH_VBOXDRV =
     1344 VBOX_WITH_VBOXSDL =
     1345 VBOX_WITH_WEBSERVICES =
     1346 VBOX_WITH_XPCOM =
     1347 VBOX_WITHOUT_HARDENING = 1
    13481348 # remove later:
    1349  VBOX_WITH_VRDP=
    1350  VBOX_WITH_VRDP_AUTHMOD=
    1351  VBOX_WITH_VRDP_RDESKTOP=
     1349 VBOX_WITH_VRDP =
     1350 VBOX_WITH_VRDP_AUTHMOD =
     1351 VBOX_WITH_VRDP_RDESKTOP =
    13521352endif
    13531353
     
    13961396# Indicate VBOX_ONLY build if any of the VBOX_ONLY_* variables are set.
    13971397#
    1398 VBOX_ONLY_BUILD_NEW := $(strip $(foreach x, ADDITIONS DOCS EXTPACKS SDK VALIDATIONKIT\
     1398VBOX_ONLY_BUILD_NEW := $(strip $(foreach x, ADDITIONS DOCS EXTPACKS SDK VALIDATIONKIT \
    13991399        , $(if-expr defined(VBOX_ONLY_$(x)),VBOX_ONLY_$(x))))
    14001400ifneq ($(VBOX_ONLY_BUILD),$(VBOX_ONLY_BUILD_NEW))
     
    14311431#
    14321432ifdef VBOX_OSE
    1433  VBOX_WITH_VRDP=
    1434  VBOX_WITH_USB_VIDEO_IMPL=
    1435  VBOX_WITH_NVME_IMPL=
    1436  VBOX_WITH_EXTPACK_PUEL=
    1437  VBOX_WITH_EXTPACK_PUEL_BUILD=
    1438  VBOX_WITH_PCI_PASSTHROUGH_IMPL=
    1439  VBOX_WITH_OS2_ADDITIONS_BIN=
    1440  VBOX_WITH_LIBSSH=
     1433 VBOX_WITH_VRDP =
     1434 VBOX_WITH_USB_VIDEO_IMPL =
     1435 VBOX_WITH_NVME_IMPL =
     1436 VBOX_WITH_EXTPACK_PUEL =
     1437 VBOX_WITH_EXTPACK_PUEL_BUILD =
     1438 VBOX_WITH_PCI_PASSTHROUGH_IMPL =
     1439 VBOX_WITH_OS2_ADDITIONS_BIN =
     1440 VBOX_WITH_LIBSSH =
    14411441 # not yet
    1442  VBOX_WITH_PLUGIN_CRYPT=
    1443  VBOX_WITH_DRAG_AND_DROP_PROMISES=
     1442 VBOX_WITH_PLUGIN_CRYPT =
     1443 VBOX_WITH_DRAG_AND_DROP_PROMISES =
    14441444 ifn1of ($(KBUILD_TARGET), linux)
    1445   VBOX_WITH_DOCS=
    1446   VBOX_WITH_DOCS_PACKING=
     1445  VBOX_WITH_DOCS =
     1446  VBOX_WITH_DOCS_PACKING =
    14471447 endif
    14481448 if1of ($(KBUILD_TARGET), solaris)
    1449   VBOX_WITH_32_ON_64_MAIN_API=
     1449  VBOX_WITH_32_ON_64_MAIN_API =
    14501450 endif
    14511451 if1of ($(KBUILD_TARGET), win)
    14521452  # tar/gzip uncommon on Windows
    1453   VBOX_WITH_EXTPACK_VBOXDTRACE=
     1453  VBOX_WITH_EXTPACK_VBOXDTRACE =
    14541454 endif
    14551455 # Enable any translations in OSE, even partial ones.
     
    14571457  VBOX_WITH_DOCS_TRANSLATIONS = 1
    14581458 endif
    1459  VBOX_WITH_INTEL_PXE=
     1459 VBOX_WITH_INTEL_PXE =
    14601460 # Disable for OSE, requires snv_159+.
    1461  VBOX_WITH_NETFLT_CROSSBOW=
     1461 VBOX_WITH_NETFLT_CROSSBOW =
    14621462 ifn1of ($(KBUILD_TARGET), darwin linux solaris win)
    1463   VBOX_WITH_INSTALLER=
     1463  VBOX_WITH_INSTALLER =
    14641464 endif
    14651465 if1of ($(KBUILD_TARGET), win)
    14661466  # Undefine codec libraries which are not needed.
    1467   VBOX_WITH_LIBVPX=
    1468   VBOX_WITH_LIBVORBIS=
    1469   VBOX_WITH_LIBOGG=
     1467  VBOX_WITH_LIBVPX =
     1468  VBOX_WITH_LIBVORBIS =
     1469  VBOX_WITH_LIBOGG =
    14701470  # Disable recording (with audio support).
    1471   VBOX_WITH_RECORDING=
    1472   VBOX_WITH_AUDIO_RECORDING=
     1471  VBOX_WITH_RECORDING =
     1472  VBOX_WITH_AUDIO_RECORDING =
    14731473 endif
    14741474 # branding
     
    15031503#
    15041504ifdef VBOX_WITHOUT_HARDENING
    1505  VBOX_WITH_HARDENING=
     1505 VBOX_WITH_HARDENING =
    15061506 ifeq ($(VBOX_WITH_HARDENING),)
    1507   VBOX_PATH_APP_PRIVATE=
    1508   VBOX_PATH_APP_PRIVATE_ARCH=
    1509   VBOX_PATH_APP_PRIVATE_ARCH_TOP=
    1510   VBOX_PATH_SHARED_LIBS=
    1511   VBOX_PATH_APP_DOCS=
    1512   VBOX_WITH_RUNPATH=
     1507  VBOX_PATH_APP_PRIVATE =
     1508  VBOX_PATH_APP_PRIVATE_ARCH =
     1509  VBOX_PATH_APP_PRIVATE_ARCH_TOP =
     1510  VBOX_PATH_SHARED_LIBS =
     1511  VBOX_PATH_APP_DOCS =
     1512  VBOX_WITH_RUNPATH =
    15131513  if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # duplicated up above
    15141514   VBOX_WITH_ORIGIN = 1
     
    15671567#
    15681568ifdef VBOX_HEADLESS
    1569  VBOX_WITH_QTGUI=
    1570  VBOX_WITH_VBOXSDL=
    1571  VBOX_WITH_VRDP_RDESKTOP=
     1569 VBOX_WITH_QTGUI =
     1570 VBOX_WITH_VBOXSDL =
     1571 VBOX_WITH_VRDP_RDESKTOP =
    15721572endif
    15731573
     
    15761576#
    15771577ifndef VBOX_WITH_MAIN
    1578  VBOX_WITH_VBOXSDL=
    1579  VBOX_WITH_QTGUI=
    1580  VBOX_WITH_DEBUGGER_GUI=
    1581  VBOX_WITH_HEADLESS=
     1578 VBOX_WITH_VBOXSDL =
     1579 VBOX_WITH_QTGUI =
     1580 VBOX_WITH_DEBUGGER_GUI =
     1581 VBOX_WITH_HEADLESS =
    15821582 ifdef VBOX_ONLY_DOCS
    15831583  $(error Oh, does VBOX_ONLY_DOCS actually end up here. sweet.)
    15841584 endif
    1585  VBOX_WITH_DOCS=
     1585 VBOX_WITH_DOCS =
    15861586endif
    15871587
     
    16041604#
    16051605ifdef VBOX_OSE
    1606 # This can be overridden (e.g. in LocalConfig.kmk) by whoever publishes a set
    1607 # of VirtualBox binaries.  We request though that you always use something that
    1608 # clearly identifies your build and makes it clear that it is not one done by
    1609 # the VirtualBox team.
     1606 # This can be overridden (e.g. in LocalConfig.kmk) by whoever publishes a set
     1607 # of VirtualBox binaries.  We request though that you always use something that
     1608 # clearly identifies your build and makes it clear that it is not one done by
     1609 # the VirtualBox team.
    16101610 VBOX_BUILD_PUBLISHER ?= _OSE
    16111611endif
     
    16141614# Changed with every new version, so beware!
    16151615if $(VBOX_VERSION_BUILD) < 51
    1616   VBOX_API_VERSION          = $(VBOX_VERSION_MAJOR)_$(VBOX_VERSION_MINOR)
     1616 VBOX_API_VERSION           = $(VBOX_VERSION_MAJOR)_$(VBOX_VERSION_MINOR)
    16171617else
    1618   VBOX_API_VERSION          = $(VBOX_VERSION_MAJOR)_$(expr $(VBOX_VERSION_MINOR) + 1)
     1618 VBOX_API_VERSION           = $(VBOX_VERSION_MAJOR)_$(expr $(VBOX_VERSION_MINOR) + 1)
    16191619endif
    16201620VBOX_API_SUFFIX             = _$(VBOX_API_VERSION)
     
    16301630 VBOX_GUI_USE_QGL = 1
    16311631else
    1632  VBOX_GUI_USE_QGL=
     1632 VBOX_GUI_USE_QGL =
    16331633endif
    16341634
    16351635# Collection macro mainly for deciding whether VBoxDTrace needs shipping.
    16361636VBOX_WITH_DTRACE := $(if-expr defined(VBOX_WITH_DTRACE_R0) || defined(VBOX_WITH_DTRACE_R0DRV) \
    1637                             || defined(VBOX_WITH_DTRACE_R3) || defined(VBOX_WITH_DTRACE_RC),1,)
     1637        || defined(VBOX_WITH_DTRACE_R3) || defined(VBOX_WITH_DTRACE_RC),1,)
    16381638
    16391639# kSubmit / kWorker is only available on windows.
     
    16421642  TOOL_VCC142AMD64_USE_KSUBMIT := 1
    16431643  TOOL_VCC142X86_USE_KSUBMIT   := 1
    1644 #  TOOL_VCC120AMD64_USE_KSUBMIT := 1
    1645 #  TOOL_VCC120X86_USE_KSUBMIT   := 1
     1644  #  TOOL_VCC120AMD64_USE_KSUBMIT := 1
     1645  #  TOOL_VCC120X86_USE_KSUBMIT   := 1
    16461646  TOOL_VCC100AMD64_USE_KSUBMIT := 1
    16471647  TOOL_VCC100X86_USE_KSUBMIT   := 1
     
    17251725 ifeq ($(VBOX_LDR_FMT),elf)
    17261726  ifeq ($(KBUILD_TARGET_ARCH),x86)
    1727 VBOX_ASFLAGS_FMT = -f elf32 -DASM_FORMAT_ELF
     1727   VBOX_ASFLAGS_FMT = -f elf32 -DASM_FORMAT_ELF
    17281728  else
    1729 VBOX_ASFLAGS_FMT = -f elf64 -DASM_FORMAT_ELF
    1730   endif
    1731 VBOX_ASFLAGS_DBFINFO = -g dwarf2
     1729   VBOX_ASFLAGS_FMT = -f elf64 -DASM_FORMAT_ELF
     1730  endif
     1731  VBOX_ASFLAGS_DBFINFO = -g dwarf2
    17321732 endif
    17331733 ifeq ($(VBOX_LDR_FMT),lx)
    1734 VBOX_ASFLAGS_FMT = -f obj -DASM_FORMAT_OMF
    1735 VBOX_ASFLAGS_DBFINFO = -g stabs
     1734  VBOX_ASFLAGS_FMT = -f obj -DASM_FORMAT_OMF
     1735  VBOX_ASFLAGS_DBFINFO = -g stabs
    17361736 endif
    17371737 ifeq ($(VBOX_LDR_FMT),macho)
    17381738  ifeq ($(KBUILD_TARGET_ARCH),x86)
    1739 VBOX_ASFLAGS_FMT = -f macho32 -DASM_FORMAT_MACHO
     1739   VBOX_ASFLAGS_FMT = -f macho32 -DASM_FORMAT_MACHO
    17401740  else
    1741 VBOX_ASFLAGS_FMT = -f macho64 -DASM_FORMAT_MACHO
    1742   endif
    1743 VBOX_ASFLAGS_DBFINFO = -g dwarf2
     1741   VBOX_ASFLAGS_FMT = -f macho64 -DASM_FORMAT_MACHO
     1742  endif
     1743  VBOX_ASFLAGS_DBFINFO = -g dwarf2
    17441744 endif
    17451745 ifeq ($(VBOX_LDR_FMT),pe)
    17461746  ifeq ($(KBUILD_TARGET_ARCH),x86)
    1747 VBOX_ASFLAGS_FMT = -f win32 -DASM_FORMAT_PE
     1747   VBOX_ASFLAGS_FMT = -f win32 -DASM_FORMAT_PE
    17481748  else
    1749 VBOX_ASFLAGS_FMT = -f win64 -DASM_FORMAT_PE
    1750   endif
    1751 VBOX_ASFLAGS_DBFINFO = -g cv8
     1749   VBOX_ASFLAGS_FMT = -f win64 -DASM_FORMAT_PE
     1750  endif
     1751  VBOX_ASFLAGS_DBFINFO = -g cv8
    17521752 endif
    17531753 ifndef VBOX_ASFLAGS_FMT
     
    17561756
    17571757 ifeq ($(VBOX_LDR_FMT32),elf)
    1758 VBOX_ASFLAGS_FMT32 = -f elf32 -DASM_FORMAT_ELF
    1759 VBOX_ASFLAGS_DBFINFO32 = -g dwarf2
     1758  VBOX_ASFLAGS_FMT32 = -f elf32 -DASM_FORMAT_ELF
     1759  VBOX_ASFLAGS_DBFINFO32 = -g dwarf2
    17601760 endif
    17611761 ifeq ($(VBOX_LDR_FMT32),lx)
    1762 VBOX_ASFLAGS_FMT32 = -f obj -DASM_FORMAT_OMF
    1763 VBOX_ASFLAGS_DBFINFO32 = -g stabs
     1762  VBOX_ASFLAGS_FMT32 = -f obj -DASM_FORMAT_OMF
     1763  VBOX_ASFLAGS_DBFINFO32 = -g stabs
    17641764 endif
    17651765 ifeq ($(VBOX_LDR_FMT32),macho)
    1766 VBOX_ASFLAGS_FMT32 = -f macho32 -DASM_FORMAT_MACHO
    1767 VBOX_ASFLAGS_DBFINFO32 = -g dwarf2
     1766  VBOX_ASFLAGS_FMT32 = -f macho32 -DASM_FORMAT_MACHO
     1767  VBOX_ASFLAGS_DBFINFO32 = -g dwarf2
    17681768 endif
    17691769 ifeq ($(VBOX_LDR_FMT32),pe)
    1770 VBOX_ASFLAGS_FMT32 = -f win32 -DASM_FORMAT_PE
    1771 VBOX_ASFLAGS_DBFINFO32 = -g cv8
     1770  VBOX_ASFLAGS_FMT32 = -f win32 -DASM_FORMAT_PE
     1771  VBOX_ASFLAGS_DBFINFO32 = -g cv8
    17721772 endif
    17731773 ifndef VBOX_ASFLAGS_FMT32
     
    17761776
    17771777 ifeq ($(VBOX_LDR_FMT64),elf)
    1778 VBOX_ASFLAGS_FMT64 = -f elf64 -DASM_FORMAT_ELF
    1779 VBOX_ASFLAGS_DBFINFO64 = -g dwarf2
     1778  VBOX_ASFLAGS_FMT64 = -f elf64 -DASM_FORMAT_ELF
     1779  VBOX_ASFLAGS_DBFINFO64 = -g dwarf2
    17801780 endif
    17811781 ifeq ($(VBOX_LDR_FMT64),macho)
    1782 VBOX_ASFLAGS_FMT64 = -f macho64 -DASM_FORMAT_MACHO
    1783 VBOX_ASFLAGS_DBFINFO64 = -g dwarf2
     1782  VBOX_ASFLAGS_FMT64 = -f macho64 -DASM_FORMAT_MACHO
     1783  VBOX_ASFLAGS_DBFINFO64 = -g dwarf2
    17841784 endif
    17851785 ifeq ($(VBOX_LDR_FMT64),pe)
    1786 VBOX_ASFLAGS_FMT64 = -f win64 -DASM_FORMAT_PE
    1787 VBOX_ASFLAGS_DBFINFO64 = -g cv8
     1786  VBOX_ASFLAGS_FMT64 = -f win64 -DASM_FORMAT_PE
     1787  VBOX_ASFLAGS_DBFINFO64 = -g cv8
    17881788 endif
    17891789 ifndef VBOX_ASFLAGS_FMT64
     
    17921792
    17931793 ifndef DONT_USE_YASM
    1794 VBOX_ASTOOL    = YASM
    1795 VBOX_LDR_FMT_2_YASM_DBGINFO.elf  = -g dwarf2
    1796 VBOX_LDR_FMT_2_YASM_DBGINFO.lx    = -g stabs
    1797 VBOX_LDR_FMT_2_YASM_DBGINFO.macho =
    1798 VBOX_LDR_FMT_2_YASM_DBGINFO.pe    = -g cv8
    1799 VBOX_ASFLAGS  = $(VBOX_ASFLAGS_FMT)   -D__YASM__ -Worphan-labels $(VBOX_YASM_Wno-segreg-in-64bit) $(VBOX_LDR_FMT_2_YASM_DBGINFO.$(VBOX_LDR_FMT))
    1800 VBOX_ASFLAGS32 = $(VBOX_ASFLAGS_FMT32) -D__YASM__ -Worphan-labels $(VBOX_YASM_Wno-segreg-in-64bit) $(VBOX_LDR_FMT_2_YASM_DBGINFO.$(VBOX_LDR_FMT32))
    1801 VBOX_ASFLAGS64 = $(VBOX_ASFLAGS_FMT64) -D__YASM__ -Worphan-labels $(VBOX_YASM_Wno-segreg-in-64bit) $(VBOX_LDR_FMT_2_YASM_DBGINFO.$(VBOX_LDR_FMT64))
     1794  VBOX_ASTOOL  = YASM
     1795  VBOX_LDR_FMT_2_YASM_DBGINFO.elf = -g dwarf2
     1796  VBOX_LDR_FMT_2_YASM_DBGINFO.lx  = -g stabs
     1797  VBOX_LDR_FMT_2_YASM_DBGINFO.macho =
     1798  VBOX_LDR_FMT_2_YASM_DBGINFO.pe  = -g cv8
     1799  VBOX_ASFLAGS = $(VBOX_ASFLAGS_FMT)   -D__YASM__ -Worphan-labels $(VBOX_YASM_Wno-segreg-in-64bit) $(VBOX_LDR_FMT_2_YASM_DBGINFO.$(VBOX_LDR_FMT))
     1800  VBOX_ASFLAGS32 = $(VBOX_ASFLAGS_FMT32) -D__YASM__ -Worphan-labels $(VBOX_YASM_Wno-segreg-in-64bit) $(VBOX_LDR_FMT_2_YASM_DBGINFO.$(VBOX_LDR_FMT32))
     1801  VBOX_ASFLAGS64 = $(VBOX_ASFLAGS_FMT64) -D__YASM__ -Worphan-labels $(VBOX_YASM_Wno-segreg-in-64bit) $(VBOX_LDR_FMT_2_YASM_DBGINFO.$(VBOX_LDR_FMT64))
    18021802 else
    1803 VBOX_ASTOOL    = NASM
    1804 VBOX_ASFLAGS  = $(subst elf32,elf,$(VBOX_ASFLAGS_FMT))   -D__NASM__ -w+orphan-labels -g
    1805 VBOX_ASFLAGS32 = $(subst elf32,elf,$(VBOX_ASFLAGS_FMT32)) -D__NASM__ -w+orphan-labels -g
    1806 VBOX_ASFLAGS64 = $(VBOX_ASFLAGS_FMT64) -D__NASM__ -w+orphan-labels -g
     1803  VBOX_ASTOOL  = NASM
     1804  VBOX_ASFLAGS = $(subst elf32,elf,$(VBOX_ASFLAGS_FMT))   -D__NASM__ -w+orphan-labels -g
     1805  VBOX_ASFLAGS32 = $(subst elf32,elf,$(VBOX_ASFLAGS_FMT32)) -D__NASM__ -w+orphan-labels -g
     1806  VBOX_ASFLAGS64 = $(VBOX_ASFLAGS_FMT64) -D__NASM__ -w+orphan-labels -g
    18071807 endif
    18081808else  # ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
    1809 VBOX_ASTOOL =# No tool, just use the compiler one.
    1810 VBOX_LDR_FMT_2_FLAGS.elf   := -DASM_FORMAT_ELF
    1811 VBOX_LDR_FMT_2_FLAGS.macho := -DASM_FORMAT_MACHO
    1812 VBOX_LDR_FMT_2_FLAGS.pe    := -DASM_FORMAT_PE
    1813 VBOX_ASFLAGS   := -g $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT))
    1814 VBOX_ASFLAGS32 := -g $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT32))
    1815 VBOX_ASFLAGS64 := -g $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT64))
     1809 VBOX_ASTOOL =# No tool, just use the compiler one.
     1810 VBOX_LDR_FMT_2_FLAGS.elf  := -DASM_FORMAT_ELF
     1811 VBOX_LDR_FMT_2_FLAGS.macho := -DASM_FORMAT_MACHO
     1812 VBOX_LDR_FMT_2_FLAGS.pe   := -DASM_FORMAT_PE
     1813 VBOX_ASFLAGS  := -g $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT))
     1814 VBOX_ASFLAGS32 := -g $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT32))
     1815 VBOX_ASFLAGS64 := -g $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT64))
    18161816 if1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
    1817 VBOX_ASFLAGS += -m$(VBOX_HC_ARCH_BITS)
    1818 VBOX_ASFLAGS32 += -m32
    1819 VBOX_ASFLAGS64 += -m64
     1817  VBOX_ASFLAGS += -m$(VBOX_HC_ARCH_BITS)
     1818  VBOX_ASFLAGS32 += -m32
     1819  VBOX_ASFLAGS64 += -m64
    18201820 endif
    18211821endif # ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
     
    18581858  ifeq ($(KBUILD_TARGET_ARCH).$(KBUILD_HOST_ARCH),x86.amd64) ## @todo mixing target/host here!
    18591859   VBOX_GCC_TOOL := GXX32
    1860    VBOX_WITH_VBOXDRV=
     1860   VBOX_WITH_VBOXDRV =
    18611861  else ifeq ($(KBUILD_TARGET_ARCH).$(KBUILD_HOST_ARCH),amd64.x86)
    18621862   VBOX_GCC_TOOL := GXX64
    1863    VBOX_WITH_VBOXDRV=
     1863   VBOX_WITH_VBOXDRV =
    18641864  endif
    18651865 endif
     
    21112111# ARCH_BITS_DEFS.
    21122112#
    2113 if1of ($(KBUILD_TARGET_ARCH),amd64 sparc64 arm64)
     2113if1of ($(KBUILD_TARGET_ARCH), amd64 sparc64 arm64)
    21142114 VBOX_HC_ARCH_BITS := 64
    21152115 ARCH_BITS_DEFS    := HC_ARCH_BITS=64
    2116 else if1of ($(KBUILD_TARGET_ARCH),x86 sparc32)
     2116else if1of ($(KBUILD_TARGET_ARCH), x86 sparc32)
    21172117 VBOX_HC_ARCH_BITS := 32
    21182118 ARCH_BITS_DEFS    := HC_ARCH_BITS=32
     
    21412141endif
    21422142ifeq ($(KBUILD_HOST),win)
    2143   # This check is a bit hacky, but avoids problems with PATH being changed
    2144   # again when the makefiles are reread because some automatically generated
    2145   # makefile has been modified.
    2146   ifeq ($(findstring $(PATH_STAGE_BIN);$(PATH_STAGE_LIB);,$(PATH)),)
    2147    export PATH:=$(PATH_STAGE_BIN);$(PATH_STAGE_LIB);$(PATH)
    2148   endif
     2143 # This check is a bit hacky, but avoids problems with PATH being changed
     2144 # again when the makefiles are reread because some automatically generated
     2145 # makefile has been modified.
     2146 ifeq ($(findstring $(PATH_STAGE_BIN);$(PATH_STAGE_LIB);,$(PATH)),)
     2147  export PATH:=$(PATH_STAGE_BIN);$(PATH_STAGE_LIB);$(PATH)
     2148 endif
    21492149endif
    21502150
     
    22172217VBOX_LIB_RUNTIME_STATIC_X86     = $(PATH_STAGE_LIB)/RuntimeR3-x86$(VBOX_SUFF_LIB)
    22182218if "$(KBUILD_TARGET)" == "win" && "$(KBUILD_TYPE)" == "asan"
    2219 VBOX_LIB_RUNTIME_STATIC_NO_ASAN = $(PATH_STAGE_LIB)/RuntimeR3NoAsan$(VBOX_SUFF_LIB)
     2219 VBOX_LIB_RUNTIME_STATIC_NO_ASAN = $(PATH_STAGE_LIB)/RuntimeR3NoAsan$(VBOX_SUFF_LIB)
    22202220else
    2221 VBOX_LIB_RUNTIME_STATIC_NO_ASAN = $(VBOX_LIB_RUNTIME_STATIC)
     2221 VBOX_LIB_RUNTIME_STATIC_NO_ASAN = $(VBOX_LIB_RUNTIME_STATIC)
    22222222endif
    22232223
     
    22302230 if1of ($(KBUILD_HOST), win)
    22312231  VBOX_BLD_PYTHON := $(firstword $(rsort $(wildcard $(KBUILD_DEVTOOLS)/win.x86/python/v*/python$(HOSTSUFF_EXE))) \
    2232                                    python-not-found.exe)
     2232        python-not-found.exe)
    22332233 else ifndef VBOX_WITH_PYTHON2_PREFERENCE
    22342234  VBOX_BLD_PYTHON := $(firstword \
    2235         $(which python3$(HOSTSUFF_EXE)) \
    2236         $(which python3.10$(HOSTSUFF_EXE)) \
    2237         $(which python3.9$(HOSTSUFF_EXE)) \
    2238         $(which python3.8$(HOSTSUFF_EXE)) \
    2239         $(which python3.7$(HOSTSUFF_EXE)) \
    2240         $(which python3.6$(HOSTSUFF_EXE)) \
    2241         $(which python3.5$(HOSTSUFF_EXE)) \
    2242         $(which python3.4$(HOSTSUFF_EXE)) \
    2243         $(which python2.7$(HOSTSUFF_EXE)) \
    2244         $(which python$(HOSTSUFF_EXE)) \
    2245         $(which python2.6$(HOSTSUFF_EXE)) \
    2246         python-not-found$(HOSTSUFF_EXE) )
     2235        $(which python3$(HOSTSUFF_EXE)) \
     2236        $(which python3.10$(HOSTSUFF_EXE)) \
     2237        $(which python3.9$(HOSTSUFF_EXE)) \
     2238        $(which python3.8$(HOSTSUFF_EXE)) \
     2239        $(which python3.7$(HOSTSUFF_EXE)) \
     2240        $(which python3.6$(HOSTSUFF_EXE)) \
     2241        $(which python3.5$(HOSTSUFF_EXE)) \
     2242        $(which python3.4$(HOSTSUFF_EXE)) \
     2243        $(which python2.7$(HOSTSUFF_EXE)) \
     2244        $(which python$(HOSTSUFF_EXE)) \
     2245        $(which python2.6$(HOSTSUFF_EXE)) \
     2246        python-not-found$(HOSTSUFF_EXE) )
    22472247 else
    22482248  VBOX_BLD_PYTHON := $(firstword \
    2249         $(which python2.7$(HOSTSUFF_EXE)) \
    2250         $(which python2.6$(HOSTSUFF_EXE)) \
    2251         $(which python$(HOSTSUFF_EXE)) \
    2252         $(which python3$(HOSTSUFF_EXE)) \
    2253         python-not-found$(HOSTSUFF_EXE) )
     2249        $(which python2.7$(HOSTSUFF_EXE)) \
     2250        $(which python2.6$(HOSTSUFF_EXE)) \
     2251        $(which python$(HOSTSUFF_EXE)) \
     2252        $(which python3$(HOSTSUFF_EXE)) \
     2253        python-not-found$(HOSTSUFF_EXE) )
    22542254 endif
    22552255endif
     
    22972297 ifndef VBOX_PYLINT_VERSION
    22982298  ifdef VBOX_WITH_PYLINT_PRE_V1_0
    2299    VBOX_PYLINT_VERSION =  9999
     2299   VBOX_PYLINT_VERSION = 9999
    23002300  else ifdef VBOX_WITH_PYLINT_V1_2_1_PLUS
    23012301   VBOX_PYLINT_VERSION = 10201
     
    23082308endif
    23092309VBOX_PYLINT_FLAGS = $(if-expr $(VBOX_PYLINT_VERSION) >= 10500,--reports=n,--report=n) \
    2310         $(if-expr $(VBOX_PYLINT_VERSION) >= 10000\
    2311           ,--msg-template='{path}:{line}: <{msg_id}>({obj}:{symbol}): {msg}' \
    2312           ,--output-format=msvs --include-ids=y) \
     2310        $(if-expr $(VBOX_PYLINT_VERSION) >= 10000 \
     2311        ,--msg-template='{path}:{line}: <{msg_id}>({obj}:{symbol}): {msg}' \
     2312        ,--output-format=msvs --include-ids=y) \
    23132313        --persistent=n \
    23142314        --rcfile=$(PATH_ROOT)/tools/pylintrc \
     
    23212321        --max-args=9 \
    23222322        --max-module-lines=4096 \
    2323        --max-locals=32 \
     2323        --max-locals=32 \
    23242324        $(if-expr $(VBOX_PYLINT_VERSION) >= 10500,--max-bool-expr=99,) \
    2325        --min-public-methods=0 \
     2325        --min-public-methods=0 \
    23262326        --function-rgx='[a-z_][a-zA-Z0-9_]{2,40}$(DOLLAR)' \
    23272327        --method-rgx='[a-z_][a-zA-Z0-9_]{2,40}$(DOLLAR)' \
     
    23352335        $(if-expr $(VBOX_PYLINT_VERSION) >= 10000,--class-attribute-rgx='(k[abcdefhmnpilorstu]+[A-Z0-9][a-zA-Z0-9_]{0,32}|[A-Z_][A-Z0-9_]{2,32})',) \
    23362336        $(if-expr $(VBOX_PYLINT_VERSION) >= 10500,--max-nested-blocks=9,) \
    2337        $(if-expr $(VBOX_PYLINT_VERSION) >= 10100,--disable=bad-whitespace,) \
    2338        $(if-expr $(VBOX_PYLINT_VERSION) >= 10201,--disable=bad-continuation --disable=eval-used,) \
    2339        $(if-expr $(VBOX_PYLINT_VERSION) >= 10201 && $(VBOX_PYLIN_VERSION) < 10500,--disable=bad-option-value,) \
    2340        $(if-expr $(VBOX_PYLINT_VERSION) >= 10500,--disable=wrong-import-position --disable=E0012 --disable=locally-enabled,) \
    2341        $(if-expr $(VBOX_PYLINT_VERSION) >= 10600,--disable=missing-docstring --disable=trailing-newlines --disable=ungrouped-imports,) \
    2342        $(if-expr $(VBOX_PYLINT_VERSION) >= 10800,--disable=redundant-keyword-arg,) \
    2343        $(if-expr $(VBOX_PYLINT_VERSION) >= 20000,--disable=useless-object-inheritance --disable=useless-return,) \
    2344        $(if-expr $(VBOX_PYLINT_VERSION) >= 20400,--disable=import-outside-toplevel,) \
    2345        $(if-expr $(VBOX_PYLINT_VERSION) >= 20900,--disable=super-with-arguments --disable=raise-missing-from,) \
    2346        $(if-expr $(VBOX_PYLINT_VERSION) >= 21200,--disable=consider-using-f-string --disable=unnecessary-semicolon --disable=redundant-u-string-prefix) \
     2337        $(if-expr $(VBOX_PYLINT_VERSION) >= 10100,--disable=bad-whitespace,) \
     2338        $(if-expr $(VBOX_PYLINT_VERSION) >= 10201,--disable=bad-continuation --disable=eval-used,) \
     2339        $(if-expr $(VBOX_PYLINT_VERSION) >= 10201 && $(VBOX_PYLIN_VERSION) < 10500,--disable=bad-option-value,) \
     2340        $(if-expr $(VBOX_PYLINT_VERSION) >= 10500,--disable=wrong-import-position --disable=E0012 --disable=locally-enabled,) \
     2341        $(if-expr $(VBOX_PYLINT_VERSION) >= 10600,--disable=missing-docstring --disable=trailing-newlines --disable=ungrouped-imports,) \
     2342        $(if-expr $(VBOX_PYLINT_VERSION) >= 10800,--disable=redundant-keyword-arg,) \
     2343        $(if-expr $(VBOX_PYLINT_VERSION) >= 20000,--disable=useless-object-inheritance --disable=useless-return,) \
     2344        $(if-expr $(VBOX_PYLINT_VERSION) >= 20400,--disable=import-outside-toplevel,) \
     2345        $(if-expr $(VBOX_PYLINT_VERSION) >= 20900,--disable=super-with-arguments --disable=raise-missing-from,) \
     2346        $(if-expr $(VBOX_PYLINT_VERSION) >= 21200,--disable=consider-using-f-string --disable=unnecessary-semicolon --disable=redundant-u-string-prefix) \
    23472347        --disable=unnecessary-semicolon,invalid-encoded-data,global-statement,bare-except,broad-except,multiple-statements,no-self-use,fixme \
    23482348        --disable=I0011 \
    2349         --ignored-classes=testdriver.vboxcon \
     2349        --ignored-classes=testdriver.vboxcon
    23502350
    23512351
     
    23542354 VBOX_FN_MAKE_WIN_PATH = "$(quote-sh-dq $(subst /,\,$(requote unq, $(1))))"
    23552355else
    2356   # Z: is always FS root for Wine.
    2357   VBOX_FN_MAKE_WIN_PATH = $(subst /,\\,$(patsubst /%,Z:/%,$(1)))
     2356 # Z: is always FS root for Wine.
     2357 VBOX_FN_MAKE_WIN_PATH = $(subst /,\\,$(patsubst /%,Z:/%,$(1)))
    23582358endif #!VBOX_ONLY_SDK
    23592359
     
    24742474else ifeq ($(KBUILD_HOST),darwin) # Xcode 7.3.1 nm doesn't like -t, and -x behaves very differently.  Throwing in -B (bsd) to make sure.
    24752475 VBOX_NM ?= $(subst $(REDIRECT_INT),$(REDIRECT_EXT),$(TOOL_$(VBOX_GCC_TOOL)_ENV_SETUP) $(PATH_TOOL_$(VBOX_GCC_TOOL)_TOOLCHAIN_BIN_SLASH)nm) -p \
    2476         $(if-expr $(VBOX_XCODE_VERSION_MAJOR) > 7 || ($(VBOX_XCODE_VERSION_MAJOR) == 7 && $(VBOX_XCODE_VERSION_MINOR) >= 3),-B,)
     2476        $(if-expr $(VBOX_XCODE_VERSION_MAJOR) > 7 || ($(VBOX_XCODE_VERSION_MAJOR) == 7 && $(VBOX_XCODE_VERSION_MINOR) >= 3),-B,)
    24772477else
    24782478 VBOX_NM ?= nm -p -t x
     
    24922492VBOX_PATH_WIX       ?= $(KBUILD_DEVTOOLS)/win.x86/wix/v3.11.2
    24932493ifdef VBOX_WITH_NEW_WINDOWS_SDK
    2494 VBOX_PATH_MSITRAN   ?= $(PATH_SDK_$(VBOX_WINPSDK)_BIN)/../x86/MsiTran.Exe
    2495 VBOX_PATH_MSIDB     ?= $(PATH_SDK_$(VBOX_WINPSDK)_BIN)/../x86/MsiDb.Exe
    2496 VBOX_PATH_WISUBSTG ?= $(PATH_SDK_$(VBOX_WINPSDK)_BIN)/WiSubStg.vbs
    2497 VBOX_PATH_WISUMINFO ?= $(PATH_SDK_$(VBOX_WINPSDK)_BIN)/WiSumInf.vbs
     2494 VBOX_PATH_MSITRAN  ?= $(PATH_SDK_$(VBOX_WINPSDK)_BIN)/../x86/MsiTran.Exe
     2495 VBOX_PATH_MSIDB    ?= $(PATH_SDK_$(VBOX_WINPSDK)_BIN)/../x86/MsiDb.Exe
     2496 VBOX_PATH_WISUBSTG ?= $(PATH_SDK_$(VBOX_WINPSDK)_BIN)/WiSubStg.vbs
     2497 VBOX_PATH_WISUMINFO ?= $(PATH_SDK_$(VBOX_WINPSDK)_BIN)/WiSumInf.vbs
    24982498else
    2499 VBOX_PATH_MSITRAN   ?= $(KBUILD_DEVTOOLS)/win.x86/sdk/v7.1/Bin/MsiTran.Exe
    2500 VBOX_PATH_MSIDB     ?= $(KBUILD_DEVTOOLS)/win.x86/sdk/v7.1/Bin/MsiDb.Exe
    2501 VBOX_PATH_WISUBSTG ?= $(KBUILD_DEVTOOLS)/win.x86/sdk/v7.1/Samples/sysmgmt/msi/scripts/WiSubStg.vbs
    2502 VBOX_PATH_WISUMINFO ?= $(KBUILD_DEVTOOLS)/win.x86/sdk/v7.1/Samples/sysmgmt/msi/scripts/WiSumInf.vbs
     2499 VBOX_PATH_MSITRAN  ?= $(KBUILD_DEVTOOLS)/win.x86/sdk/v7.1/Bin/MsiTran.Exe
     2500 VBOX_PATH_MSIDB    ?= $(KBUILD_DEVTOOLS)/win.x86/sdk/v7.1/Bin/MsiDb.Exe
     2501 VBOX_PATH_WISUBSTG ?= $(KBUILD_DEVTOOLS)/win.x86/sdk/v7.1/Samples/sysmgmt/msi/scripts/WiSubStg.vbs
     2502 VBOX_PATH_WISUMINFO ?= $(KBUILD_DEVTOOLS)/win.x86/sdk/v7.1/Samples/sysmgmt/msi/scripts/WiSumInf.vbs
    25032503endif
    25042504VBOX_PATH_DIFX      ?= $(KBUILD_DEVTOOLS)/win.$(KBUILD_TARGET_ARCH)/DIFx/v2.1-r3
     
    25152515ifeq ($(KBUILD_HOST),win)
    25162516 ifndef TOOL_BISON_YACC
    2517 TOOL_BISON_YACC     := $(firstfile $(rversortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/win_flex_bison/v*/*bison*$(HOSTSUFF_EXE))) bison.exe)
     2517  TOOL_BISON_YACC   := $(firstfile $(rversortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/win_flex_bison/v*/*bison*$(HOSTSUFF_EXE))) bison.exe)
    25182518 endif
    25192519 ifndef TOOL_FLEX_LEX
    2520 TOOL_FLEX_LEX       := $(firstfile $(rversortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/win_flex_bison/v*/*flex*$(HOSTSUFF_EXE))) flex.exe)
     2520  TOOL_FLEX_LEX     := $(firstfile $(rversortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/win_flex_bison/v*/*flex*$(HOSTSUFF_EXE))) flex.exe)
    25212521 endif
    25222522endif
     
    25382538# forgets to quote it when creating the commandline and cl.exe gets very confused.
    25392539if1of (quote, $(KMK_FEATURES))
    2540 VBOX_MIDL_REDIRECT     = $(REDIRECT) --prepend "$(quote-sh-dq PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL)_BIN);$(qaddsuffix ,;,$(PATH_TOOL_$(VBOX_VCC_TOOL)_DLL_BIN)))" --
    2541 VBOX_MIDL_REDIRECT_X86 = $(REDIRECT) --prepend "$(quote-sh-dq PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN);$(qaddsuffix ,;,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_DLL_BIN)))" --
     2540 VBOX_MIDL_REDIRECT    = $(REDIRECT) --prepend "$(quote-sh-dq PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL)_BIN);$(qaddsuffix ,;,$(PATH_TOOL_$(VBOX_VCC_TOOL)_DLL_BIN)))" --
     2541 VBOX_MIDL_REDIRECT_X86 = $(REDIRECT) --prepend "$(quote-sh-dq PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN);$(qaddsuffix ,;,$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_DLL_BIN)))" --
    25422542else
    2543 VBOX_MIDL_REDIRECT     = $(REDIRECT) --prepend 'PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL)_BIN);$(PATH)' --
    2544 VBOX_MIDL_REDIRECT_X86 = $(REDIRECT) --prepend 'PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN);$(PATH)' --
     2543 VBOX_MIDL_REDIRECT    = $(REDIRECT) --prepend 'PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL)_BIN);$(PATH)' --
     2544 VBOX_MIDL_REDIRECT_X86 = $(REDIRECT) --prepend 'PATH=$(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_BIN);$(PATH)' --
    25452545endif
    25462546VBOX_MIDL_CPP_CMD      = $(lastword $(notdir ,$(subst $(EXEC_X86_WIN32),,$(TOOL_$(VBOX_VCC_TOOL)_CC))))
     
    25832583 endif
    25842584 VBOX_PATH_XPCOM_IDL ?= $(VBOX_PATH_SDK)/bindings/xpcom/idl
    2585  VBOX_XPCOM_INCS     ?=                         \
    2586         $(VBOX_PATH_SDK)/bindings/xpcom/include \
    2587         $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom   \
    2588         $(VBOX_PATH_SDK)/bindings/xpcom/include/string  \
    2589         $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom   \
     2585 VBOX_XPCOM_INCS     ?= \
     2586        $(VBOX_PATH_SDK)/bindings/xpcom/include \
     2587        $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
     2588        $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
     2589        $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
    25902590        $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
    25912591        $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd
     
    26482648   VBOX_XCODE_VERSION := 4.1
    26492649  else
    2650   # Fallback - system / LocalConfig.kmk.
     2650   # Fallback - system / LocalConfig.kmk.
    26512651   VBOX_PATH_MACOSX_DEVEL_ROOT     ?= /Developer
    26522652   VBOX_PATH_MACOSX_SDK_ROOT       ?= $(VBOX_PATH_MACOSX_DEVEL_ROOT)/SDKs
     
    26632663  ifndef VBOX_PATH_MACOSX_SDK_ROOT
    26642664   VBOX_PATH_MACOSX_SDK_ROOT := $(firstword $(wildcard \
    2665                 $(PATH_TOOL_$(VBOX_GCC_TOOL)_SDKS) \
    2666                 $(VBOX_PATH_MACOSX_DEVEL_ROOT)/SDKs/. \
    2667                 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/. \
    2668                 /Developer/SDKs/. \
    2669                 /Library/Developer/CommandLineTools/SDKs/. ))
     2665        $(PATH_TOOL_$(VBOX_GCC_TOOL)_SDKS) \
     2666        $(VBOX_PATH_MACOSX_DEVEL_ROOT)/SDKs/. \
     2667        /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/. \
     2668        /Developer/SDKs/. \
     2669        /Library/Developer/CommandLineTools/SDKs/. ))
    26702670  endif
    26712671  ifndef VBOX_PATH_MACOSX_TOOLCHAIN_ROOT
    26722672   VBOX_PATH_MACOSX_TOOLCHAIN_ROOT := $(firstword $(wildcard \
    2673                 $(PATH_TOOL_$(VBOX_GCC_TOOL)_TOOLCHAIN) \
    2674                 $(VBOX_PATH_MACOSX_DEVEL_ROOT)/Library/Developer/CommandLineTools/. \
    2675                 $(VBOX_PATH_MACOSX_DEVEL_ROOT)/Toolchains/XcodeDefault.xctoolchain/. \
    2676                 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/. \
    2677                /Library/Developer/CommandLineTools/. \
    2678                 ) /. )
     2673        $(PATH_TOOL_$(VBOX_GCC_TOOL)_TOOLCHAIN) \
     2674        $(VBOX_PATH_MACOSX_DEVEL_ROOT)/Library/Developer/CommandLineTools/. \
     2675        $(VBOX_PATH_MACOSX_DEVEL_ROOT)/Toolchains/XcodeDefault.xctoolchain/. \
     2676        /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/. \
     2677        /Library/Developer/CommandLineTools/. \
     2678        ) /. )
    26792679  endif
    26802680 else
     
    27002700 endif
    27012701 if !defined(VBOX_PATH_MACOSX_SDK) && !defined(VBOX_WITH_EVEN_NEWER_XCODE) # newer xcode handles this above
    2702 VBOX_PATH_MACOSX_SDK_ROOT_DIRS ?= \
    2703         $(VBOX_PATH_MACOSX_SDK_ROOT) \
    2704         $(KBUILD_DEVTOOLS)/darwin.x86/SDKs/ \
    2705         $(KBUILD_DEVTOOLS)/darwin.amd64/SDKs/ \
    2706         $(KBUILD_DEVTOOLS)/darwin.x86/xcode/v4.1/SDKs \
    2707         $(KBUILD_DEVTOOLS)/darwin.x86/xcode/v3.2.6/SDKs
     2702  VBOX_PATH_MACOSX_SDK_ROOT_DIRS ?= \
     2703        $(VBOX_PATH_MACOSX_SDK_ROOT) \
     2704        $(KBUILD_DEVTOOLS)/darwin.x86/SDKs/ \
     2705        $(KBUILD_DEVTOOLS)/darwin.amd64/SDKs/ \
     2706        $(KBUILD_DEVTOOLS)/darwin.x86/xcode/v4.1/SDKs \
     2707        $(KBUILD_DEVTOOLS)/darwin.x86/xcode/v3.2.6/SDKs
    27082708  ifeq ($(VBOX_DEF_MACOSX_VERSION_MIN),10.4)
    2709 VBOX_PATH_MACOSX_SDK := $(firstword $(wildcard $(addsuffix /MacOSX$(VBOX_DEF_MACOSX_VERSION_MIN)u.sdk, $(VBOX_PATH_MACOSX_SDK_ROOT_DIRS))) \
    2710         $(VBOX_PATH_MACOSX_SDK_ROOT)/MacOSX$(VBOX_DEF_MACOSX_VERSION_MIN)u.sdk )
     2709   VBOX_PATH_MACOSX_SDK := $(firstword $(wildcard $(addsuffix /MacOSX$(VBOX_DEF_MACOSX_VERSION_MIN)u.sdk, $(VBOX_PATH_MACOSX_SDK_ROOT_DIRS))) \
     2710        $(VBOX_PATH_MACOSX_SDK_ROOT)/MacOSX$(VBOX_DEF_MACOSX_VERSION_MIN)u.sdk )
    27112711  else
    2712 VBOX_PATH_MACOSX_SDK := $(firstword $(wildcard $(addsuffix /MacOSX$(VBOX_DEF_MACOSX_VERSION_MIN).sdk, $(VBOX_PATH_MACOSX_SDK_ROOT_DIRS))) \
    2713         $(VBOX_PATH_MACOSX_SDK_ROOT)/MacOSX$(VBOX_DEF_MACOSX_VERSION_MIN).sdk )
     2712   VBOX_PATH_MACOSX_SDK := $(firstword $(wildcard $(addsuffix /MacOSX$(VBOX_DEF_MACOSX_VERSION_MIN).sdk, $(VBOX_PATH_MACOSX_SDK_ROOT_DIRS))) \
     2713        $(VBOX_PATH_MACOSX_SDK_ROOT)/MacOSX$(VBOX_DEF_MACOSX_VERSION_MIN).sdk )
    27142714  endif
    27152715 endif
     
    28182818 else
    28192819  VBOX_DARWIN_DEF_SDK_DEFS        := MAC_OS_X_VERSION_MIN_REQUIRED=$(VBOX_DEF_MACOSX_VERSION_MIN_NO_DOT)0 \
    2820                                      MAC_OS_X_VERSION_MAX_ALLOWED=$(VBOX_DEF_MACOSX_VERSION_MIN_NO_DOT)0
     2820        MAC_OS_X_VERSION_MAX_ALLOWED=$(VBOX_DEF_MACOSX_VERSION_MIN_NO_DOT)0
    28212821  VBOX_DARWIN_DEF_SDK_CFLAGS      := -mmacosx-version-min=$(VBOX_DEF_MACOSX_VERSION_MIN) -isysroot "$(VBOX_PATH_MACOSX_SDK)"
    28222822  VBOX_DARWIN_DEF_SDK_CXXFLAGS    := -mmacosx-version-min=$(VBOX_DEF_MACOSX_VERSION_MIN) -isysroot "$(VBOX_PATH_MACOSX_SDK)"
     
    29682968ifeq ($(KBUILD_TYPE),asan)
    29692969 if "$(KBUILD_TARGET)" == "linux"
    2970 VBOX_WITH_GCC_SANITIZER := 1
     2970  VBOX_WITH_GCC_SANITIZER := 1
    29712971 else if "$(KBUILD_TARGET)" == "darwin"
    2972 VBOX_WITH_GCC_SANITIZER := 1
     2972  VBOX_WITH_GCC_SANITIZER := 1
    29732973 else if "$(KBUILD_TARGET)" == "win"
    2974 VBOX_WITH_VCC_SANITIZER := 1
     2974  VBOX_WITH_VCC_SANITIZER := 1
    29752975 else
    2976 VBOX_WITH_EF_WRAPS := 1
     2976  VBOX_WITH_EF_WRAPS := 1
    29772977 endif
    29782978endif
     
    30703070
    30713071ifndef VBOX_NOINC_DYNAMIC_CONFIG_KMK
    3072 #
    3073 # GCC and YASM dynamic properties.
    3074 # Most of this is resolved on first kmk invocation and cached in PATH_OUT.
    3075 #
    3076 # Note! That a harmless warning is printed if the file doesn't exist.
    3077 # Note! Changes in GCC are not detected automatically (yet).
    3078 #
    3079 if $(pos VBox,$(VBOX_GCC_TOOL)) > 0
    3080  include $(KBUILD_TOOL_PATHS)/$(VBOX_GCC_TOOL).kmk
    3081 else
    3082  include $(KBUILD_PATH)/tools/$(VBOX_GCC_TOOL).kmk
    3083 endif
    3084 ifneq ($(VBOX_GCC_TOOL),$(VBOX_GCC32_TOOL))
    3085  if $(pos VBox,$(VBOX_GCC32_TOOL)) > 0
    3086   include $(KBUILD_TOOL_PATHS)/$(VBOX_GCC32_TOOL).kmk
     3072 #
     3073 # GCC and YASM dynamic properties.
     3074 # Most of this is resolved on first kmk invocation and cached in PATH_OUT.
     3075 #
     3076 # Note! That a harmless warning is printed if the file doesn't exist.
     3077 # Note! Changes in GCC are not detected automatically (yet).
     3078 #
     3079 if $(pos VBox,$(VBOX_GCC_TOOL)) > 0
     3080  include $(KBUILD_TOOL_PATHS)/$(VBOX_GCC_TOOL).kmk
    30873081 else
    3088   include $(KBUILD_PATH)/tools/$(VBOX_GCC32_TOOL).kmk
    3089  endif
    3090 endif
    3091 
    3092 # These tests never worked on Windows because of /dev/null, so, there
    3093 # can be no harm in just dropping them until cygwin is mp safe.
    3094 ifeq ($(KBUILD_HOST),win)
    3095  VBOX_GCC_CHECK_EX_CC  = $(3)
    3096  VBOX_GCC_CHECK_EX_CXX = $(3)
    3097  VBOX_GCC_CHECK_EX_LD  = $(3)
    3098  VBOX_GCC_CHECK_CC = $(2)
    3099  VBOX_GCC_CHECK_CXX = $(2)
    3100  VBOX_GCC_CHECK_LD = $(2)
    3101  VBOX_GCC32_CHECK_CXX = $(2)
    3102 else
    3103  # Note! The chcking for 'error: unknown warning option' is for clang on darwin not giving us a
    3104  #       non-zero exit code when using an invalid option here, but it does later on.
    3105  ifndef CLOSEPAR
    3106   CLOSEPAR := )
    3107  endif
    3108  VBOX_GCC_CHECK_EX_CC_CXX = $(shell \
    3109     if $(1) $(subst -Wno-,-W,$(2)) -Werror -c -o /dev/null $(4) > /dev/null 2>&1; then \
    3110         case "`LC_ALL=C $(1) $(subst -Wno-,-W,$(2)) -Werror -c -o /dev/null $(4) 2>&1`" in \
    3111             "error: unknown warning option"*$(CLOSEPAR) echo "$(3)";; \
    3112             *$(CLOSEPAR) echo "$(2)";; \
    3113          esac; \
    3114     else echo "$(3)"; fi; )
    3115  VBOX_GCC_CHECK_EX_CC  = $(call VBOX_GCC_CHECK_EX_CC_CXX,$(1),$(2),$(3),-xc   $(PATH_OUT)/DynamicConfig.c)
    3116  VBOX_GCC_CHECK_EX_CXX = $(call VBOX_GCC_CHECK_EX_CC_CXX,$(1),$(2),$(3),-xc++ $(PATH_OUT)/DynamicConfig.cpp)
    3117  VBOX_GCC_CHECK_EX_LD = $(shell \
    3118     if $(1) -Wl,$(2) $(if $(eq $(KBUILD_HOST),darwin),-Wl$(COMMA)-u$(COMMA)start -Wl$(COMMA)-undefined$(COMMA)dynamic_lookup,) \
    3119             -nostdlib -o /dev/null -xc /dev/null > /dev/null 2>&1; \
    3120     then echo "-Wl,$(2)"; else echo "$(3)"; fi; )
    3121 
    3122  VBOX_GCC_CHECK_CC    = $(call VBOX_GCC_CHECK_EX_CC,  $(TOOL_$(VBOX_GCC_TOOL)_ENV_SETUP) $(TOOL_$(VBOX_GCC_TOOL)_CC),$1,$2)
    3123  VBOX_GCC_CHECK_CXX   = $(call VBOX_GCC_CHECK_EX_CXX, $(TOOL_$(VBOX_GCC_TOOL)_ENV_SETUP) $(TOOL_$(VBOX_GCC_TOOL)_CXX),$1,$2)
    3124  VBOX_GCC_CHECK_LD    = $(call VBOX_GCC_CHECK_EX_LD,  $(TOOL_$(VBOX_GCC_TOOL)_ENV_SETUP) $(TOOL_$(VBOX_GCC_TOOL)_LD),$1,$2)
    3125  VBOX_GCC32_CHECK_CXX = $(call VBOX_GCC_CHECK_EX_CXX, $(TOOL_$(VBOX_GCC32_TOOL)_ENV_SETUP) $(TOOL_$(VBOX_GCC32_TOOL)_CXX),$1,$2)
    3126 endif
    3127 
    3128 ifeq ($(KBUILD_HOST),win)
    3129  # We're not using gcc on windows anymore, just cook the result.
    3130  VBOX_GCC_VERSION := $(expr 10000 * 3 + 100 * 3 + 3)
    3131 else
    3132  # This is kind of bad, the returned string needs to be re-evaluated before use.
    3133  # The reason for this hack is that the windows kmk_ash cannot deal with $((1+1)).
    3134  # Some versions of gcc (e.g. openSUSE11) return only major.minor on `gcc -dumpversion`.
    3135  # gcc-5 of openSUSE42.1 only returns the major version on `gcc -dumpversion`!
    3136  VBOX_GCC_VERSION = $(shell ($(1) -dumpfullversion 2>/dev/null || $(1) -dumpversion) | \
    3137     $(SED_EXT) 's|\([0-9][0-9]*\)\.\{0,1\}\([0-9]\{0,\}\)\.\{0,1\}\([0-9]\{0,\}\).*|$$(expr 10000 * \1 + 100 * $$(firstword \2 0) + $$(firstword \3 0))|' )
    3138  ifeq ($(KBUILD_TARGET), darwin)
    3139   VBOX_CLANG_VERSION = $(shell $(1) --version | \
    3140     $(SED_EXT) -n 's|.*version \([0-9][0-9]*\)\.\{0,1\}\([0-9]\{0,\}\)\.\{0,1\}\([0-9]\{0,\}\).*|$$(expr 10000 * \1 + 100 * $$(firstword \2 0) + $$(firstword \3 0))|p' )
    3141  endif
    3142 endif
    3143 
    3144 # YASM macros
    3145 ifndef DONT_USE_YASM
    3146  include $(KBUILD_PATH)/tools/YASM.kmk
    3147  if1of ($(KBUILD_HOST), win os2)
    3148   VBOX_YASM_CHECK = $(if-expr "$(shell $(TOOL_YASM_AS) -e -o nul $1 - < /dev/null 2>&1)" == "",$(1),)
     3082  include $(KBUILD_PATH)/tools/$(VBOX_GCC_TOOL).kmk
     3083 endif
     3084 ifneq ($(VBOX_GCC_TOOL),$(VBOX_GCC32_TOOL))
     3085  if $(pos VBox,$(VBOX_GCC32_TOOL)) > 0
     3086   include $(KBUILD_TOOL_PATHS)/$(VBOX_GCC32_TOOL).kmk
     3087  else
     3088   include $(KBUILD_PATH)/tools/$(VBOX_GCC32_TOOL).kmk
     3089  endif
     3090 endif
     3091
     3092 # These tests never worked on Windows because of /dev/null, so, there
     3093 # can be no harm in just dropping them until cygwin is mp safe.
     3094 ifeq ($(KBUILD_HOST),win)
     3095  VBOX_GCC_CHECK_EX_CC = $(3)
     3096  VBOX_GCC_CHECK_EX_CXX = $(3)
     3097  VBOX_GCC_CHECK_EX_LD = $(3)
     3098  VBOX_GCC_CHECK_CC = $(2)
     3099  VBOX_GCC_CHECK_CXX = $(2)
     3100  VBOX_GCC_CHECK_LD = $(2)
     3101  VBOX_GCC32_CHECK_CXX = $(2)
    31493102 else
    3150   VBOX_YASM_CHECK = $(if-expr "$(shell $(TOOL_YASM_AS) -e -o /dev/null $1 - < /dev/null 2>&1)" == "",$(1),)
    3151  endif
    3152 else
    3153  VBOX_YASM_CHECK =
    3154 endif
    3155 
    3156 # NASM macros (input and output must differ with recent versions (strcmp)).
    3157 ifndef DONT_USE_NASM
    3158  include $(KBUILD_PATH)/tools/NASM.kmk
    3159  if1of ($(KBUILD_HOST), win os2)
    3160   VBOX_NASM_CHECK = $(if-expr "$(shell $(TOOL_NASM_AS) -e -o nul $1 NUL 2>&1)" == "",$(1),$(2))
     3103  # Note! The chcking for 'error: unknown warning option' is for clang on darwin not giving us a
     3104  #       non-zero exit code when using an invalid option here, but it does later on.
     3105  ifndef CLOSEPAR
     3106   CLOSEPAR := )
     3107  endif
     3108  VBOX_GCC_CHECK_EX_CC_CXX = $(shell \
     3109        if $(1) $(subst -Wno-,-W,$(2)) -Werror -c -o /dev/null $(4) > /dev/null 2>&1; then \
     3110        case "`LC_ALL=C $(1) $(subst -Wno-,-W,$(2)) -Werror -c -o /dev/null $(4) 2>&1`" in \
     3111        "error: unknown warning option"*$(CLOSEPAR) echo "$(3)";; \
     3112        *$(CLOSEPAR) echo "$(2)";; \
     3113        esac; \
     3114        else echo "$(3)"; fi; )
     3115  VBOX_GCC_CHECK_EX_CC = $(call VBOX_GCC_CHECK_EX_CC_CXX,$(1),$(2),$(3),-xc   $(PATH_OUT)/DynamicConfig.c)
     3116  VBOX_GCC_CHECK_EX_CXX = $(call VBOX_GCC_CHECK_EX_CC_CXX,$(1),$(2),$(3),-xc++ $(PATH_OUT)/DynamicConfig.cpp)
     3117  VBOX_GCC_CHECK_EX_LD = $(shell \
     3118        if $(1) -Wl,$(2) $(if $(eq $(KBUILD_HOST),darwin),-Wl$(COMMA)-u$(COMMA)start -Wl$(COMMA)-undefined$(COMMA)dynamic_lookup,) \
     3119        -nostdlib -o /dev/null -xc /dev/null > /dev/null 2>&1; \
     3120        then echo "-Wl,$(2)"; else echo "$(3)"; fi; )
     3121
     3122  VBOX_GCC_CHECK_CC   = $(call VBOX_GCC_CHECK_EX_CC,  $(TOOL_$(VBOX_GCC_TOOL)_ENV_SETUP) $(TOOL_$(VBOX_GCC_TOOL)_CC),$1,$2)
     3123  VBOX_GCC_CHECK_CXX  = $(call VBOX_GCC_CHECK_EX_CXX, $(TOOL_$(VBOX_GCC_TOOL)_ENV_SETUP) $(TOOL_$(VBOX_GCC_TOOL)_CXX),$1,$2)
     3124  VBOX_GCC_CHECK_LD   = $(call VBOX_GCC_CHECK_EX_LD,  $(TOOL_$(VBOX_GCC_TOOL)_ENV_SETUP) $(TOOL_$(VBOX_GCC_TOOL)_LD),$1,$2)
     3125  VBOX_GCC32_CHECK_CXX = $(call VBOX_GCC_CHECK_EX_CXX, $(TOOL_$(VBOX_GCC32_TOOL)_ENV_SETUP) $(TOOL_$(VBOX_GCC32_TOOL)_CXX),$1,$2)
     3126 endif
     3127
     3128 ifeq ($(KBUILD_HOST),win)
     3129  # We're not using gcc on windows anymore, just cook the result.
     3130  VBOX_GCC_VERSION := $(expr 10000 * 3 + 100 * 3 + 3)
    31613131 else
    3162   VBOX_NASM_CHECK = $(if-expr "$(shell $(TOOL_NASM_AS) -e -o /dev/./null $1 /dev/null 2>&1)" == "",$(1),$(2))
    3163  endif
    3164 else
    3165  VBOX_NASM_CHECK =
    3166 endif
    3167 
    3168 # Figures the pylint version.
    3169 VBOX_PYLINT_FIGURE_VERSION = $(shell $(1) --version 2> /dev/null \
    3170         | $(SED_EXT) -n -e 's/pylint-[^[:blank:]]*/pylint/' \
    3171         -e 's|^ *pylint *\([0-9][0-9]*\).\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$(DOLLAR)|$$(expr \1 * 10000 + \2 * 100 + \3)|p' )
    3172 
    3173 # Java stuff.
    3174 ifeq ($(KBUILD_TARGET), darwin)
    3175  VBOX_JAVA_BIN_PATH = $(firstword $(wildcard \
    3176         /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands \
    3177         /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Commands \
    3178         $(if-expr $(VBOX_XCODE_VERSION_MAJOR) >= 4,/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands,) \
    3179         $(if-expr $(VBOX_XCODE_VERSION_MAJOR) >= 10,/Library/Java/JavaVirtualMachines/jdk1.8.*.jdk/Contents/Home/bin,) \
    3180         ) /usr/bin)
    3181  VBOX_JAVA      = $(VBOX_JAVA_BIN_PATH)/java
    3182  VBOX_JAVAC     = $(VBOX_JAVA_BIN_PATH)/javac
    3183  VBOX_JAVAH     = $(VBOX_JAVA_BIN_PATH)/javah
    3184  VBOX_JAR       = $(VBOX_JAVA_BIN_PATH)/jar
    3185  VBOX_JAVADOC   = $(VBOX_JAVA_BIN_PATH)/javadoc
    3186  VBOX_WSIMPORT  = $(VBOX_JAVA_BIN_PATH)/wsimport
    3187  if $(VBOX_XCODE_VERSION_MAJOR) >= 4 # Lion (4.1-preview 5) has a broken CurrentJDK link.  Blindly applying it to 4.0.
    3188   VBOX_JAVA_INC = $(firstword $(wildcard \
    3189         $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers \
    3190         /Library/Java/JavaVirtualMachines/jdk1.8.*.jdk/Contents/Home/include \
    3191         ) )
     3132  # This is kind of bad, the returned string needs to be re-evaluated before use.
     3133  # The reason for this hack is that the windows kmk_ash cannot deal with $((1+1)).
     3134  # Some versions of gcc (e.g. openSUSE11) return only major.minor on `gcc -dumpversion`.
     3135  # gcc-5 of openSUSE42.1 only returns the major version on `gcc -dumpversion`!
     3136  VBOX_GCC_VERSION = $(shell ($(1) -dumpfullversion 2>/dev/null || $(1) -dumpversion) | \
     3137        $(SED_EXT) 's|\([0-9][0-9]*\)\.\{0,1\}\([0-9]\{0,\}\)\.\{0,1\}\([0-9]\{0,\}\).*|$$(expr 10000 * \1 + 100 * $$(firstword \2 0) + $$(firstword \3 0))|' )
     3138  ifeq ($(KBUILD_TARGET),darwin)
     3139   VBOX_CLANG_VERSION = $(shell $(1) --version | \
     3140        $(SED_EXT) -n 's|.*version \([0-9][0-9]*\)\.\{0,1\}\([0-9]\{0,\}\)\.\{0,1\}\([0-9]\{0,\}\).*|$$(expr 10000 * \1 + 100 * $$(firstword \2 0) + $$(firstword \3 0))|p' )
     3141  endif
     3142 endif
     3143
     3144 # YASM macros
     3145 ifndef DONT_USE_YASM
     3146  include $(KBUILD_PATH)/tools/YASM.kmk
     3147  if1of ($(KBUILD_HOST), win os2)
     3148   VBOX_YASM_CHECK = $(if-expr "$(shell $(TOOL_YASM_AS) -e -o nul $1 - < /dev/null 2>&1)" == "",$(1),)
     3149  else
     3150   VBOX_YASM_CHECK = $(if-expr "$(shell $(TOOL_YASM_AS) -e -o /dev/null $1 - < /dev/null 2>&1)" == "",$(1),)
     3151  endif
    31923152 else
    3193   VBOX_JAVA_INC = $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Headers
    3194  endif
    3195 
    3196 else # !darwin
    3197 
    3198  ifeq ($(KBUILD_TARGET),linux)
    3199   ifeq ($(origin VBOX_JAVA_HOME),undefined)
    3200    # Add correct detection for you distro after the /usr/../java-6-sun line.
    3201    VBOX_JAVA_HOME := $(firstword $(wildcard \
    3202         $(KBUILD_DEVTOOLS)/linux.x86/jdk1.6.0_27 \
    3203         /usr/lib/jvm/java-6-sun  \
    3204         /usr/lib/jvm/java-6-openjdk \
    3205         /usr/lib/jvm/java-6-openjdk-i386 \
    3206         /usr/lib/jvm/java-6-openjdk-amd64 \
    3207         /usr/lib/jvm/java-7-openjdk-i386 \
    3208         /usr/lib/jvm/java-7-openjdk-amd64 \
    3209         /usr/lib/jvm/default-java \
    3210         /usr/lib/jvm/java \
    3211         \
    3212         /usr/lib/jvm/sun-jdk-1.6 \
    3213         ) /usr/lib/jvm/java-6-sun)
    3214   endif
    3215  endif
    3216 
    3217  ifeq ($(KBUILD_TARGET),solaris)
    3218   # VBOX_JAVA_HOME ?= /usr/jdk/jdk1.6.0
    3219   VBOX_JAVA_HOME ?= $(firstword $(abspath $(wildcard \
    3220         /usr/jdk/latest/include/.. \
    3221         /usr/jdk/instances/jdk1.8*/include/.. \
    3222         /usr/jdk/instances/jdk1.7*/include/.. \
    3223         /usr/jdk/instances/jdk1.6*/include/.. \
    3224         )) /usr/java)
    3225  endif
    3226 
    3227  ifeq ($(KBUILD_TARGET),win)
    3228   VBOX_JAVA_HOME ?= c:/jdk
    3229  endif
    3230 
    3231  VBOX_JAVA_BIN_PATH ?= $(VBOX_JAVA_HOME)/bin
    3232  VBOX_JAVA          ?= "$(VBOX_JAVA_BIN_PATH)/java$(HOSTSUFF_EXE)"
    3233  VBOX_JAVAC          = "$(VBOX_JAVA_BIN_PATH)/javac$(HOSTSUFF_EXE)"
    3234  VBOX_JAVAH          = "$(VBOX_JAVA_BIN_PATH)/javah$(HOSTSUFF_EXE)"
    3235  VBOX_JAR            = "$(VBOX_JAVA_BIN_PATH)/jar$(HOSTSUFF_EXE)"
    3236  VBOX_JAVADOC        = "$(VBOX_JAVA_BIN_PATH)/javadoc$(HOSTSUFF_EXE)"
    3237  # With Java 11 wsimport was removed, usually part of a separate install now.
    3238  VBOX_WSIMPORT       = $(firstword $(wildcard $(VBOX_JAVA_BIN_PATH)/wsimport$(HOSTSUFF_EXE)) wsimport$(HOSTSUFF_EXE))
    3239  # correct for targets we care about
    3240  VBOX_MD_OS          = $(KBUILD_TARGET)
    3241  VBOX_JAVA_INC       = \
    3242         $(VBOX_JAVA_HOME)/include \
    3243         $(VBOX_JAVA_HOME)/include/$(VBOX_MD_OS)
    3244 endif # !darwin
    3245 # The first transform the almost usless openjdk versions like "javac 9-Ubuntu" into something the 2nd expression groks.
    3246 VBOX_JAVA_FIGURE_VERSION = $(shell $(1) -version 2>&1 \
    3247         | $(SED_EXT) -n \
    3248         -e 's/ \([0-9][0-9]*\)\(-[[:alpha:]][[:alpha:]]\)/ \1.0.0\2/' \
    3249         -e 's|^[^ ]* *\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$(DOLLAR)|$$(expr \1 * 10000 + \2 * 100 + \3)|p' )
    3250 
    3251 # Test C and C++ files.
    3252 $(PATH_OUT)/DynamicConfig.c $(PATH_OUT)/DynamicConfig.cpp:
     3153  VBOX_YASM_CHECK =
     3154 endif
     3155
     3156 # NASM macros (input and output must differ with recent versions (strcmp)).
     3157 ifndef DONT_USE_NASM
     3158  include $(KBUILD_PATH)/tools/NASM.kmk
     3159  if1of ($(KBUILD_HOST), win os2)
     3160   VBOX_NASM_CHECK = $(if-expr "$(shell $(TOOL_NASM_AS) -e -o nul $1 NUL 2>&1)" == "",$(1),$(2))
     3161  else
     3162   VBOX_NASM_CHECK = $(if-expr "$(shell $(TOOL_NASM_AS) -e -o /dev/./null $1 /dev/null 2>&1)" == "",$(1),$(2))
     3163  endif
     3164 else
     3165  VBOX_NASM_CHECK =
     3166 endif
     3167
     3168 # Figures the pylint version.
     3169 VBOX_PYLINT_FIGURE_VERSION = $(shell $(1) --version 2> /dev/null \
     3170        | $(SED_EXT) -n -e 's/pylint-[^[:blank:]]*/pylint/' \
     3171        -e 's|^ *pylint *\([0-9][0-9]*\).\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$(DOLLAR)|$$(expr \1 * 10000 + \2 * 100 + \3)|p' )
     3172
     3173 # Java stuff.
     3174 ifeq ($(KBUILD_TARGET),darwin)
     3175  VBOX_JAVA_BIN_PATH = $(firstword $(wildcard \
     3176        /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands \
     3177        /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Commands \
     3178        $(if-expr $(VBOX_XCODE_VERSION_MAJOR) >= 4,/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands,) \
     3179        $(if-expr $(VBOX_XCODE_VERSION_MAJOR) >= 10,/Library/Java/JavaVirtualMachines/jdk1.8.*.jdk/Contents/Home/bin,) \
     3180        ) /usr/bin)
     3181  VBOX_JAVA     = $(VBOX_JAVA_BIN_PATH)/java
     3182  VBOX_JAVAC    = $(VBOX_JAVA_BIN_PATH)/javac
     3183  VBOX_JAVAH    = $(VBOX_JAVA_BIN_PATH)/javah
     3184  VBOX_JAR      = $(VBOX_JAVA_BIN_PATH)/jar
     3185  VBOX_JAVADOC  = $(VBOX_JAVA_BIN_PATH)/javadoc
     3186  VBOX_WSIMPORT = $(VBOX_JAVA_BIN_PATH)/wsimport
     3187  if $(VBOX_XCODE_VERSION_MAJOR) >= 4 # Lion (4.1-preview 5) has a broken CurrentJDK link.  Blindly applying it to 4.0.
     3188   VBOX_JAVA_INC = $(firstword $(wildcard \
     3189        $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers \
     3190        /Library/Java/JavaVirtualMachines/jdk1.8.*.jdk/Contents/Home/include \
     3191        ) )
     3192  else
     3193   VBOX_JAVA_INC = $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Headers
     3194  endif
     3195
     3196 else # !darwin
     3197
     3198  ifeq ($(KBUILD_TARGET),linux)
     3199   ifeq ($(origin VBOX_JAVA_HOME),undefined)
     3200    # Add correct detection for you distro after the /usr/../java-6-sun line.
     3201    VBOX_JAVA_HOME := $(firstword $(wildcard \
     3202        $(KBUILD_DEVTOOLS)/linux.x86/jdk1.6.0_27 \
     3203        /usr/lib/jvm/java-6-sun \
     3204        /usr/lib/jvm/java-6-openjdk \
     3205        /usr/lib/jvm/java-6-openjdk-i386 \
     3206        /usr/lib/jvm/java-6-openjdk-amd64 \
     3207        /usr/lib/jvm/java-7-openjdk-i386 \
     3208        /usr/lib/jvm/java-7-openjdk-amd64 \
     3209        /usr/lib/jvm/default-java \
     3210        /usr/lib/jvm/java \
     3211        \
     3212        /usr/lib/jvm/sun-jdk-1.6 \
     3213        ) /usr/lib/jvm/java-6-sun)
     3214   endif
     3215  endif
     3216
     3217  ifeq ($(KBUILD_TARGET),solaris)
     3218   # VBOX_JAVA_HOME ?= /usr/jdk/jdk1.6.0
     3219   VBOX_JAVA_HOME ?= $(firstword $(abspath $(wildcard \
     3220        /usr/jdk/latest/include/.. \
     3221        /usr/jdk/instances/jdk1.8*/include/.. \
     3222        /usr/jdk/instances/jdk1.7*/include/.. \
     3223        /usr/jdk/instances/jdk1.6*/include/.. \
     3224        )) /usr/java)
     3225  endif
     3226
     3227  ifeq ($(KBUILD_TARGET),win)
     3228   VBOX_JAVA_HOME ?= c:/jdk
     3229  endif
     3230
     3231  VBOX_JAVA_BIN_PATH ?= $(VBOX_JAVA_HOME)/bin
     3232  VBOX_JAVA         ?= "$(VBOX_JAVA_BIN_PATH)/java$(HOSTSUFF_EXE)"
     3233  VBOX_JAVAC         = "$(VBOX_JAVA_BIN_PATH)/javac$(HOSTSUFF_EXE)"
     3234  VBOX_JAVAH         = "$(VBOX_JAVA_BIN_PATH)/javah$(HOSTSUFF_EXE)"
     3235  VBOX_JAR           = "$(VBOX_JAVA_BIN_PATH)/jar$(HOSTSUFF_EXE)"
     3236  VBOX_JAVADOC       = "$(VBOX_JAVA_BIN_PATH)/javadoc$(HOSTSUFF_EXE)"
     3237  # With Java 11 wsimport was removed, usually part of a separate install now.
     3238  VBOX_WSIMPORT      = $(firstword $(wildcard $(VBOX_JAVA_BIN_PATH)/wsimport$(HOSTSUFF_EXE)) wsimport$(HOSTSUFF_EXE))
     3239  # correct for targets we care about
     3240  VBOX_MD_OS         = $(KBUILD_TARGET)
     3241  VBOX_JAVA_INC      = \
     3242        $(VBOX_JAVA_HOME)/include \
     3243        $(VBOX_JAVA_HOME)/include/$(VBOX_MD_OS)
     3244 endif # !darwin
     3245 # The first transform the almost usless openjdk versions like "javac 9-Ubuntu" into something the 2nd expression groks.
     3246 VBOX_JAVA_FIGURE_VERSION = $(shell $(1) -version 2>&1 \
     3247        | $(SED_EXT) -n \
     3248        -e 's/ \([0-9][0-9]*\)\(-[[:alpha:]][[:alpha:]]\)/ \1.0.0\2/' \
     3249        -e 's|^[^ ]* *\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$(DOLLAR)|$$(expr \1 * 10000 + \2 * 100 + \3)|p' )
     3250
     3251 # Test C and C++ files.
     3252 $(PATH_OUT)/DynamicConfig.c $(PATH_OUT)/DynamicConfig.cpp:
    32533253        $(QUIET)$(MKDIR) -p $(@D)
    32543254        $(QUIET)$(APPEND) -tn "$@" "int foobar(void)" "{" "    return 42;" "}" ""
    32553255
    3256 # No $(QUIET) here as it's interesting to see what goes into the file.
    3257 $(PATH_OUT)/DynamicConfig.kmk: \
    3258                 $(PATH_ROOT)/Config.kmk \
    3259                 $(LOCALCFG) \
    3260                 $(AUTOCFG) \
    3261                 $(VBOX_GCC_PATH_CC) \
    3262                 $(VBOX_GCC_PATH_CXX) \
    3263                 $(VBOX_GCC_LIBGCC) \
    3264                 $(VBOX_GCC32_PATH_CC) \
    3265                 $(VBOX_GCC32_PATH_CXX) \
    3266                 $(VBOX_GCC32_LIBGCC) \
    3267                 $(if-expr "$(KBUILD_HOST).$(KBUILD_HOST_ARCH)" == "solaris.amd64" && $(KBUILD_HOST_VERSION_MINOR) >= 11 \
    3268                         , /platform/i86pc/kernel/$(KBUILD_HOST_ARCH)/unix,) \
    3269                 | $(PATH_OUT)/DynamicConfig.c $(PATH_OUT)/DynamicConfig.cpp
     3256 # No $(QUIET) here as it's interesting to see what goes into the file.
     3257 $(PATH_OUT)/DynamicConfig.kmk: \
     3258                $(PATH_ROOT)/Config.kmk \
     3259                $(LOCALCFG) \
     3260                $(AUTOCFG) \
     3261                $(VBOX_GCC_PATH_CC) \
     3262                $(VBOX_GCC_PATH_CXX) \
     3263                $(VBOX_GCC_LIBGCC) \
     3264                $(VBOX_GCC32_PATH_CC) \
     3265                $(VBOX_GCC32_PATH_CXX) \
     3266                $(VBOX_GCC32_LIBGCC) \
     3267                $(if-expr "$(KBUILD_HOST).$(KBUILD_HOST_ARCH)" == "solaris.amd64" && $(KBUILD_HOST_VERSION_MINOR) >= 11 \
     3268                , /platform/i86pc/kernel/$(KBUILD_HOST_ARCH)/unix,) \
     3269                | $(PATH_OUT)/DynamicConfig.c $(PATH_OUT)/DynamicConfig.cpp
    32703270        $(call MSG_GENERATE,,$@,)
    32713271        $(QUIET)$(RM) -f '$@'
    32723272        $(QUIET)$(MKDIR) -p $(@D)
    32733273        $(QUIET)$(APPEND) '$@' '# Host version: $(KBUILD_HOST_VERSION_MAJOR).$(KBUILD_HOST_VERSION_MINOR).$(KBUILD_HOST_VERSION_PATCH); full: $(KBUILD_HOST_VERSION)'
    3274 ifneq ($(KBUILD_TARGET),win)
     3274 ifneq ($(KBUILD_TARGET),win)
    32753275        $(QUIET)$(APPEND) '$@' '# $(KBUILD_HOST_UNAME_SYSNAME) - $(KBUILD_HOST_UNAME_RELEASE) - $(KBUILD_HOST_UNAME_VERSION)'
    3276 endif
    3277 ifeq ($(KBUILD_TARGET),darwin)
     3276 endif
     3277 ifeq ($(KBUILD_TARGET),darwin)
    32783278        $(QUIET)$(APPEND) '$@' '#              VBOX_XCODE_VERSION: $(VBOX_XCODE_VERSION)'
    32793279        $(QUIET)$(APPEND) '$@' '# VBOX_PATH_MACOSX_TOOLCHAIN_ROOT: $(VBOX_PATH_MACOSX_TOOLCHAIN_ROOT)'
     
    32823282        $(QUIET)$(APPEND) '$@' 'VBOX_CLANG_VERSION_CC          ?= $(call VBOX_CLANG_VERSION,$(TOOL_$(VBOX_GCC_TOOL)_CC))'
    32833283        $(QUIET)$(APPEND) '$@' 'VBOX_CLANG_VERSION_CXX         ?= $(call VBOX_CLANG_VERSION,$(TOOL_$(VBOX_GCC_TOOL)_CXX))'
    3284 endif
    3285 # HC compiler switch detection.
     3284 endif
     3285 # HC compiler switch detection.
    32863286        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_VERSION_CC            ?= $(call VBOX_GCC_VERSION,$(TOOL_$(VBOX_GCC_TOOL)_CC))'
    32873287        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_VERSION_CXX           ?= $(call VBOX_GCC_VERSION,$(TOOL_$(VBOX_GCC_TOOL)_CXX))'
     
    32913291        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-pointer-sign      ?= $(call VBOX_GCC_CHECK_CC,-Wno-pointer-sign,)'
    32923292        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-array_bounds      ?= $(call VBOX_GCC_CHECK_CC,-Wno-array-bounds,)'
    3293 # -Wextra produces additional useful warnings but includes -Wno-missing-field-initializers (too noisy)
     3293 # -Wextra produces additional useful warnings but includes -Wno-missing-field-initializers (too noisy)
    32943294        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wextra                ?= $(call VBOX_GCC_CHECK_CC,-Wextra,)'
    32953295        $(QUIET)$(APPEND) '$@' 'ifneq ($$(VBOX_GCC_VERSION_CC),)'
     
    33343334        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_fno-printf-return-value ?= $(call VBOX_GCC_CHECK_CC,-fno-printf-return-value,)'
    33353335        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wa_cma_nocompress_debug_sections ?= $(call VBOX_GCC_CHECK_CC,-Wa$(COMMA)--nocompress-debug-sections,)'
    3336 # Produce code optimized for the most common IA32/AMD64/EM64T processors. Introduced with gcc version 4.2.
     3336 # Produce code optimized for the most common IA32/AMD64/EM64T processors. Introduced with gcc version 4.2.
    33373337        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_mtune-generic         ?= $(call VBOX_GCC_CHECK_CC,-mtune=generic,)'
    33383338        $(QUIET)$(APPEND) '$@' 'VBOX_LD_as_needed              ?= $(call VBOX_GCC_CHECK_LD,--as-needed,)'
    33393339        $(QUIET)$(APPEND) '$@' 'VBOX_LD_hash_style_sysv        ?= $(call VBOX_GCC_CHECK_LD,--hash-style=sysv,)'
    33403340        $(QUIET)$(APPEND) '$@' 'VBOX_LD_gc_sections            ?= $(call VBOX_GCC_CHECK_LD,--gc-sections,)'
    3341 # Set default attribute for ELF and MACH-O symbols to ``hidden'' to reduce the number
    3342 # of relocation entries and PLT indirections in shared libraries. Don't allow for gcc version < 4.
     3341 # Set default attribute for ELF and MACH-O symbols to ``hidden'' to reduce the number
     3342 # of relocation entries and PLT indirections in shared libraries. Don't allow for gcc version < 4.
    33433343        $(QUIET)$(APPEND) '$@' 'ifneq ($$(VBOX_GCC_VERSION_CC),)'
    33443344        $(QUIET)$(APPEND) '$@' ' if $$(VBOX_GCC_VERSION_CC) >= 40000'
     
    33463346        $(QUIET)$(APPEND) '$@' ' endif'
    33473347        $(QUIET)$(APPEND) '$@' 'endif'
    3348 ifn1of ($(KBUILD_TARGET),haiku)
    3349 # Set default attribute for inline functions to ``hidden'' to reduce the number
    3350 # of relocation entries and PLT indirections in shared libraries. Don't allow for gcc version < 4.
     3348 ifn1of ($(KBUILD_TARGET), haiku)
     3349  # Set default attribute for inline functions to ``hidden'' to reduce the number
     3350  # of relocation entries and PLT indirections in shared libraries. Don't allow for gcc version < 4.
    33513351        $(QUIET)$(APPEND) '$@' 'ifneq ($$(VBOX_GCC_VERSION_CXX),)'
    33523352        $(QUIET)$(APPEND) '$@' ' if $$(VBOX_GCC_VERSION_CXX) >= 40000'
     
    33543354        $(QUIET)$(APPEND) '$@' ' endif'
    33553355        $(QUIET)$(APPEND) '$@' 'endif'
    3356 endif
    3357 # Prevent warnings about unused parameters as of gcc-4.8 / clang 6 as this warning is now very verbose
     3356 endif
     3357 # Prevent warnings about unused parameters as of gcc-4.8 / clang 6 as this warning is now very verbose
    33583358        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-unused-parameter ?= $(call VBOX_GCC_CHECK_CC,-Wno-unused-parameter,)'
    3359 # Clang 6.
     3359 # Clang 6.
    33603360        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-language-extension-token ?= $(call VBOX_GCC_CHECK_CC,-Wno-language-extension-token,)'
    33613361        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-extended-offsetof ?= $(call VBOX_GCC_CHECK_CC,-Wno-extended-offsetof,)'
     
    33653365        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-nested-anon-types ?= $(call VBOX_GCC_CHECK_CC,-Wno-nested-anon-types,)'
    33663366        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-gnu-anonymous-struct ?= $(call VBOX_GCC_CHECK_CXX,-Wno-gnu-anonymous-struct,)'
    3367 # Clang 11.
     3367 # Clang 11.
    33683368        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-c++17-compat-mangling ?= $(call VBOX_GCC_CHECK_CXX,-Wno-c++17-compat-mangling,)'
    33693369        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-nullability-extension ?= $(call VBOX_GCC_CHECK_CXX,-Wno-nullability-extension,)'
     
    33733373        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-c11-extensions ?= $(call VBOX_GCC_CHECK_CXX,-Wno-c11-extensions,)'
    33743374        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-tautological-pointer-compare ?= $(call VBOX_GCC_CHECK_CC,-Wno-tautological-pointer-compare,)'
    3375 ifeq ($(KBUILD_TARGET),solaris)
     3375 ifeq ($(KBUILD_TARGET),solaris)
    33763376        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_msave-args            ?= $(call VBOX_GCC_CHECK_CXX,-msave-args,)'
    3377 # Detect the solaris assembler. It is used by the the 4.x gcc compilers,
    3378 # apparently. It will not be able to handle IEMAll via a -pipe, only when
    3379 # passed a file. The solaris assmbler rulez ... not!
     3377  # Detect the solaris assembler. It is used by the the 4.x gcc compilers,
     3378  # apparently. It will not be able to handle IEMAll via a -pipe, only when
     3379  # passed a file. The solaris assmbler rulez ... not!
    33803380        $(QUIET)$(APPEND) '$@' 'VBOX_AS_VERSION                ?= $(shell `gcc -print-prog-name=as` -V -o /dev/null < /dev/null 2>&1 | kmk_sed -e '1!d' -e 's/^as: *//' )'
    33813381        $(QUIET)$(APPEND) '$@' 'if $$(pos Sun Compiler Common,$$(VBOX_AS_VERSION)) > 0'
     
    33853385        $(QUIET)$(APPEND) '$@' ' VBOX_GCC_pipe                 ?= -pipe'
    33863386        $(QUIET)$(APPEND) '$@' 'endif'
    3387 else
     3387 else
    33883388        $(QUIET)$(APPEND) '$@' 'VBOX_GCC_pipe                  ?= -pipe'
    3389 endif
    3390 # Find the compiler includes for IPRT no-crt.
    3391 # Note that `$(dir $(gcc -print-libgcc-file-name))/include does not work for a 64-bit cross build on a 32-bit build host.
    3392 ifeq ($(KBUILD_HOST),win)
    3393 # With the cygwin issues and gcc on windows returning a useless path, just skip this on windows.
     3389 endif
     3390 # Find the compiler includes for IPRT no-crt.
     3391 # Note that `$(dir $(gcc -print-libgcc-file-name))/include does not work for a 64-bit cross build on a 32-bit build host.
     3392 ifeq ($(KBUILD_HOST),win)
     3393  # With the cygwin issues and gcc on windows returning a useless path, just skip this on windows.
    33943394        $(QUIET)$(APPEND) '$@' 'VBOX_PATH_GCC_INCS             ?= '
    3395 else
     3395 else
    33963396        $(QUIET)$(APPEND) '$@' 'VBOX_PATH_GCC_INCS             ?= $(shell LC_ALL=C $(TOOL_$(VBOX_GCC_TOOL)_CC) -print-search-dirs|$(SED_EXT) -ne 's+^install: \(.*[^/][^/]*\)/+\1+p')/include'
    3397 endif
    3398 # 32-bit (GC) compiler switch detection.
     3397 endif
     3398 # 32-bit (GC) compiler switch detection.
    33993399        $(QUIET)$(APPEND) '$@' 'VBOX_GCC32_PATH_CC             ?= $(which $(TOOL_$(VBOX_GCC32_TOOL)_CC))'
    34003400        $(QUIET)$(APPEND) '$@' 'VBOX_GCC32_PATH_CXX            ?= $(which $(TOOL_$(VBOX_GCC32_TOOL)_CXX))'
     
    34033403        $(QUIET)$(APPEND) '$@' 'VBOX_GCC32_LIBGCC              ?= $(shell $(TOOL_$(VBOX_GCC32_TOOL)_CC) -print-libgcc-file-name)'
    34043404        $(QUIET)$(APPEND) '$@' 'VBOX_GCC32_Wno-variadic-macros ?= $(call VBOX_GCC32_CHECK_CXX,-Wno-variadic-macros,)'
    3405 # darwin no_compact_linkedit starting at Xcode 3.2
    3406 ifeq ($(KBUILD_HOST),darwin)
     3405 # darwin no_compact_linkedit starting at Xcode 3.2
     3406 ifeq ($(KBUILD_HOST),darwin)
    34073407        $(QUIET)$(APPEND) '$@' 'VBOX_LD_no_compact_linkedit    ?= $(call VBOX_GCC_CHECK_LD,-no_compact_linkedit,)'
    3408 endif
    3409 ifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
    3410 # YASM
     3408 endif
     3409 ifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
     3410  # YASM
    34113411        $(QUIET)$(APPEND) '$@' '# debug: TOOL_YASM_AS="$(TOOL_YASM_AS)"'
    34123412        $(QUIET)$(APPEND) '$@' 'VBOX_YASM_Wno-segreg-in-64bit  ?= $(call VBOX_YASM_CHECK,-Wno-segreg-in-64bit,)'
    3413 # NASM (--allow-64-bit: 2.12rc2)
     3413  # NASM (--allow-64-bit: 2.12rc2)
    34143414        $(QUIET)$(APPEND) '$@' 'VBOX_NASM_allow_64_bit         ?= $(call VBOX_NASM_CHECK,--allow-64-bit,)'
    3415 endif
    3416 if1of ($(KBUILD_TARGET), linux)
    3417  ifeq ($(KBUILD_TARGET),$(KBUILD_HOST))
     3415 endif
     3416 if1of ($(KBUILD_TARGET), linux)
     3417  ifeq ($(KBUILD_TARGET),$(KBUILD_HOST))
    34183418        $(QUIET)$(RM) -f -- "[email protected]" "[email protected]" '[email protected]'
    34193419        $(APPEND) -t '[email protected]' 'int foo() { return 42; }'
     
    34233423        ldd "[email protected]" | $(SED_EXT) --append '$@' -re '/lib(a|ub)san\.so/!d' -e 's/.* => //' -e 's/ \(0x[0-9a-fA-F]*\) *$(DOLLAR)/ \\/'
    34243424        $(QUIET)$(APPEND) '$@' ''
    3425 #       $(QUIET)$(APPEND)  '$@' 'VBOX_GCC32_SANITIZER_SO_FILES := \'
    3426 #       $(TOOL_$(VBOX_GCC32_TOOL)_ENV_SETUP) $(TOOL_$(VBOX_GCC32_TOOL)_CC) -fPIC -shared \
    3427 #               $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_SANITIZER_LDFLAGS) -o "[email protected]" "[email protected]"
    3428 #       ldd "[email protected]" | $(SED_EXT) --append '$@' -re '/lib(a|ub)san\.so/!d' -e 's/.* => //' -e 's/ \(0x[0-9a-fA-F]*\) *$(DOLLAR)/ \\/'
    3429 #       $(QUIET)$(APPEND) '$@' ''
     3425   #    $(QUIET)$(APPEND)  '$@' 'VBOX_GCC32_SANITIZER_SO_FILES := \'
     3426   #    $(TOOL_$(VBOX_GCC32_TOOL)_ENV_SETUP) $(TOOL_$(VBOX_GCC32_TOOL)_CC) -fPIC -shared \
     3427   #            $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_SANITIZER_LDFLAGS) -o "[email protected]" "[email protected]"
     3428   #    ldd "[email protected]" | $(SED_EXT) --append '$@' -re '/lib(a|ub)san\.so/!d' -e 's/.* => //' -e 's/ \(0x[0-9a-fA-F]*\) *$(DOLLAR)/ \\/'
     3429   #    $(QUIET)$(APPEND) '$@' ''
    34303430        $(QUIET)$(RM) -f -- "[email protected]" "[email protected]" '[email protected]'
    3431  endif
    3432 endif
    3433 ifdef VBOX_PATH_PREFIX_MINGW32
     3431  endif
     3432 endif
     3433 ifdef VBOX_PATH_PREFIX_MINGW32
    34343434        $(QUIET)$(APPEND) '$@' 'VBOX_MINGW32_VERSION_CC                  ?= $(call VBOX_GCC_VERSION,$(VBOX_PATH_PREFIX_MINGW32)gcc -m32)'
    34353435        $(QUIET)$(APPEND) '$@' 'VBOX_MINGW32_VERSION_CXX                 ?= $(call VBOX_GCC_VERSION,$(VBOX_PATH_PREFIX_MINGW32)g++ -m32)'
     
    34383438        $(QUIET)$(APPEND) '$@' 'VBOX_MINGW32_Wno-maybe-uninitialized     ?= $(call VBOX_GCC_CHECK_EX_CXX,$(VBOX_PATH_PREFIX_MINGW32)g++ -m32,-Wno-maybe-uninitialized,)'
    34393439        $(QUIET)$(APPEND) '$@' 'VBOX_MINGW32_USER_LABEL_PREFIX           ?= $(shell echo "__USER_LABEL_PREFIX__" | $(VBOX_PATH_PREFIX_MINGW32)g++ -m32 -E -xc++ - | $(SED) -e "/^$(HASH)/d")'
    3440 endif
    3441 ifdef VBOX_PATH_PREFIX_MINGW64
     3440 endif
     3441 ifdef VBOX_PATH_PREFIX_MINGW64
    34423442        $(QUIET)$(APPEND) '$@' 'VBOX_MINGW64_VERSION_CC                  ?= $(call VBOX_GCC_VERSION,$(VBOX_PATH_PREFIX_MINGW64)gcc -m64)'
    34433443        $(QUIET)$(APPEND) '$@' 'VBOX_MINGW64_VERSION_CXX                 ?= $(call VBOX_GCC_VERSION,$(VBOX_PATH_PREFIX_MINGW64)g++ -m64)'
     
    34463446        $(QUIET)$(APPEND) '$@' 'VBOX_MINGW64_Wno-maybe-uninitialized     ?= $(call VBOX_GCC_CHECK_EX_CXX,$(VBOX_PATH_PREFIX_MINGW64)g++ -m64,-Wno-maybe-uninitialized,)'
    34473447        $(QUIET)$(APPEND) '$@' 'VBOX_MINGW64_USER_LABEL_PREFIX           ?= $(shell echo "__USER_LABEL_PREFIX__" | $(VBOX_PATH_PREFIX_MINGW64)g++ -m64 -E -xc++ - | $(SED) -e "/^$(HASH)/d")'
    3448 endif
    3449 if defined(TOOL_FLEX) || defined(TOOL_BISON)
     3448 endif
     3449 if defined(TOOL_FLEX) || defined(TOOL_BISON)
    34503450        echo "Do NOT include the flex or bison tools before Config.kmk gets loaded"
    34513451        exit 1 #
    3452 endif
     3452 endif
    34533453        $(QUIET)$(APPEND) '$@' 'VBOX_HAVE_FLEX    ?= $(firstfile $(TOOL_FLEX_LEX) $(which flex))'
    34543454        $(QUIET)$(APPEND) '$@' 'VBOX_HAVE_BISON   ?= $(firstfile $(TOOL_BISON_YACC) $(which bison))'
    34553455        $(QUIET)$(APPEND) '$@' 'VBOX_HAVE_XMLLINT ?= $(which xmllint)'
    3456 if "$(KBUILD_HOST)" == "solaris" && $(KBUILD_HOST_VERSION_MAJOR) == 5 && $(KBUILD_HOST_VERSION_MINOR) == 11
    3457 # BRANCH_VERSION format on S11 - S11.3:
    3458 #   <trunk_id>.<update>.<sru>.<reserved>.<buildid>.<nightly_id>
    3459 #   e.g.:  0.175.3.32.0.4.0:20180427T232405Z - N.B. trunk_id = 0.175
    3460 # BRANCH_VERSION format on S11.4:
    3461 #   <minor>.<update>.<sru>.<reserved>.<reserved>.<buildid>.<nightly_id>
    3462 #   e.g.: 11.4.0.0.1.10.0:20180702T173343Z
    3463 # We're interested in <update> and <buildid>.
     3456 if "$(KBUILD_HOST)" == "solaris" && $(KBUILD_HOST_VERSION_MAJOR) == 5 && $(KBUILD_HOST_VERSION_MINOR) == 11
     3457  # BRANCH_VERSION format on S11 - S11.3:
     3458  #   <trunk_id>.<update>.<sru>.<reserved>.<buildid>.<nightly_id>
     3459  #   e.g.:  0.175.3.32.0.4.0:20180427T232405Z - N.B. trunk_id = 0.175
     3460  # BRANCH_VERSION format on S11.4:
     3461  #   <minor>.<update>.<sru>.<reserved>.<reserved>.<buildid>.<nightly_id>
     3462  #   e.g.: 11.4.0.0.1.10.0:20180702T173343Z
     3463  # We're interested in <update> and <buildid>.
    34643464        $(QUIET)$(APPEND) '$@' "VBOX_SOLARIS_11_BRANCH_VERSION := $(shell pkg contents -H -t set -o pkg.fmri system/kernel | $(SED_EXT) -e '1!d' -e 's/^.*\-//;s/\:.*//;s/.*,//')"
    34653465        $(QUIET)$(APPEND) '$@' 'ifeq ($$(word 2, $$(subst ., ,$$(VBOX_SOLARIS_11_BRANCH_VERSION))),175)'
     
    34693469        $(QUIET)$(APPEND) '$@' 'endif'
    34703470        $(QUIET)$(APPEND) '$@' 'VBOX_SOLARIS_11_BUILD_VERSION  := $$(word 6, $$(subst ., ,$$(VBOX_SOLARIS_11_BRANCH_VERSION)))'
    3471 endif
    3472 if1of ($(KBUILD_HOST), darwin freebsd solaris)
     3471 endif
     3472 if1of ($(KBUILD_HOST), darwin freebsd solaris)
    34733473        $(QUIET)$(APPEND) '$@' 'VBOX_HOST_DTRACE_VERSION := $(shell dtrace -V)'
    3474 endif
    3475 if defined(VBOX_PYLINT) && !defined(VBOX_WITH_PYLINT_PRE_V1_0) && !defined(VBOX_WITH_PYLINT_V1_1_PLUS) && !defined(VBOX_WITH_PYLINT_V1_2_1_PLUS)
     3474 endif
     3475 if defined(VBOX_PYLINT) && !defined(VBOX_WITH_PYLINT_PRE_V1_0) && !defined(VBOX_WITH_PYLINT_V1_1_PLUS) && !defined(VBOX_WITH_PYLINT_V1_2_1_PLUS)
    34763476        $(QUIET)$(APPEND) '$@' "VBOX_PYLINT_VERSION  := $(call VBOX_PYLINT_FIGURE_VERSION, $(VBOX_PYLINT))"
    3477 endif
    3478 if defined(VBOX_JAVAC)
     3477 endif
     3478 if defined(VBOX_JAVAC)
    34793479        $(QUIET)$(APPEND) '$@' 'VBOX_JAVA_VERSION    := $(call VBOX_JAVA_FIGURE_VERSION, $(VBOX_JAVAC))'
    3480 endif
     3480 endif
    34813481
    34823482        $(QUIET)$(ECHO) '========= START OF $@ ========='
     
    34843484        $(QUIET)$(ECHO) '=========== END OF $@ ========='
    34853485
    3486 include $(PATH_OUT)/DynamicConfig.kmk
     3486 include $(PATH_OUT)/DynamicConfig.kmk
    34873487endif # !VBOX_NOINC_DYNAMIC_CONFIG_KMK
    34883488
     
    34953495ifndef VBOX_GCC_std
    34963496 if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.arm64) # Go straight for c++17 here.
    3497 VBOX_GCC_std := -std=c++17
    3498 # 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.
    3499 #VBOX_GCC_std := -std=c++17
     3497  VBOX_GCC_std := -std=c++17
     3498  # 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.
     3499  #VBOX_GCC_std := -std=c++17
    35003500 else if "$(VBOX_CLANG_VERSION_CXX)" vge 50000 # darwin Xcode 5 allegedly knows what C++11 is
    3501 VBOX_GCC_std := -std=c++11
    3502 # 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.
    3503 #VBOX_GCC_std := -std=gnu++17
     3501  VBOX_GCC_std := -std=c++11
     3502  # 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.
     3503  #VBOX_GCC_std := -std=gnu++17
    35043504 else if "$(VBOX_GCC_VERSION_CXX)" vge 40800
    3505 VBOX_GCC_std := -std=c++11
     3505  VBOX_GCC_std := -std=c++11
    35063506 else if "$(VBOX_GCC_VERSION_CXX)" vge 40600
    3507 VBOX_GCC_std := -std=c++0x
     3507  VBOX_GCC_std := -std=c++0x
    35083508 endif
    35093509endif
     
    35223522        $(VBOX_GCC_Wno-extended-offsetof) $(VBOX_GCC_Wno-gnu-folding-constant) $(VBOX_GCC_Wno-gnu-anonymous-struct) \
    35233523        $(VBOX_GCC_Wlogical-op) $(VBOX_GCC_Wno-string-plus-int) $(VBOX_GCC_Wno-nested-anon-types) $(VBOX_GCC_Wno-variadic-macros) \
    3524        $(VBOX_GCC_Wno-c++17-compat-mangling)
     3524        $(VBOX_GCC_Wno-c++17-compat-mangling)
    35253525VBOX_GCC_WARN_PEDANTIC = -Wshadow $(VBOX_GCC_WARN) -Wno-long-long
    35263526if $(VBOX_GCC_VERSION_CXX) >= 40200 || defined(VBOX_WITH_MASOCHISTIC_WARNINGS) # gcc 4.2.x+ (4.1.2 is causing trouble with the extpack & add builds)
     
    37423742#
    37433743if1of ($(KBUILD_TYPE), debug dbgopt strict)
    3744 #not yet# VBOX_WITH_DEBUG_VCC_CRT = 1
     3744 #not yet# VBOX_WITH_DEBUG_VCC_CRT = 1
    37453745endif
    37463746ifdef VBOX_WITH_DEBUG_VCC_CRT
     
    38563856VBOX_EDIT_VERSION_RULE_FN = $(eval $(value VBOX_EDIT_VERSION_RULE_DEF))
    38573857define VBOX_EDIT_VERSION_RULE_DEF
    3858 $$($(1)_0_OUTDIR)/$(if $(3),$(3),$(2)): $(PATH_SUB_CURRENT)/$(2) $(VBOX_SVN_REV_KMK) | $$(dir $$@)
     3858 $$($(1)_0_OUTDIR)/$(if $(3),$(3),$(2)): $(PATH_SUB_CURRENT)/$(2) $(VBOX_SVN_REV_KMK) | $$(dir $$@)
    38593859        $(call MSG_GENERATE,$(1),$@,$<)
    38603860        $(QUIET)$(call VBOX_EDIT_VERSION_CMD_FN,$<,$@)
    3861 $(eval $(1)_CLEAN += $$($(1)_0_OUTDIR)/$(if $(3),$(3),$(2)))
     3861 $(eval $(1)_CLEAN += $$($(1)_0_OUTDIR)/$(if $(3),$(3),$(2)))
    38623862endef
    38633863
     
    38973897VBOX_EDIT_VERSION_AND_BUILD_RULE_FN = $(eval $(VBOX_EDIT_VERSION_AND_BUILD_RULE_DEF))
    38983898define VBOX_EDIT_VERSION_AND_BUILD_RULE_DEF
    3899 $$$$($(1)_0_OUTDIR)/$(if $(3),$(3),$(2)): $$(PATH_SUB_CURRENT)/$(2) $$(VBOX_SVN_REV_KMK) | $$$$(dir $$$$@)
     3899 $$$$($(1)_0_OUTDIR)/$(if $(3),$(3),$(2)): $$(PATH_SUB_CURRENT)/$(2) $$(VBOX_SVN_REV_KMK) | $$$$(dir $$$$@)
    39003900        $$(call MSG_GENERATE,$(1),$$@,$$<)
    39013901        $$(QUIET)$$(call VBOX_EDIT_VERSION_AND_BUILD_CMD_FN,$$<,$$@)
    3902 $(1)_CLEAN += $$($(1)_0_OUTDIR)/$(if $(3),$(3),$(2))
     3902 $(1)_CLEAN += $$($(1)_0_OUTDIR)/$(if $(3),$(3),$(2))
    39033903endef
    39043904
     
    39133913VBOX_GENERATE_IMPORT_TARGET_FN = $(eval $(VBOX_GENERATE_IMPORT_TARGET_DEF))
    39143914define VBOX_GENERATE_IMPORT_TARGET_DEF
    3915 $(1)_TEMPLATE = VBoxR3Dll
    3916 $(1)_INST     = $(INST_LIB)
    3917 if $(KBUILD_TARGET) == "darwin"
    3918  $(1)_LDFLAGS = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/$(2)$(SUFF_DLL)
    3919 else ifn1of ($(KBUILD_TARGET), os2 win)
    3920  $(1)_SONAME = $(2)$(SUFF_DLL)
    3921 endif
    3922 if1of ($(KBUILD_TARGET), os2 win)
    3923  $(1)_SOURCES = $$($(1)_0_OUTDIR)/$(1)Imp.def
    3924  $(1)_CLEAN   = $$($(1)_0_OUTDIR)/$(1)Imp.def
    3925 else
    3926  $(1)_SOURCES = $$($(1)_0_OUTDIR)/$(1)Imp.c
    3927  $(1)_CLEAN   = $$($(1)_0_OUTDIR)/$(1)Imp.c
    3928 endif
    3929 
    3930 $$$$($(1)_SOURCES): $(addprefix $(PATH_SUB_CURRENT)/,$(3)) $(PATH_ROOT)/src/bldprogs/deftoimp.sed | $$$$(dir $$$$@)
     3915 $(1)_TEMPLATE = VBoxR3Dll
     3916 $(1)_INST    = $(INST_LIB)
     3917 if $(KBUILD_TARGET) == "darwin"
     3918  $(1)_LDFLAGS = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/$(2)$(SUFF_DLL)
     3919 else ifn1of ($(KBUILD_TARGET), os2 win)
     3920  $(1)_SONAME = $(2)$(SUFF_DLL)
     3921 endif
     3922 if1of ($(KBUILD_TARGET), os2 win)
     3923  $(1)_SOURCES = $$($(1)_0_OUTDIR)/$(1)Imp.def
     3924  $(1)_CLEAN  = $$($(1)_0_OUTDIR)/$(1)Imp.def
     3925 else
     3926  $(1)_SOURCES = $$($(1)_0_OUTDIR)/$(1)Imp.c
     3927  $(1)_CLEAN  = $$($(1)_0_OUTDIR)/$(1)Imp.c
     3928 endif
     3929
     3930 $$$$($(1)_SOURCES): $(addprefix $(PATH_SUB_CURRENT)/,$(3)) $(PATH_ROOT)/src/bldprogs/deftoimp.sed | $$$$(dir $$$$@)
    39313931        $$(call MSG_GENERATE,,$$@)
    3932 ifeq ($(KBUILD_TARGET),os2)
     3932 ifeq ($(KBUILD_TARGET),os2)
    39333933        $$(SED) \
    39343934                -e '/not-$(KBUILD_TARGET)/d' \
     
    39383938                -e 's/[ \t]DATA[ \t]*/ /'  \
    39393939                --output $$@ $(addprefix $(PATH_SUB_CURRENT)/,$(3))
    3940 else ifeq ($(KBUILD_TARGET),win)
     3940 else ifeq ($(KBUILD_TARGET),win)
    39413941        $$(SED) \
    39423942                -e '/not-$(KBUILD_TARGET)/d' \
    39433943                -e '/not-$(KBUILD_TARGET_ARCH)/d' \
    39443944                --output $$@ $(addprefix $(PATH_SUB_CURRENT)/,$(3))
    3945 else
     3945 else
    39463946        $$(QUIET)$$(APPEND) -tn $$@ \
    39473947                '#ifdef VBOX_HAVE_VISIBILITY_HIDDEN' \
     
    39583958                -f $(PATH_ROOT)/src/bldprogs/deftoimp.sed \
    39593959                --append $$@ $(addprefix $(PATH_SUB_CURRENT)/,$(3))
    3960 endif
     3960 endif
    39613961endef # VBOX_GENERATE_IMPORT_TARGET_DEF
    39623962
     
    39763976 #
    39773977 VBOX_UTF8_MANIFEST_FN = \
    3978         $(QUIET)$(APPEND) -tn "$(1).manifest" \
    3979                 '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' \
    3980                 '<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">' \
    3981                 ' <assemblyIdentity type="win32" name="$(notdir $(1))" processorArchitecture="$(2)" version="$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD).$(expr $(VBOX_SVN_REV) % 50000)" />' \
    3982                 ' <asmv3:application>' \
    3983                 '  <asmv3:windowsSettings>' \
    3984                 '   <activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>' \
    3985                 '  </asmv3:windowsSettings>' \
    3986                 ' </asmv3:application>' \
    3987                 '</assembly>' \
    3988         $(NLTAB)$(QUIET)$(REDIRECT) -- $(requote sh,$(PATH_SDK_$(VBOX_WINPSDK)_BIN)/mt.exe) \
    3989                 -nologo -manifest '$(subst /,\,$(1).manifest)' '-outputresource:$(subst /,\,$(1));$(HASH)1' \
    3990         $(NLTAB)$(QUIET)$(RM) -f -- "$(1).manifest"
     3978        $(QUIET)$(APPEND) -tn "$(1).manifest" \
     3979        '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' \
     3980        '<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">' \
     3981        ' <assemblyIdentity type="win32" name="$(notdir $(1))" processorArchitecture="$(2)" version="$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD).$(expr $(VBOX_SVN_REV) % 50000)" />' \
     3982        ' <asmv3:application>' \
     3983        '  <asmv3:windowsSettings>' \
     3984        '   <activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>' \
     3985        '  </asmv3:windowsSettings>' \
     3986        ' </asmv3:application>' \
     3987        '</assembly>' \
     3988        $(NLTAB)$(QUIET)$(REDIRECT) -- $(requote sh,$(PATH_SDK_$(VBOX_WINPSDK)_BIN)/mt.exe) \
     3989        -nologo -manifest '$(subst /,\,$(1).manifest)' '-outputresource:$(subst /,\,$(1));$(HASH)1' \
     3990        $(NLTAB)$(QUIET)$(RM) -f -- "$(1).manifest"
    39913991 VBOX_UTF8_MANIFEST_CMDS ?= $(if-expr "$(tool_do)" == "LINK_PROGRAM",$(call VBOX_UTF8_MANIFEST_FN,$(out),$(bld_trg_arch)),)
    39923992else
     
    40264026 VBOX_CCS_CLIENT_JAR := $(firstword $(rsort \
    40274027        $(wildcard $(KBUILD_DEVTOOLS)/common/ccs/v*/Client.jar)) \
    4028         $(KBUILD_DEVTOOLS)/common/ccs/notfound/Client.jar )
     4028        $(KBUILD_DEVTOOLS)/common/ccs/notfound/Client.jar )
    40294029 VBOX_CCS_USER       ?= virtualbox_grp
    40304030 VBOX_CCS_GLOBAL_UID ?= non-of-your-business
     
    40384038 VBOX_CCS_SIGN_CMD    = $(VBOX_RETRY) $(VBOX_JAVA) -jar "$(VBOX_CCS_CLIENT_JAR)" \
    40394039        sign -user "$(VBOX_CCS_USER)" -global_uid "$(VBOX_CCS_GLOBAL_UID)" \
    4040                 -job_timeout 90 -server_timeout 75 -server "$(VBOX_CCS_SERVER)" \
    4041                 -sign_method "$1" -file_to_sign "$2" -signed_location "$(if $3,$3,$(call VBOX_DIRX,$2))" $4
     4040        -job_timeout 90 -server_timeout 75 -server "$(VBOX_CCS_SERVER)" \
     4041        -sign_method "$1" -file_to_sign "$2" -signed_location "$(if $3,$3,$(call VBOX_DIRX,$2))" $4
    40424042
    40434043 ifeq ($(KBUILD_HOST),win)
     
    41454145   if $(intersects win all 1,$(VBOX_WITH_CORP_CODE_SIGNING))
    41464146    VBOX_SIGN_FILE_FN     = $(call VBOX_CCS_SIGN_CMD,driver$(if-expr "$3" == "/ph",_pagehash,),$1,,-digest_algo $(if-expr "$5" == "",SHA1,SHA2)) \
    4147         $(if-expr "$5" == "",\
    4148          $(if-expr "$6" == "",$(if-expr "$4" == "2",$$(NLTAB),$(NLTAB)),$6) \
    4149          $(call VBOX_CCS_SIGN_CMD,driver$(if-expr "$3" == "/ph",_pagehash,),$1,,-dual_sign -digest_algo SHA2))
     4147        $(if-expr "$5" == "", \
     4148        $(if-expr "$6" == "",$(if-expr "$4" == "2",$$(NLTAB),$(NLTAB)),$6) \
     4149        $(call VBOX_CCS_SIGN_CMD,driver$(if-expr "$3" == "/ph",_pagehash,),$1,,-dual_sign -digest_algo SHA2))
    41504150   else ifdef VBOX_CERTIFICATE_SHA2_SUBJECT_NAME
    41514151    ifdef VBOX_CERTIFICATE_SUBJECT_NAME
    41524152     VBOX_SIGN_FILE_FN     = $(if-expr "$5" == "",$(VBOX_SIGNTOOL_SHA1) \
    4153         sign /fd sha1 \
    4154         $(VBOX_CROSS_CERTIFICATE_FILE_ARGS) \
    4155         $(VBOX_CERTIFICATE_STORE_ARGS) \
    4156         $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
    4157         $(VBOX_CERTIFICATE_FINGERPRINT_ARGS) \
    4158         $(VBOX_TSA_URL_ARGS) \
    4159         $(if $(strip $(2)),/d "$(strip $(2))",) \
    4160         $(3) \
    4161         "$(1)" \
    4162        $(if-expr "$6" == "",$(if-expr "$4" == "2",$$(NLTAB),$(NLTAB)),$6))$(VBOX_SIGNTOOL_SHA2) \
    4163         sign $(if-expr "$5" == "",/as,) /fd sha256 \
    4164         $(VBOX_CROSS_CERTIFICATE_SHA2_FILE_ARGS) \
    4165         $(VBOX_CERTIFICATE_SHA2_STORE_ARGS) \
    4166         $(VBOX_CERTIFICATE_SHA2_SUBJECT_NAME_ARGS) \
    4167         $(VBOX_CERTIFICATE_SHA2_FINGERPRINT_ARGS) \
    4168         $(VBOX_TSA_SHA2_URL_ARGS) \
    4169         $(if $(strip $(2)),/d "$(strip $(2))",) \
    4170         $(3) \
    4171         "$(1)"
     4153        sign /fd sha1 \
     4154        $(VBOX_CROSS_CERTIFICATE_FILE_ARGS) \
     4155        $(VBOX_CERTIFICATE_STORE_ARGS) \
     4156        $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
     4157        $(VBOX_CERTIFICATE_FINGERPRINT_ARGS) \
     4158        $(VBOX_TSA_URL_ARGS) \
     4159        $(if $(strip $(2)),/d "$(strip $(2))",) \
     4160        $(3) \
     4161        "$(1)" \
     4162        $(if-expr "$6" == "",$(if-expr "$4" == "2",$$(NLTAB),$(NLTAB)),$6))$(VBOX_SIGNTOOL_SHA2) \
     4163        sign $(if-expr "$5" == "",/as,) /fd sha256 \
     4164        $(VBOX_CROSS_CERTIFICATE_SHA2_FILE_ARGS) \
     4165        $(VBOX_CERTIFICATE_SHA2_STORE_ARGS) \
     4166        $(VBOX_CERTIFICATE_SHA2_SUBJECT_NAME_ARGS) \
     4167        $(VBOX_CERTIFICATE_SHA2_FINGERPRINT_ARGS) \
     4168        $(VBOX_TSA_SHA2_URL_ARGS) \
     4169        $(if $(strip $(2)),/d "$(strip $(2))",) \
     4170        $(3) \
     4171        "$(1)"
    41724172    else
    41734173     VBOX_SIGN_FILE_FN     = $(VBOX_SIGNTOOL_SHA2) \
    4174         sign /fd sha256 \
    4175         $(VBOX_CROSS_CERTIFICATE_SHA2_FILE_ARGS) \
    4176         $(VBOX_CERTIFICATE_SHA2_STORE_ARGS) \
    4177         $(VBOX_CERTIFICATE_SHA2_SUBJECT_NAME_ARGS) \
    4178         $(VBOX_CERTIFICATE_SHA2_FINGERPRINT_ARGS) \
    4179         $(VBOX_TSA_SHA2_URL_ARGS) \
    4180         $(if $(strip $(2)),/d "$(strip $(2))",) \
    4181         $(3) \
    4182         "$(1)"
     4174        sign /fd sha256 \
     4175        $(VBOX_CROSS_CERTIFICATE_SHA2_FILE_ARGS) \
     4176        $(VBOX_CERTIFICATE_SHA2_STORE_ARGS) \
     4177        $(VBOX_CERTIFICATE_SHA2_SUBJECT_NAME_ARGS) \
     4178        $(VBOX_CERTIFICATE_SHA2_FINGERPRINT_ARGS) \
     4179        $(VBOX_TSA_SHA2_URL_ARGS) \
     4180        $(if $(strip $(2)),/d "$(strip $(2))",) \
     4181        $(3) \
     4182        "$(1)"
    41834183    endif
    41844184   else
    41854185    VBOX_SIGN_FILE_FN     = $(VBOX_SIGNTOOL) \
    4186         sign /fd $(firstword $(VBOX_TEST_SIGN_ALGORITHM) sha256) \
    4187         $(VBOX_CROSS_CERTIFICATE_FILE_ARGS) \
    4188         $(VBOX_CERTIFICATE_STORE_ARGS) \
    4189         $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
    4190         $(VBOX_CERTIFICATE_FINGERPRINT_ARGS) \
    4191         $(VBOX_TSA_URL_ARGS) \
    4192         $(if $(strip $(2)),/d "$(strip $(2))",) \
    4193         $(3) \
    4194         "$(1)"
     4186        sign /fd $(firstword $(VBOX_TEST_SIGN_ALGORITHM) sha256) \
     4187        $(VBOX_CROSS_CERTIFICATE_FILE_ARGS) \
     4188        $(VBOX_CERTIFICATE_STORE_ARGS) \
     4189        $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
     4190        $(VBOX_CERTIFICATE_FINGERPRINT_ARGS) \
     4191        $(VBOX_TSA_URL_ARGS) \
     4192        $(if $(strip $(2)),/d "$(strip $(2))",) \
     4193        $(3) \
     4194        "$(1)"
    41954195   endif
    41964196  endif
     
    42044204   else ifdef VBOX_CERTIFICATE_EV_SUBJECT_NAME
    42054205    VBOX_SIGN_EV_FILE_FN  = $(VBOX_SIGNTOOL_SHA2) \
    4206         sign /fd sha256 \
    4207         $(VBOX_CERTIFICATE_EV_STORE_ARGS) \
    4208         $(VBOX_CERTIFICATE_EV_SUBJECT_NAME_ARGS) \
    4209         $(VBOX_CERTIFICATE_EV_FINGERPRINT_ARGS) \
    4210         $(VBOX_TSA_SHA2_URL_ARGS) \
    4211         "$(1)"
     4206        sign /fd sha256 \
     4207        $(VBOX_CERTIFICATE_EV_STORE_ARGS) \
     4208        $(VBOX_CERTIFICATE_EV_SUBJECT_NAME_ARGS) \
     4209        $(VBOX_CERTIFICATE_EV_FINGERPRINT_ARGS) \
     4210        $(VBOX_TSA_SHA2_URL_ARGS) \
     4211        "$(1)"
    42124212   endif
    42134213  endif
     
    42354235  #
    42364236  # @remarks The parameters are the same as VBOX_SIGN_FILE_FN.
    4237   VBOX_SIGN_IMAGE_WITH_EV_FN = $(call VBOX_SIGN_FILE_FN,$1,$2,$3,$4,$5)$(if-expr "$5" == "" && "$(target)" != "bldRTSignTool",\
    4238         $(if-expr "$4" == "2",$$(NLTAB),$(NLTAB))$(RM) -f -- "$1.dual" \
     4237  VBOX_SIGN_IMAGE_WITH_EV_FN = $(call VBOX_SIGN_FILE_FN,$1,$2,$3,$4,$5)$(if-expr "$5" == "" && "$(target)" != "bldRTSignTool", \
     4238        $(if-expr "$4" == "2",$$(NLTAB),$(NLTAB))$(RM) -f -- "$1.dual" \
    42394239        $(if-expr "$4" == "2",$$(NLTAB),$(NLTAB))$(CP) -- "$1" "$1.dual" \
    42404240        $(if-expr "$4" == "2",$$(NLTAB),$(NLTAB))$(call VBOX_CCS_SIGN_CMD,microsoftev,$1,,-digest_algo SHA2) \
     
    42624262  # @remarks The parameters are the same as VBOX_SIGN_FILE_FN.
    42634263  VBOX_SIGN_IMAGE_PLAN_B_FN = $(VBOX_SIGNTOOL_SHA1) \
    4264         sign /fd sha1\
     4264        sign /fd sha1 \
    42654265        $(VBOX_CROSS_CERTIFICATE_FILE_ARGS) \
    42664266        $(VBOX_CERTIFICATE_STORE_ARGS) \
     
    42714271        $(3) \
    42724272        "$(1)" \
    4273         $(if-expr "$5" == "",\
    4274         $(if-expr "$4" == "2",$$(NLTAB),$(NLTAB))$(RM) -f -- "$1.ccs" \
     4273        $(if-expr "$5" == "", \
     4274        $(if-expr "$4" == "2",$$(NLTAB),$(NLTAB))$(RM) -f -- "$1.ccs" \
    42754275        $(if-expr "$4" == "2",$$(NLTAB),$(NLTAB))$(CP) -- "$1" "$1.ccs" \
    42764276        $(if-expr "$4" == "2",$$(NLTAB),$(NLTAB))$(call VBOX_CCS_SIGN_CMD,driver$(if-expr "$3" == "/ph",_pagehash,),$1.ccs,,-digest_algo SHA2) \
     
    42834283  # @param 2  File description. Optional.
    42844284  # @param 3  Set to 2 if the expression will be expanded twice before chopped into commands (for _CMDS).
    4285   if1of (win_with_ev,$(VBOX_WITH_CORP_CODE_SIGNING))
     4285  if1of (win_with_ev, $(VBOX_WITH_CORP_CODE_SIGNING))
    42864286   VBOX_SIGN_IMAGE_FN        ?= $(call VBOX_SIGN_IMAGE_WITH_EV_FN,$(1),$(2),/ph,$(3))
    42874287   VBOX_SIGN_IMAGE_ORDERDEPS ?= $(VBOX_RTSIGNTOOL) $(VBOX_SIGNTOOL_ORDERDEPS)
     
    43064306  ifndef VBOX_MAKE_CAT_HLP_FN
    43074307   VBOX_MAKE_CAT_HLP_FN = \
    4308         $(RM) -f -- "$(2)"\
    4309         $(NL)$(TAB)$(VBOX_INF2CAT) "/driver:$(strip $(1))" "/os:$(strip $(subst ;,$(COMMA),$(3)))" /verbose \
    4310         $(NL)$(TAB)$(MV) -- "$(2)" "$(2)"
     4308        $(RM) -f -- "$(2)" \
     4309        $(NL)$(TAB)$(VBOX_INF2CAT) "/driver:$(strip $(1))" "/os:$(strip $(subst ;,$(COMMA),$(3)))" /verbose \
     4310        $(NL)$(TAB)$(MV) -- "$(2)" "$(2)"
    43114311   if $(intersects win_planb,$(VBOX_WITH_CORP_CODE_SIGNING))
    43124312    VBOX_MAKE_CAT_HLP_FN += $(NL)$(TAB)$(call VBOX_SIGN_IMAGE_PLAN_B_FN,$(2),,,$(NL)$(TAB))
     
    43464346  # @param 2  Identifier, optional.
    43474347  ifeq ($(VBOX_SIGNING_MODE),adhoc)
    4348   if $(intersects darwin all 1,$(VBOX_WITH_CORP_CODE_SIGNING))
    4349    ## @todo cannot handle $(2), the identifier.
    4350    VBOX_SIGN_IMAGE_FN = $(call MSG_TOOL,SIGNTOOL,,$(1),$(2))$(NLTAB) \
    4351         $(call VBOX_CCS_SIGN_CMD,binary,$(1),,$(subst --entitlements=,-entitlement_file_path ,$(3)) \
    4352                 $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),-hardened_runtime))
     4348   if $(intersects darwin all 1,$(VBOX_WITH_CORP_CODE_SIGNING))
     4349    ## @todo cannot handle $(2), the identifier.
     4350    VBOX_SIGN_IMAGE_FN = $(call MSG_TOOL,SIGNTOOL,,$(1),$(2))$(NLTAB) \
     4351        $(call VBOX_CCS_SIGN_CMD,binary,$(1),,$(subst --entitlements=,-entitlement_file_path ,$(3)) \
     4352        $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),-hardened_runtime))
     4353   else
     4354    VBOX_SIGN_IMAGE_FN = $(call MSG_TOOL,SIGNTOOL,,$(1),$(2))$(NLTAB)$(VBOX_CODESIGN) \
     4355        --verbose=9 \
     4356        --force \
     4357        $(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 14,--digest-algorithm sha256,) \
     4358        $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),$(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 16,--options 0x10000,--options runtime)) \
     4359        --file-list - \
     4360        $(if-expr defined(VBOX_TSA_URL),--timestamp="$(VBOX_TSA_URL)") \
     4361        $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
     4362        --entitlements="$(VBOX_DARWIN_ENTITLEMENTS_FILE)" \
     4363        "$(1)" \
     4364        $(if $(2),--identifier "$(2)",)
     4365   endif
    43534366  else
    4354    VBOX_SIGN_IMAGE_FN = $(call MSG_TOOL,SIGNTOOL,,$(1),$(2))$(NLTAB)$(VBOX_CODESIGN) \
    4355         --verbose=9 \
    4356         --force \
    4357         $(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 14,--digest-algorithm sha256,) \
    4358         $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),$(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 16,--options 0x10000,--options runtime)) \
    4359         --file-list - \
    4360         $(if-expr defined(VBOX_TSA_URL),--timestamp="$(VBOX_TSA_URL)") \
    4361         $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
    4362         --entitlements="$(VBOX_DARWIN_ENTITLEMENTS_FILE)" \
    4363         "$(1)" \
    4364         $(if $(2),--identifier "$(2)",)
    4365   endif
    4366   else
    4367     VBOX_SIGN_IMAGE_FN =
     4367   VBOX_SIGN_IMAGE_FN  =
    43684368  endif
    43694369
     
    43754375  #
    43764376  if defined(VBOX_CERTIFICATE_FINGERPRINT) && !defined(VBOX_CERTIFICATE_SUBJECT_NAME)
    4377     VBOX_CERTIFICATE_SUBJECT_NAME = $(subst $(SP),,$(VBOX_CERTIFICATE_FINGERPRINT))
     4377   VBOX_CERTIFICATE_SUBJECT_NAME = $(subst $(SP),,$(VBOX_CERTIFICATE_FINGERPRINT))
    43784378  endif
    43794379  ifeq ($(VBOX_SIGNING_MODE),test)
     
    43814381   VBOX_CERTIFICATE_SUBJECT_NAME_ARGS ?= --sign "$(VBOX_CERTIFICATE_SUBJECT_NAME)"
    43824382   VBOX_TSA_URL ?= none
    4383   else ifeq ($(VBOX_SIGNING_MODE), adhoc)
     4383  else ifeq ($(VBOX_SIGNING_MODE),adhoc)
    43844384   ifdef VBOX_CERTIFICATE_SUBJECT_NAME
    43854385    $(error VBOX_CERTIFICATE_SUBJECT_NAME must not be set in 'adhoc' signing mode)
     
    44104410  # @param 2  Identifier, mandatory.
    44114411  # @param 3  The directory to put the notarized file in. Defaults to $(dir $1).
    4412  VBOX_CCS_NOTARIZE_CMD = $(VBOX_RETRY) $(VBOX_JAVA) -jar "$(VBOX_CCS_CLIENT_JAR)" \
    4413         mac_notarize -user "$(VBOX_CCS_USER)" -global_uid "$(VBOX_CCS_GLOBAL_UID)" \
    4414                 -job_timeout 90 -server_timeout 75 -server "$(VBOX_CCS_SERVER)" \
    4415                 -file_to_notarize "$1" -bundle_id "$2" -download_location "$(if $3,$3,$(call VBOX_DIRX,$1))"
     4412  VBOX_CCS_NOTARIZE_CMD = $(VBOX_RETRY) $(VBOX_JAVA) -jar "$(VBOX_CCS_CLIENT_JAR)" \
     4413        mac_notarize -user "$(VBOX_CCS_USER)" -global_uid "$(VBOX_CCS_GLOBAL_UID)" \
     4414        -job_timeout 90 -server_timeout 75 -server "$(VBOX_CCS_SERVER)" \
     4415        -file_to_notarize "$1" -bundle_id "$2" -download_location "$(if $3,$3,$(call VBOX_DIRX,$1))"
    44164416
    44174417  ## Sign an application bundle, framework or kernel extension.
     
    44234423   ## @todo $(3) is hopefully either empty, --deep or --entitlements=...
    44244424   VBOX_SIGN_BUNDLE_FN = $(call MSG_TOOL,SIGNTOOL,,$(1),$(2))$(NLTAB) \
    4425         ditto -c -k --keepParent "$(1)" "$(1).zip"$(NLTAB) \
    4426         $(call VBOX_CCS_SIGN_CMD,apple,$(1).zip,,$(subst --entitlements=,-entitlement_file_path ,$(subst --deep,-deep,$(3))) \
    4427                 $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),-hardened_runtime))$(NLTAB) \
    4428         ditto -x -k "$(1).zip" "$(1)/../"$(NLTAB) \
    4429         $(RM) -f -- "$(1).zip"
     4425        ditto -c -k --keepParent "$(1)" "$(1).zip"$(NLTAB) \
     4426        $(call VBOX_CCS_SIGN_CMD,apple,$(1).zip,,$(subst --entitlements=,-entitlement_file_path ,$(subst --deep,-deep,$(3))) \
     4427        $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),-hardened_runtime))$(NLTAB) \
     4428        ditto -x -k "$(1).zip" "$(1)/../"$(NLTAB) \
     4429        $(RM) -f -- "$(1).zip"
    44304430  else
    44314431   VBOX_SIGN_BUNDLE_FN = $(call MSG_TOOL,SIGNTOOL,,$(1),$(2))$(NLTAB)$(VBOX_CODESIGN) \
    4432         --verbose=9 \
    4433         --force \
    4434         $(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 14,--digest-algorithm sha256,) \
    4435         $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),$(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 16,--options 0x10000,--options runtime)) \
    4436         --file-list - \
    4437         $(if-expr defined(VBOX_TSA_URL),--timestamp="$(VBOX_TSA_URL)") \
    4438         $(3) \
    4439         $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
    4440         "$(1)" $(if $(2),--identifier "$(2)",)
     4432        --verbose=9 \
     4433        --force \
     4434        $(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 14,--digest-algorithm sha256,) \
     4435        $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),$(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 16,--options 0x10000,--options runtime)) \
     4436        --file-list - \
     4437        $(if-expr defined(VBOX_TSA_URL),--timestamp="$(VBOX_TSA_URL)") \
     4438        $(3) \
     4439        $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
     4440        "$(1)" $(if $(2),--identifier "$(2)",)
    44414441  endif
    44424442
     
    44494449   ## @todo $(3) is hopefully either empty or --entitlements=...
    44504450   VBOX_SIGN_MACHO_FN = $(call MSG_TOOL,SIGNTOOL,,$(1),$(2))$(NLTAB) \
    4451         $(call VBOX_CCS_SIGN_CMD,binary,$(1),,$(subst --entitlements=,-entitlement_file_path ,$(3)) \
    4452                 $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),-hardened_runtime))
     4451        $(call VBOX_CCS_SIGN_CMD,binary,$(1),,$(subst --entitlements=,-entitlement_file_path ,$(3)) \
     4452        $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),-hardened_runtime))
    44534453  else
    44544454   VBOX_SIGN_MACHO_FN = $(call MSG_TOOL,SIGNTOOL,,$(1),$(2))$(NLTAB)$(VBOX_CODESIGN) \
    4455         --verbose=9 \
    4456         --force \
    4457         $(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 14,--digest-algorithm sha256,) \
    4458         $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),$(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 16,--options 0x10000,--options runtime)) \
    4459         --file-list - \
    4460         $(if-expr defined(VBOX_TSA_URL),--timestamp="$(VBOX_TSA_URL)") \
    4461         $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
    4462         $(3) \
    4463         "$(1)" \
    4464         $(if $(2),--identifier "$(2)",)
     4455        --verbose=9 \
     4456        --force \
     4457        $(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 14,--digest-algorithm sha256,) \
     4458        $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),$(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 16,--options 0x10000,--options runtime)) \
     4459        --file-list - \
     4460        $(if-expr defined(VBOX_TSA_URL),--timestamp="$(VBOX_TSA_URL)") \
     4461        $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
     4462        $(3) \
     4463        "$(1)" \
     4464        $(if $(2),--identifier "$(2)",)
    44654465  endif
    44664466
     
    44684468  if $(intersects darwin all 1,$(VBOX_WITH_CORP_CODE_SIGNING))
    44694469   VBOX_SIGN_EXTPACK_DYLIB_CMDS ?= $(if $(eq $(tool_do),LINK_LIBRARY),, \
    4470         $(call VBOX_CCS_SIGN_CMD,binary,$(out),, \
    4471                 $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),-hardened_runtime)) )
     4470        $(call VBOX_CCS_SIGN_CMD,binary,$(out),, \
     4471        $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),-hardened_runtime)) )
    44724472  else
    44734473   VBOX_SIGN_EXTPACK_DYLIB_CMDS ?= $(if $(eq $(tool_do),LINK_LIBRARY),, \
    4474         $(VBOX_CODESIGN) \
    4475         --verbose=9 \
    4476         --force \
    4477         $(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 14,--digest-algorithm sha256,) \
    4478         $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),$(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 16,--options 0x10000,--options runtime)) \
    4479         --file-list - \
    4480         $(if-expr defined(VBOX_TSA_URL),--timestamp="$(VBOX_TSA_URL)") \
    4481         $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
    4482         $(out) )
     4474        $(VBOX_CODESIGN) \
     4475        --verbose=9 \
     4476        --force \
     4477        $(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 14,--digest-algorithm sha256,) \
     4478        $(if $(VBOX_WITH_MACOS_HARDENED_RUNTIME),$(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 16,--options 0x10000,--options runtime)) \
     4479        --file-list - \
     4480        $(if-expr defined(VBOX_TSA_URL),--timestamp="$(VBOX_TSA_URL)") \
     4481        $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
     4482        $(out) )
    44834483  endif
    44844484
     
    44944494   ## @todo cannot handle $(2), the identifier.
    44954495   VBOX_SIGN_FILE_FN = $(call MSG_TOOL,SIGNTOOL,,$(1),$(2))$(NLTAB) \
    4496     $(call VBOX_CCS_SIGN_CMD,mac_dmg,$(1))$(NLTAB) \
    4497         $(REDIRECT) -E 'LC_ALL=C' -we "$(1).tmp" -- ditto -x -k -V "$(1).zip" "$(call VBOX_DIRX,$(1))"$(NLTAB) \
    4498     dirname="$(call VBOX_DIRX,$(1))$(DOLLAR)($(SED) -n -e 's+^copying file \([0-9]\{1,\}\)/.\{1,\}$(DOLLAR)+\1+p' "$(1).tmp")" ; \
    4499     $(MV) -f -- "$(DOLLAR)dirname/$(DOLLAR)(basename "$(1)")" "$(call VBOX_DIRX,$(1))" ; \
    4500     $(RM) -Rf -- "$(DOLLAR)dirname/"$(NLTAB) \
    4501         $(RM) -f -- "$(1).zip" "$(1).tmp"
     4496        $(call VBOX_CCS_SIGN_CMD,mac_dmg,$(1))$(NLTAB) \
     4497        $(REDIRECT) -E 'LC_ALL=C' -we "$(1).tmp" -- ditto -x -k -V "$(1).zip" "$(call VBOX_DIRX,$(1))"$(NLTAB) \
     4498        dirname="$(call VBOX_DIRX,$(1))$(DOLLAR)($(SED) -n -e 's+^copying file \([0-9]\{1,\}\)/.\{1,\}$(DOLLAR)+\1+p' "$(1).tmp")" ; \
     4499        $(MV) -f -- "$(DOLLAR)dirname/$(DOLLAR)(basename "$(1)")" "$(call VBOX_DIRX,$(1))" ; \
     4500        $(RM) -Rf -- "$(DOLLAR)dirname/"$(NLTAB) \
     4501        $(RM) -f -- "$(1).zip" "$(1).tmp"
    45024502  else
    45034503   VBOX_SIGN_FILE_FN = $(call MSG_TOOL,SIGNTOOL,,$(1),$(2))$(NLTAB)$(VBOX_CODESIGN) \
    4504         --verbose=9 \
    4505         --force \
    4506         $(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 14,--digest-algorithm sha256,) \
    4507         --file-list=- \
    4508         $(if-expr defined(VBOX_TSA_URL),--timestamp="$(VBOX_TSA_URL)") \
    4509         $(if $(2),--identifier "$(2)",) \
    4510         $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
    4511         "$(1)"
     4504        --verbose=9 \
     4505        --force \
     4506        $(if-expr $(KBUILD_HOST_VERSION_MAJOR) <= 14,--digest-algorithm sha256,) \
     4507        --file-list=- \
     4508        $(if-expr defined(VBOX_TSA_URL),--timestamp="$(VBOX_TSA_URL)") \
     4509        $(if $(2),--identifier "$(2)",) \
     4510        $(VBOX_CERTIFICATE_SUBJECT_NAME_ARGS) \
     4511        "$(1)"
    45124512  endif
    45134513
     
    45524552  ifeq ($(VBOX_SIGNING_MODE),test) ## @todo when kBuild is updated to r2742+, this should be enabled for both modes.
    45534553   define VBOX_TEST_SIGN_KEXT
    4554   $1_INSTTYPE.darwin = none
    4555 
    4556   $1.kext_SOURCES += $$($1.kext_0_OUTDIR)/Contents/MacOS/$1=>MacOS/$1 \
    4557         $(foreach extfile, $(VBOX_DARWIN_KEXT_SIGN_FILES) \
    4558                 , $$($1.kext_0_OUTDIR)/Contents/_CodeSignature/$(extfile)=>_CodeSignature/$(extfile))
    4559   $1.kext_SYMLINKS += $(foreach symfile, $(VBOX_DARWIN_KEXT_SIGN_SYMLINKS), $(symfile)=>_CodeSignature/$(symfile))
    4560   $1.kext_CLEAN    += \
    4561         $(foreach extfile, $(VBOX_DARWIN_KEXT_SIGN_FILES)   , $$($1.kext_0_OUTDIR)/Contents/_CodeSignature/$(extfile)) \
    4562         $(foreach symfile, $(VBOX_DARWIN_KEXT_SIGN_SYMLINKS), $$($1.kext_0_OUTDIR)/Contents/$(symfile)) \
    4563         $$($1.kext_0_OUTDIR)/Contents/MacOS/$1 \
    4564         $$($1.kext_0_OUTDIR)/$1.kext/Contents/_CodeSignature/
    4565   $1.kext_BLDDIRS += $$($1.kext_0_OUTDIR)/Contents/MacOS/
    4566 
    4567   $$$$($1.kext_0_OUTDIR)/Contents/MacOS/$1 \
    4568   + $(foreach file,$(VBOX_DARWIN_KEXT_SIGN_FILES), $$$$($1.kext_0_OUTDIR)/Contents/_CodeSignature/$(file)): \
    4569                 $$$$($1.kext_0_OUTDIR)/Contents/Info.plist $$$$($1_1_TARGET) | $$$$($1.kext_0_OUTDIR)/
     4554    $1_INSTTYPE.darwin = none
     4555
     4556    $1.kext_SOURCES += $$($1.kext_0_OUTDIR)/Contents/MacOS/$1=>MacOS/$1 \
     4557        $(foreach extfile, $(VBOX_DARWIN_KEXT_SIGN_FILES) \
     4558        , $$($1.kext_0_OUTDIR)/Contents/_CodeSignature/$(extfile)=>_CodeSignature/$(extfile))
     4559    $1.kext_SYMLINKS += $(foreach symfile, $(VBOX_DARWIN_KEXT_SIGN_SYMLINKS), $(symfile)=>_CodeSignature/$(symfile))
     4560    $1.kext_CLEAN  += \
     4561        $(foreach extfile, $(VBOX_DARWIN_KEXT_SIGN_FILES)   , $$($1.kext_0_OUTDIR)/Contents/_CodeSignature/$(extfile)) \
     4562        $(foreach symfile, $(VBOX_DARWIN_KEXT_SIGN_SYMLINKS), $$($1.kext_0_OUTDIR)/Contents/$(symfile)) \
     4563        $$($1.kext_0_OUTDIR)/Contents/MacOS/$1 \
     4564        $$($1.kext_0_OUTDIR)/$1.kext/Contents/_CodeSignature/
     4565    $1.kext_BLDDIRS += $$($1.kext_0_OUTDIR)/Contents/MacOS/
     4566
     4567    $$$$($1.kext_0_OUTDIR)/Contents/MacOS/$1 \
     4568    + $(foreach file,$(VBOX_DARWIN_KEXT_SIGN_FILES), $$$$($1.kext_0_OUTDIR)/Contents/_CodeSignature/$(file)): \
     4569                $$$$($1.kext_0_OUTDIR)/Contents/Info.plist $$$$($1_1_TARGET) | $$$$($1.kext_0_OUTDIR)/
    45704570        $(RM) -Rf -- "$$($1.kext_0_OUTDIR)/Contents/_CodeSignature/" "$$($1.kext_0_OUTDIR)/Contents/MacOS/"
    45714571        $(MKDIR) -p -- "$$($1.kext_0_OUTDIR)/Contents/MacOS/"
     
    46004600  # @param 1   The elf object file to sign.
    46014601  VBOX_SIGN_ELF_FN ?= $(VBOX_ELFSIGN) \
    4602         sign \
    4603         $(VBOX_CERTIFICATE_FILE_ARGS) \
    4604         $(VBOX_TOKEN_NAME_ARGS) \
    4605         $(VBOX_PIN_ARGS) \
    4606         -e "$(1)"
     4602        sign \
     4603        $(VBOX_CERTIFICATE_FILE_ARGS) \
     4604        $(VBOX_TOKEN_NAME_ARGS) \
     4605        $(VBOX_PIN_ARGS) \
     4606        -e "$(1)"
    46074607
    46084608  ## Commands for signing a driver image after link.
     
    46184618 endif
    46194619
    4620 #
    4621 # Complain if windows hardening is enabled but not code signing.
    4622 #
     4620 #
     4621 # Complain if windows hardening is enabled but not code signing.
     4622 #
    46234623else if "$(KBUILD_TARGET)" == "win" && defined(VBOX_WITH_HARDENING) && !defined(VBOX_ONLY_BUILD)
    46244624 $(error You need to enable code signing for a hardened windows build to work.)
     
    46484648# @param    2   The output file.
    46494649VBOX_EDIT_INF64_FN = $(SED) \
    4650         $(if $(VBOX_SIGNING_MODE),-e 's/^;cat  *//', -e '/^;cat /d')\
     4650        $(if $(VBOX_SIGNING_MODE),-e 's/^;cat  *//', -e '/^;cat /d') \
    46514651        -e 's/^;amd64  *//' \
    46524652        -e '/^;x86 /d' \
     
    46724672if defined(VBOX_SIGNING_MODE) && "$(KBUILD_TARGET)" == "win"
    46734673 if1of (quote, $(KMK_FEATURES))
    4674  VBOX_RE_SIGN_DLL_FN = $(if-expr !defined($(1)_VBOX_RE_SIGNED_$(3)$(qnotdir ,$(2))),\
    4675         $(evalcall VBOX_RE_SIGN_DLL_INTERNAL_FN,$1,$2,$3)\
    4676         ,)$($(1)_0_OUTDIR)/$(3)$(qnotdir ,$2)
     4674  VBOX_RE_SIGN_DLL_FN = $(if-expr !defined($(1)_VBOX_RE_SIGNED_$(3)$(qnotdir ,$(2))), \
     4675        $(evalcall VBOX_RE_SIGN_DLL_INTERNAL_FN,$1,$2,$3) \
     4676        ,)$($(1)_0_OUTDIR)/$(3)$(qnotdir ,$2)
    46774677
    46784678  define VBOX_RE_SIGN_DLL_INTERNAL_FN
    46794679   local n = $(3)$(qnotdir ,$2)
    46804680   ifndef $(1)_VBOX_RE_SIGNED_$(n)
    4681  $(1)_VBOX_RE_SIGNED_$(n) := 1
    4682  $(eval $(1)_CLEAN += $$($(1)_0_OUTDIR)/$(n))
    4683 
    4684  $$($(1)_0_OUTDIR)/$(n): $(2) $(VBOX_VERSION_STAMP) | $$(dir $$@) $(VBOX_SIGN_IMAGE_ORDERDEPS)
     4681    $(1)_VBOX_RE_SIGNED_$(n) := 1
     4682    $(eval $(1)_CLEAN += $$($(1)_0_OUTDIR)/$(n))
     4683
     4684    $$($(1)_0_OUTDIR)/$(n): $(2) $(VBOX_VERSION_STAMP) | $$(dir $$@) $(VBOX_SIGN_IMAGE_ORDERDEPS)
    46854685        $(call MSG_TOOL,SIGNTOOL,,$<,$@)
    46864686        $(RM) -f -- "$@"
     
    46954695
    46964696 else # old kmk: no quote feature
    4697 VBOX_RE_SIGN_DLL_FN = $(if-expr !defined($(1)_VBOX_RE_SIGNED_$(3)$(notdir $(2))),\
    4698         $(evalcall VBOX_RE_SIGN_DLL_INTERNAL_FN,$1,$2,$3)\
    4699         ,)$($(1)_0_OUTDIR)/$(3)$(notdir $2)
     4697  VBOX_RE_SIGN_DLL_FN = $(if-expr !defined($(1)_VBOX_RE_SIGNED_$(3)$(notdir $(2))), \
     4698        $(evalcall VBOX_RE_SIGN_DLL_INTERNAL_FN,$1,$2,$3) \
     4699        ,)$($(1)_0_OUTDIR)/$(3)$(notdir $2)
    47004700  define VBOX_RE_SIGN_DLL_INTERNAL_FN
    4701 local n = $(3)$(notdir $2)
    4702 ifndef $(1)_VBOX_RE_SIGNED_$(n)
    4703  $(1)_VBOX_RE_SIGNED_$(n) := 1
    4704  $(eval $(1)_CLEAN += $$($(1)_0_OUTDIR)/$(n))
    4705 
    4706  $$($(1)_0_OUTDIR)/$(n): $(2) $(VBOX_VERSION_STAMP) | $$(dir $$@) $(VBOX_SIGN_IMAGE_ORDERDEPS)
     4701   local n = $(3)$(notdir $2)
     4702   ifndef $(1)_VBOX_RE_SIGNED_$(n)
     4703    $(1)_VBOX_RE_SIGNED_$(n) := 1
     4704    $(eval $(1)_CLEAN += $$($(1)_0_OUTDIR)/$(n))
     4705
     4706    $$($(1)_0_OUTDIR)/$(n): $(2) $(VBOX_VERSION_STAMP) | $$(dir $$@) $(VBOX_SIGN_IMAGE_ORDERDEPS)
    47074707        $(call MSG_TOOL,SIGNTOOL,,$<,$@)
    47084708        $(RM) -f -- "$@"
     
    47134713                "$@"
    47144714        $(call VBOX_SIGN_IMAGE_FN,$@)
    4715 endif
     4715   endif
    47164716  endef # VBOX_RE_SIGN_DLL_INTERNAL_FN
    47174717 endif # old kmk: no quote feature
     
    47374737# @remarks     ASSUMES RCFLAGS isn't a simple variable (var := value).
    47384738define VBOX_SET_VER_INFO_INTERNAL
    4739 ifeq ($(KBUILD_TARGET),win)
    4740 $(1)_SOURCES.win += $(PATH_ROOT)/src/VBox/Artwork/win/$(4)
    4741 $(1)_RCFLAGS += /nologo /dIN_INTERNAL_NAME="\"$(1)\"" /dIN_FILE_DESCRIPTION="\"$(2)\"" \
    4742         /dIN_ORIGINAL_NAME="\"$(if $(6),$6,$$(notdir $$($(1)_1_INST_TARGET)))\"" \
    4743         $(if $(3), /dIN_ICON_FILE="\"$(subst \\,/,$(strip $(3)))\"") $(5)
    4744 $$$$($(1)_0_OUTDIR)/src/VBox/Artwork/win/$(basename $(4)).res: \
    4745         $(PATH_ROOT)/include/VBox/version.h $$$$(VBOX_VERSION_HEADER)
    4746 endif
     4739 ifeq ($(KBUILD_TARGET),win)
     4740  $(1)_SOURCES.win += $(PATH_ROOT)/src/VBox/Artwork/win/$(4)
     4741  $(1)_RCFLAGS += /nologo /dIN_INTERNAL_NAME="\"$(1)\"" /dIN_FILE_DESCRIPTION="\"$(2)\"" \
     4742        /dIN_ORIGINAL_NAME="\"$(if $(6),$6,$$(notdir $$($(1)_1_INST_TARGET)))\"" \
     4743        $(if $(3), /dIN_ICON_FILE="\"$(subst \\,/,$(strip $(3)))\"") $(5)
     4744  $$$$($(1)_0_OUTDIR)/src/VBox/Artwork/win/$(basename $(4)).res: \
     4745                $(PATH_ROOT)/include/VBox/version.h $$$$(VBOX_VERSION_HEADER)
     4746 endif
    47474747endef
    47484748
     
    48224822 VBOX_HAIKU_MIMESETTOOL := mimeset
    48234823
    4824   ## Add optional resources to the program, set its version info, and sniff its mime properties.
    4825   # @param 1  The file to add resources to.
    4826   # @param 2  The resource files.
    4827   # @param 3  The target name.
    4828 define VBOX_HAIKU_XRES_SETVER_FN
     4824 ## Add optional resources to the program, set its version info, and sniff its mime properties.
     4825 # @param 1  The file to add resources to.
     4826 # @param 2  The resource files.
     4827 # @param 3  The target name.
     4828 define VBOX_HAIKU_XRES_SETVER_FN
    48294829        $(if $(2),$(call MSG_TOOL,HaikuAddResources,$(3),$(2))
    48304830        $(QUIET)$(VBOX_HAIKU_XRESTOOL) -o $(1) $(2),)
     
    48364836        $(call MSG_TOOL,HaikuMimeSet,$(3))
    48374837        $(QUIET)$(VBOX_HAIKU_MIMESETTOOL) -f $(1)
    4838 endef
     4838 endef
    48394839
    48404840 VBOX_HAIKU_XRES_SETVER_CMDS  ?= $(if $(eq $(tool_do),LINK_PROGRAM),$(call VBOX_HAIKU_XRES_SETVER_FN,$(out),$($(target)_RSRCS),$(target)),)
     
    48464846VBOX_PREF_LIB =
    48474847if1of ($(KBUILD_TARGET), os2 win)
    4848 VBOX_SUFF_LIB = .lib
     4848 VBOX_SUFF_LIB = .lib
    48494849else
    4850 VBOX_SUFF_LIB = .a
     4850 VBOX_SUFF_LIB = .a
    48514851endif
    48524852if1of ($(KBUILD_HOST), os2 win)
    4853 VBOX_HOSTSUFF_LIB = .lib
     4853 VBOX_HOSTSUFF_LIB = .lib
    48544854else
    4855 VBOX_HOSTSUFF_LIB = .a
     4855 VBOX_HOSTSUFF_LIB = .a
    48564856endif
    48574857VBOX_SUFF_DLL = $(SUFF_DLL)
    48584858ifeq ($(KBUILD_TARGET),os2) # GXX3OMF produces out .o at the moment.
    4859 VBOX_SUFF_OBJ = .o
     4859 VBOX_SUFF_OBJ = .o
    48604860else
    4861 VBOX_SUFF_OBJ = $(SUFF_OBJ)
     4861 VBOX_SUFF_OBJ = $(SUFF_OBJ)
    48624862endif
    48634863VBOXW32GUEST_SUFF_LIB = .lib
     
    49134913SDK_VBoxOpenSslStatic_INCS                   ?= $(SDK_VBoxOpenSslStatic_VBOX_DEFAULT_INCS)
    49144914SDK_VBoxOpenSslStatic_ORDERDEPS              ?= $(crypto-headers_1_TARGET)
    4915 if  !defined(VBOX_ONLY_SDK) \
    4916  && (!defined(VBOX_ONLY_ADDITIONS) || !defined(VBOX_ONLY_ADDITIONS_WITHOUT_RTISOMAKER)) \
    4917  && (!defined(VBOX_ONLY_EXTPACKS) || !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS)) \
    4918  && ("$(SDK_VBoxOpenSslStatic_INCS)" == "$(SDK_VBoxOpenSslStatic_VBOX_DEFAULT_INCS)")
     4915if   !defined(VBOX_ONLY_SDK) \
     4916  && (!defined(VBOX_ONLY_ADDITIONS) || !defined(VBOX_ONLY_ADDITIONS_WITHOUT_RTISOMAKER)) \
     4917  && (!defined(VBOX_ONLY_EXTPACKS) || !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS)) \
     4918  && ("$(SDK_VBoxOpenSslStatic_INCS)" == "$(SDK_VBoxOpenSslStatic_VBOX_DEFAULT_INCS)")
    49194919 SDK_VBoxOpenSslStatic_DEPS                  ?= $(SDK_VBoxOpenSslStatic_INCS)/openssl/openssl-mangling.h
    49204920endif
     
    49384938 SDK_VBoxOpenSslBldProg_INCS          ?= $(SDK_VBoxOpenSslStatic_VBOX_DEFAULT_INCS)
    49394939 SDK_VBoxOpenSslBldProg_ORDERDEPS     ?= $(crypto-headers_1_TARGET)
    4940  if  !defined(VBOX_ONLY_SDK) \
    4941   && ("$(SDK_VBoxOpenSsl_INCS)" == "$(SDK_VBoxOpenSslStatic_VBOX_DEFAULT_INCS)")
     4940 if   !defined(VBOX_ONLY_SDK) \
     4941   && ("$(SDK_VBoxOpenSsl_INCS)" == "$(SDK_VBoxOpenSslStatic_VBOX_DEFAULT_INCS)")
    49424942  SDK_VBoxOpenSslBldProg_DEPS         ?= $(SDK_VBoxOpenSslStatic_INCS)/openssl/openssl-mangling.h
    49434943 endif
     
    49734973SDK_VBoxSoftFloatR3Shared_DEFS.arm64  := LITTLEENDIAN
    49744974SDK_VBoxSoftFloatR3Shared_DEFS.x86    := LITTLEENDIAN
    4975 if1of ($(KBUILD_TARGET),win)
     4975if1of ($(KBUILD_TARGET), win)
    49764976 SDK_VBoxSoftFloatR3Shared_DEFS       += THREAD_LOCAL=__declspec(thread)
    49774977else
     
    49854985SDK_VBoxSoftFloatR0           := SoftFloat 3 for ring-0 linking.
    49864986SDK_VBoxSoftFloatR0_DEFS      := SOFTFLOAT_FAST_INT64
    4987 SDK_VBoxSoftFloatR0_DEFS.amd64:= LITTLEENDIAN
    4988 SDK_VBoxSoftFloatR0_DEFS.arm64:= LITTLEENDIAN
     4987SDK_VBoxSoftFloatR0_DEFS.amd64 := LITTLEENDIAN
     4988SDK_VBoxSoftFloatR0_DEFS.arm64 := LITTLEENDIAN
    49894989SDK_VBoxSoftFloatR0_DEFS.x86  := LITTLEENDIAN
    49904990SDK_VBoxSoftFloatR0_INCS       = \
     
    49954995SDK_VBoxSoftFloatGuestR3Shared           := SoftFloat 3 for ring-0 linking.
    49964996SDK_VBoxSoftFloatGuestR3Shared_DEFS      := SOFTFLOAT_FAST_INT64
    4997 SDK_VBoxSoftFloatGuestR3Shared_DEFS.amd64:= LITTLEENDIAN
    4998 SDK_VBoxSoftFloatGuestR3Shared_DEFS.arm64:= LITTLEENDIAN
     4997SDK_VBoxSoftFloatGuestR3Shared_DEFS.amd64 := LITTLEENDIAN
     4998SDK_VBoxSoftFloatGuestR3Shared_DEFS.arm64 := LITTLEENDIAN
    49994999SDK_VBoxSoftFloatGuestR3Shared_DEFS.x86  := LITTLEENDIAN
    50005000SDK_VBoxSoftFloatGuestR3Shared_INCS       = \
     
    50085008 SDK_VBoxLibSsh                := libssh for dynamic dll loading with assembly stubs.
    50095009 SDK_VBoxLibSsh_INCS           ?= $(PATH_ROOT)/src/libs/libssh-0.9.6/include
    5010 # SDK_VBoxLibSsh_LIBS is not defined, as VBoxLibSsh dll is not linked, but loaded explicitly
    5011 # by auto-generated stub code (lazy loading)
     5010 # SDK_VBoxLibSsh_LIBS is not defined, as VBoxLibSsh dll is not linked, but loaded explicitly
     5011 # by auto-generated stub code (lazy loading)
    50125012endif
    50135013
     
    50545054SDK_VBoxZlibStatic_EXTENDS   := VBoxZlib
    50555055if1of ($(KBUILD_TARGET), os2 win) # Not required on solaris.
    5056  SDK_VBoxZlibStatic_LIBS        ?= $(PATH_STAGE_LIB)/VBox-zlib-static$(VBOX_SUFF_LIB)
     5056 SDK_VBoxZlibStatic_LIBS        ?= $(PATH_STAGE_LIB)/VBox-zlib-static$(VBOX_SUFF_LIB)
    50575057endif
    50585058
     
    50835083SDK_VBoxWinInt64Lib             := Abstracts where to find int64.lib for x86 builds.
    50845084ifn1of ($(VBOX_WINPSDK), WINPSDK71 WINPSDK80)
    5085  SDK_VBoxWinInt64Lib_LIBS.x86    = $(PATH_SDK_$(VBOX_WINPSDK)_LIB.x86)/int64.lib
     5085 SDK_VBoxWinInt64Lib_LIBS.x86    = $(PATH_SDK_$(VBOX_WINPSDK)_LIB.x86)/int64.lib
    50865086 ifeq ($(KBUILD_TARGET),win)
    50875087  include $(KBUILD_PATH)/sdks/$(VBOX_WINPSDK).kmk ## TODO: Add a kBuild feature for loading SDKs.
     
    51235123TOOL_VBoxTpG_DTRACE_DEPORD          = $(VBOX_VBOXTPG)
    51245124TOOL_VBoxTpG_DTRACE_HDR_FLAGS      := \
    5125                 -h --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
     5125        -h --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
    51265126define TOOL_VBoxTpG_DTRACE_HDR_CMDS
    51275127        $(QUIET)$(VBOX_VBOXTPG) $(if-expr $(intersects $(bld_trg_arch),$(KBUILD_ARCHES_64)),-64,-32) \
     
    52085208  endif
    52095209  TEMPLATE_VBoxRc_CFLAGS             = $(TEMPLATE_VBoxRc_CXXFLAGS)
    5210   TEMPLATE_VBoxRc_LDFLAGS            =  -Ignore:4197 \
     5210  TEMPLATE_VBoxRc_LDFLAGS            = -Ignore:4197 \
    52115211        -Driver -Subsystem:NATIVE -Incremental:NO -Align:64 -MapInfo:Exports -NoD $(VBOX_VCC_LD_WERR) -Release -Debug -Opt:Ref -Opt:Icf \
    52125212        -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     
    52235223
    52245224 ifeq ($(VBOX_LDR_FMT32),elf)
    5225  TEMPLATE_VBoxRc_TOOL                = $(VBOX_GCC32_TOOL)
    5226  TEMPLATE_VBoxRc_CXXFLAGS            = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
    5227  TEMPLATE_VBoxRc_CFLAGS              = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK)
     5225  TEMPLATE_VBoxRc_TOOL               = $(VBOX_GCC32_TOOL)
     5226  TEMPLATE_VBoxRc_CXXFLAGS           = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
     5227  TEMPLATE_VBoxRc_CFLAGS             = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK)
    52285228  if $(VBOX_GCC32_VERSION_CC) < 30400
    52295229   TEMPLATE_VBoxRc_DEFS             += RT_WITHOUT_PRAGMA_ONCE
     
    52385238  ifn1of ($(KBUILD_TARGET), solaris freebsd)
    52395239   TEMPLATE_VBoxRc_LIBS               = \
    5240         $(VBOX_GCC32_LIBGCC) # intrinsics
    5241   endif
    5242   if1of ($(KBUILD_TARGET),linux)
     5240        $(VBOX_GCC32_LIBGCC) # intrinsics
     5241  endif
     5242  if1of ($(KBUILD_TARGET), linux)
    52435243   TEMPLATE_VBoxRc_POST_CMDS         = $(if $(eq $(tool_do),LINK_SYSMOD),if readelf -S $(out)|grep -q "[cd]tors"; then echo "Found ctors/dtors in $(out)!"; exit 1; fi)
    52445244  endif
     
    52465246
    52475247 ifeq ($(VBOX_LDR_FMT32),macho)
    5248  TEMPLATE_VBoxRc_TOOL                = $(VBOX_GCC_TOOL)
    5249  TEMPLATE_VBoxRc_SDKS               += $(VBOX_DARWIN_DEF_SDK_SDKS)
    5250  TEMPLATE_VBoxRc_DEFS               += $(VBOX_DARWIN_DEF_SDK_DEFS)
    5251  TEMPLATE_VBoxRc_CXXFLAGS            = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-rtti $(VBOX_GCC_std)
    5252  TEMPLATE_VBoxRc_CFLAGS              = $(VBOX_DARWIN_DEF_SDK_CFLAGS)   -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing
    5253  TEMPLATE_VBoxRc_LDFLAGS             = $(VBOX_DARWIN_DEF_SDK_LDFLAGS)  -m32 -nostdlib
    5254  #TEMPLATE_VBoxRc_LDFLAGS.release     = -Wl,-S ???
     5248  TEMPLATE_VBoxRc_TOOL               = $(VBOX_GCC_TOOL)
     5249  TEMPLATE_VBoxRc_SDKS              += $(VBOX_DARWIN_DEF_SDK_SDKS)
     5250  TEMPLATE_VBoxRc_DEFS              += $(VBOX_DARWIN_DEF_SDK_DEFS)
     5251  TEMPLATE_VBoxRc_CXXFLAGS           = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-rtti $(VBOX_GCC_std)
     5252  TEMPLATE_VBoxRc_CFLAGS             = $(VBOX_DARWIN_DEF_SDK_CFLAGS)   -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing
     5253  TEMPLATE_VBoxRc_LDFLAGS            = $(VBOX_DARWIN_DEF_SDK_LDFLAGS)  -m32 -nostdlib
     5254  #TEMPLATE_VBoxRc_LDFLAGS.release     = -Wl,-S ???
    52555255 endif
    52565256
    52575257 ifeq ($(VBOX_LDR_FMT32),lx)
    5258  TEMPLATE_VBoxRc_TOOL                = GXX3OMF
     5258  TEMPLATE_VBoxRc_TOOL               = GXX3OMF
    52595259  if $(VBOX_GCC_VERSION_CC) < 30400
    52605260   TEMPLATE_VBoxRc_DEFS             += RT_WITHOUT_PRAGMA_ONCE
    52615261  endif
    5262  TEMPLATE_VBoxRc_CXXFLAGS            = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-exceptions -fno-rtti
    5263  TEMPLATE_VBoxRc_CFLAGS              = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC32_Wno-variadic-macros) $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-exceptions
    5264  TEMPLATE_VBoxRc_LDFLAGS             = -Zdll -nostdlib
    5265  TEMPLATE_VBoxRc_LIBS                = \
    5266         $(VBOX_GCC32_LIBGCC) \
    5267         $(VBOX_OBJ_SYS0) \
    5268         end
     5262  TEMPLATE_VBoxRc_CXXFLAGS           = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-exceptions -fno-rtti
     5263  TEMPLATE_VBoxRc_CFLAGS             = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC32_Wno-variadic-macros) $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-exceptions
     5264  TEMPLATE_VBoxRc_LDFLAGS            = -Zdll -nostdlib
     5265  TEMPLATE_VBoxRc_LIBS               = \
     5266        $(VBOX_GCC32_LIBGCC) \
     5267        $(VBOX_OBJ_SYS0) \
     5268        end
    52695269 endif
    52705270
     
    53465346
    53475347ifeq ($(VBOX_LDR_FMT),pe)
    5348 TEMPLATE_VBoxR0_TOOL                = $(VBOX_VCC_TOOL)
    5349 TEMPLATE_VBoxR0_RCDEFS              = VBOX_SVN_REV=$(VBOX_SVN_REV) VBOX_SVN_REV_MOD_5K=$(expr $(VBOX_SVN_REV) % 50000)
    5350 TEMPLATE_VBoxR0_CXXFLAGS            = -Zi -Zl -GR- -EHs- -GF -GS- -Zc:wchar_t- $(VBOX_VCC_OPT) $(VBOX_VCC_FP) \
    5351         -Gy $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_std) $(VBOX_VCC_WARN_ALL) -wd4505 $(VBOX_VCC_WERR)
     5348 TEMPLATE_VBoxR0_TOOL               = $(VBOX_VCC_TOOL)
     5349 TEMPLATE_VBoxR0_RCDEFS             = VBOX_SVN_REV=$(VBOX_SVN_REV) VBOX_SVN_REV_MOD_5K=$(expr $(VBOX_SVN_REV) % 50000)
     5350 TEMPLATE_VBoxR0_CXXFLAGS           = -Zi -Zl -GR- -EHs- -GF -GS- -Zc:wchar_t- $(VBOX_VCC_OPT) $(VBOX_VCC_FP) \
     5351        -Gy $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_std) $(VBOX_VCC_WARN_ALL) -wd4505 $(VBOX_VCC_WERR)
    53525352 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC120"
    5353 TEMPLATE_VBoxR0_CXXFLAGS           += -Gw
     5353  TEMPLATE_VBoxR0_CXXFLAGS         += -Gw
    53545354 endif
    53555355 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" # Don't waste space on x86/amd64-on-arm emulation optimizations.
    5356 TEMPLATE_VBoxR0_CXXFLAGS           += /volatileMetadata-
     5356  TEMPLATE_VBoxR0_CXXFLAGS         += /volatileMetadata-
    53575357 endif
    53585358 ifdef VBOX_WITH_MSC_ANALYZE_THIS
    5359 TEMPLATE_VBoxR0_CXXFLAGS           += /analyze
    5360  endif
    5361 TEMPLATE_VBoxR0_CFLAGS              = $(filter-out $(VBOX_VCC_std),$(TEMPLATE_VBoxR0_CXXFLAGS))
    5362 TEMPLATE_VBoxR0_LDFLAGS             = -Ignore:4197 \
    5363         -Driver -Subsystem:NATIVE -Incremental:NO -Align:4096 -MapInfo:Exports -NoD $(VBOX_VCC_LD_WERR) \
    5364         -Release -Debug -Opt:Ref -Opt:Icf $(VBOX_VCC_LD_GUARD_CF) \
    5365         -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
    5366         -Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com
     5359  TEMPLATE_VBoxR0_CXXFLAGS         += /analyze
     5360 endif
     5361 TEMPLATE_VBoxR0_CFLAGS             = $(filter-out $(VBOX_VCC_std),$(TEMPLATE_VBoxR0_CXXFLAGS))
     5362 TEMPLATE_VBoxR0_LDFLAGS            = -Ignore:4197 \
     5363        -Driver -Subsystem:NATIVE -Incremental:NO -Align:4096 -MapInfo:Exports -NoD $(VBOX_VCC_LD_WERR) \
     5364        -Release -Debug -Opt:Ref -Opt:Icf $(VBOX_VCC_LD_GUARD_CF) \
     5365        -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     5366        -Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com
    53675367 ifdef VBOX_WITH_DTRACE_R0
    5368 TEMPLATE_VBoxR0_LDFLAGS            += -Merge:VTGPrLc.Data=VTGPrLc.Begin -Merge:VTGPrLc.End=VTGPrLc.Begin -Merge:VTGPrLc.Begin=VTGObj
     5368  TEMPLATE_VBoxR0_LDFLAGS          += -Merge:VTGPrLc.Data=VTGPrLc.Begin -Merge:VTGPrLc.End=VTGPrLc.Begin -Merge:VTGPrLc.Begin=VTGObj
    53695369 endif
    53705370 ifdef VBOX_SIGNING_MODE
    5371 TEMPLATE_VBoxR0_LDFLAGS            += -IntegrityCheck
     5371  TEMPLATE_VBoxR0_LDFLAGS          += -IntegrityCheck
    53725372 endif
    53735373 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" # Don't waste space on x86/amd64-on-arm emulation optimizations.
    5374 TEMPLATE_VBoxR0_LDFLAGS            += -EmitVolatileMetadata:NO
    5375  endif
    5376 TEMPLATE_VBoxR0_LDFLAGS.win.amd64   = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA)
     5374  TEMPLATE_VBoxR0_LDFLAGS          += -EmitVolatileMetadata:NO
     5375 endif
     5376 TEMPLATE_VBoxR0_LDFLAGS.win.amd64  = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA)
    53775377 ifneq ($(VBOX_VCC_CC_GUARD_CF),)
    5378 TEMPLATE_VBoxR0_LDFLAGS.win.amd64 += -Include:__security_init_cookie  -Export:ModuleInitSecurityCookie=__security_init_cookie
    5379 TEMPLATE_VBoxR0_LDFLAGS.win.x86    += -Include:___security_init_cookie -Export:ModuleInitSecurityCookie=__security_init_cookie
    5380  endif
    5381 TEMPLATE_VBoxR0_LIBS                = \
    5382         $(PATH_STAGE_LIB)/RuntimeR0Stub$(VBOX_SUFF_LIB)
     5378  TEMPLATE_VBoxR0_LDFLAGS.win.amd64 += -Include:__security_init_cookie  -Export:ModuleInitSecurityCookie=__security_init_cookie
     5379  TEMPLATE_VBoxR0_LDFLAGS.win.x86  += -Include:___security_init_cookie -Export:ModuleInitSecurityCookie=__security_init_cookie
     5380 endif
     5381 TEMPLATE_VBoxR0_LIBS               = \
     5382        $(PATH_STAGE_LIB)/RuntimeR0Stub$(VBOX_SUFF_LIB)
    53835383 ifneq ($(VBOX_VCC_CC_GUARD_CF),)
    5384 TEMPLATE_VBoxR0_LIBS               += \
    5385         $(PATH_SDK_$(VBOX_WINDDK)_LIB)/BufferOverflowK.lib
     5384  TEMPLATE_VBoxR0_LIBS             += \
     5385        $(PATH_SDK_$(VBOX_WINDDK)_LIB)/BufferOverflowK.lib
    53865386  include $(KBUILD_PATH)/sdks/$(VBOX_WINDDK).kmk ## TODO: Add a kBuild feature for loading SDKs.
    53875387 endif
    5388 TEMPLATE_VBoxR0_SDKS.x86           += VBoxWinInt64Lib
    5389 TEMPLATE_VBoxR0_ORDERDEPS           = $(VBOX_SIGN_DRIVER_ORDERDEPS)
    5390 TEMPLATE_VBoxR0_POST_CMDS           = $(VBOX_SIGN_DRIVER_CMDS)
     5388 TEMPLATE_VBoxR0_SDKS.x86          += VBoxWinInt64Lib
     5389 TEMPLATE_VBoxR0_ORDERDEPS          = $(VBOX_SIGN_DRIVER_ORDERDEPS)
     5390 TEMPLATE_VBoxR0_POST_CMDS          = $(VBOX_SIGN_DRIVER_CMDS)
    53915391endif # pe
    53925392
    53935393ifeq ($(VBOX_LDR_FMT),elf)
    5394 TEMPLATE_VBoxR0_TOOL                = $(VBOX_GCC_TOOL)
    5395 TEMPLATE_VBoxR0_CFLAGS              = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) \
    5396         $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
    5397         $(VBOX_GCC_fno-stack-protector) -fno-common -ffreestanding $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
    5398 TEMPLATE_VBoxR0_CXXFLAGS            = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) \
    5399         $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
    5400         $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
    5401         -fno-rtti $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK)
     5394 TEMPLATE_VBoxR0_TOOL               = $(VBOX_GCC_TOOL)
     5395 TEMPLATE_VBoxR0_CFLAGS             = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) \
     5396        $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
     5397        $(VBOX_GCC_fno-stack-protector) -fno-common -ffreestanding $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
     5398 TEMPLATE_VBoxR0_CXXFLAGS           = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) \
     5399        $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
     5400        $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
     5401        -fno-rtti $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK)
    54025402 if $(VBOX_GCC_VERSION_CC) >= 40500 # 4.1.2 complains, 4.5.2 is okay, didn't check which version inbetween made it okay with g++.
    5403 TEMPLATE_VBoxR0_CXXFLAGS           += -ffreestanding
    5404  endif
    5405 TEMPLATE_VBoxR0_CFLAGS.amd64        = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables -ffreestanding
    5406 TEMPLATE_VBoxR0_CXXFLAGS.amd64      = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables
    5407 TEMPLATE_VBoxR0_CXXFLAGS.freebsd    = -ffreestanding
     5403  TEMPLATE_VBoxR0_CXXFLAGS         += -ffreestanding
     5404 endif
     5405 TEMPLATE_VBoxR0_CFLAGS.amd64       = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables -ffreestanding
     5406 TEMPLATE_VBoxR0_CXXFLAGS.amd64     = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables
     5407 TEMPLATE_VBoxR0_CXXFLAGS.freebsd   = -ffreestanding
    54085408 if $(VBOX_GCC_VERSION_CC) < 30400
    5409 TEMPLATE_VBoxR0_DEFS               += RT_WITHOUT_PRAGMA_ONCE
     5409  TEMPLATE_VBoxR0_DEFS             += RT_WITHOUT_PRAGMA_ONCE
    54105410 endif
    54115411 ifeq ($(KBUILD_TARGET),solaris)
    5412 TEMPLATE_VBoxR0_LDFLAGS             = -r
    5413 TEMPLATE_VBoxR0_LDFLAGS.solaris     = -u _init -u _info
    5414 TEMPLATE_VBoxR0_LDFLAGS.solaris.amd64 = -m64
    5415 TEMPLATE_VBoxR0_LDFLAGS.solaris.x86  = -m32
    5416 TEMPLATE_VBoxR0_LIBS.solaris        = \
    5417         $(PATH_STAGE_LIB)/RuntimeR0Stub$(VBOX_SUFF_LIB)
     5412  TEMPLATE_VBoxR0_LDFLAGS           = -r
     5413  TEMPLATE_VBoxR0_LDFLAGS.solaris   = -u _init -u _info
     5414  TEMPLATE_VBoxR0_LDFLAGS.solaris.amd64 = -m64
     5415  TEMPLATE_VBoxR0_LDFLAGS.solaris.x86 = -m32
     5416  TEMPLATE_VBoxR0_LIBS.solaris      = \
     5417        $(PATH_STAGE_LIB)/RuntimeR0Stub$(VBOX_SUFF_LIB)
    54185418  ifdef VBOX_GCC_USING_SOLARIS_AS
    5419 TEMPLATE_VBoxR0_CFLAGS.amd64       += -Wa,-xmodel=kernel
    5420 TEMPLATE_VBoxR0_CXXFLAGS.amd64     += -Wa,-xmodel=kernel
    5421   endif
    5422  # Solaris driver signing.
    5423 TEMPLATE_VBoxR0_POST_CMDS           = $(VBOX_SIGN_DRIVER_CMDS)
     5419   TEMPLATE_VBoxR0_CFLAGS.amd64    += -Wa,-xmodel=kernel
     5420   TEMPLATE_VBoxR0_CXXFLAGS.amd64  += -Wa,-xmodel=kernel
     5421  endif
     5422  # Solaris driver signing.
     5423  TEMPLATE_VBoxR0_POST_CMDS         = $(VBOX_SIGN_DRIVER_CMDS)
    54245424 else
    5425 TEMPLATE_VBoxR0_LDFLAGS             = -nostdlib -Bsymbolic -g
    5426  ## @todo WTF doesn't the globals work? Debug info is supposed to be split everywhere. GRR
    5427 TEMPLATE_VBoxR0_LD_DEBUG            = split
     5425  TEMPLATE_VBoxR0_LDFLAGS           = -nostdlib -Bsymbolic -g
     5426  ## @todo WTF doesn't the globals work? Debug info is supposed to be split everywhere. GRR
     5427  TEMPLATE_VBoxR0_LD_DEBUG          = split
    54285428 endif
    54295429 if "$(KBUILD_TARGET)" == "linux" && !defined(VBOX_WITH_KMOD_WRAPPED_R0_MODS)
    5430 VBOX_WITH_VBOXR0_AS_DLL = 1
    5431 TEMPLATE_VBoxR0_DLLSUFF             = .r0
    5432 TEMPLATE_VBoxR0_CFLAGS             += -fPIC
    5433 TEMPLATE_VBoxR0_CXXFLAGS           += -fPIC
    5434 TEMPLATE_VBoxR0_LDFLAGS            +=
    5435 TEMPLATE_VBoxR0_DTRACE_HDR_FLAGS  += --pic
    5436 TEMPLATE_VBoxR0_DTRACE_OBJ_FLAGS  += --pic
     5430  VBOX_WITH_VBOXR0_AS_DLL = 1
     5431  TEMPLATE_VBoxR0_DLLSUFF           = .r0
     5432  TEMPLATE_VBoxR0_CFLAGS           += -fPIC
     5433  TEMPLATE_VBoxR0_CXXFLAGS         += -fPIC
     5434  TEMPLATE_VBoxR0_LDFLAGS          +=
     5435  TEMPLATE_VBoxR0_DTRACE_HDR_FLAGS += --pic
     5436  TEMPLATE_VBoxR0_DTRACE_OBJ_FLAGS += --pic
    54375437 else
    5438 TEMPLATE_VBoxR0_CFLAGS.amd64       += -mcmodel=kernel
    5439 TEMPLATE_VBoxR0_CXXFLAGS.amd64     += -mcmodel=kernel
     5438  TEMPLATE_VBoxR0_CFLAGS.amd64     += -mcmodel=kernel
     5439  TEMPLATE_VBoxR0_CXXFLAGS.amd64   += -mcmodel=kernel
    54405440 endif
    54415441 ifdef VBOX_WITH_KMOD_WRAPPED_R0_MODS # For BTF/pahold issue we use -g1
    5442 TEMPLATE_VBoxR0_DEFS               += VBOX_WITH_KMOD_WRAPPED_R0_MODS
    5443 TEMPLATE_VBoxR0_LDFLAGS.linux      += $(PATH_ROOT)/src/VBox/HostDrivers/Support/linux/VBoxR0-wrapped.lds
    5444 TEMPLATE_VBoxR0_LNK_DEPS.linux     += $(PATH_ROOT)/src/VBox/HostDrivers/Support/linux/VBoxR0-wrapped.lds
    5445 TEMPLATE_VBoxR0_CFLAGS.linux       += -g1
    5446 TEMPLATE_VBoxR0_CXXFLAGS.linux     += -g1
    5447  endif
    5448  ifn1of ($(KBUILD_TARGET),solaris freebsd)
     5442  TEMPLATE_VBoxR0_DEFS             += VBOX_WITH_KMOD_WRAPPED_R0_MODS
     5443  TEMPLATE_VBoxR0_LDFLAGS.linux    += $(PATH_ROOT)/src/VBox/HostDrivers/Support/linux/VBoxR0-wrapped.lds
     5444  TEMPLATE_VBoxR0_LNK_DEPS.linux   += $(PATH_ROOT)/src/VBox/HostDrivers/Support/linux/VBoxR0-wrapped.lds
     5445  TEMPLATE_VBoxR0_CFLAGS.linux     += -g1
     5446  TEMPLATE_VBoxR0_CXXFLAGS.linux   += -g1
     5447 endif
     5448 ifn1of ($(KBUILD_TARGET), solaris freebsd)
     5449  TEMPLATE_VBoxR0_LIBS              = \
     5450        $(VBOX_GCC_LIBGCC) # intrinsics
     5451 endif
     5452 if1of ($(KBUILD_TARGET), linux)
     5453  TEMPLATE_VBoxR0_POST_CMDS        += $(NLTAB) \
     5454        $(if $(eq $(tool_do),LINK_SYSMOD),if readelf -S $(out)|grep -q "[cd]tors"; then echo "Found ctors/dtors in $(out)!"; exit 1; fi)
     5455 endif
     5456endif # elf
     5457
     5458ifeq ($(VBOX_LDR_FMT),macho)
     5459 TEMPLATE_VBoxR0_TOOL               = $(VBOX_GCC_TOOL)
     5460 TEMPLATE_VBoxR0_SDKS              += $(VBOX_DARWIN_DEF_SDK_SDKS)
     5461 TEMPLATE_VBoxR0_DEFS              += $(VBOX_DARWIN_DEF_SDK_DEFS)
     5462 TEMPLATE_VBoxR0_CXXFLAGS           = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) \
     5463        -fno-common -static -fno-rtti -fno-exceptions $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing \
     5464        $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_std)
     5465 TEMPLATE_VBoxR0_CXXFLAGS.amd64     = -m64 -msoft-float -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-red-zone -mno-sse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2  -mno-sse4a -fno-unwind-tables
     5466 TEMPLATE_VBoxR0_CXXFLAGS.x86       = -m32 -msoft-float -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
     5467 TEMPLATE_VBoxR0_CXXFLAGS.arm64     = -m64 -target arm64e-apple-macos11.0 # Assembly fixup issues w/o the -target bit. Why?
     5468 TEMPLATE_VBoxR0_CFLAGS             = $(VBOX_DARWIN_DEF_SDK_CFLAGS)   -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) \
     5469        -fno-common -static -fno-exceptions $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing \
     5470        $(VBOX_GCC_fno-stack-protector)
     5471 TEMPLATE_VBoxR0_CFLAGS.amd64       = -m64 -msoft-float -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-red-zone -mno-sse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2  -mno-sse4a -fno-unwind-tables
     5472 TEMPLATE_VBoxR0_CFLAGS.x86         = -m32 -msoft-float -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
     5473 TEMPLATE_VBoxR0_CFLAGS.arm64       = -m64 -target arm64e-apple-macos11.0
     5474 TEMPLATE_VBoxR0_LDFLAGS            = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -nostdlib
     5475 TEMPLATE_VBoxR0_LDFLAGS.amd64      = -m64 -static
     5476 TEMPLATE_VBoxR0_LDFLAGS.arm64      = -m64 -static
     5477 TEMPLATE_VBoxR0_LDFLAGS.x86        = -m32
     5478 TEMPLATE_VBoxR0_CXXFLAGS.amd64    += -mkernel
     5479 TEMPLATE_VBoxR0_CFLAGS.amd64      += -mkernel
     5480 TEMPLATE_VBoxR0_CXXFLAGS.arm64    += -mkernel
     5481 TEMPLATE_VBoxR0_CFLAGS.arm64      += -mkernel
     5482 TEMPLATE_VBoxR0_LDFLAGS           += -Wl,-kext -mkernel
     5483 TEMPLATE_VBoxR0_POST_CMDS          = $(if $(eq $(tool_do),LINK_LIBRARY),,$(call VBOX_SIGN_VMM_MOD_FN,$(out),org.virtualbox.app.r0.$(target)))
     5484endif
     5485
     5486ifeq ($(VBOX_LDR_FMT),lx)
     5487 TEMPLATE_VBoxR0_TOOL               = GXX3OMF
     5488 TEMPLATE_VBoxR0_CFLAGS             = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions -fno-common
     5489 TEMPLATE_VBoxR0_CXXFLAGS           = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions -fno-common -fno-rtti
     5490 if $(VBOX_GCC_VERSION_CC) < 30400
     5491  TEMPLATE_VBoxR0_DEFS             += RT_WITHOUT_PRAGMA_ONCE
     5492 endif
     5493 TEMPLATE_VBoxR0_LDFLAGS            = -nostdlib -Zdll
    54495494 TEMPLATE_VBoxR0_LIBS               = \
    5450         $(VBOX_GCC_LIBGCC) # intrinsics
    5451  endif
    5452  if1of ($(KBUILD_TARGET),linux)
    5453  TEMPLATE_VBoxR0_POST_CMDS         += $(NLTAB)\
    5454         $(if $(eq $(tool_do),LINK_SYSMOD),if readelf -S $(out)|grep -q "[cd]tors"; then echo "Found ctors/dtors in $(out)!"; exit 1; fi)
    5455  endif
    5456 endif # elf
    5457 
    5458 ifeq ($(VBOX_LDR_FMT),macho)
    5459 TEMPLATE_VBoxR0_TOOL                = $(VBOX_GCC_TOOL)
    5460 TEMPLATE_VBoxR0_SDKS               += $(VBOX_DARWIN_DEF_SDK_SDKS)
    5461 TEMPLATE_VBoxR0_DEFS               += $(VBOX_DARWIN_DEF_SDK_DEFS)
    5462 TEMPLATE_VBoxR0_CXXFLAGS            = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) \
    5463         -fno-common -static -fno-rtti -fno-exceptions $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing \
    5464          $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_std)
    5465 TEMPLATE_VBoxR0_CXXFLAGS.amd64      = -m64 -msoft-float -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-red-zone -mno-sse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2  -mno-sse4a -fno-unwind-tables
    5466 TEMPLATE_VBoxR0_CXXFLAGS.x86        = -m32 -msoft-float -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
    5467 TEMPLATE_VBoxR0_CXXFLAGS.arm64      = -m64 -target arm64e-apple-macos11.0 # Assembly fixup issues w/o the -target bit. Why?
    5468 TEMPLATE_VBoxR0_CFLAGS              = $(VBOX_DARWIN_DEF_SDK_CFLAGS)   -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) \
    5469         -fno-common -static -fno-exceptions $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing \
    5470         $(VBOX_GCC_fno-stack-protector)
    5471 TEMPLATE_VBoxR0_CFLAGS.amd64        = -m64 -msoft-float -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-red-zone -mno-sse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2  -mno-sse4a -fno-unwind-tables
    5472 TEMPLATE_VBoxR0_CFLAGS.x86          = -m32 -msoft-float -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
    5473 TEMPLATE_VBoxR0_CFLAGS.arm64        = -m64 -target arm64e-apple-macos11.0
    5474 TEMPLATE_VBoxR0_LDFLAGS             = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -nostdlib
    5475 TEMPLATE_VBoxR0_LDFLAGS.amd64       = -m64 -static
    5476 TEMPLATE_VBoxR0_LDFLAGS.arm64       = -m64 -static
    5477 TEMPLATE_VBoxR0_LDFLAGS.x86         = -m32
    5478 TEMPLATE_VBoxR0_CXXFLAGS.amd64     += -mkernel
    5479 TEMPLATE_VBoxR0_CFLAGS.amd64       += -mkernel
    5480 TEMPLATE_VBoxR0_CXXFLAGS.arm64     += -mkernel
    5481 TEMPLATE_VBoxR0_CFLAGS.arm64       += -mkernel
    5482 TEMPLATE_VBoxR0_LDFLAGS            += -Wl,-kext -mkernel
    5483 TEMPLATE_VBoxR0_POST_CMDS           = $(if $(eq $(tool_do),LINK_LIBRARY),,$(call VBOX_SIGN_VMM_MOD_FN,$(out),org.virtualbox.app.r0.$(target)))
    5484 endif
    5485 
    5486 ifeq ($(VBOX_LDR_FMT),lx)
    5487 TEMPLATE_VBoxR0_TOOL                = GXX3OMF
    5488 TEMPLATE_VBoxR0_CFLAGS              = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions -fno-common
    5489 TEMPLATE_VBoxR0_CXXFLAGS            = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions -fno-common -fno-rtti
    5490  if $(VBOX_GCC_VERSION_CC) < 30400
    5491 TEMPLATE_VBoxR0_DEFS               += RT_WITHOUT_PRAGMA_ONCE
    5492  endif
    5493 TEMPLATE_VBoxR0_LDFLAGS             = -nostdlib -Zdll
    5494 TEMPLATE_VBoxR0_LIBS                = \
    5495         $(VBOX_GCC_LIBGCC) \
    5496         $(VBOX_OBJ_SYS0) \
    5497         end
     5495        $(VBOX_GCC_LIBGCC) \
     5496        $(VBOX_OBJ_SYS0) \
     5497        end
    54985498endif
    54995499
     
    55425542 TEMPLATE_VBoxR0Drv_DEFS.win           = IPRT_NT_MAP_TO_ZW
    55435543 TEMPLATE_VBoxR0Drv_CXXFLAGS           = -Zi -Zl -GR- -EHs- -GF -Gz -GS- -Zc:wchar_t- $(VBOX_VCC_FP) -Gs4096 $(VBOX_VCC_OPT) \
    5544         -Gy $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_WARN_ALL) $(VBOX_VCC_WERR)
     5544        -Gy $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_WARN_ALL) $(VBOX_VCC_WERR)
    55455545 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC120"
    55465546  TEMPLATE_VBoxR0Drv_CXXFLAGS         += -Gw
     
    55565556        -Driver -Subsystem:NATIVE -Incremental:NO -Align:4096 -MapInfo:Exports -NoD -Release -Debug -Opt:Ref -Opt:Icf \
    55575557        $(VBOX_VCC_LD_GUARD_CF) \
    5558         -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
    5559         -Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com
     5558        -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     5559        -Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com
    55605560 ifdef VBOX_WITH_DTRACE_R0DRV
    55615561  TEMPLATE_VBoxR0Drv_LDFLAGS          += -Merge:VTGPrLc.Data=VTGPrLc.Begin -Merge:VTGPrLc.End=VTGPrLc.Begin -Merge:VTGPrLc.Begin=VTGObj
     
    56025602 ##
    56035603 if   defined(VBOX_WITH_TESTCASES) \
    5604   && "$(KBUILD_HOST)" == "linux" \
    5605   && "$(KBUILD_HOST_ARCH)" == "$(KBUILD_TARGET_ARCH)" \
    5606   && !defined(VBOX_WITHOUT_LINUX_TEST_BUILDS) \
    5607   && !defined(VBOX_ONLY_SDK) \
    5608   && !defined(VBOX_ONLY_DOCS) \
    5609   && !defined(VBOX_ONLY_VALIDATIONKIT)
     5604   && "$(KBUILD_HOST)" == "linux" \
     5605   && "$(KBUILD_HOST_ARCH)" == "$(KBUILD_TARGET_ARCH)" \
     5606   && !defined(VBOX_WITHOUT_LINUX_TEST_BUILDS) \
     5607   && !defined(VBOX_ONLY_SDK) \
     5608   && !defined(VBOX_ONLY_DOCS) \
     5609   && !defined(VBOX_ONLY_VALIDATIONKIT)
    56105610  define VBOX_LINUX_KMOD_TEST_BUILD_RULE_FN
    56115611   ifneq ($(KERN_DIR),)
    5612 TESTING      += $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run
    5613 OTHERS       += $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run
    5614 OTHERS_CLEAN += $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run
    5615 $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run: \
    5616                 $$(if $(2),$$(PATH_TARGET)/tst$(2)$(subst /,_,$(KERN_DIR))_mod.run,) \
    5617                 $$$$($(1)_2_STAGE_TARGETS)
     5612    TESTING  += $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run
     5613    OTHERS   += $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run
     5614    OTHERS_CLEAN += $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run
     5615    $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run: \
     5616                $$(if $(2),$$(PATH_TARGET)/tst$(2)$(subst /,_,$(KERN_DIR))_mod.run,) \
     5617                $$$$($(1)_2_STAGE_TARGETS)
    56185618        $(QUIET)$$(call MSG_L1,Doing a test build of the $(1) kernel module)
    56195619        $(QUIET)$$(RM) -f    -- "$$@"
     
    56275627                BUILD_TYPE= BUILD_TARGET= BUILD_TARGET_ARCH= BUILD_TARGET_CPU= BUILD_PLATFORM= BUILD_PLATFORM_ARCH= BUILD_PLATFORM_CPU= \
    56285628                -C $$(PATH_TARGET)/tst$(1)_mod clean
    5629    ifneq ($(2),)
     5629    ifneq ($(2),)
    56305630        $(QUIET)$$(CP) -f    -- "$$<" "$$(PATH_TARGET)/tst$(1)_mod/Module.symvers"
    5631    endif
     5631    endif
    56325632        + $(QUIET)$(REDIRECT_EXT) -d2=1 -w1 "$$(PATH_TARGET)/tst$(1)_mod/make.err" -- \
    56335633                make KBUILD_VERBOSE=$(KBUILD_VERBOSE) KERN_DIR=$(KERN_DIR) VBOX_KERN_QUIET=1 $(if $(2),KBUILD_EXTRA_SYMBOLS="$$(PATH_TARGET)/tst$(1)_mod/Module.symvers",) $(if-expr $(KMK_OPTS_JOBS) != 0,JOBS=$(KMK_OPTS_JOBS),) \
     
    56385638        $(CAT) "$$(PATH_TARGET)/tst$(1)_mod/make.err"
    56395639        $(QUIET)! grep "^WARNING: .* undefined!$$$$" "$$(PATH_TARGET)/tst$(1)_mod/make.err"
    5640    if1of ($(USERNAME), bird)
     5640    if1of ($(USERNAME), bird)
    56415641        - nm -u "$$(PATH_TARGET)/tst$(1)_mod/"*.ko | sort
     5642    endif
     5643    ifneq ($(3),)
     5644        $(QUIET)$$(CP) -f    -- "$$(PATH_TARGET)/tst$(1)_mod/Module.symvers" "$$@"
     5645    else
     5646        $(QUIET)$$(APPEND) -t "$$@" "done"
     5647    endif
     5648        $(QUIET)$$(RM) -Rf   -- "$$(PATH_TARGET)/tst$(1)_mod"
     5649    vbox-linux-kmod-test-builds: $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run
     5650    $$(foreach src,$$(notdir $$(filter %.c,$$(subst =>,/,$$($(1)_SOURCES)))),$$(patsubst %.c,%.o,$$(src))): $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run
    56425651   endif
    5643    ifneq ($(3),)
    5644         $(QUIET)$$(CP) -f    -- "$$(PATH_TARGET)/tst$(1)_mod/Module.symvers" "$$@"
    5645    else
    5646         $(QUIET)$$(APPEND) -t "$$@" "done"
    5647    endif
    5648         $(QUIET)$$(RM) -Rf   -- "$$(PATH_TARGET)/tst$(1)_mod"
    5649 vbox-linux-kmod-test-builds: $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run
    5650 $$(foreach src,$$(notdir $$(filter %.c,$$(subst =>,/,$$($(1)_SOURCES)))),$$(patsubst %.c,%.o,$$(src))): $$(PATH_TARGET)/tst$(1)$(subst /,_,$(KERN_DIR))_mod.run
    5651   endif
    5652  endef # VBOX_LINUX_KMOD_TEST_BUILD_RULE_FN
     5652  endef # VBOX_LINUX_KMOD_TEST_BUILD_RULE_FN
    56535653 else
    56545654  VBOX_LINUX_KMOD_TEST_BUILD_RULE_FN =
    56555655 endif
    56565656else
    5657   VBOX_LINUX_KMOD_TEST_BUILD_RULE_FN =
     5657 VBOX_LINUX_KMOD_TEST_BUILD_RULE_FN =
    56585658endif # linux target
    56595659
    56605660ifeq ($(KBUILD_TARGET),os2)
    56615661 ifndef VBOX_USE_WATCOM_FOR_OS2
    5662 TEMPLATE_VBoxR0Drv_TOOL                = GXX3OMF
    5663 TEMPLATE_VBoxR0Drv_CXXFLAGS            = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions -fno-rtti
    5664 TEMPLATE_VBoxR0Drv_CFLAGS              = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions
    5665 TEMPLATE_VBoxR0Drv_LIBS                = $(VBOX_GCC_LIBGCC)
    5666 # wlink thinks physdevice doesn't need fixups and should have a stack - stupid!
    5667 TEMPLATE_VBoxR0Drv_LDFLAGS             = -Zlinker Option -Zlinker internalrelocs, -Zlinker togglerelocs
    5668   else
    5669 TEMPLATE_VBoxR0Drv_TOOL     = OPENWATCOM
    5670 TEMPLATE_VBoxR0Drv_CTOOL    = OPENWATCOM
    5671 TEMPLATE_VBoxR0Drv_CXXTOOL = OPENWATCOM
    5672 TEMPLATE_VBoxR0Drv_LDTOOL  = OPENWATCOM-WL
    5673 TEMPLATE_VBoxR0Drv_ARTOOL  = OPENWATCOM
    5674 TEMPLATE_VBoxR0Drv_ASTOOL  = NASM
    5675 TEMPLATE_VBoxR0Drv_ASFLAGS = -fobj -DASM_FORMAT_OMF -D__NASM__ -w+orphan-labels #-g -F borland
    5676 TEMPLATE_VBoxR0Drv_DEFS.os2 = #_OS2EMX_H
    5677 TEMPLATE_VBoxR0Drv_INCS     = \
    5678         $(PATH_TOOL_OPENWATCOM)/h \
    5679         $(PATH_TOOL_OPENWATCOM)/h/os2 \
    5680         $(PATH_ROOT)/include \
    5681         $(PATH_KLIBC_TRUNK)/libc/include # for os2ddk
    5682 TEMPLATE_VBoxR0Drv_CFLAGS  = -s -ze -w4 -hd -d1+ -nt=TEXT32 -nc=CODE -4 -of+
    5683 TEMPLATE_VBoxR0Drv_CXXFLAGS = -s -ze -w4 -hd -d2t -nt=TEXT32 -nc=CODE -4 -of+
    5684 TEMPLATE_VBoxR0Drv_LDFLAGS = \
    5685         form os2 lx physdevice \
    5686         option NODefaultlibs, internalrelocs, togglerelocs \
    5687         debug dwarf all #option symfile
    5688 #       debug codeview all option symfile - wlink generates bad info, overwritten mod dir header.
     5662  TEMPLATE_VBoxR0Drv_TOOL              = GXX3OMF
     5663  TEMPLATE_VBoxR0Drv_CXXFLAGS          = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions -fno-rtti
     5664  TEMPLATE_VBoxR0Drv_CFLAGS            = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions
     5665  TEMPLATE_VBoxR0Drv_LIBS              = $(VBOX_GCC_LIBGCC)
     5666  # wlink thinks physdevice doesn't need fixups and should have a stack - stupid!
     5667  TEMPLATE_VBoxR0Drv_LDFLAGS           = -Zlinker Option -Zlinker internalrelocs, -Zlinker togglerelocs
     5668 else
     5669  TEMPLATE_VBoxR0Drv_TOOL   = OPENWATCOM
     5670  TEMPLATE_VBoxR0Drv_CTOOL  = OPENWATCOM
     5671  TEMPLATE_VBoxR0Drv_CXXTOOL = OPENWATCOM
     5672  TEMPLATE_VBoxR0Drv_LDTOOL = OPENWATCOM-WL
     5673  TEMPLATE_VBoxR0Drv_ARTOOL = OPENWATCOM
     5674  TEMPLATE_VBoxR0Drv_ASTOOL = NASM
     5675  TEMPLATE_VBoxR0Drv_ASFLAGS = -fobj -DASM_FORMAT_OMF -D__NASM__ -w+orphan-labels #-g -F borland
     5676  TEMPLATE_VBoxR0Drv_DEFS.os2 = #_OS2EMX_H
     5677  TEMPLATE_VBoxR0Drv_INCS   = \
     5678        $(PATH_TOOL_OPENWATCOM)/h \
     5679        $(PATH_TOOL_OPENWATCOM)/h/os2 \
     5680        $(PATH_ROOT)/include \
     5681        $(PATH_KLIBC_TRUNK)/libc/include # for os2ddk
     5682  TEMPLATE_VBoxR0Drv_CFLAGS = -s -ze -w4 -hd -d1+ -nt=TEXT32 -nc=CODE -4 -of+
     5683  TEMPLATE_VBoxR0Drv_CXXFLAGS = -s -ze -w4 -hd -d2t -nt=TEXT32 -nc=CODE -4 -of+
     5684  TEMPLATE_VBoxR0Drv_LDFLAGS = \
     5685        form os2 lx physdevice \
     5686        option NODefaultlibs, internalrelocs, togglerelocs \
     5687        debug dwarf all #option symfile
     5688  #     debug codeview all option symfile - wlink generates bad info, overwritten mod dir header.
    56895689 endif
    56905690endif
    56915691
    56925692ifeq ($(KBUILD_TARGET),darwin)
    5693 TEMPLATE_VBoxR0Drv_TOOL                = $(VBOX_GCC_TOOL)
    5694 TEMPLATE_VBoxR0Drv_SDKS               += $(VBOX_DARWIN_DEF_SDK_SDKS)
    5695 TEMPLATE_VBoxR0Drv_DEFS               += $(VBOX_DARWIN_DEF_SDK_DEFS) KERNEL KERNEL_PRIVATE DRIVER_PRIVATE APPLE NeXT
     5693 TEMPLATE_VBoxR0Drv_TOOL               = $(VBOX_GCC_TOOL)
     5694 TEMPLATE_VBoxR0Drv_SDKS              += $(VBOX_DARWIN_DEF_SDK_SDKS)
     5695 TEMPLATE_VBoxR0Drv_DEFS              += $(VBOX_DARWIN_DEF_SDK_DEFS) KERNEL KERNEL_PRIVATE DRIVER_PRIVATE APPLE NeXT
    56965696 if1of ($(VBOX_GCC_TOOL), GXX4MACHO GXX42MACHO)
    5697 TEMPLATE_VBoxR0Drv_INCS               += \
    5698         $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/PrivateHeaders \
    5699         $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/Headers
    5700 ## @todo try use VBOX_GCC_PEDANTIC_CXX
    5701 TEMPLATE_VBoxR0Drv_CXXFLAGS            = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) \
    5702         -g $(VBOX_GCC_pipe) $(VBOX_GCC_WARN) -Wno-long-long $(VBOX_GCC_fdiagnostics-show-option) \
    5703         -fno-common -nostdinc -fno-builtin -finline $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
    5704         -fno-keep-inline-functions -fno-exceptions -msoft-float \
    5705         -fapple-kext -fno-rtti -fcheck-new -force_cpusubtype_ALL \
    5706         $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fasm-blocks
    5707 TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64      = -m64 -mkernel -mno-red-zone -gdwarf-2
    5708 TEMPLATE_VBoxR0Drv_CXXFLAGS.x86        = -m32 -static
    5709 TEMPLATE_VBoxR0Drv_CFLAGS              = $(VBOX_DARWIN_DEF_SDK_CFLAGS) \
    5710         -g $(VBOX_GCC_pipe) $(VBOX_GCC_WARN) -Wno-long-long -fno-common -nostdinc -fno-builtin -finline \
    5711         -fno-keep-inline-functions -fno-exceptions $(VBOX_GCC_fvisibility-hidden) -msoft-float \
    5712         -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations \
    5713         -Werror-implicit-function-declaration -force_cpusubtype_ALL \
    5714         $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fasm-blocks
    5715 TEMPLATE_VBoxR0Drv_CFLAGS.amd64        = -m64 -mkernel -mno-red-zone -gdwarf-2
    5716 TEMPLATE_VBoxR0Drv_CFLAGS.x86          = -m32 -static
    5717 TEMPLATE_VBoxR0Drv_LDFLAGS             = $(filter-out $(VBOX_DARWIN_NO_COMPACT_LINKEDIT),$(VBOX_DARWIN_DEF_SDK_LDFLAGS)) \
    5718         -nostdlib -Wl,-kext,-new_linker -Wl,-Y,1455 -keep_private_extern
    5719 TEMPLATE_VBoxR0Drv_LDFLAGS.amd64       = -m64
    5720 TEMPLATE_VBoxR0Drv_LDFLAGS.x86         = -m32
    5721 TEMPLATE_VBoxR0Drv_LIBS                = kmodc++ kmod cc_kext cpp_kext $(VBOX_GCC_LIBGCC)
     5697  TEMPLATE_VBoxR0Drv_INCS             += \
     5698        $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/PrivateHeaders \
     5699        $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/Headers
     5700  ## @todo try use VBOX_GCC_PEDANTIC_CXX
     5701  TEMPLATE_VBoxR0Drv_CXXFLAGS          = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) \
     5702        -g $(VBOX_GCC_pipe) $(VBOX_GCC_WARN) -Wno-long-long $(VBOX_GCC_fdiagnostics-show-option) \
     5703        -fno-common -nostdinc -fno-builtin -finline $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
     5704        -fno-keep-inline-functions -fno-exceptions -msoft-float \
     5705        -fapple-kext -fno-rtti -fcheck-new -force_cpusubtype_ALL \
     5706        $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fasm-blocks
     5707  TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64    = -m64 -mkernel -mno-red-zone -gdwarf-2
     5708  TEMPLATE_VBoxR0Drv_CXXFLAGS.x86      = -m32 -static
     5709  TEMPLATE_VBoxR0Drv_CFLAGS            = $(VBOX_DARWIN_DEF_SDK_CFLAGS) \
     5710        -g $(VBOX_GCC_pipe) $(VBOX_GCC_WARN) -Wno-long-long -fno-common -nostdinc -fno-builtin -finline \
     5711        -fno-keep-inline-functions -fno-exceptions $(VBOX_GCC_fvisibility-hidden) -msoft-float \
     5712        -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations \
     5713        -Werror-implicit-function-declaration -force_cpusubtype_ALL \
     5714        $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fasm-blocks
     5715  TEMPLATE_VBoxR0Drv_CFLAGS.amd64      = -m64 -mkernel -mno-red-zone -gdwarf-2
     5716  TEMPLATE_VBoxR0Drv_CFLAGS.x86        = -m32 -static
     5717  TEMPLATE_VBoxR0Drv_LDFLAGS           = $(filter-out $(VBOX_DARWIN_NO_COMPACT_LINKEDIT),$(VBOX_DARWIN_DEF_SDK_LDFLAGS)) \
     5718        -nostdlib -Wl,-kext,-new_linker -Wl,-Y,1455 -keep_private_extern
     5719  TEMPLATE_VBoxR0Drv_LDFLAGS.amd64     = -m64
     5720  TEMPLATE_VBoxR0Drv_LDFLAGS.x86       = -m32
     5721  TEMPLATE_VBoxR0Drv_LIBS              = kmodc++ kmod cc_kext cpp_kext $(VBOX_GCC_LIBGCC)
    57225722 else
    57235723  # Note xcode uses -fstrict-aliasing, we currently don't dare... We also add -mno-red-zone.
    5724 TEMPLATE_VBoxR0Drv_INCS               += \
    5725         $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/PrivateHeaders \
    5726         $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/Headers
    5727 ## @todo try use VBOX_GCC_PEDANTIC_CXX
    5728 # -Wno-c++11-extensions -Wno-c99-extensions -Wno-extra-semi -Wno-zero-length-array
    5729 TEMPLATE_VBoxR0Drv_CXXFLAGS            = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -mkernel \
    5730         -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) -Wno-long-long $(VBOX_GCC_fdiagnostics-show-option) \
    5731         -Wno-c++11-extensions -Wno-c99-extensions -Wno-extra-semi -Wno-zero-length-array \
    5732         -Wno-gnu-zero-variadic-macro-arguments -Wno-four-char-constants \
    5733         -fno-common -nostdinc -fno-builtin $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
    5734         -fno-exceptions -fapple-kext -fno-rtti -mkernel \
    5735         -fmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -Wnon-modular-include-in-framework-module \
    5736         -Werror=non-modular-include-in-framework-module \
    5737         $(VBOX_GCC_Wno-nullability-extension) $(VBOX_GCC_Wno-gnu-statement-expression) \
    5738        $(VBOX_GCC_Wno-import-preprocessor-directive-pedantic) $(VBOX_GCC_Wno-c11-extensions) \
    5739         $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fasm-blocks -fno-strict-aliasing -stdlib=libc++
    5740 #  if1of ($(VBOX_GCC_TOOL), CLANGXXMACHO) ## @todo check if we can safely use $(VBOX_GCC_std) @bugref{9790}, good for noexcept.
    5741 #TEMPLATE_VBoxR0Drv_CXXFLAGS           += $(VBOX_GCC_std)
    5742 #  endif
    5743 # also used by xcode 6.2: \
    5744 # -Werror=return-type \
    5745 # -Werror=deprecated-objc-isa-usage \
    5746 # -Werror=objc-root-class \
    5747 # -Wno-missing-field-initializers -Wno-missing-prototypes -Wunreachable-code \
    5748 # -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function \
    5749 # -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body \
    5750 # -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants \
    5751 # -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion \
    5752 # -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -Wdeprecated-declarations -Winvalid-offsetof -Wno-sign-conversion
    5753 TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64      = -m64 -msoft-float -mno-red-zone
    5754 TEMPLATE_VBoxR0Drv_CXXFLAGS.x86        = -m32 -msoft-float
    5755 TEMPLATE_VBoxR0Drv_CXXFLAGS.arm64      = -m64 -fno-sanitize=vptr -target arm64e-apple-macos11.0
    5756 TEMPLATE_VBoxR0Drv_CFLAGS              = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -mkernel \
    5757         -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C) -Wno-long-long $(VBOX_GCC_fdiagnostics-show-option) \
    5758         -fno-common -nostdinc -fno-builtin $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
    5759         -fno-exceptions -fapple-kext -fno-rtti \
    5760         -fmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -Wnon-modular-include-in-framework-module \
    5761         -Werror=non-modular-include-in-framework-module $(VBOX_GCC_Wno-c11-extensions) \
    5762         $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fasm-blocks -fno-strict-aliasing
    5763 TEMPLATE_VBoxR0Drv_CFLAGS.amd64        = -m64 -msoft-float -mno-red-zone
    5764 TEMPLATE_VBoxR0Drv_CFLAGS.x86          = -m32 -msoft-float
    5765 TEMPLATE_VBoxR0Drv_CFLAGS.arm64        = -m64 -fno-sanitize=vptr -target arm64e-apple-macos11.0
     5724  TEMPLATE_VBoxR0Drv_INCS             += \
     5725        $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/PrivateHeaders \
     5726        $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/Headers
     5727  ## @todo try use VBOX_GCC_PEDANTIC_CXX
     5728  # -Wno-c++11-extensions -Wno-c99-extensions -Wno-extra-semi -Wno-zero-length-array
     5729  TEMPLATE_VBoxR0Drv_CXXFLAGS          = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -mkernel \
     5730        -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) -Wno-long-long $(VBOX_GCC_fdiagnostics-show-option) \
     5731        -Wno-c++11-extensions -Wno-c99-extensions -Wno-extra-semi -Wno-zero-length-array \
     5732        -Wno-gnu-zero-variadic-macro-arguments -Wno-four-char-constants \
     5733        -fno-common -nostdinc -fno-builtin $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
     5734        -fno-exceptions -fapple-kext -fno-rtti -mkernel \
     5735        -fmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -Wnon-modular-include-in-framework-module \
     5736        -Werror=non-modular-include-in-framework-module \
     5737        $(VBOX_GCC_Wno-nullability-extension) $(VBOX_GCC_Wno-gnu-statement-expression) \
     5738        $(VBOX_GCC_Wno-import-preprocessor-directive-pedantic) $(VBOX_GCC_Wno-c11-extensions) \
     5739        $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fasm-blocks -fno-strict-aliasing -stdlib=libc++
     5740  #  if1of ($(VBOX_GCC_TOOL), CLANGXXMACHO) ## @todo check if we can safely use $(VBOX_GCC_std) @bugref{9790}, good for noexcept.
     5741  #TEMPLATE_VBoxR0Drv_CXXFLAGS           += $(VBOX_GCC_std)
     5742  #  endif
     5743  # also used by xcode 6.2: \
     5744  # -Werror=return-type \
     5745  # -Werror=deprecated-objc-isa-usage \
     5746  # -Werror=objc-root-class \
     5747  # -Wno-missing-field-initializers -Wno-missing-prototypes -Wunreachable-code \
     5748  # -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function \
     5749  # -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body \
     5750  # -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants \
     5751  # -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion \
     5752  # -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -Wdeprecated-declarations -Winvalid-offsetof -Wno-sign-conversion
     5753  TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64    = -m64 -msoft-float -mno-red-zone
     5754  TEMPLATE_VBoxR0Drv_CXXFLAGS.x86      = -m32 -msoft-float
     5755  TEMPLATE_VBoxR0Drv_CXXFLAGS.arm64    = -m64 -fno-sanitize=vptr -target arm64e-apple-macos11.0
     5756  TEMPLATE_VBoxR0Drv_CFLAGS            = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -mkernel \
     5757        -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C) -Wno-long-long $(VBOX_GCC_fdiagnostics-show-option) \
     5758        -fno-common -nostdinc -fno-builtin $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
     5759        -fno-exceptions -fapple-kext -fno-rtti \
     5760        -fmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -Wnon-modular-include-in-framework-module \
     5761        -Werror=non-modular-include-in-framework-module $(VBOX_GCC_Wno-c11-extensions) \
     5762        $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fasm-blocks -fno-strict-aliasing
     5763  TEMPLATE_VBoxR0Drv_CFLAGS.amd64      = -m64 -msoft-float -mno-red-zone
     5764  TEMPLATE_VBoxR0Drv_CFLAGS.x86        = -m32 -msoft-float
     5765  TEMPLATE_VBoxR0Drv_CFLAGS.arm64      = -m64 -fno-sanitize=vptr -target arm64e-apple-macos11.0
    57665766  if 1
    57675767   TEMPLATE_VBoxR0Drv_CFLAGS          += $(VBOX_GCC_WERR)
    57685768   TEMPLATE_VBoxR0Drv_CXXFLAGS        += $(VBOX_GCC_WERR)
    57695769  endif
    5770 TEMPLATE_VBoxR0Drv_LDFLAGS             = $(filter-out $(VBOX_DARWIN_NO_COMPACT_LINKEDIT),$(VBOX_DARWIN_DEF_SDK_LDFLAGS)) \
    5771         -nostdlib -stdlib=libc++ -Wl,-kext -Wl,-keep_private_externs
    5772 TEMPLATE_VBoxR0Drv_LDFLAGS.amd64       = -m64
    5773 TEMPLATE_VBoxR0Drv_LDFLAGS.arm64       = -m64
    5774 TEMPLATE_VBoxR0Drv_LDFLAGS.x86         = -m32
    5775 TEMPLATE_VBoxR0Drv_LIBS                = kmodc++ kmod cc_kext
     5770  TEMPLATE_VBoxR0Drv_LDFLAGS           = $(filter-out $(VBOX_DARWIN_NO_COMPACT_LINKEDIT),$(VBOX_DARWIN_DEF_SDK_LDFLAGS)) \
     5771        -nostdlib -stdlib=libc++ -Wl,-kext -Wl,-keep_private_externs
     5772  TEMPLATE_VBoxR0Drv_LDFLAGS.amd64     = -m64
     5773  TEMPLATE_VBoxR0Drv_LDFLAGS.arm64     = -m64
     5774  TEMPLATE_VBoxR0Drv_LDFLAGS.x86       = -m32
     5775  TEMPLATE_VBoxR0Drv_LIBS              = kmodc++ kmod cc_kext
    57765776 endif
    57775777endif
    57785778
    57795779ifeq ($(KBUILD_TARGET),solaris)
    5780 ## The Solaris /usr/platform/i86pc/include and /usr/include directories.
    5781 VBOX_SOLARIS_SYS_INCS ?= /usr/platform/i86pc/include /usr/include
    5782 
    5783 TEMPLATE_VBoxR0Drv_TOOL                = $(VBOX_GCC_TOOL)
    5784 TEMPLATE_VBoxR0Drv_DEFS               += _MACHDEP _KERNEL _STRICT_STDC
     5780 ## The Solaris /usr/platform/i86pc/include and /usr/include directories.
     5781 VBOX_SOLARIS_SYS_INCS ?= /usr/platform/i86pc/include /usr/include
     5782
     5783 TEMPLATE_VBoxR0Drv_TOOL               = $(VBOX_GCC_TOOL)
     5784 TEMPLATE_VBoxR0Drv_DEFS              += _MACHDEP _KERNEL _STRICT_STDC
    57855785 if $(VBOX_GCC_VERSION_CC) < 30400
    5786 TEMPLATE_VBoxR0Drv_DEFS               += RT_WITHOUT_PRAGMA_ONCE
    5787  endif
    5788 TEMPLATE_VBoxR0Drv_INCS                = $(VBOX_SOLARIS_SYS_INCS)
    5789 TEMPLATE_VBoxR0Drv_LDFLAGS             = -r -dy
    5790 TEMPLATE_VBoxR0Drv_LDFLAGS.amd64       = $(if $(eq $(KBUILD_HOST),solaris),-64,-m elf_x86_64)
    5791 # Exclude -Wall because of solaris headers' pragma ident warnings that gcc refuses to supress.
    5792 TEMPLATE_VBoxR0Drv_CFLAGS              = -Wpointer-arith -Winline $(VBOX_GCC_Wno-pointer-sign) \
    5793         -Wmissing-prototypes -Wstrict-prototypes $(VBOX_GCC_fdiagnostics-show-option) \
    5794         -Wshadow -Wuninitialized -Wunused-function -Wunused-label -Wunused-value -Wunused-variable \
    5795         -Wformat  -Wimplicit-int -Wimplicit-function-declaration -Werror-implicit-function-declaration -Wparentheses \
    5796         -O2 -fno-omit-frame-pointer -ffreestanding -nodefaultlibs -fno-strict-aliasing -fno-common -std=c99
    5797 TEMPLATE_VBoxR0Drv_CFLAGS.x86          = -m32 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
    5798 TEMPLATE_VBoxR0Drv_CFLAGS.amd64        = -m64 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_msave-args) \
    5799         -mno-red-zone -mcmodel=kernel $(if-expr defined(VBOX_GCC_USING_SOLARIS_AS),-Wa$(COMMA)-xmodel=kernel,) \
    5800         -fno-reorder-blocks -fno-asynchronous-unwind-tables -funit-at-a-time
    5801 TEMPLATE_VBoxR0Drv_CXXFLAGS           = -Wpointer-arith \
    5802         -Wshadow -Wuninitialized -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wformat \
    5803         -O2 -nodefaultlibs -fno-omit-frame-pointer -fno-strict-aliasing -fno-common -fno-exceptions -fno-rtti
    5804 TEMPLATE_VBoxR0Drv_CXXFLAGS.x86       = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86)
    5805 TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64     = $(TEMPLATE_VBoxR0Drv_CFLAGS.amd64)
    5806 TEMPLATE_VBoxR0Drv_POST_CMDS          = $(VBOX_SIGN_DRIVER_CMDS)
     5786  TEMPLATE_VBoxR0Drv_DEFS             += RT_WITHOUT_PRAGMA_ONCE
     5787 endif
     5788 TEMPLATE_VBoxR0Drv_INCS               = $(VBOX_SOLARIS_SYS_INCS)
     5789 TEMPLATE_VBoxR0Drv_LDFLAGS            = -r -dy
     5790 TEMPLATE_VBoxR0Drv_LDFLAGS.amd64      = $(if $(eq $(KBUILD_HOST),solaris),-64,-m elf_x86_64)
     5791 # Exclude -Wall because of solaris headers' pragma ident warnings that gcc refuses to supress.
     5792 TEMPLATE_VBoxR0Drv_CFLAGS             = -Wpointer-arith -Winline $(VBOX_GCC_Wno-pointer-sign) \
     5793        -Wmissing-prototypes -Wstrict-prototypes $(VBOX_GCC_fdiagnostics-show-option) \
     5794        -Wshadow -Wuninitialized -Wunused-function -Wunused-label -Wunused-value -Wunused-variable \
     5795        -Wformat  -Wimplicit-int -Wimplicit-function-declaration -Werror-implicit-function-declaration -Wparentheses \
     5796        -O2 -fno-omit-frame-pointer -ffreestanding -nodefaultlibs -fno-strict-aliasing -fno-common -std=c99
     5797 TEMPLATE_VBoxR0Drv_CFLAGS.x86         = -m32 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
     5798 TEMPLATE_VBoxR0Drv_CFLAGS.amd64       = -m64 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_msave-args) \
     5799        -mno-red-zone -mcmodel=kernel $(if-expr defined(VBOX_GCC_USING_SOLARIS_AS),-Wa$(COMMA)-xmodel=kernel,) \
     5800        -fno-reorder-blocks -fno-asynchronous-unwind-tables -funit-at-a-time
     5801 TEMPLATE_VBoxR0Drv_CXXFLAGS          = -Wpointer-arith \
     5802        -Wshadow -Wuninitialized -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wformat \
     5803        -O2 -nodefaultlibs -fno-omit-frame-pointer -fno-strict-aliasing -fno-common -fno-exceptions -fno-rtti
     5804 TEMPLATE_VBoxR0Drv_CXXFLAGS.x86      = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86)
     5805 TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64    = $(TEMPLATE_VBoxR0Drv_CFLAGS.amd64)
     5806 TEMPLATE_VBoxR0Drv_POST_CMDS         = $(VBOX_SIGN_DRIVER_CMDS)
    58075807endif # Solaris
    58085808
    58095809ifeq ($(KBUILD_TARGET),freebsd)
    5810 # x86 FreeBSD (6.2 or something):
    5811 #  cc -O2 -fno-strict-aliasing -pipe -Werror -D_KERNEL -DKLD_MODULE \
    5812 #   -nostdinc -I- -I. -I@ -I@/contrib/altq -I@/../include -I/usr/include \
    5813 #   -finline-limit=8000 -fno-common -mno-align-long-strings -mpreferred-stack-boundary=2 \
    5814 #   -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -ffreestanding -Wall -Wredundant-decls -Wnested-externs \
    5815 #   -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions \
    5816 #   -std=c99 -c ../my.c
    5817 #  ld -d -warn-common -r -d -o my.kld my.o
    5818 #  :> export_syms
    5819 #  awk -f /usr/src/sys/modules/my/../../conf/kmod_syms.awk my.kld export_syms | xargs -J% objcopy % my.kld
    5820 #  ld -Bsharable -d warn-commnon -o my.ko my.kld
    5821 #
    5822 # AMD64 FreeBSD (7.1):
    5823 #  cc -O2 -fno-strict-aliasing -pipe -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I. -I@ -I@/contrib/altq \
    5824 #  -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common  \
    5825 #  -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx \
    5826 #  -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding \
    5827 #  -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign \
    5828 #  -fformat-extensions -c /usr/src/sys/modules/my/../../dev/my/if_my.c
    5829 #  ld  -d -warn-common -r -d -o if_my.ko if_my.o
    5830 #  :> export_syms
    5831 #  awk -f /usr/src/sys/modules/my/../../conf/kmod_syms.awk if_my.ko  export_syms | xargs -J% objcopy % if_my.ko
    5832 
    5833 # Note: @ -> /usr/src/sys  and  machine -> /usr/src/sys/i386/include
    5834 
    5835 ## The location of the FreeBSD kernel source.
    5836 VBOX_FREEBSD_SRC ?= /usr/src/sys
    5837 ## The FreeBSD /usr/include.
    5838 VBOX_FREEBSD_SYS_INCS ?= /usr/include
    5839 
    5840 TEMPLATE_VBoxR0Drv_TOOL                = $(VBOX_GCC_TOOL)
    5841 TEMPLATE_VBoxR0Drv_LDTOOL              = FreeBsdKModLd
    5842 TEMPLATE_VBoxR0Drv_DEFS               += _KERNEL KLD_MODULE
     5810 # x86 FreeBSD (6.2 or something):
     5811 #  cc -O2 -fno-strict-aliasing -pipe -Werror -D_KERNEL -DKLD_MODULE \
     5812 #   -nostdinc -I- -I. -I@ -I@/contrib/altq -I@/../include -I/usr/include \
     5813 #   -finline-limit=8000 -fno-common -mno-align-long-strings -mpreferred-stack-boundary=2 \
     5814 #   -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -ffreestanding -Wall -Wredundant-decls -Wnested-externs \
     5815 #   -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions \
     5816 #   -std=c99 -c ../my.c
     5817 #  ld -d -warn-common -r -d -o my.kld my.o
     5818 #  :> export_syms
     5819 #  awk -f /usr/src/sys/modules/my/../../conf/kmod_syms.awk my.kld export_syms | xargs -J% objcopy % my.kld
     5820 #  ld -Bsharable -d warn-commnon -o my.ko my.kld
     5821 #
     5822 # AMD64 FreeBSD (7.1):
     5823 #  cc -O2 -fno-strict-aliasing -pipe -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I. -I@ -I@/contrib/altq \
     5824 #  -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common  \
     5825 #  -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx \
     5826 #  -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding \
     5827 #  -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign \
     5828 #  -fformat-extensions -c /usr/src/sys/modules/my/../../dev/my/if_my.c
     5829 #  ld  -d -warn-common -r -d -o if_my.ko if_my.o
     5830 #  :> export_syms
     5831 #  awk -f /usr/src/sys/modules/my/../../conf/kmod_syms.awk if_my.ko  export_syms | xargs -J% objcopy % if_my.ko
     5832
     5833 # Note: @ -> /usr/src/sys  and  machine -> /usr/src/sys/i386/include
     5834
     5835 ## The location of the FreeBSD kernel source.
     5836 VBOX_FREEBSD_SRC ?= /usr/src/sys
     5837 ## The FreeBSD /usr/include.
     5838 VBOX_FREEBSD_SYS_INCS ?= /usr/include
     5839
     5840 TEMPLATE_VBoxR0Drv_TOOL               = $(VBOX_GCC_TOOL)
     5841 TEMPLATE_VBoxR0Drv_LDTOOL             = FreeBsdKModLd
     5842 TEMPLATE_VBoxR0Drv_DEFS              += _KERNEL KLD_MODULE
    58435843 if $(VBOX_GCC_VERSION_CC) < 30400
    5844 TEMPLATE_VBoxR0Drv_DEFS               += RT_WITHOUT_PRAGMA_ONCE
    5845  endif
    5846 TEMPLATE_VBoxR0Drv_INCS                = \
    5847         $(VBOX_FREEBSD_SRC) \
    5848         $(VBOX_FREEBSD_SRC)/contrib/altq \
    5849         $(VBOX_FREEBSD_SRC)/contrib/ck/include \
    5850         $(VBOX_FREEBSD_SRC)/../include \
    5851         $(VBOX_FREEBSD_SYS_INCS)
    5852 # omitting: -Wcast-qual, -Wredundant-decls
    5853 TEMPLATE_VBoxR0Drv_CFLAGS              = \
    5854         $(VBOX_GCC_WARN) -Wpointer-arith -Winline $(VBOX_GCC_Wno-pointer-sign) $(VBOX_GCC_fdiagnostics-show-option) \
    5855         -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
    5856         -Wimplicit-function-declaration -Werror-implicit-function-declaration \
    5857         -O2 -ffreestanding -fno-strict-aliasing -fno-common \
    5858         $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
    5859         -nostdinc -std=c99
    5860 TEMPLATE_VBoxR0Drv_CFLAGS.x86          = -m32 -mno-align-long-strings -mno-mmx -mno-3dnow -mno-sse -mno-sse2
    5861 TEMPLATE_VBoxR0Drv_CFLAGS.amd64        = -m64 -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 \
    5862         -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -Wundef
    5863 TEMPLATE_VBoxR0Drv_CXXFLAGS            = -fno-exceptions -fno-rtti \
    5864         $(VBOX_GCC_WARN) -Wpointer-arith -Winline \
    5865         -O2 -fno-strict-aliasing -fno-common \
    5866         $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
    5867         -nostdinc
    5868 TEMPLATE_VBoxR0Drv_CXXFLAGS.x86        = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86)
    5869 TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64      = $(TEMPLATE_VBoxR0Drv_CFLAGS.amd64)
    5870 TEMPLATE_VBoxR0Drv_SYSSUFF             = .ko
    5871 TEMPLATE_VBoxR0Drv_LDFLAGS             = -d --warn-common
    5872 TEMPLATE_VBoxR0Drv_LDFLAGS.x86         = -m elf_i386_fbsd
    5873 TEMPLATE_VBoxR0Drv_LDFLAGS.amd64       = -m elf_x86_64_fbsd
    5874 
    5875 TOOL_FreeBsdKModLd = FreeBSD kernel module linker.
    5876 # See kBuild/tools/GCC3.kmk for docs.
    5877 TOOL_FreeBsdKModLd_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).map
    5878 TOOL_FreeBsdKModLd_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    5879 TOOL_FreeBsdKModLd_LINK_SYSMOD_DEPORD =
     5844  TEMPLATE_VBoxR0Drv_DEFS             += RT_WITHOUT_PRAGMA_ONCE
     5845 endif
     5846 TEMPLATE_VBoxR0Drv_INCS               = \
     5847        $(VBOX_FREEBSD_SRC) \
     5848        $(VBOX_FREEBSD_SRC)/contrib/altq \
     5849        $(VBOX_FREEBSD_SRC)/contrib/ck/include \
     5850        $(VBOX_FREEBSD_SRC)/../include \
     5851        $(VBOX_FREEBSD_SYS_INCS)
     5852 # omitting: -Wcast-qual, -Wredundant-decls
     5853 TEMPLATE_VBoxR0Drv_CFLAGS             = \
     5854        $(VBOX_GCC_WARN) -Wpointer-arith -Winline $(VBOX_GCC_Wno-pointer-sign) $(VBOX_GCC_fdiagnostics-show-option) \
     5855        -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
     5856        -Wimplicit-function-declaration -Werror-implicit-function-declaration \
     5857        -O2 -ffreestanding -fno-strict-aliasing -fno-common \
     5858        $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
     5859        -nostdinc -std=c99
     5860 TEMPLATE_VBoxR0Drv_CFLAGS.x86         = -m32 -mno-align-long-strings -mno-mmx -mno-3dnow -mno-sse -mno-sse2
     5861 TEMPLATE_VBoxR0Drv_CFLAGS.amd64       = -m64 -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 \
     5862        -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -Wundef
     5863 TEMPLATE_VBoxR0Drv_CXXFLAGS           = -fno-exceptions -fno-rtti \
     5864        $(VBOX_GCC_WARN) -Wpointer-arith -Winline \
     5865        -O2 -fno-strict-aliasing -fno-common \
     5866        $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
     5867        -nostdinc
     5868 TEMPLATE_VBoxR0Drv_CXXFLAGS.x86       = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86)
     5869 TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64     = $(TEMPLATE_VBoxR0Drv_CFLAGS.amd64)
     5870 TEMPLATE_VBoxR0Drv_SYSSUFF            = .ko
     5871 TEMPLATE_VBoxR0Drv_LDFLAGS            = -d --warn-common
     5872 TEMPLATE_VBoxR0Drv_LDFLAGS.x86        = -m elf_i386_fbsd
     5873 TEMPLATE_VBoxR0Drv_LDFLAGS.amd64      = -m elf_x86_64_fbsd
     5874
     5875 TOOL_FreeBsdKModLd = FreeBSD kernel module linker.
     5876 # See kBuild/tools/GCC3.kmk for docs.
     5877 TOOL_FreeBsdKModLd_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).map
     5878 TOOL_FreeBsdKModLd_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
     5879 TOOL_FreeBsdKModLd_LINK_SYSMOD_DEPORD =
    58805880 ifeq ($(KBUILD_TARGET_ARCH),amd64)
    5881 TOOL_FreeBsdKModLd_LINK_SYSMOD_OUTPUT =
    5882 define TOOL_FreeBsdKModLd_LINK_SYSMOD_CMDS
    5883 # Link intermediate .kld (a relocatable object).
     5881  TOOL_FreeBsdKModLd_LINK_SYSMOD_OUTPUT =
     5882  define TOOL_FreeBsdKModLd_LINK_SYSMOD_CMDS
     5883   # Link intermediate .kld (a relocatable object).
    58845884        ld $(flags) -r -o  $(out) $(objs) \
    58855885                $(foreach p,$(libpath), -L$(p))\
    58865886                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))
    5887 # Strip non-exported symbols private and localize the exported ones.
     5887   # Strip non-exported symbols private and localize the exported ones.
    58885888        awk -f $(VBOX_FREEBSD_SRC)/conf/kmod_syms.awk  $(out) $(if $(othersrc), $(othersrc),/dev/null) \
    58895889                | xargs -J% objcopy % $(out)
    58905890
    5891 ## Strip debug info (comment out if debugging or something).
     5891   ## Strip debug info (comment out if debugging or something).
    58925892        objcopy --strip-debug $(out)
    5893 endef
     5893  endef
    58945894 else # x86
    5895 TOOL_FreeBsdKModLd_LINK_SYSMOD_OUTPUT = $(outbase).kld
    5896 define TOOL_FreeBsdKModLd_LINK_SYSMOD_CMDS
    5897 # Link intermediate .kld (a relocatable object).
     5895  TOOL_FreeBsdKModLd_LINK_SYSMOD_OUTPUT = $(outbase).kld
     5896  define TOOL_FreeBsdKModLd_LINK_SYSMOD_CMDS
     5897   # Link intermediate .kld (a relocatable object).
    58985898        ld $(flags) -r -o $(outbase).kld $(objs) \
    58995899                $(foreach p,$(libpath), -L$(p))\
    59005900                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))
    5901 # Strip non-exported symbols private and localize the exported ones.
     5901   # Strip non-exported symbols private and localize the exported ones.
    59025902        awk -f $(VBOX_FREEBSD_SRC)/conf/kmod_syms.awk $(outbase).kld $(if $(othersrc), $(othersrc),/dev/null) \
    59035903                | xargs -J% objcopy % $(outbase).kld
    59045904
    5905 # Link the final .ko (a shared object).
     5905   # Link the final .ko (a shared object).
    59065906        ld $(flags) -Bshareable -o $(out) $(outbase).kld
    5907 endef
     5907  endef
    59085908 endif # x86
    59095909
     
    59125912ifeq ($(KBUILD_TARGET),netbsd)
    59135913
    5914 # The location of the NetBSD sources.
    5915 VBOX_NETBSD_SRC ?= /usr/src
    5916 
    5917 # NetBSD uses "i386" for 32-bit, "x86" for common 32- and 64-bit code.
    5918 ifeq ($(KBUILD_TARGET_ARCH),amd64)
    5919 VBOX_NETBSD_TARGET_ARCH=amd64
    5920 else
    5921 VBOX_NETBSD_TARGET_ARCH=i386
    5922 endif
    5923 
    5924 VBOX_NETBSD_TARGET_SRC=$(VBOX_NETBSD_SRC)/sys/arch/$(VBOX_NETBSD_TARGET_ARCH)
    5925 
    5926 TEMPLATE_VBoxR0Drv_TOOL                = $(VBOX_GCC_TOOL)
    5927 TEMPLATE_VBoxR0Drv_DEFS               += _KERNEL _MODULE
     5914 # The location of the NetBSD sources.
     5915 VBOX_NETBSD_SRC ?= /usr/src
     5916
     5917 # NetBSD uses "i386" for 32-bit, "x86" for common 32- and 64-bit code.
     5918 ifeq ($(KBUILD_TARGET_ARCH),amd64)
     5919  VBOX_NETBSD_TARGET_ARCH = amd64
     5920 else
     5921  VBOX_NETBSD_TARGET_ARCH = i386
     5922 endif
     5923
     5924 VBOX_NETBSD_TARGET_SRC = $(VBOX_NETBSD_SRC)/sys/arch/$(VBOX_NETBSD_TARGET_ARCH)
     5925
     5926 TEMPLATE_VBoxR0Drv_TOOL               = $(VBOX_GCC_TOOL)
     5927 TEMPLATE_VBoxR0Drv_DEFS              += _KERNEL _MODULE
    59285928 if $(VBOX_GCC_VERSION_CC) < 30400
    5929 TEMPLATE_VBoxR0Drv_DEFS               += RT_WITHOUT_PRAGMA_ONCE
    5930  endif
    5931 TEMPLATE_VBoxR0Drv_INCS                = \
    5932         $(VBOX_NETBSD_SRC)/sys \
    5933         $(VBOX_NETBSD_SRC)/common/include \
    5934         $(PATH_OBJ)/netbsd/include
    5935 
    5936 TEMPLATE_VBoxR0Drv_CFLAGS              = \
    5937         $(VBOX_GCC_WARN) -Wpointer-arith -Winline $(VBOX_GCC_Wno-pointer-sign) \
    5938         $(VBOX_GCC_fdiagnostics-show-option) \
    5939         -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
    5940         -Wimplicit-function-declaration -Werror-implicit-function-declaration \
    5941         -O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
    5942         $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
    5943         -nostdinc -std=c99 -msoft-float
    5944 TEMPLATE_VBoxR0Drv_CFLAGS.x86          = -m32 -mno-mmx -mno-sse -mno-avx \
    5945     -mno-fp-ret-in-387
    5946 TEMPLATE_VBoxR0Drv_CFLAGS.amd64        = -m64 --param inline-unit-growth=100 \
    5947     --param large-function-growth=1000 -fno-omit-frame-pointer \
    5948     -mcmodel=kernel -mno-red-zone -mno-sse -mno-mmx -mno-avx \
    5949         -fno-asynchronous-unwind-tables -mno-fp-ret-in-387
    5950 TEMPLATE_VBoxR0Drv_CXXFLAGS            = -fno-exceptions -fno-rtti \
    5951         $(VBOX_GCC_WARN) -Wpointer-arith -Winline \
    5952         -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \
    5953         $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
    5954         -nostdinc -msoft-float
    5955 TEMPLATE_VBoxR0Drv_CXXFLAGS.x86        = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86)
    5956 TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64      = $(TEMPLATE_VBoxR0Drv_CFLAGS.amd64)
    5957 TEMPLATE_VBoxR0Drv_SYSSUFF             = .kmod
    5958 TEMPLATE_VBoxR0Drv_LDFLAGS             = -d --warn-common
    5959 TEMPLATE_VBoxR0Drv_LDFLAGS.x86         = -m elf_i386
    5960 TEMPLATE_VBoxR0Drv_LDFLAGS.amd64       = -m elf_x86_64
    5961 
    5962 # symlink kernel includes
    5963 TEMPLATE_VBoxR0Drv_ORDERDEPS += \
    5964         $(PATH_OBJ)/netbsd/include/$(VBOX_NETBSD_TARGET_ARCH) \
    5965         $(PATH_OBJ)/netbsd/include/x86 \
    5966         $(PATH_OBJ)/netbsd/include/machine
    5967 
    5968 $$(PATH_OBJ)/netbsd/include/$(VBOX_NETBSD_TARGET_ARCH):
     5929  TEMPLATE_VBoxR0Drv_DEFS             += RT_WITHOUT_PRAGMA_ONCE
     5930 endif
     5931 TEMPLATE_VBoxR0Drv_INCS               = \
     5932        $(VBOX_NETBSD_SRC)/sys \
     5933        $(VBOX_NETBSD_SRC)/common/include \
     5934        $(PATH_OBJ)/netbsd/include
     5935
     5936 TEMPLATE_VBoxR0Drv_CFLAGS             = \
     5937        $(VBOX_GCC_WARN) -Wpointer-arith -Winline $(VBOX_GCC_Wno-pointer-sign) \
     5938        $(VBOX_GCC_fdiagnostics-show-option) \
     5939        -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
     5940        -Wimplicit-function-declaration -Werror-implicit-function-declaration \
     5941        -O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
     5942        $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
     5943        -nostdinc -std=c99 -msoft-float
     5944 TEMPLATE_VBoxR0Drv_CFLAGS.x86         = -m32 -mno-mmx -mno-sse -mno-avx \
     5945        -mno-fp-ret-in-387
     5946 TEMPLATE_VBoxR0Drv_CFLAGS.amd64       = -m64 --param inline-unit-growth=100 \
     5947        --param large-function-growth=1000 -fno-omit-frame-pointer \
     5948        -mcmodel=kernel -mno-red-zone -mno-sse -mno-mmx -mno-avx \
     5949        -fno-asynchronous-unwind-tables -mno-fp-ret-in-387
     5950 TEMPLATE_VBoxR0Drv_CXXFLAGS           = -fno-exceptions -fno-rtti \
     5951        $(VBOX_GCC_WARN) -Wpointer-arith -Winline \
     5952        -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \
     5953        $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
     5954        -nostdinc -msoft-float
     5955 TEMPLATE_VBoxR0Drv_CXXFLAGS.x86       = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86)
     5956 TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64     = $(TEMPLATE_VBoxR0Drv_CFLAGS.amd64)
     5957 TEMPLATE_VBoxR0Drv_SYSSUFF            = .kmod
     5958 TEMPLATE_VBoxR0Drv_LDFLAGS            = -d --warn-common
     5959 TEMPLATE_VBoxR0Drv_LDFLAGS.x86        = -m elf_i386
     5960 TEMPLATE_VBoxR0Drv_LDFLAGS.amd64      = -m elf_x86_64
     5961
     5962 # symlink kernel includes
     5963 TEMPLATE_VBoxR0Drv_ORDERDEPS += \
     5964        $(PATH_OBJ)/netbsd/include/$(VBOX_NETBSD_TARGET_ARCH) \
     5965        $(PATH_OBJ)/netbsd/include/x86 \
     5966        $(PATH_OBJ)/netbsd/include/machine
     5967
     5968 $$(PATH_OBJ)/netbsd/include/$(VBOX_NETBSD_TARGET_ARCH):
    59695969        $(QUIET)$(MKDIR) -p $(@D)
    59705970        $(QUIET)$(LN_SYMLINK) $(VBOX_NETBSD_TARGET_SRC)/include $@
    59715971
    5972 $$(PATH_OBJ)/netbsd/include/x86:
     5972 $$(PATH_OBJ)/netbsd/include/x86:
    59735973        $(QUIET)$(MKDIR) -p $(@D)
    59745974        $(QUIET)$(LN_SYMLINK) $(VBOX_NETBSD_SRC)/sys/arch/x86/include $@
    59755975
    5976 $$(PATH_OBJ)/netbsd/include/machine:
     5976 $$(PATH_OBJ)/netbsd/include/machine:
    59775977        $(QUIET)$(MKDIR) -p $(@D)
    59785978        $(QUIET)$(LN_SYMLINK) $(VBOX_NETBSD_TARGET_ARCH) $@
     
    59815981
    59825982ifeq ($(KBUILD_TARGET),haiku)
    5983 ## The Haiku include directories
    5984 VBOX_HAIKU_SYS_INCS ?= /boot/develop/headers/os/kernel /boot/develop/headers/os/drivers
    5985 
    5986 TEMPLATE_VBoxR0Drv_TOOL                = $(VBOX_GCC_TOOL)
    5987 TEMPLATE_VBoxR0Drv_LDTOOL              = $(VBOX_GCC_TOOL)
    5988 TEMPLATE_VBoxR0Drv_DEFS                = _KERNEL_MODE=1 _STRICT_STDC IN_RING0 IN_RT_R0
     5983 ## The Haiku include directories
     5984 VBOX_HAIKU_SYS_INCS ?= /boot/develop/headers/os/kernel /boot/develop/headers/os/drivers
     5985
     5986 TEMPLATE_VBoxR0Drv_TOOL               = $(VBOX_GCC_TOOL)
     5987 TEMPLATE_VBoxR0Drv_LDTOOL             = $(VBOX_GCC_TOOL)
     5988 TEMPLATE_VBoxR0Drv_DEFS               = _KERNEL_MODE=1 _STRICT_STDC IN_RING0 IN_RT_R0
    59895989 if $(VBOX_GCC_VERSION_CC) < 30400
    5990 TEMPLATE_VBoxR0Drv_DEFS               += RT_WITHOUT_PRAGMA_ONCE
    5991  endif
    5992 TEMPLATE_VBoxR0Drv_INCS                = $(VBOX_HAIKU_SYS_INCS)
    5993 #TODO: sort this out
    5994 TEMPLATE_VBoxR0Drv_LDFLAGS             = -shared $(VBOX_GCC_NO_UNDEFINED_R0) -dc -dy -lroot -rpath-link /boot/system/develop/lib/x86 --no-add-needed /boot/system/develop/lib/_KERNEL_ --no-add-needed /boot/system/develop/lib/haiku_version_glue.o
    5995 TEMPLATE_VBoxR0Drv_CFLAGS              = -fno-PIC \
    5996         $(VBOX_GCC_WARN) -Wstrict-prototypes $(VBOX_GCC_Wno-pointer-sign) -Wno-sign-compare \
    5997         $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
    5998 TEMPLATE_VBoxR0Drv_CFLAGS.x86          = -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
    5999 TEMPLATE_VBoxR0Drv_CFLAGS.x86          = -m32 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
    6000 TEMPLATE_VBoxR0Drv_CFLAGS.amd64        = -m64 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow \
    6001         -fno-reorder-blocks -ffreestanding -fno-asynchronous-unwind-tables -funit-at-a-time \
    6002         -Wno-sign-compare
    6003 TEMPLATE_VBoxR0Drv_CXXFLAGS           = -fno-PIC -Wpointer-arith \
    6004         -Wshadow -Wuninitialized -Wunused-function -Wunused-label -Wunused-value -Wunused-variable \
    6005         -Wformat \
    6006         -O2 -nodefaultlibs -fno-omit-frame-pointer -fno-strict-aliasing -fno-common -fno-exceptions -fno-rtti
    6007 TEMPLATE_VBoxR0Drv_CXXFLAGS.x86       = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86) -fno-exceptions -fno-rtti
    6008 TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64     = $(TEMPLATE_VBoxR0Drv_CFLAGS.amd64) -fno-exceptions -fno-rtti
     5990  TEMPLATE_VBoxR0Drv_DEFS             += RT_WITHOUT_PRAGMA_ONCE
     5991 endif
     5992 TEMPLATE_VBoxR0Drv_INCS               = $(VBOX_HAIKU_SYS_INCS)
     5993 #TODO: sort this out
     5994 TEMPLATE_VBoxR0Drv_LDFLAGS            = -shared $(VBOX_GCC_NO_UNDEFINED_R0) -dc -dy -lroot -rpath-link /boot/system/develop/lib/x86 --no-add-needed /boot/system/develop/lib/_KERNEL_ --no-add-needed /boot/system/develop/lib/haiku_version_glue.o
     5995 TEMPLATE_VBoxR0Drv_CFLAGS             = -fno-PIC \
     5996        $(VBOX_GCC_WARN) -Wstrict-prototypes $(VBOX_GCC_Wno-pointer-sign) -Wno-sign-compare \
     5997        $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
     5998 TEMPLATE_VBoxR0Drv_CFLAGS.x86         = -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
     5999 TEMPLATE_VBoxR0Drv_CFLAGS.x86         = -m32 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
     6000 TEMPLATE_VBoxR0Drv_CFLAGS.amd64       = -m64 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow \
     6001        -fno-reorder-blocks -ffreestanding -fno-asynchronous-unwind-tables -funit-at-a-time \
     6002        -Wno-sign-compare
     6003 TEMPLATE_VBoxR0Drv_CXXFLAGS          = -fno-PIC -Wpointer-arith \
     6004        -Wshadow -Wuninitialized -Wunused-function -Wunused-label -Wunused-value -Wunused-variable \
     6005        -Wformat \
     6006        -O2 -nodefaultlibs -fno-omit-frame-pointer -fno-strict-aliasing -fno-common -fno-exceptions -fno-rtti
     6007 TEMPLATE_VBoxR0Drv_CXXFLAGS.x86      = $(TEMPLATE_VBoxR0Drv_CFLAGS.x86) -fno-exceptions -fno-rtti
     6008 TEMPLATE_VBoxR0Drv_CXXFLAGS.amd64    = $(TEMPLATE_VBoxR0Drv_CFLAGS.amd64) -fno-exceptions -fno-rtti
    60096009endif # Haiku
    60106010
     
    60246024
    60256025ifeq ($(KBUILD_TARGET),darwin)
    6026 #
    6027 # A variant of VBoxR0Drv that uses the 10.10 SDK.
    6028 #
    6029 TEMPLATE_VBoxR0DrvOSX10.10 = VBoxR0Drv variant using the 10.10 SDK
    6030 TEMPLATE_VBoxR0DrvOSX10.10_EXTENDS = VBoxR0Drv
    6031 TEMPLATE_VBoxR0DrvOSX10.10_SDKS     = MACOSX1010
    6032 TEMPLATE_VBoxR0DrvOSX10.10_INCS     = $(filter-out $(VBOX_PATH_MACOSX_SDK)/%,$(TEMPLATE_VBoxR0Drv_INCS)) \
    6033         $(PATH_SDK_MACOSX1010)/System/Library/Frameworks/Kernel.framework/PrivateHeaders \
    6034         $(PATH_SDK_MACOSX1010)/System/Library/Frameworks/Kernel.framework/Headers
    6035 TEMPLATE_VBoxR0DrvOSX10.10_DEFS     = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_VBoxR0Drv_DEFS))
     6026 #
     6027 # A variant of VBoxR0Drv that uses the 10.10 SDK.
     6028 #
     6029 TEMPLATE_VBoxR0DrvOSX10.10 = VBoxR0Drv variant using the 10.10 SDK
     6030 TEMPLATE_VBoxR0DrvOSX10.10_EXTENDS = VBoxR0Drv
     6031 TEMPLATE_VBoxR0DrvOSX10.10_SDKS    = MACOSX1010
     6032 TEMPLATE_VBoxR0DrvOSX10.10_INCS    = $(filter-out $(VBOX_PATH_MACOSX_SDK)/%,$(TEMPLATE_VBoxR0Drv_INCS)) \
     6033        $(PATH_SDK_MACOSX1010)/System/Library/Frameworks/Kernel.framework/PrivateHeaders \
     6034        $(PATH_SDK_MACOSX1010)/System/Library/Frameworks/Kernel.framework/Headers
     6035 TEMPLATE_VBoxR0DrvOSX10.10_DEFS    = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_VBoxR0Drv_DEFS))
    60366036
    60376037endif
     
    60856085 TEMPLATE_VBoxR3Exe_DEFS              += VBOX_WITH_DTRACE VBOX_WITH_DTRACE_R3 VBOX_WITH_NATIVE_DTRACE
    60866086else
    6087   TEMPLATE_VBoxR3Exe_DTRACE_HDR_FLAGS  = --ring-3-context
    6088   TEMPLATE_VBoxR3Exe_DTRACE_OBJ_FLAGS  = --ring-3-context --pic --probe-fn-imported --probe-fn-name "SUPTracerFireProbe"
     6087 TEMPLATE_VBoxR3Exe_DTRACE_HDR_FLAGS   = --ring-3-context
     6088 TEMPLATE_VBoxR3Exe_DTRACE_OBJ_FLAGS   = --ring-3-context --pic --probe-fn-imported --probe-fn-name "SUPTracerFireProbe"
    60896089 if defined(VBOX_WITH_DTRACE_R3)
    60906090  TEMPLATE_VBoxR3Exe_DTRACETOOL        = VBoxTpG
     
    60966096TEMPLATE_VBoxR3Exe_LIBS.kprofile       = $(LIB_KPROFILE)
    60976097ifeq ($(KBUILD_TARGET),win)
    6098 # TEMPLATE_VBoxR3Exe_TOOL               = $(VBOX_VCC_TOOL)
     6098 # TEMPLATE_VBoxR3Exe_TOOL               = $(VBOX_VCC_TOOL)
    60996099 TEMPLATE_VBoxR3Exe_TOOL.win.x86       = $(VBOX_VCC_TOOL_STEM)X86
    61006100 TEMPLATE_VBoxR3Exe_TOOL.win.amd64     = $(VBOX_VCC_TOOL_STEM)AMD64
     
    61286128 TEMPLATE_VBoxR3Exe_PCHFLAGS.kprofile  = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.kprofile)
    61296129 TEMPLATE_VBoxR3Exe_LDFLAGS            = -Ignore:4197 \
    6130         /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware /DynamicBase /NxCompat /Release /Debug /Opt:Ref /Opt:Icf \
    6131         $(VBOX_VCC_LD_GUARD_CF) $(VBOX_VCC_SANITIZER_LDFLAGS) \
    6132         /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
    6133         /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com \
    6134         /DISALLOWLIB:libc.lib \
    6135         /DISALLOWLIB:libcd.lib \
    6136         /DISALLOWLIB:libcmt.lib \
    6137         /DISALLOWLIB:libcmtd.lib \
    6138         /DISALLOWLIB:msvcrt$(VBOX_VCC_CRT_TYPE_N).lib \
    6139         /DISALLOWLIB:msvcprt$(VBOX_VCC_CRT_TYPE_N).lib
     6130        /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware /DynamicBase /NxCompat /Release /Debug /Opt:Ref /Opt:Icf \
     6131        $(VBOX_VCC_LD_GUARD_CF) $(VBOX_VCC_SANITIZER_LDFLAGS) \
     6132        /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     6133        /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com \
     6134        /DISALLOWLIB:libc.lib \
     6135        /DISALLOWLIB:libcd.lib \
     6136        /DISALLOWLIB:libcmt.lib \
     6137        /DISALLOWLIB:libcmtd.lib \
     6138        /DISALLOWLIB:msvcrt$(VBOX_VCC_CRT_TYPE_N).lib \
     6139        /DISALLOWLIB:msvcprt$(VBOX_VCC_CRT_TYPE_N).lib
    61406140 ifdef VBOX_WITH_DTRACE_R3
    61416141  TEMPLATE_VBoxR3Exe_LDFLAGS          += -Merge:VTGPrLc.Data=VTGPrLc.Begin -Merge:VTGPrLc.End=VTGPrLc.Begin -Merge:VTGPrLc.Begin=VTGObj
    61426142 endif
    61436143 if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_HARDENING)
    6144    TEMPLATE_VBoxR3Exe_LDFLAGS         += -IntegrityCheck
     6144  TEMPLATE_VBoxR3Exe_LDFLAGS          += -IntegrityCheck
    61456145 endif
    61466146 TEMPLATE_VBoxR3Exe_LDFLAGS.win.amd64  = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA)
     
    61866186  TEMPLATE_VBoxR3Exe_LDFLAGS.win.x86   = \
    61876187        -Include:_vcc100_kernel32_fakes_cpp \
    6188         -Include:_vcc100_kernel32_fakes_asm
     6188        -Include:_vcc100_kernel32_fakes_asm
    61896189  TEMPLATE_VBoxR3Exe_LIBS.win.x86      = \
    61906190        $(PATH_STAGE_LIB)/RuntimeR3VccTricks2$(VBOX_SUFF_LIB)
     
    61966196
    61976197else # the gcc guys
    6198 TEMPLATE_VBoxR3Exe_TOOL                = $(VBOX_GCC_TOOL)
     6198 TEMPLATE_VBoxR3Exe_TOOL               = $(VBOX_GCC_TOOL)
    61996199 if $(VBOX_GCC_VERSION_CC) < 30400
    6200 TEMPLATE_VBoxR3Exe_DEFS               += RT_WITHOUT_PRAGMA_ONCE
    6201  endif
    6202 TEMPLATE_VBoxR3Exe_CXXFLAGS            = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_OPT) \
     6200  TEMPLATE_VBoxR3Exe_DEFS             += RT_WITHOUT_PRAGMA_ONCE
     6201 endif
     6202 TEMPLATE_VBoxR3Exe_CXXFLAGS           = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_OPT) \
    62036203        $(VBOX_GCC_FP) -fno-strict-aliasing $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_std) $(VBOX_GCC_fvisibility-inlines-hidden) \
    62046204        $(VBOX_GCC_IPRT_FMT_CHECK) $(VBOX_GCC_SANITIZER_FLAGS)
     
    62066206  TEMPLATE_VBoxR3Exe_CXXFLAGS         += $(VBOX_GCC_WERR)
    62076207 endif
    6208 TEMPLATE_VBoxR3Exe_CXXFLAGS.x86        = -m32
    6209 TEMPLATE_VBoxR3Exe_CXXFLAGS.amd64      = -m64
    6210 TEMPLATE_VBoxR3Exe_CXXFLAGS.sparc32    = -m32
    6211 TEMPLATE_VBoxR3Exe_CXXFLAGS.sparc64    = -m64
    6212 TEMPLATE_VBoxR3Exe_CXXFLAGS.kprofile   = -finstrument-functions
    6213 TEMPLATE_VBoxR3Exe_CFLAGS              = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_OPT) \
     6208 TEMPLATE_VBoxR3Exe_CXXFLAGS.x86       = -m32
     6209 TEMPLATE_VBoxR3Exe_CXXFLAGS.amd64     = -m64
     6210 TEMPLATE_VBoxR3Exe_CXXFLAGS.sparc32   = -m32
     6211 TEMPLATE_VBoxR3Exe_CXXFLAGS.sparc64   = -m64
     6212 TEMPLATE_VBoxR3Exe_CXXFLAGS.kprofile  = -finstrument-functions
     6213 TEMPLATE_VBoxR3Exe_CFLAGS             = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_OPT) \
    62146214        $(VBOX_GCC_FP) -fno-strict-aliasing $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK)
    62156215 ifdef VBOX_WITH_NO_GCC_WARNING_POLICY
    62166216  TEMPLATE_VBoxR3Exe_CFLAGS           += $(VBOX_GCC_WERR)
    62176217 endif
    6218 TEMPLATE_VBoxR3Exe_CFLAGS.x86          = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.x86)
    6219 TEMPLATE_VBoxR3Exe_CFLAGS.amd64        = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.amd64)
    6220 TEMPLATE_VBoxR3Exe_CFLAGS.sparc32      = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.sparc32)
    6221 TEMPLATE_VBoxR3Exe_CFLAGS.sparc64      = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.sparc64)
    6222 TEMPLATE_VBoxR3Exe_CFLAGS.debug        = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.debug)
    6223 TEMPLATE_VBoxR3Exe_CFLAGS.kprofile     = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.kprofile)
    6224 TEMPLATE_VBoxR3Exe_OBJCFLAGS           = $(TEMPLATE_VBoxR3Exe_CFLAGS)
    6225 TEMPLATE_VBoxR3Exe_OBJCFLAGS.x86       = $(TEMPLATE_VBoxR3Exe_CFLAGS.x86)
    6226 TEMPLATE_VBoxR3Exe_OBJCFLAGS.amd64     = $(TEMPLATE_VBoxR3Exe_CFLAGS.amd64)
    6227 TEMPLATE_VBoxR3Exe_OBJCFLAGS.debug     = $(TEMPLATE_VBoxR3Exe_CFLAGS.debug)
    6228 TEMPLATE_VBoxR3Exe_OBJCFLAGS.kprofile = $(TEMPLATE_VBoxR3Exe_CFLAGS.kprofile)
    6229 TEMPLATE_VBoxR3Exe_OBJCXXFLAGS         = $(TEMPLATE_VBoxR3Exe_CXXFLAGS)
    6230 TEMPLATE_VBoxR3Exe_OBJCXXFLAGS.x86     = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.x86)
    6231 TEMPLATE_VBoxR3Exe_OBJCXXFLAGS.amd64   = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.amd64)
    6232 TEMPLATE_VBoxR3Exe_OBJCXXFLAGS.debug   = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.debug)
    6233 TEMPLATE_VBoxR3Exe_OBJCXXFLAGS.kprofile= $(TEMPLATE_VBoxR3Exe_CXXFLAGS.kprofile)
    6234 TEMPLATE_VBoxR3Exe_PCHFLAGS            = $(TEMPLATE_VBoxR3Exe_CXXFLAGS)
    6235 TEMPLATE_VBoxR3Exe_PCHFLAGS.x86        = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.x86)
    6236 TEMPLATE_VBoxR3Exe_PCHFLAGS.amd64      = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.amd64)
    6237 TEMPLATE_VBoxR3Exe_PCHFLAGS.debug      = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.debug)
    6238 TEMPLATE_VBoxR3Exe_PCHFLAGS.kprofile   = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.kprofile)
    6239 TEMPLATE_VBoxR3Exe_LDFLAGS             = $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_SANITIZER_LDFLAGS)
    6240 TEMPLATE_VBoxR3Exe_LDFLAGS.x86         = -m32
    6241 TEMPLATE_VBoxR3Exe_LDFLAGS.amd64       = -m64
    6242 TEMPLATE_VBoxR3Exe_LDFLAGS.sparc32     = -m32
    6243 TEMPLATE_VBoxR3Exe_LDFLAGS.sparc64     = -m64
    6244 TEMPLATE_VBoxR3Exe_LDFLAGS.linux       = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
    6245 TEMPLATE_VBoxR3Exe_LDFLAGS.solaris     = -Wl,-z,ignore # same as VBOX_LD_as_needed
     6218 TEMPLATE_VBoxR3Exe_CFLAGS.x86         = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.x86)
     6219 TEMPLATE_VBoxR3Exe_CFLAGS.amd64       = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.amd64)
     6220 TEMPLATE_VBoxR3Exe_CFLAGS.sparc32     = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.sparc32)
     6221 TEMPLATE_VBoxR3Exe_CFLAGS.sparc64     = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.sparc64)
     6222 TEMPLATE_VBoxR3Exe_CFLAGS.debug       = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.debug)
     6223 TEMPLATE_VBoxR3Exe_CFLAGS.kprofile    = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.kprofile)
     6224 TEMPLATE_VBoxR3Exe_OBJCFLAGS          = $(TEMPLATE_VBoxR3Exe_CFLAGS)
     6225 TEMPLATE_VBoxR3Exe_OBJCFLAGS.x86      = $(TEMPLATE_VBoxR3Exe_CFLAGS.x86)
     6226 TEMPLATE_VBoxR3Exe_OBJCFLAGS.amd64    = $(TEMPLATE_VBoxR3Exe_CFLAGS.amd64)
     6227 TEMPLATE_VBoxR3Exe_OBJCFLAGS.debug    = $(TEMPLATE_VBoxR3Exe_CFLAGS.debug)
     6228 TEMPLATE_VBoxR3Exe_OBJCFLAGS.kprofile = $(TEMPLATE_VBoxR3Exe_CFLAGS.kprofile)
     6229 TEMPLATE_VBoxR3Exe_OBJCXXFLAGS        = $(TEMPLATE_VBoxR3Exe_CXXFLAGS)
     6230 TEMPLATE_VBoxR3Exe_OBJCXXFLAGS.x86    = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.x86)
     6231 TEMPLATE_VBoxR3Exe_OBJCXXFLAGS.amd64  = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.amd64)
     6232 TEMPLATE_VBoxR3Exe_OBJCXXFLAGS.debug  = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.debug)
     6233 TEMPLATE_VBoxR3Exe_OBJCXXFLAGS.kprofile = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.kprofile)
     6234 TEMPLATE_VBoxR3Exe_PCHFLAGS           = $(TEMPLATE_VBoxR3Exe_CXXFLAGS)
     6235 TEMPLATE_VBoxR3Exe_PCHFLAGS.x86       = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.x86)
     6236 TEMPLATE_VBoxR3Exe_PCHFLAGS.amd64     = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.amd64)
     6237 TEMPLATE_VBoxR3Exe_PCHFLAGS.debug     = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.debug)
     6238 TEMPLATE_VBoxR3Exe_PCHFLAGS.kprofile  = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.kprofile)
     6239 TEMPLATE_VBoxR3Exe_LDFLAGS            = $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_SANITIZER_LDFLAGS)
     6240 TEMPLATE_VBoxR3Exe_LDFLAGS.x86        = -m32
     6241 TEMPLATE_VBoxR3Exe_LDFLAGS.amd64      = -m64
     6242 TEMPLATE_VBoxR3Exe_LDFLAGS.sparc32    = -m32
     6243 TEMPLATE_VBoxR3Exe_LDFLAGS.sparc64    = -m64
     6244 TEMPLATE_VBoxR3Exe_LDFLAGS.linux      = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
     6245 TEMPLATE_VBoxR3Exe_LDFLAGS.solaris    = -Wl,-z,ignore # same as VBOX_LD_as_needed
    62466246
    62476247 ifeq ($(KBUILD_TARGET),linux)
    6248 TEMPLATE_VBoxR3Exe_LIBS                = pthread m rt dl
     6248  TEMPLATE_VBoxR3Exe_LIBS              = pthread m rt dl
    62496249 else ifeq ($(KBUILD_TARGET),os2)
    6250 TEMPLATE_VBoxR3Exe_TOOL                = GXX3OMF
    6251 TEMPLATE_VBoxR3Exe_LIBS                = socket iconv
     6250  TEMPLATE_VBoxR3Exe_TOOL              = GXX3OMF
     6251  TEMPLATE_VBoxR3Exe_LIBS              = socket iconv
    62526252 else ifeq ($(KBUILD_TARGET),darwin)
    6253 TEMPLATE_VBoxR3Exe_TOOL                = $(VBOX_GCC_TOOL)
    6254 TEMPLATE_VBoxR3Exe_LIBS                =
    6255 TEMPLATE_VBoxR3Exe_DEFS               += LIBICONV_PLUG # Avoid 3rd party libiconv (from macports).
    6256 TEMPLATE_VBoxR3Exe_SDKS.darwin         = $(VBOX_DARWIN_DEF_SDK_SDKS)
    6257 TEMPLATE_VBoxR3Exe_DEFS.darwin         = $(VBOX_DARWIN_DEF_SDK_DEFS)
    6258 TEMPLATE_VBoxR3Exe_CFLAGS.darwin       = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -fno-common
    6259 TEMPLATE_VBoxR3Exe_CXXFLAGS.darwin     = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
    6260 TEMPLATE_VBoxR3Exe_PCHFLAGS.darwin     = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
    6261 TEMPLATE_VBoxR3Exe_OBJCFLAGS.darwin    = $(VBOX_DARWIN_DEF_SDK_OBJCFLAGS)
    6262 TEMPLATE_VBoxR3Exe_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_OBJCXXFLAGS)
    6263 TEMPLATE_VBoxR3Exe_LDFLAGS.darwin      = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -Wl,-headerpad_max_install_names
    6264 TEMPLATE_VBoxR3Exe_LDFLAGS.darwin.x86 = -read_only_relocs suppress
    6265 TEMPLATE_VBoxR3Exe_POST_CMDS.darwin    = $(VBOX_SIGN_IMAGE_CMDS)
     6253  TEMPLATE_VBoxR3Exe_TOOL              = $(VBOX_GCC_TOOL)
     6254  TEMPLATE_VBoxR3Exe_LIBS              =
     6255  TEMPLATE_VBoxR3Exe_DEFS             += LIBICONV_PLUG # Avoid 3rd party libiconv (from macports).
     6256  TEMPLATE_VBoxR3Exe_SDKS.darwin       = $(VBOX_DARWIN_DEF_SDK_SDKS)
     6257  TEMPLATE_VBoxR3Exe_DEFS.darwin       = $(VBOX_DARWIN_DEF_SDK_DEFS)
     6258  TEMPLATE_VBoxR3Exe_CFLAGS.darwin     = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -fno-common
     6259  TEMPLATE_VBoxR3Exe_CXXFLAGS.darwin   = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
     6260  TEMPLATE_VBoxR3Exe_PCHFLAGS.darwin   = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
     6261  TEMPLATE_VBoxR3Exe_OBJCFLAGS.darwin  = $(VBOX_DARWIN_DEF_SDK_OBJCFLAGS)
     6262  TEMPLATE_VBoxR3Exe_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_OBJCXXFLAGS)
     6263  TEMPLATE_VBoxR3Exe_LDFLAGS.darwin    = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -Wl,-headerpad_max_install_names
     6264  TEMPLATE_VBoxR3Exe_LDFLAGS.darwin.x86 = -read_only_relocs suppress
     6265  TEMPLATE_VBoxR3Exe_POST_CMDS.darwin  = $(VBOX_SIGN_IMAGE_CMDS)
    62666266  ifdef VBOX_WITH_DTRACE_R3
    62676267   TEMPLATE_VBoxR3Exe_CXXFLAGS := $(filter-out -pedantic,$(TEMPLATE_VBoxR3Exe_CXXFLAGS)) -fdollars-in-identifiers # annoying gcc option precedence.
    62686268  endif
    62696269 else ifeq ($(KBUILD_TARGET),haiku)
    6270 TEMPLATE_VBoxR3Exe_TOOL                = GXX3
    6271 TEMPLATE_VBoxR3Exe_POST_CMDS          = $(VBOX_HAIKU_XRES_SETVER_CMDS)
    6272 TEMPLATE_VBoxR3Exe_LIBS                = network iconv stdc++ supc++
    6273 TEMPLATE_VBoxR3Exe_LIBPATH            += \
    6274         /boot/common/lib
    6275 # Haiku uses PIC by default...
    6276 TEMPLATE_VBoxR3Exe_CFLAGS             += -fno-pic
    6277 TEMPLATE_VBoxR3Exe_CXXFLAGS           += -fno-pic
    6278 TEMPLATE_VBoxR3Exe_LDFLAGS            += -fno-pic
     6270  TEMPLATE_VBoxR3Exe_TOOL              = GXX3
     6271  TEMPLATE_VBoxR3Exe_POST_CMDS        = $(VBOX_HAIKU_XRES_SETVER_CMDS)
     6272  TEMPLATE_VBoxR3Exe_LIBS              = network iconv stdc++ supc++
     6273  TEMPLATE_VBoxR3Exe_LIBPATH          += \
     6274        /boot/common/lib
     6275  # Haiku uses PIC by default...
     6276  TEMPLATE_VBoxR3Exe_CFLAGS           += -fno-pic
     6277  TEMPLATE_VBoxR3Exe_CXXFLAGS         += -fno-pic
     6278  TEMPLATE_VBoxR3Exe_LDFLAGS          += -fno-pic
    62796279 else if1of ($(KBUILD_TARGET), freebsd openbsd)
    6280 TEMPLATE_VBoxR3Exe_TOOL                = GXX3
    6281 TEMPLATE_VBoxR3Exe_LIBS                = pthread
    6282 TEMPLATE_VBoxR3Exe_INCS               += \
    6283         /usr/include \
    6284         /usr/X11R6/include \
    6285         /usr/local/include
    6286 TEMPLATE_VBoxR3Exe_LIBPATH            += \
    6287         /usr/lib \
    6288         /usr/X11R6/lib \
    6289         /usr/local/lib
     6280  TEMPLATE_VBoxR3Exe_TOOL              = GXX3
     6281  TEMPLATE_VBoxR3Exe_LIBS              = pthread
     6282  TEMPLATE_VBoxR3Exe_INCS             += \
     6283        /usr/include \
     6284        /usr/X11R6/include \
     6285        /usr/local/include
     6286  TEMPLATE_VBoxR3Exe_LIBPATH          += \
     6287        /usr/lib \
     6288        /usr/X11R6/lib \
     6289        /usr/local/lib
    62906290 else ifeq ($(KBUILD_TARGET),netbsd)
    6291 TEMPLATE_VBoxR3Exe_TOOL                = GXX3
    6292 TEMPLATE_VBoxR3Exe_LIBS                = pthread
    6293 TEMPLATE_VBoxR3Exe_INCS               += \
    6294         /usr/include \
    6295         /usr/X11R7/include
    6296 TEMPLATE_VBoxR3Exe_LIBPATH            += \
    6297         /usr/lib \
    6298         /usr/X11R7/lib
     6291  TEMPLATE_VBoxR3Exe_TOOL              = GXX3
     6292  TEMPLATE_VBoxR3Exe_LIBS              = pthread
     6293  TEMPLATE_VBoxR3Exe_INCS             += \
     6294        /usr/include \
     6295        /usr/X11R7/include
     6296  TEMPLATE_VBoxR3Exe_LIBPATH          += \
     6297        /usr/lib \
     6298        /usr/X11R7/lib
    62996299 else ifeq ($(KBUILD_TARGET),solaris)
    6300 TEMPLATE_VBoxR3Exe_TOOL                = GXX3PLAIN
    6301 TEMPLATE_VBoxR3Exe_DEFS               += LIBICONV_PLUG _REENTRANT # Avoid the GNU libiconv, for now at least.
     6300  TEMPLATE_VBoxR3Exe_TOOL              = GXX3PLAIN
     6301  TEMPLATE_VBoxR3Exe_DEFS             += LIBICONV_PLUG _REENTRANT # Avoid the GNU libiconv, for now at least.
    63026302  if $(VBOX_GCC_VERSION_CC) < 30500
    6303 TEMPLATE_VBoxR3Exe_CFLAGS             += -std=gnu99
    6304   endif
    6305 TEMPLATE_VBoxR3Exe_LIBS                = rt socket
     6303   TEMPLATE_VBoxR3Exe_CFLAGS          += -std=gnu99
     6304  endif
     6305  TEMPLATE_VBoxR3Exe_LIBS              = rt socket
    63066306 else
    6307 $(warning Warning: VBOX Build: Target $(KBUILD_TARGET) is not officially supported!)
    6308 TEMPLATE_VBoxR3Exe_CXXFLAGS.profile    = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.release)
    6309 TEMPLATE_VBoxR3Exe_CXXFLAGS.kprofile  = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.krelease)
     6307  $(warning Warning: VBOX Build: Target $(KBUILD_TARGET) is not officially supported!)
     6308  TEMPLATE_VBoxR3Exe_CXXFLAGS.profile  = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.release)
     6309  TEMPLATE_VBoxR3Exe_CXXFLAGS.kprofile = $(TEMPLATE_VBoxR3Exe_CXXFLAGS.krelease)
    63106310 endif
    63116311 ifdef VBOX_WITH_RUNPATH
     
    64706470 endif
    64716471 TEMPLATE_VBoxR3StaticBase_LDFLAGS            += \
    6472         /DISALLOWLIB:msvcrt.lib \
    6473         /DISALLOWLIB:msvcrtd.lib \
    6474         /DISALLOWLIB:msvcprt.lib \
    6475         /DISALLOWLIB:msvcprtd.lib \
    6476         /DISALLOWLIB:vcruntime.lib \
    6477         /DISALLOWLIB:vcruntimed.lib \
    6478         /DISALLOWLIB:ucrt.lib \
    6479         /DISALLOWLIB:ucrtd.lib
     6472        /DISALLOWLIB:msvcrt.lib \
     6473        /DISALLOWLIB:msvcrtd.lib \
     6474        /DISALLOWLIB:msvcprt.lib \
     6475        /DISALLOWLIB:msvcprtd.lib \
     6476        /DISALLOWLIB:vcruntime.lib \
     6477        /DISALLOWLIB:vcruntimed.lib \
     6478        /DISALLOWLIB:ucrt.lib \
     6479        /DISALLOWLIB:ucrtd.lib
    64806480 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC140"
    64816481  ifdef VBOX_WITH_NOCRT_STATIC
     
    65696569endif
    65706570TEMPLATE_VBoxR3Static_LIBS.$(KBUILD_TARGET_ARCH) += \
    6571         $(VBOX_LIB_RUNTIME_STATIC)
     6571        $(VBOX_LIB_RUNTIME_STATIC)
    65726572ifneq ($(KBUILD_TARGET_ARCH),x86)
    6573 TEMPLATE_VBoxR3Static_LIBS.x86     += \
     6573 TEMPLATE_VBoxR3Static_LIBS.x86    += \
    65746574        $(VBOX_LIB_RUNTIME_STATIC_X86)
    65756575endif
     
    65866586        $(SDK_VBoxLzf_LIBS) \
    65876587        $(SDK_VBoxZlib_LIBS)
    6588  if1of ($(KBUILD_TARGET),darwin freebsd)
     6588 if1of ($(KBUILD_TARGET), darwin freebsd)
    65896589  TEMPLATE_VBoxR3Static_LIBS       += iconv
    65906590 else ifeq ($(KBUILD_TARGET),solaris)
     
    66686668        IN_RT_STATIC
    66696669ifndef VBOX_WITH_NOCRT_STATIC
    6670 TEMPLATE_VBoxR3StaticNoCrt_DEFS.win      = $(TEMPLATE_VBoxR3Static_DEFS.win) \
    6671         RT_WITHOUT_NOCRT_WRAPPERS
     6670 TEMPLATE_VBoxR3StaticNoCrt_DEFS.win     = $(TEMPLATE_VBoxR3Static_DEFS.win) \
     6671        RT_WITHOUT_NOCRT_WRAPPERS
    66726672endif
    66736673TEMPLATE_VBoxR3StaticNoCrt_LIBS          = \
    66746674        $(PATH_STAGE_LIB)/RuntimeR3NoCrt$(VBOX_SUFF_LIB)
    66756675ifeq ($(KBUILD_TARGET),win)
    6676 TEMPLATE_VBoxR3StaticNoCrt_LIBS.x86        = $(NO_SUCH_VARIABLE)
    6677 TEMPLATE_VBoxR3StaticNoCrt_LIBS.amd64      = $(NO_SUCH_VARIABLE)
    6678 TEMPLATE_VBoxR3StaticNoCrt_LIBS.win        = $(NO_SUCH_VARIABLE)
     6676 TEMPLATE_VBoxR3StaticNoCrt_LIBS.x86       = $(NO_SUCH_VARIABLE)
     6677 TEMPLATE_VBoxR3StaticNoCrt_LIBS.amd64     = $(NO_SUCH_VARIABLE)
     6678 TEMPLATE_VBoxR3StaticNoCrt_LIBS.win       = $(NO_SUCH_VARIABLE)
    66796679 ifdef VBOX_WITH_NOCRT_STATIC
    6680 TEMPLATE_VBoxR3StaticNoCrt_LIBS.$(KBUILD_TARGET_ARCH) = \
    6681         $(PATH_STAGE_LIB)/RuntimeR3NoCrt$(VBOX_SUFF_LIB)
     6680  TEMPLATE_VBoxR3StaticNoCrt_LIBS.$(KBUILD_TARGET_ARCH) = \
     6681        $(PATH_STAGE_LIB)/RuntimeR3NoCrt$(VBOX_SUFF_LIB)
    66826682  ifneq ($(KBUILD_TARGET_ARCH),x86)
    6683 TEMPLATE_VBoxR3StaticNoCrt_LIBS.x86        = \
    6684         $(PATH_STAGE_LIB)/RuntimeR3NoCrt-x86$(VBOX_SUFF_LIB) # place holder, we don't have this library
     6683   TEMPLATE_VBoxR3StaticNoCrt_LIBS.x86     = \
     6684        $(PATH_STAGE_LIB)/RuntimeR3NoCrt-x86$(VBOX_SUFF_LIB) # place holder, we don't have this library
    66856685  endif
    66866686 else
    6687 TEMPLATE_VBoxR3StaticNoCrt_LIBS.win.x86    = \
    6688         $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticNoCrt_TOOL.win.x86)_LIB)/chkstk.obj
    6689  endif
    6690 TEMPLATE_VBoxR3StaticNoCrt_SDKS.win.x86   += VBoxWinInt64Lib
    6691 TEMPLATE_VBoxR3StaticNoCrt_LDFLAGS         = $(filter-out $(VBOX_VCC_LD_GUARD_CF) $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxR3Static_LDFLAGS))
    6692 TEMPLATE_VBoxR3StaticNoCrt_LDFLAGS.win.x86 = $(filter-out -Include%, $(TEMPLATE_VBoxR3Static_LDFLAGS.win.x86))
    6693 TEMPLATE_VBoxR3StaticNoCrt_CFLAGS          = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_CFLAGS)) /GS- -EHs-
    6694 TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS        = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_CXXFLAGS)) /GS- -EHs-
    6695 TEMPLATE_VBoxR3StaticNoCrt_PCHFLAGS        = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_PCHFLAGS)) /GS- -EHs-
    6696 TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS.debug = $(filter-out /RTC% -RTC%, $(TEMPLATE_VBoxR3Static_CXXFLAGS.debug))
     6687  TEMPLATE_VBoxR3StaticNoCrt_LIBS.win.x86  = \
     6688        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticNoCrt_TOOL.win.x86)_LIB)/chkstk.obj
     6689 endif
     6690 TEMPLATE_VBoxR3StaticNoCrt_SDKS.win.x86  += VBoxWinInt64Lib
     6691 TEMPLATE_VBoxR3StaticNoCrt_LDFLAGS        = $(filter-out $(VBOX_VCC_LD_GUARD_CF) $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxR3Static_LDFLAGS))
     6692 TEMPLATE_VBoxR3StaticNoCrt_LDFLAGS.win.x86 = $(filter-out -Include%, $(TEMPLATE_VBoxR3Static_LDFLAGS.win.x86))
     6693 TEMPLATE_VBoxR3StaticNoCrt_CFLAGS         = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_CFLAGS)) /GS- -EHs-
     6694 TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS       = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_CXXFLAGS)) /GS- -EHs-
     6695 TEMPLATE_VBoxR3StaticNoCrt_PCHFLAGS       = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_PCHFLAGS)) /GS- -EHs-
     6696 TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS.debug = $(filter-out /RTC% -RTC%, $(TEMPLATE_VBoxR3Static_CXXFLAGS.debug))
    66976697else
    6698 TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS        = $(TEMPLATE_VBoxR3Static_CXXFLAGS) -fno-exceptions
    6699 TEMPLATE_VBoxR3StaticNoCrt_PCHFLAGS        = $(TEMPLATE_VBoxR3Static_PCHFLAGS) -fno-exceptions
     6698 TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS       = $(TEMPLATE_VBoxR3Static_CXXFLAGS) -fno-exceptions
     6699 TEMPLATE_VBoxR3StaticNoCrt_PCHFLAGS       = $(TEMPLATE_VBoxR3Static_PCHFLAGS) -fno-exceptions
    67006700endif
    67016701
     
    67266726TEMPLATE_VBoxR3HardenedExe_LDFLAGS.darwin = $(TEMPLATE_VBoxR3Exe_LDFLAGS.darwin) -framework IOKit
    67276727ifeq ($(KBUILD_TARGET),linux)
    6728 # not necessary except USE_LIB_PCAP is defined in SUPR3HardenedMain.cpp
    6729 # TEMPLATE_VBoxR3HardenedExe_LIBS += cap
     6728 # not necessary except USE_LIB_PCAP is defined in SUPR3HardenedMain.cpp
     6729 # TEMPLATE_VBoxR3HardenedExe_LIBS += cap
    67306730endif
    67316731ifeq ($(KBUILD_TARGET),win) # No CRT!
     
    67486748 endif
    67496749 TEMPLATE_VBoxR3HardenedExe_LDFLAGS       = $(filter-out  $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxR3Exe_LDFLAGS)) \
    6750         /DISALLOWLIB:msvcrt$(VBOX_VCC_CRT_TYPE).lib \
    6751         /DISALLOWLIB:msvcprt$(VBOX_VCC_CRT_TYPE).lib \
    6752         /DISALLOWLIB:vcruntime$(VBOX_VCC_CRT_TYPE).lib \
    6753         /DISALLOWLIB:ucrt$(VBOX_VCC_CRT_TYPE).lib
     6750        /DISALLOWLIB:msvcrt$(VBOX_VCC_CRT_TYPE).lib \
     6751        /DISALLOWLIB:msvcprt$(VBOX_VCC_CRT_TYPE).lib \
     6752        /DISALLOWLIB:vcruntime$(VBOX_VCC_CRT_TYPE).lib \
     6753        /DISALLOWLIB:ucrt$(VBOX_VCC_CRT_TYPE).lib
    67546754 TEMPLATE_VBoxR3HardenedExe_LDFLAGS.win.x86   = $(TEMPLATE_VBoxR3Exe_LDFLAGS.win.x86)   /entry:suplibHardenedWindowsMain
    67556755 TEMPLATE_VBoxR3HardenedExe_LDFLAGS.win.amd64 = $(TEMPLATE_VBoxR3Exe_LDFLAGS.win.amd64) /entry:suplibHardenedWindowsMain
     
    67886788TEMPLATE_VBoxR3HardenedTstDll_EXTENDS = VBoxR3TstDll
    67896789TEMPLATE_VBoxR3HardenedTstDll_INST = $(INST_TESTCASE)
    6790  TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.win = $(TEMPLATE_VBoxR3TstDll_LDFLAGS.win) -IntegrityCheck
     6790TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS.win = $(TEMPLATE_VBoxR3TstDll_LDFLAGS.win) -IntegrityCheck
    67916791ifn1of ($(KBUILD_TARGET), win os2)
    67926792 TEMPLATE_VBoxR3HardenedTstDll_LDFLAGS       = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3TstDll_LDFLAGS))
     
    67996799#
    68006800TEMPLATE_VBoxR3SetUidToRoot = Set-uid-to-root helper program.
    6801 if1of ($(KBUILD_TARGET),win)
     6801if1of ($(KBUILD_TARGET), win)
    68026802 TEMPLATE_VBoxR3SetUidToRoot_EXTENDS = VBoxR3Exe
    68036803else
     
    68676867        $(if-expr !defined(SDK_VBoxLibXml2_LIBS),$(PATH_STAGE_LIB)/VBox-libxml2-static$(VBOX_SUFF_LIB),) \
    68686868        $(if-expr "$(KBUILD_TARGET)" == "win" || "$(KBUILD_TARGET)" == "os2" \
    6869                 ,$(SDK_VBoxLzf_STATIC_LIBS) $(SDK_VBoxZlibStatic_LIBS) \
    6870                ,$(SDK_VBoxLzf_LIBS) $(SDK_VBoxZlib_LIBS)) \
     6869        ,$(SDK_VBoxLzf_STATIC_LIBS) $(SDK_VBoxZlibStatic_LIBS) \
     6870        ,$(SDK_VBoxLzf_LIBS) $(SDK_VBoxZlib_LIBS)) \
    68716871        ,$(TEMPLATE_$(TEMPLATE_VBoxR3AutoTest_EXTENDS)_LIBS.$(KBUILD_TARGET_ARCH)))
    68726872
     
    69236923 TEMPLATE_VBoxR3DllNonPedantic_TOOL         = $(VBOX_GCC_TOOL)
    69246924 TEMPLATE_VBoxR3DllNonPedantic_CFLAGS       = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_C)  ,$(TEMPLATE_VBoxR3DllBase_CFLAGS)) \
    6925         $(VBOX_GCC_NON_PEDANTIC_C)
     6925        $(VBOX_GCC_NON_PEDANTIC_C)
    69266926 TEMPLATE_VBoxR3DllNonPedantic_CXXFLAGS     = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_CXX),$(TEMPLATE_VBoxR3DllBase_CXXFLAGS)) \
    69276927        $(VBOX_GCC_NON_PEDANTIC_CXX)
     
    70287028 TEMPLATE_VBoxMainExe_DEFS              += VBOX_WITH_DTRACE VBOX_WITH_DTRACE_R3 VBOX_WITH_DTRACE_R3_MAIN VBOX_WITH_NATIVE_DTRACE
    70297029else
    7030   TEMPLATE_VBoxMainExe_DTRACE_HDR_FLAGS  = --ring-3-context
    7031   TEMPLATE_VBoxMainExe_DTRACE_OBJ_FLAGS  = --ring-3-context --pic --probe-fn-imported --probe-fn-name "SUPTracerFireProbe"
     7030 TEMPLATE_VBoxMainExe_DTRACE_HDR_FLAGS   = --ring-3-context
     7031 TEMPLATE_VBoxMainExe_DTRACE_OBJ_FLAGS   = --ring-3-context --pic --probe-fn-imported --probe-fn-name "SUPTracerFireProbe"
    70327032 if defined(VBOX_WITH_DTRACE_R3_MAIN)
    70337033  TEMPLATE_VBoxMainExe_DTRACETOOL        = VBoxTpG
     
    70737073 TEMPLATE_VBoxMainExe_PCHFLAGS.kprofile  = $(TEMPLATE_VBoxMainExe_CXXFLAGS.kprofile)
    70747074 TEMPLATE_VBoxMainExe_LDFLAGS            = -Ignore:4197 \
    7075         /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware /DynamicBase /NxCompat /Release /Debug /Opt:Ref /Opt:Icf \
    7076         $(VBOX_VCC_LD_GUARD_CF) $(VBOX_VCC_SANITIZER_LDFLAGS) \
    7077         /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
    7078         /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com \
    7079         /DISALLOWLIB:libc.lib \
    7080         /DISALLOWLIB:libcd.lib \
    7081         /DISALLOWLIB:libcmt.lib \
    7082         /DISALLOWLIB:libcmtd.lib \
    7083         /DISALLOWLIB:msvcrt$(VBOX_VCC_CRT_TYPE_N).lib \
    7084         /DISALLOWLIB:msvcprt$(VBOX_VCC_CRT_TYPE_N).lib \
    7085         /DISALLOWLIB:vcruntime$(VBOX_VCC_CRT_TYPE_N).lib \
    7086         /DISALLOWLIB:ucrt$(VBOX_VCC_CRT_TYPE_N).lib \
    7087         /DISALLOWLIB:libvcruntime.lib \
    7088         /DISALLOWLIB:libvcruntimed.lib \
    7089         /DISALLOWLIB:libucrt.lib \
    7090         /DISALLOWLIB:libucrtd.lib
     7075        /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware /DynamicBase /NxCompat /Release /Debug /Opt:Ref /Opt:Icf \
     7076        $(VBOX_VCC_LD_GUARD_CF) $(VBOX_VCC_SANITIZER_LDFLAGS) \
     7077        /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     7078        /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com \
     7079        /DISALLOWLIB:libc.lib \
     7080        /DISALLOWLIB:libcd.lib \
     7081        /DISALLOWLIB:libcmt.lib \
     7082        /DISALLOWLIB:libcmtd.lib \
     7083        /DISALLOWLIB:msvcrt$(VBOX_VCC_CRT_TYPE_N).lib \
     7084        /DISALLOWLIB:msvcprt$(VBOX_VCC_CRT_TYPE_N).lib \
     7085        /DISALLOWLIB:vcruntime$(VBOX_VCC_CRT_TYPE_N).lib \
     7086        /DISALLOWLIB:ucrt$(VBOX_VCC_CRT_TYPE_N).lib \
     7087        /DISALLOWLIB:libvcruntime.lib \
     7088        /DISALLOWLIB:libvcruntimed.lib \
     7089        /DISALLOWLIB:libucrt.lib \
     7090        /DISALLOWLIB:libucrtd.lib
    70917091 if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_HARDENING)
    70927092  TEMPLATE_VBoxMainExe_LDFLAGS          += -IntegrityCheck
     
    70977097 TEMPLATE_VBoxMainExe_LDFLAGS.win.amd64  = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA)
    70987098 TEMPLATE_VBoxMainExe_LIBS               = \
    7099         $(LIB_RUNTIME)
     7099        $(LIB_RUNTIME)
    71007100 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC140"
    71017101  TEMPLATE_VBoxMainExe_LIBS.x86           = \
     
    71327132else # the GCC guys:
    71337133
    7134 TEMPLATE_VBoxMainExe_TOOL                = $(VBOX_GCC_TOOL)
     7134 TEMPLATE_VBoxMainExe_TOOL               = $(VBOX_GCC_TOOL)
    71357135 if $(VBOX_GCC_VERSION_CC) < 30400
    71367136  TEMPLATE_VBoxMainExe_DEFS             += RT_WITHOUT_PRAGMA_ONCE
    71377137 endif
    7138 TEMPLATE_VBoxMainExe_CXXFLAGS            = -g $(VBOX_GCC_pipe) \
    7139         $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_Wno-multistatement-macros) $(VBOX_GCC_Wno-class-memaccess) -Wshadow \
    7140         -fshort-wchar -fpermissive -fexceptions -frtti $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing \
    7141         $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK) \
    7142         $(VBOX_GCC_SANITIZER_FLAGS)
     7138 TEMPLATE_VBoxMainExe_CXXFLAGS           = -g $(VBOX_GCC_pipe) \
     7139        $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_Wno-multistatement-macros) $(VBOX_GCC_Wno-class-memaccess) -Wshadow \
     7140        -fshort-wchar -fpermissive -fexceptions -frtti $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing \
     7141        $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK) \
     7142        $(VBOX_GCC_SANITIZER_FLAGS)
    71437143 if !defined("VBOX_GCC_Wno-delete-non-virtual-dtor") && defined("VBOX_GCC_Wno-non-virtual-dtor")
    71447144  TEMPLATE_VBoxMainExe_CXXFLAGS         += $(VBOX_GCC_Wno-non-virtual-dtor)
     
    71507150  TEMPLATE_VBoxMainExe_CXXFLAGS := $(filter-out -pedantic,$(TEMPLATE_VBoxMainExe_CXXFLAGS)) -fdollars-in-identifiers # annoying gcc option precedence.
    71517151 endif
    7152 TEMPLATE_VBoxMainExe_CXXFLAGS.x86        = -m32
    7153 TEMPLATE_VBoxMainExe_CXXFLAGS.amd64      = -m64
    7154 TEMPLATE_VBoxMainExe_CXXFLAGS.kprofile   = -finstrument-functions
    7155 TEMPLATE_VBoxMainExe_CFLAGS              = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) \
    7156         $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK) \
    7157         $(VBOX_GCC_SANITIZER_FLAGS)
     7152 TEMPLATE_VBoxMainExe_CXXFLAGS.x86       = -m32
     7153 TEMPLATE_VBoxMainExe_CXXFLAGS.amd64     = -m64
     7154 TEMPLATE_VBoxMainExe_CXXFLAGS.kprofile  = -finstrument-functions
     7155 TEMPLATE_VBoxMainExe_CFLAGS             = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) \
     7156        $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK) \
     7157        $(VBOX_GCC_SANITIZER_FLAGS)
    71587158 ifdef VBOX_WITH_NO_GCC_WARNING_POLICY
    71597159  TEMPLATE_VBoxMainExe_CFLAGS           += $(VBOX_GCC_WERR)
    71607160 endif
    7161 TEMPLATE_VBoxMainExe_CFLAGS.x86          = -m32
    7162 TEMPLATE_VBoxMainExe_CFLAGS.amd64        = -m64
    7163 TEMPLATE_VBoxMainExe_CFLAGS.kprofile     = $(TEMPLATE_VBoxMainExe_CXXFLAGS.kprofile)
    7164 TEMPLATE_VBoxMainExe_CFLAGS.debug        = $(TEMPLATE_VBoxMainExe_CXXFLAGS.debug)
    7165 TEMPLATE_VBoxMainExe_OBJCFLAGS           = $(TEMPLATE_VBoxMainExe_CFLAGS)
    7166 TEMPLATE_VBoxMainExe_OBJCFLAGS.x86       = $(TEMPLATE_VBoxMainExe_CFLAGS.x86)
    7167 TEMPLATE_VBoxMainExe_OBJCFLAGS.amd64     = $(TEMPLATE_VBoxMainExe_CFLAGS.amd64)
    7168 TEMPLATE_VBoxMainExe_OBJCFLAGS.debug     = $(TEMPLATE_VBoxMainExe_CFLAGS.debug)
    7169 TEMPLATE_VBoxMainExe_OBJCFLAGS.kprofile = $(TEMPLATE_VBoxMainExe_CFLAGS.kprofile)
    7170 TEMPLATE_VBoxMainExe_OBJCXXFLAGS         = $(TEMPLATE_VBoxMainExe_CXXFLAGS)
    7171 TEMPLATE_VBoxMainExe_OBJCXXFLAGS.x86     = $(TEMPLATE_VBoxMainExe_CXXFLAGS.x86)
    7172 TEMPLATE_VBoxMainExe_OBJCXXFLAGS.amd64   = $(TEMPLATE_VBoxMainExe_CXXFLAGS.amd64)
    7173 TEMPLATE_VBoxMainExe_OBJCXXFLAGS.debug   = $(TEMPLATE_VBoxMainExe_CXXFLAGS.debug)
    7174 TEMPLATE_VBoxMainExe_OBJCXXFLAGS.kprofile= $(TEMPLATE_VBoxMainExe_CXXFLAGS.kprofile)
    7175 TEMPLATE_VBoxMainExe_PCHFLAGS            = $(TEMPLATE_VBoxMainExe_CXXFLAGS)
    7176 TEMPLATE_VBoxMainExe_PCHFLAGS.x86        = $(TEMPLATE_VBoxMainExe_CXXFLAGS.x86)
    7177 TEMPLATE_VBoxMainExe_PCHFLAGS.amd64      = $(TEMPLATE_VBoxMainExe_CXXFLAGS.amd64)
    7178 TEMPLATE_VBoxMainExe_PCHFLAGS.debug      = $(TEMPLATE_VBoxMainExe_CXXFLAGS.debug)
    7179 TEMPLATE_VBoxMainExe_PCHFLAGS.kprofile   = $(TEMPLATE_VBoxMainExe_CXXFLAGS.kprofile)
    7180 TEMPLATE_VBoxMainExe_LDFLAGS             = $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_SANITIZER_LDFLAGS)
    7181 TEMPLATE_VBoxMainExe_LDFLAGS.x86         = -m32
    7182 TEMPLATE_VBoxMainExe_LDFLAGS.amd64       = -m64
     7161 TEMPLATE_VBoxMainExe_CFLAGS.x86         = -m32
     7162 TEMPLATE_VBoxMainExe_CFLAGS.amd64       = -m64
     7163 TEMPLATE_VBoxMainExe_CFLAGS.kprofile    = $(TEMPLATE_VBoxMainExe_CXXFLAGS.kprofile)
     7164 TEMPLATE_VBoxMainExe_CFLAGS.debug       = $(TEMPLATE_VBoxMainExe_CXXFLAGS.debug)
     7165 TEMPLATE_VBoxMainExe_OBJCFLAGS          = $(TEMPLATE_VBoxMainExe_CFLAGS)
     7166 TEMPLATE_VBoxMainExe_OBJCFLAGS.x86      = $(TEMPLATE_VBoxMainExe_CFLAGS.x86)
     7167 TEMPLATE_VBoxMainExe_OBJCFLAGS.amd64    = $(TEMPLATE_VBoxMainExe_CFLAGS.amd64)
     7168 TEMPLATE_VBoxMainExe_OBJCFLAGS.debug    = $(TEMPLATE_VBoxMainExe_CFLAGS.debug)
     7169 TEMPLATE_VBoxMainExe_OBJCFLAGS.kprofile = $(TEMPLATE_VBoxMainExe_CFLAGS.kprofile)
     7170 TEMPLATE_VBoxMainExe_OBJCXXFLAGS        = $(TEMPLATE_VBoxMainExe_CXXFLAGS)
     7171 TEMPLATE_VBoxMainExe_OBJCXXFLAGS.x86    = $(TEMPLATE_VBoxMainExe_CXXFLAGS.x86)
     7172 TEMPLATE_VBoxMainExe_OBJCXXFLAGS.amd64  = $(TEMPLATE_VBoxMainExe_CXXFLAGS.amd64)
     7173 TEMPLATE_VBoxMainExe_OBJCXXFLAGS.debug  = $(TEMPLATE_VBoxMainExe_CXXFLAGS.debug)
     7174 TEMPLATE_VBoxMainExe_OBJCXXFLAGS.kprofile = $(TEMPLATE_VBoxMainExe_CXXFLAGS.kprofile)
     7175 TEMPLATE_VBoxMainExe_PCHFLAGS           = $(TEMPLATE_VBoxMainExe_CXXFLAGS)
     7176 TEMPLATE_VBoxMainExe_PCHFLAGS.x86       = $(TEMPLATE_VBoxMainExe_CXXFLAGS.x86)
     7177 TEMPLATE_VBoxMainExe_PCHFLAGS.amd64     = $(TEMPLATE_VBoxMainExe_CXXFLAGS.amd64)
     7178 TEMPLATE_VBoxMainExe_PCHFLAGS.debug     = $(TEMPLATE_VBoxMainExe_CXXFLAGS.debug)
     7179 TEMPLATE_VBoxMainExe_PCHFLAGS.kprofile  = $(TEMPLATE_VBoxMainExe_CXXFLAGS.kprofile)
     7180 TEMPLATE_VBoxMainExe_LDFLAGS            = $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_SANITIZER_LDFLAGS)
     7181 TEMPLATE_VBoxMainExe_LDFLAGS.x86        = -m32
     7182 TEMPLATE_VBoxMainExe_LDFLAGS.amd64      = -m64
    71837183 ifeq ($(KBUILD_TARGET),linux)
    7184 TEMPLATE_VBoxMainExe_LIBS                = pthread m rt $(LIB_RUNTIME) dl
    7185 TEMPLATE_VBoxMainExe_LDFLAGS.linux       = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
     7184  TEMPLATE_VBoxMainExe_LIBS              = pthread m rt $(LIB_RUNTIME) dl
     7185  TEMPLATE_VBoxMainExe_LDFLAGS.linux     = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
    71867186 else ifeq ($(KBUILD_TARGET),os2)
    7187 TEMPLATE_VBoxMainExe_TOOL                = GXX3OMF
    7188 TEMPLATE_VBoxMainExe_LIBS                = $(LIB_RUNTIME)
     7187  TEMPLATE_VBoxMainExe_TOOL              = GXX3OMF
     7188  TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME)
    71897189 else ifeq ($(KBUILD_TARGET),darwin)
    7190 TEMPLATE_VBoxMainExe_TOOL                = $(VBOX_GCC_TOOL)
    7191 TEMPLATE_VBoxMainExe_SDKS               += $(VBOX_DARWIN_DEF_SDK_SDKS)
    7192 TEMPLATE_VBoxMainExe_DEFS               += $(VBOX_DARWIN_DEF_SDK_DEFS)
    7193 TEMPLATE_VBoxMainExe_CFLAGS             += $(VBOX_DARWIN_DEF_SDK_CFLAGS)
    7194 TEMPLATE_VBoxMainExe_CXXFLAGS           += $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
    7195 TEMPLATE_VBoxMainExe_OBJCFLAGS          += $(VBOX_DARWIN_DEF_SDK_OBJCFLAGS)
    7196 TEMPLATE_VBoxMainExe_OBJCXXFLAGS        += $(VBOX_DARWIN_DEF_SDK_OBJCXXFLAGS)
    7197 TEMPLATE_VBoxMainExe_LDFLAGS.darwin     += -bind_at_load
    7198 TEMPLATE_VBoxMainExe_LDFLAGS            += $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -framework Carbon -Wl,-headerpad_max_install_names
    7199 TEMPLATE_VBoxMainExe_LIBS                = $(LIB_RUNTIME)
    7200 TEMPLATE_VBoxMainExe_POST_CMDS.darwin    = $(VBOX_SIGN_IMAGE_CMDS)
     7190  TEMPLATE_VBoxMainExe_TOOL              = $(VBOX_GCC_TOOL)
     7191  TEMPLATE_VBoxMainExe_SDKS             += $(VBOX_DARWIN_DEF_SDK_SDKS)
     7192  TEMPLATE_VBoxMainExe_DEFS             += $(VBOX_DARWIN_DEF_SDK_DEFS)
     7193  TEMPLATE_VBoxMainExe_CFLAGS           += $(VBOX_DARWIN_DEF_SDK_CFLAGS)
     7194  TEMPLATE_VBoxMainExe_CXXFLAGS         += $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
     7195  TEMPLATE_VBoxMainExe_OBJCFLAGS        += $(VBOX_DARWIN_DEF_SDK_OBJCFLAGS)
     7196  TEMPLATE_VBoxMainExe_OBJCXXFLAGS      += $(VBOX_DARWIN_DEF_SDK_OBJCXXFLAGS)
     7197  TEMPLATE_VBoxMainExe_LDFLAGS.darwin   += -bind_at_load
     7198  TEMPLATE_VBoxMainExe_LDFLAGS          += $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -framework Carbon -Wl,-headerpad_max_install_names
     7199  TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME)
     7200  TEMPLATE_VBoxMainExe_POST_CMDS.darwin  = $(VBOX_SIGN_IMAGE_CMDS)
    72017201 else ifeq ($(KBUILD_TARGET),haiku)
    7202 TEMPLATE_VBoxMainExe_TOOL                = GXX3
    7203 TEMPLATE_VBoxMainExe_LIBS                = $(LIB_RUNTIME) network stdc++ supc++
     7202  TEMPLATE_VBoxMainExe_TOOL              = GXX3
     7203  TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME) network stdc++ supc++
    72047204 else if1of ($(KBUILD_TARGET), freebsd openbsd)
    7205 TEMPLATE_VBoxMainExe_TOOL                = GXX3
    7206 TEMPLATE_VBoxMainExe_LIBS                = $(LIB_RUNTIME)
    7207 TEMPLATE_VBoxMainExe_INCS               += \
    7208         /usr/include \
    7209         /usr/X11R6/include \
    7210         /usr/local/include
    7211 TEMPLATE_VBoxMainExe_LIBPATH            += \
    7212         /usr/lib \
    7213         /usr/X11R6/lib \
    7214         /usr/local/lib
     7205  TEMPLATE_VBoxMainExe_TOOL              = GXX3
     7206  TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME)
     7207  TEMPLATE_VBoxMainExe_INCS             += \
     7208        /usr/include \
     7209        /usr/X11R6/include \
     7210        /usr/local/include
     7211  TEMPLATE_VBoxMainExe_LIBPATH          += \
     7212        /usr/lib \
     7213        /usr/X11R6/lib \
     7214        /usr/local/lib
    72157215 else ifeq ($(KBUILD_TARGET),netbsd)
    7216 TEMPLATE_VBoxMainExe_TOOL                = GXX3
    7217 TEMPLATE_VBoxMainExe_LIBS                = $(LIB_RUNTIME)
    7218 TEMPLATE_VBoxMainExe_INCS               += \
    7219         /usr/include \
    7220         /usr/X11R7/include
    7221 TEMPLATE_VBoxMainExe_LIBPATH            += \
    7222         /usr/lib \
    7223         /usr/X11R7/lib
    7224 else ifeq ($(KBUILD_TARGET),solaris)
    7225 TEMPLATE_VBoxMainExe_TOOL                = GXX3PLAIN
    7226 TEMPLATE_VBoxMainExe_DEFS               += _REENTRANT
    7227 TEMPLATE_VBoxMainExe_LIBS                = $(LIB_RUNTIME) rt thread
     7216  TEMPLATE_VBoxMainExe_TOOL              = GXX3
     7217  TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME)
     7218  TEMPLATE_VBoxMainExe_INCS             += \
     7219        /usr/include \
     7220        /usr/X11R7/include
     7221  TEMPLATE_VBoxMainExe_LIBPATH          += \
     7222        /usr/lib \
     7223        /usr/X11R7/lib
     7224 else ifeq ($(KBUILD_TARGET),solaris)
     7225  TEMPLATE_VBoxMainExe_TOOL              = GXX3PLAIN
     7226  TEMPLATE_VBoxMainExe_DEFS             += _REENTRANT
     7227  TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME) rt thread
    72287228 else
    7229 $(warning Warning: VBOX Build: Target $(KBUILD_TARGET) is not officially supported!)
    7230 TEMPLATE_VBoxMainExe_LIBS                =
    7231  endif
    7232 TEMPLATE_VBoxMainExe_LDFLAGS.solaris     = -Wl,-z,ignore # Same as VBOX_LD_as_needed.
     7229  $(warning Warning: VBOX Build: Target $(KBUILD_TARGET) is not officially supported!)
     7230  TEMPLATE_VBoxMainExe_LIBS              =
     7231 endif
     7232 TEMPLATE_VBoxMainExe_LDFLAGS.solaris    = -Wl,-z,ignore # Same as VBOX_LD_as_needed.
    72337233 ifdef VBOX_WITH_RUNPATH
    7234 TEMPLATE_VBoxMainExe_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
     7234  TEMPLATE_VBoxMainExe_LDFLAGS          += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
    72357235 else ifdef VBOX_WITH_RELATIVE_RUNPATH
    7236 TEMPLATE_VBoxMainExe_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
     7236  TEMPLATE_VBoxMainExe_LDFLAGS          += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
    72377237 endif
    72387238 ifdef VBOX_WITH_ORIGIN
    7239 TEMPLATE_VBoxMainExe_LDFLAGS.linux      += $(VBOX_GCC_ORIGIN_OPT)
     7239  TEMPLATE_VBoxMainExe_LDFLAGS.linux    += $(VBOX_GCC_ORIGIN_OPT)
    72407240 endif
    72417241
     
    72527252 endif
    72537253 TEMPLATE_VBoxMainExe_INCS              += \
    7254         $(VBOX_XPCOM_INCS)
     7254        $(VBOX_XPCOM_INCS)
    72557255 TEMPLATE_VBoxMainExe_LIBS              += \
    7256         $(LIB_XPCOM)
     7256        $(LIB_XPCOM)
    72577257 TEMPLATE_VBoxMainExe_INTERMEDIATES     += \
    7258         $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
     7258        $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
    72597259
    72607260else  # COM
    72617261 TEMPLATE_VBoxMainExe_INCS              += \
    7262         $(VBOX_PATH_SDK)/bindings/mscom/include
     7262        $(VBOX_PATH_SDK)/bindings/mscom/include
    72637263 TEMPLATE_VBoxMainExe_INTERMEDIATES     += \
    7264         $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
     7264        $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
    72657265endif # COM
    72667266
     
    73287328        VBOX_IN_32_ON_64_MAIN_API
    73297329TEMPLATE_VBoxMainComp-x86_LIBS = \
    7330         $(subst $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB),$(PATH_STAGE_LIB)/VBoxCOM-x86$(VBOX_SUFF_LIB),\
    7331         $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86),\
    7332         $(subst $(LIB_XPCOM),$(VBOX_LIB_XPCOM_X86),\
     7330        $(subst $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB),$(PATH_STAGE_LIB)/VBoxCOM-x86$(VBOX_SUFF_LIB), \
     7331        $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86), \
     7332        $(subst $(LIB_XPCOM),$(VBOX_LIB_XPCOM_X86), \
    73337333        $(TEMPLATE_VBoxMainComp_LIBS))))
    73347334
     
    73717371TEMPLATE_VBoxMainClientExe_EXTENDS         = VBoxMainExe
    73727372ifeq ($(KBUILD_TARGET),win)
    7373  TEMPLATE_VBoxMainClientExe_DEPS            = $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
    7374  TEMPLATE_VBoxMainClientExe_LIBS.win        = $(TEMPLATE_VBoxMainExe_LIBS.win) \
    7375    $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/User32.Lib \
    7376    $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Shell32.Lib \
    7377    $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/ShLwApi.Lib \
    7378    $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Ole32.Lib \
    7379    $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/OleAut32.Lib \
    7380    $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Uuid.Lib
     7373 TEMPLATE_VBoxMainClientExe_DEPS            = $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
     7374 TEMPLATE_VBoxMainClientExe_LIBS.win        = $(TEMPLATE_VBoxMainExe_LIBS.win) \
     7375        $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/User32.Lib \
     7376        $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Shell32.Lib \
     7377        $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/ShLwApi.Lib \
     7378        $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Ole32.Lib \
     7379        $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/OleAut32.Lib \
     7380        $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Uuid.Lib
    73817381else
    7382  TEMPLATE_VBoxMainClientExe_DEPS            = $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
    7383  TEMPLATE_VBoxMainClientExe_DEFS            = $(TEMPLATE_VBoxMainExe_DEFS) \
    7384         NDEBUG TRIMMED
     7382 TEMPLATE_VBoxMainClientExe_DEPS            = $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
     7383 TEMPLATE_VBoxMainClientExe_DEFS            = $(TEMPLATE_VBoxMainExe_DEFS) \
     7384        NDEBUG TRIMMED
    73857385 TEMPLATE_VBoxMainClientExe_CXXFLAGS.linux = $(TEMPLATE_VBoxMainExe_CXXFLAGS.linux) -pthread
    73867386 TEMPLATE_VBoxMainClientExe_PCHFLAGS.linux = $(TEMPLATE_VBoxMainExe_PCHFLAGS.linux) -pthread
     
    74427442  TEMPLATE_VBoxR3ExtPack_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBoxR3Dll_LDFLAGS))
    74437443 else if !defined(VBOX_WITH_RUNPATH) && defined(VBOX_WITH_RELATIVE_RUNPATH)
    7444    TEMPLATE_VBoxR3ExtPack_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/../../..' $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBoxR3Dll_LDFLAGS))
     7444  TEMPLATE_VBoxR3ExtPack_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/../../..' $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBoxR3Dll_LDFLAGS))
    74457445 endif
    74467446 ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
     
    74677467  TEMPLATE_VBoxR3ExtPackApi_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBoxMainDll_LDFLAGS))
    74687468 else if !defined(VBOX_WITH_RUNPATH) && defined(VBOX_WITH_RELATIVE_RUNPATH)
    7469    TEMPLATE_VBoxR3ExtPackApi_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/../../..' $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBoxMainDll_LDFLAGS))
     7469  TEMPLATE_VBoxR3ExtPackApi_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/../../..' $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)', $(TEMPLATE_VBoxMainDll_LDFLAGS))
    74707470 endif
    74717471 ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
     
    74927492 if1of ($(VBOX_LDR_FMT), pe lx)
    74937493  TEMPLATE_VBoxR0ExtPack_LIBS = \
    7494         $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB)
     7494        $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB)
    74957495 endif
    74967496 TEMPLATE_VBoxR0ExtPack_LIBS += \
     
    75057505 if1of ($(VBOX_LDR_FMT32), pe lx)
    75067506  TEMPLATE_VBoxRcExtPack_LIBS = \
    7507         $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
    7508         $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
     7507        $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
     7508        $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
    75097509 endif
    75107510
     
    75817581   VBOX_PATH_QT := $(rsort $(wildcard $(KBUILD_DEVTOOLS_TRG)/qt/v5*))
    75827582   VBOX_PATH_QT := $(firstword $(filter %-$(tolower $(VBOX_VCC_TOOL_STEM)),$(VBOX_PATH_QT)) \
    7583                     $(filter-out %-vcc100 %-vcc110 %-vcc120 %-vcc140 %-vcc141 %-vcc142 %-vcc143 %-vcc150, $(VBOX_PATH_QT)))
     7583        $(filter-out %-vcc100 %-vcc110 %-vcc120 %-vcc140 %-vcc141 %-vcc142 %-vcc143 %-vcc150, $(VBOX_PATH_QT)))
    75847584   ifdef VBOX_PATH_QT
    75857585    PATH_SDK_QT5  := $(VBOX_PATH_QT)
     
    76077607 endif
    76087608
    7609  ifeq ($(KBUILD_TARGET), darwin)
     7609 ifeq ($(KBUILD_TARGET),darwin)
    76107610  VBOX_QT_MOD := QtCore QtGui QtWidgets QtPrintSupport
    76117611  ifdef VBOX_WITH_QT6
     
    76287628        plugins/styles/libqgtk2style.so \
    76297629        plugins/xcbglintegrations/libqxcb-glx-integration.so
    7630   else ifeq ($(KBUILD_TARGET), win)
     7630  else ifeq ($(KBUILD_TARGET),win)
    76317631   VBOX_QT_MOD += Qt5WinExtras
    76327632  endif # win
     
    76347634
    76357635 ifdef VBOX_WITH_QHELP_VIEWER
    7636    ifeq ($(KBUILD_TARGET), darwin)
    7637     VBOX_QT_MOD += QtHelp QtNetwork QtSql
    7638    else if1of ($(KBUILD_TARGET), linux freebsd netbsd openbsd solaris win)
    7639     VBOX_QT_MOD += Qt5Help Qt5Network Qt5Sql
    7640    endif
     7636  ifeq ($(KBUILD_TARGET),darwin)
     7637   VBOX_QT_MOD += QtHelp QtNetwork QtSql
     7638  else if1of ($(KBUILD_TARGET), linux freebsd netbsd openbsd solaris win)
     7639   VBOX_QT_MOD += Qt5Help Qt5Network Qt5Sql
     7640  endif
    76417641 endif
    76427642
     
    76947694  endif
    76957695  TEMPLATE_VBoxQtGuiExe_DEFS += \
    7696      _WIN32_WINNT=0x0500 UNICODE _UNICODE \
    7697      QT_DLL _CRT_SECURE_NO_DEPRECATE \
    7698      $(QMAKE_PRL_DEFINES)
     7696        _WIN32_WINNT=0x0500 UNICODE _UNICODE \
     7697        QT_DLL _CRT_SECURE_NO_DEPRECATE \
     7698        $(QMAKE_PRL_DEFINES)
    76997699  TEMPLATE_VBoxQtGuiExe_CXXFLAGS = -nologo -Zm200 -MD -Zi -EHsc -Zc:wchar_t- $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS) $(VBOX_VCC_std)
    77007700  #    -wd4481: nonstandard extension used: override specifier 'override'
     
    77327732  TEMPLATE_VBoxQtGuiExe_CXXFLAGS += -Gy
    77337733  if "$(VBOX_VCC_TOOL_STEM)" >= "VCC120"
    7734   TEMPLATE_VBoxQtGuiExe_CXXFLAGS += -Gw
     7734   TEMPLATE_VBoxQtGuiExe_CXXFLAGS += -Gw
    77357735  endif
    77367736  ifdef VBOX_WITH_MSC_ANALYZE_THIS
     
    77457745  TEMPLATE_VBoxQtGuiExe_PCHFLAGS.dbgopt = $(TEMPLATE_VBoxQtGuiExe_CXXFLAGS.dbgopt)
    77467746  TEMPLATE_VBoxQtGuiExe_LDFLAGS = -Ignore:4197 \
    7747         /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware /DynamicBase /NxCompat /Release /Debug /Opt:Ref /Opt:Icf \
    7748         $(VBOX_VCC_LD_GUARD_CF)  $(VBOX_VCC_SANITIZER_LDFLAGS) \
    7749         /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
    7750         /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com
     7747        /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware /DynamicBase /NxCompat /Release /Debug /Opt:Ref /Opt:Icf \
     7748        $(VBOX_VCC_LD_GUARD_CF)  $(VBOX_VCC_SANITIZER_LDFLAGS) \
     7749        /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     7750        /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com
    77517751  if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_HARDENING)
    77527752   TEMPLATE_VBoxQtGuiExe_LDFLAGS += -IntegrityCheck
     
    77677767        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/oldnames.lib \
    77687768        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
    7769   ifeq ($(KBUILD_TYPE),asan)
    7770    TEMPLATE_VBoxQtGuiExe_LIBS += \
    7771         $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/clang_rt.asan_dynamic-x86_64.lib \
    7772         $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/clang_rt.asan_dynamic_runtime_thunk-x86_64.lib
    7773   endif
     7769   ifeq ($(KBUILD_TYPE),asan)
     7770    TEMPLATE_VBoxQtGuiExe_LIBS += \
     7771        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/clang_rt.asan_dynamic-x86_64.lib \
     7772        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/clang_rt.asan_dynamic_runtime_thunk-x86_64.lib
     7773   endif
    77747774  else
    77757775   TEMPLATE_VBoxQtGuiExe_LIBS = \
     
    77947794  ## @todo Use VBOX_GCC_PEDANTIC_CXX?
    77957795  TEMPLATE_VBoxQtGuiExe_CXXFLAGS = \
    7796         -g $(VBOX_GCC_pipe) $(filter-out -Wno-unused $(VBOX_GCC_Wno-unused-parameter),$(VBOX_GCC_WARN)) -frtti -fno-exceptions \
    7797         -Wno-long-long -fshort-wchar -fno-strict-aliasing \
    7798         $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_Wno-multistatement-macros) $(VBOX_GCC_Wno-ignored-qualifiers) \
    7799         $(VBOX_GCC_Wno-return-type-c-linkage) $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK) $(VBOX_GCC_SANITIZER_FLAGS)
     7796        -g $(VBOX_GCC_pipe) $(filter-out -Wno-unused $(VBOX_GCC_Wno-unused-parameter),$(VBOX_GCC_WARN)) -frtti -fno-exceptions \
     7797        -Wno-long-long -fshort-wchar -fno-strict-aliasing \
     7798        $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_Wno-multistatement-macros) $(VBOX_GCC_Wno-ignored-qualifiers) \
     7799        $(VBOX_GCC_Wno-return-type-c-linkage) $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK) $(VBOX_GCC_SANITIZER_FLAGS)
    78007800  ifdef VBOX_WITH_NO_GCC_WARNING_POLICY
    78017801   TEMPLATE_VBoxQtGuiExe_CXXFLAGS += $(VBOX_GCC_WERR)
    78027802  endif
    7803   ifn1of ($(USERNAME),dsen serkan) # Bunch of stuff deprecated after 5.6.*. These guys knows how to deal with it. :)
     7803  ifn1of ($(USERNAME), dsen serkan) # Bunch of stuff deprecated after 5.6.*. These guys knows how to deal with it. :)
    78047804   TEMPLATE_VBoxQtGuiExe_CXXFLAGS += $(VBOX_GCC_Wno-deprecated-declarations)
    78057805  endif
     
    78207820  TEMPLATE_VBoxQtGuiExe_OBJCFLAGS.amd64 = $(TEMPLATE_VBoxQtGuiExe_CXXFLAGS.amd64)
    78217821  TEMPLATE_VBoxQtGuiExe_OBJCXXFLAGS = \
    7822         -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) \
    7823         -frtti -fno-exceptions $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_IPRT_FMT_CHECK)
     7822        -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) \
     7823        -frtti -fno-exceptions $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_IPRT_FMT_CHECK)
    78247824  ifdef VBOX_WITH_NO_GCC_WARNING_POLICY
    78257825   TEMPLATE_VBoxQtGuiExe_OBJCXXFLAGS += $(VBOX_GCC_WERR)
     
    78347834  TEMPLATE_VBoxQtGuiExe_LDFLAGS.amd64 = -m64
    78357835  TEMPLATE_VBoxQtGuiExe_LIBS = \
    7836         $(VBOX_LIBS_QT) \
    7837         $(LIB_RUNTIME)
     7836        $(VBOX_LIBS_QT) \
     7837        $(LIB_RUNTIME)
    78387838
    78397839  ifeq ($(KBUILD_TARGET),linux)
    78407840   TEMPLATE_VBoxQtGuiExe_LDFLAGS += -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
    78417841   TEMPLATE_VBoxQtGuiExe_LIBS += \
    7842      $(VBOX_XCURSOR_LIBS) \
    7843         Xext \
    7844         X11
    7845     TEMPLATE_VBoxQtGuiExe_LIBPATH += \
    7846         $(VBOX_LIBPATH_X11)
     7842        $(VBOX_XCURSOR_LIBS) \
     7843        Xext \
     7844        X11
     7845   TEMPLATE_VBoxQtGuiExe_LIBPATH += \
     7846        $(VBOX_LIBPATH_X11)
    78477847  else ifeq ($(KBUILD_TARGET),darwin)
    78487848   TEMPLATE_VBoxQtGuiExe_SDKS.darwin        += $(VBOX_DARWIN_DEF_SDK_SDKS)
     
    78637863  else
    78647864   TEMPLATE_VBoxQtGuiExe_INCS += \
    7865         $(VBOX_XCURSOR_INCS)
     7865        $(VBOX_XCURSOR_INCS)
    78667866   TEMPLATE_VBoxQtGuiExe_LIBS += \
    7867      $(VBOX_XCURSOR_LIBS) \
    7868         Xext \
    7869         X11 \
    7870         m \
    7871         $(LIB_PTHREAD)
     7867        $(VBOX_XCURSOR_LIBS) \
     7868        Xext \
     7869        X11 \
     7870        m \
     7871        $(LIB_PTHREAD)
    78727872   TEMPLATE_VBoxQtGuiExe_LIBPATH += \
    7873         $(VBOX_LIBPATH_X11)
     7873        $(VBOX_LIBPATH_X11)
    78747874   ifeq ($(KBUILD_TARGET),freebsd)
    78757875    TEMPLATE_VBoxQtGuiExe_INCS += \
    7876         /usr/include \
    7877         /usr/X11R6/include \
    7878         /usr/local/include
     7876        /usr/include \
     7877        /usr/X11R6/include \
     7878        /usr/local/include
    78797879    TEMPLATE_VBoxQtGuiExe_LIBPATH += \
    7880         /usr/lib \
    7881         /usr/X11R6/lib \
    7882         /usr/local/lib
     7880        /usr/lib \
     7881        /usr/X11R6/lib \
     7882        /usr/local/lib
    78837883   endif
    78847884   ifeq ($(KBUILD_TARGET),solaris)
    78857885    TEMPLATE_VBoxQtGuiExe_LDFLAGS.solaris = -Wl,-z,ignore # Same as VBOX_LD_as_needed.
    78867886    TEMPLATE_VBoxQtGuiExe_LIBS += \
    7887          rt socket nsl
     7887        rt socket nsl
    78887888   endif
    78897889  endif
     
    78997899 # Add COM/XPCOM stuff
    79007900 TEMPLATE_VBoxQtGuiExe_LIBS += \
    7901         $(PATH_STAGE_LIB)/VBoxCOM$(if-expr defined(VBOX_WITH_DEBUG_VCC_CRT) && $(KBUILD_TARGET) == win,-GUI,)$(VBOX_SUFF_LIB)
     7901        $(PATH_STAGE_LIB)/VBoxCOM$(if-expr defined(VBOX_WITH_DEBUG_VCC_CRT) && $(KBUILD_TARGET) == win,-GUI,)$(VBOX_SUFF_LIB)
    79027902 ifdef VBOX_WITH_XPCOM
    79037903  ## @todo may be worth creating the VBOX_XPCOM SDK def, or just a SDK_VBOXXPCOM.
     
    79077907  endif
    79087908  TEMPLATE_VBoxQtGuiExe_INCS += \
    7909         $(VBOX_XPCOM_INCS)
     7909        $(VBOX_XPCOM_INCS)
    79107910  TEMPLATE_VBoxQtGuiExe_LIBS += \
    7911         $(LIB_XPCOM)
     7911        $(LIB_XPCOM)
    79127912  TEMPLATE_VBoxQtGuiExe_INTERMEDIATES += \
    7913         $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
     7913        $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h
    79147914 else  # COM
    79157915  TEMPLATE_VBoxQtGuiExe_INCS += \
    7916         $(VBOX_PATH_SDK)/bindings/mscom/include
     7916        $(VBOX_PATH_SDK)/bindings/mscom/include
    79177917  TEMPLATE_VBoxQtGuiExe_INTERMEDIATES += \
    7918         $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
     7918        $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
    79197919 endif # COM
    79207920
    79217921 ifn1of ($(KBUILD_TARGET), darwin os2 win)
    7922    TEMPLATE_VBoxQtGuiExe_DEFS     += PIC
    7923    TEMPLATE_VBoxQtGuiExe_CFLAGS   += -fPIC
    7924    TEMPLATE_VBoxQtGuiExe_CXXFLAGS += -fPIC
    7925    # Needed for GCC 9. Even system's Qt 5.12.4 (on Ubuntu 19.10) did not have this fixed yet.
    7926    TEMPLATE_VBoxQtGuiExe_CXXFLAGS.linux = $(VBOX_GCC_Wno-deprecated-copy) $(TEMPLATE_VBoxQtGuiExe_CXXFLAGS)
    7927    TEMPLATE_VBoxQtGuiExe_LDFLAGS  += -fPIC
     7922  TEMPLATE_VBoxQtGuiExe_DEFS      += PIC
     7923  TEMPLATE_VBoxQtGuiExe_CFLAGS    += -fPIC
     7924  TEMPLATE_VBoxQtGuiExe_CXXFLAGS += -fPIC
     7925  # Needed for GCC 9. Even system's Qt 5.12.4 (on Ubuntu 19.10) did not have this fixed yet.
     7926  TEMPLATE_VBoxQtGuiExe_CXXFLAGS.linux = $(VBOX_GCC_Wno-deprecated-copy) $(TEMPLATE_VBoxQtGuiExe_CXXFLAGS)
     7927  TEMPLATE_VBoxQtGuiExe_LDFLAGS   += -fPIC
    79287928 endif # not darwin, os2 or win
    79297929
     
    79317931  ifndef VBOX_WITH_QT6
    79327932   TEMPLATE_VBoxQtGuiExe_POST_CMDS = $(QUIET)install_name_tool $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \
    7933         $(foreach prefix, @executable_path/../Frameworks/ $(VBOX_PATH_QT)/Frameworks/ $(PATH_SDK_QT5)/, \
    7934                 -change "$(prefix)$(qtmod).framework/Versions/5/$(qtmod)" \
    7935                         "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Frameworks,@rpath)/$(qtmod).framework/Versions/5/$(qtmod)" ) ) "$(out)"
     7933        $(foreach prefix, @executable_path/../Frameworks/ $(VBOX_PATH_QT)/Frameworks/ $(PATH_SDK_QT5)/, \
     7934        -change "$(prefix)$(qtmod).framework/Versions/5/$(qtmod)" \
     7935        "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Frameworks,@rpath)/$(qtmod).framework/Versions/5/$(qtmod)" ) ) "$(out)"
    79367936  else
    79377937   TEMPLATE_VBoxQtGuiExe_POST_CMDS = $(QUIET)install_name_tool $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \
    7938         $(foreach prefix, @executable_path/../Frameworks/ $(VBOX_PATH_QT)/Frameworks/ $(PATH_SDK_QT6)/, \
    7939                 -change "$(prefix)$(qtmod).framework/Versions/A/$(qtmod)" \
    7940                         "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Frameworks,@rpath)/$(qtmod).framework/Versions/A/$(qtmod)" ) ) "$(out)"
     7938        $(foreach prefix, @executable_path/../Frameworks/ $(VBOX_PATH_QT)/Frameworks/ $(PATH_SDK_QT6)/, \
     7939        -change "$(prefix)$(qtmod).framework/Versions/A/$(qtmod)" \
     7940        "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Frameworks,@rpath)/$(qtmod).framework/Versions/A/$(qtmod)" ) ) "$(out)"
    79417941  endif
    79427942 endif
     
    79507950 ifeq ($(KBUILD_TARGET),darwin)
    79517951  TEMPLATE_VBoxQtGuiDll_LDFLAGS.darwin += $(filter-out -bind_at_load,$(TEMPLATE_VBoxQtGuiExe_LDFLAGS.darwin)) \
    7952         -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
    7953         -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
     7952        -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     7953        -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
    79547954 endif
    79557955 ifn1of ($(KBUILD_TARGET), darwin os2 win)
    7956    TEMPLATE_VBoxQtGuiDll_DEFS     = PIC $(TEMPLATE_VBoxQtGuiExe_DEFS)
    7957    TEMPLATE_VBoxQtGuiDll_CFLAGS   = -fPIC $(TEMPLATE_VBoxQtGuiExe_CFLAGS)
    7958    TEMPLATE_VBoxQtGuiDll_CXXFLAGS = -fPIC $(TEMPLATE_VBoxQtGuiExe_CXXFLAGS)
    7959    TEMPLATE_VBoxQtGuiDll_PCHFLAGS = $(TEMPLATE_VBoxQtGuiDll_CXXFLAGS)
    7960    TEMPLATE_VBoxQtGuiDll_LDFLAGS  = -fPIC $(TEMPLATE_VBoxQtGuiExe_LDFLAGS)
     7956  TEMPLATE_VBoxQtGuiDll_DEFS      = PIC $(TEMPLATE_VBoxQtGuiExe_DEFS)
     7957  TEMPLATE_VBoxQtGuiDll_CFLAGS    = -fPIC $(TEMPLATE_VBoxQtGuiExe_CFLAGS)
     7958  TEMPLATE_VBoxQtGuiDll_CXXFLAGS = -fPIC $(TEMPLATE_VBoxQtGuiExe_CXXFLAGS)
     7959  TEMPLATE_VBoxQtGuiDll_PCHFLAGS = $(TEMPLATE_VBoxQtGuiDll_CXXFLAGS)
     7960  TEMPLATE_VBoxQtGuiDll_LDFLAGS   = -fPIC $(TEMPLATE_VBoxQtGuiExe_LDFLAGS)
    79617961 endif
    79627962endif # VBOX_WITH_QTGUI
     
    79837983 TEMPLATE_VBoxNLS_QT_TRANSLATIONS_INST = $(INST_BIN)nls/
    79847984 TEMPLATE_VBoxNLS_SOURCES  = \
    7985         $(PATH_ROOT)/src/VBox/Main/nls/dummy.c
     7985        $(PATH_ROOT)/src/VBox/Main/nls/dummy.c
    79867986 TEMPLATE_VBoxNLS_SDKS.$(KBUILD_TARGET_ARCH)  = $(filter-out VBoxOpenSslStatic,$(TEMPLATE_VBoxR3Static_SDKS.$(KBUILD_TARGET_ARCH)))
    79877987 ifdef VBOX_WITH_NOCRT_STATIC
    79887988  TEMPLATE_VBoxNLS_LIBS.$(KBUILD_TARGET_ARCH) = $(filter-out \
    7989          $(PATH_STAGE_LIB)/VBox-libxml2-static$(VBOX_SUFF_LIB), \
    7990          $(TEMPLATE_VBoxR3Static_LIBS.$(KBUILD_TARGET_ARCH)))
     7989        $(PATH_STAGE_LIB)/VBox-libxml2-static$(VBOX_SUFF_LIB), \
     7990        $(TEMPLATE_VBoxR3Static_LIBS.$(KBUILD_TARGET_ARCH)))
    79917991 else
    79927992  TEMPLATE_VBoxNLS_LIBS.$(KBUILD_TARGET_ARCH) = $(filter-out \
    7993          $(VBOX_LIB_RUNTIME_STATIC) \
    7994          $(PATH_STAGE_LIB)/VBox-libxml2-static$(VBOX_SUFF_LIB), \
    7995          $(TEMPLATE_VBoxR3Static_LIBS.$(KBUILD_TARGET_ARCH)))
     7993        $(VBOX_LIB_RUNTIME_STATIC) \
     7994        $(PATH_STAGE_LIB)/VBox-libxml2-static$(VBOX_SUFF_LIB), \
     7995        $(TEMPLATE_VBoxR3Static_LIBS.$(KBUILD_TARGET_ARCH)))
    79967996 endif
    79977997endif # !VBOX_WITH_NLS
     
    80168016TEMPLATE_VBoxBldProg_DEFS.win           := _CRT_SECURE_NO_DEPRECATE
    80178017ifeq ($(KBUILD_TARGET),$(KBUILD_HOST))
    8018 TEMPLATE_VBoxBldProg_ASTOOL             := $(VBOX_ASTOOL)
    8019 TEMPLATE_VBoxBldProg_ASFLAGS.x86        := $(VBOX_ASFLAGS32)
    8020 TEMPLATE_VBoxBldProg_ASFLAGS.arm32      := $(VBOX_ASFLAGS32)
    8021 TEMPLATE_VBoxBldProg_ASFLAGS.sparc32    := $(VBOX_ASFLAGS32)
    8022 TEMPLATE_VBoxBldProg_ASFLAGS.amd64      := $(VBOX_ASFLAGS64)
    8023 TEMPLATE_VBoxBldProg_ASFLAGS.arm64      := $(VBOX_ASFLAGS64)
    8024 TEMPLATE_VBoxBldProg_ASFLAGS.sparc64    := $(VBOX_ASFLAGS64)
     8018 TEMPLATE_VBoxBldProg_ASTOOL            := $(VBOX_ASTOOL)
     8019 TEMPLATE_VBoxBldProg_ASFLAGS.x86       := $(VBOX_ASFLAGS32)
     8020 TEMPLATE_VBoxBldProg_ASFLAGS.arm32     := $(VBOX_ASFLAGS32)
     8021 TEMPLATE_VBoxBldProg_ASFLAGS.sparc32   := $(VBOX_ASFLAGS32)
     8022 TEMPLATE_VBoxBldProg_ASFLAGS.amd64     := $(VBOX_ASFLAGS64)
     8023 TEMPLATE_VBoxBldProg_ASFLAGS.arm64     := $(VBOX_ASFLAGS64)
     8024 TEMPLATE_VBoxBldProg_ASFLAGS.sparc64   := $(VBOX_ASFLAGS64)
    80258025else if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
    8026 TEMPLATE_VBoxBldProg_ASTOOL             := YASM
    8027 TEMPLATE_VBoxBldProg_ASFLAGS            := -D__YASM__ -Worphan-labels $(VBOX_YASM_Wno-segreg-in-64bit)
    8028  if1of ($(KBUILD_HOST),win)
    8029 TEMPLATE_VBoxBldProg_ASFLAGS            += -g cv8 -DASM_FORMAT_ELF
    8030 TEMPLATE_VBoxBldProg_ASFLAGS.x86        := -f win32
    8031 TEMPLATE_VBoxBldProg_ASFLAGS.amd64      := -f win64
    8032  else if1of ($(KBUILD_HOST),darwin)
    8033 TEMPLATE_VBoxBldProg_ASFLAGS            += -DASM_FORMAT_MACHO
    8034 TEMPLATE_VBoxBldProg_ASFLAGS.x86        := -f macho32
    8035 TEMPLATE_VBoxBldProg_ASFLAGS.amd64      := -f macho64
     8026 TEMPLATE_VBoxBldProg_ASTOOL            := YASM
     8027 TEMPLATE_VBoxBldProg_ASFLAGS           := -D__YASM__ -Worphan-labels $(VBOX_YASM_Wno-segreg-in-64bit)
     8028 if1of ($(KBUILD_HOST), win)
     8029  TEMPLATE_VBoxBldProg_ASFLAGS          += -g cv8 -DASM_FORMAT_ELF
     8030  TEMPLATE_VBoxBldProg_ASFLAGS.x86      := -f win32
     8031  TEMPLATE_VBoxBldProg_ASFLAGS.amd64    := -f win64
     8032 else if1of ($(KBUILD_HOST), darwin)
     8033  TEMPLATE_VBoxBldProg_ASFLAGS          += -DASM_FORMAT_MACHO
     8034  TEMPLATE_VBoxBldProg_ASFLAGS.x86      := -f macho32
     8035  TEMPLATE_VBoxBldProg_ASFLAGS.amd64    := -f macho64
    80368036 else
    8037 TEMPLATE_VBoxBldProg_ASFLAGS            += -g dwarf2 -DASM_FORMAT_ELF
    8038 TEMPLATE_VBoxBldProg_ASFLAGS.x86        := -f elf32
    8039 TEMPLATE_VBoxBldProg_ASFLAGS.amd64      := -f elf64
     8037  TEMPLATE_VBoxBldProg_ASFLAGS          += -g dwarf2 -DASM_FORMAT_ELF
     8038  TEMPLATE_VBoxBldProg_ASFLAGS.x86      := -f elf32
     8039  TEMPLATE_VBoxBldProg_ASFLAGS.amd64    := -f elf64
    80408040 endif
    80418041endif
     
    80848084        /DISALLOWLIB:msvcprt.lib \
    80858085        /DISALLOWLIB:msvcprtd.lib \
    8086         /DISALLOWLIB:libvcruntime$(VBOX_VCC_CRT_TYPE_N).lib \
    8087         /DISALLOWLIB:libucrt$(VBOX_VCC_CRT_TYPE_N).lib \
    8088         /DISALLOWLIB:vcruntime.lib \
    8089         /DISALLOWLIB:vcruntimed.lib \
    8090         /DISALLOWLIB:ucrt.lib \
    8091         /DISALLOWLIB:ucrtd.lib
     8086        /DISALLOWLIB:libvcruntime$(VBOX_VCC_CRT_TYPE_N).lib \
     8087        /DISALLOWLIB:libucrt$(VBOX_VCC_CRT_TYPE_N).lib \
     8088        /DISALLOWLIB:vcruntime.lib \
     8089        /DISALLOWLIB:vcruntimed.lib \
     8090        /DISALLOWLIB:ucrt.lib \
     8091        /DISALLOWLIB:ucrtd.lib
    80928092 TEMPLATE_VBoxBldProg_LDFLAGS.win.amd64  = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA)
    80938093 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" # Don't waste space on x86/amd64-on-arm emulation optimizations.
     
    81088108
    81098109else
    8110 # (gcc of some kind )
    8111 TEMPLATE_VBoxBldProg_TOOL                = GXX3
     8110 # (gcc of some kind )
     8111 TEMPLATE_VBoxBldProg_TOOL               = GXX3
    81128112 if $(VBOX_GCC_VERSION_CC) < 30400
    8113 TEMPLATE_VBoxBldProg_DEFS               += RT_WITHOUT_PRAGMA_ONCE
    8114  endif
    8115 TEMPLATE_VBoxBldProg_CFLAGS              = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros)
     8113  TEMPLATE_VBoxBldProg_DEFS             += RT_WITHOUT_PRAGMA_ONCE
     8114 endif
     8115 TEMPLATE_VBoxBldProg_CFLAGS             = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros)
    81168116 ifdef VBOX_WITH_NO_GCC_WARNING_POLICY
    81178117  TEMPLATE_VBoxBldProg_CFLAGS           += $(VBOX_GCC_WERR)
    81188118 endif
    8119 TEMPLATE_VBoxBldProg_CFLAGS.x86          = -m32
    8120 TEMPLATE_VBoxBldProg_CFLAGS.sparc32      = -m32
    8121 TEMPLATE_VBoxBldProg_CFLAGS.amd64        = -m64
    8122 TEMPLATE_VBoxBldProg_CFLAGS.sparc64      = -m64
    8123 TEMPLATE_VBoxBldProg_CFLAGS.release      = -O2 -fno-omit-frame-pointer -fno-strict-aliasing
    8124 TEMPLATE_VBoxBldProg_CFLAGS.profile      = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile)
    8125 TEMPLATE_VBoxBldProg_CFLAGS.kprofile     = $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile)
    8126 TEMPLATE_VBoxBldProg_CXXFLAGS            = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_std)
     8119 TEMPLATE_VBoxBldProg_CFLAGS.x86         = -m32
     8120 TEMPLATE_VBoxBldProg_CFLAGS.sparc32     = -m32
     8121 TEMPLATE_VBoxBldProg_CFLAGS.amd64       = -m64
     8122 TEMPLATE_VBoxBldProg_CFLAGS.sparc64     = -m64
     8123 TEMPLATE_VBoxBldProg_CFLAGS.release     = -O2 -fno-omit-frame-pointer -fno-strict-aliasing
     8124 TEMPLATE_VBoxBldProg_CFLAGS.profile     = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile)
     8125 TEMPLATE_VBoxBldProg_CFLAGS.kprofile    = $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile)
     8126 TEMPLATE_VBoxBldProg_CXXFLAGS           = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_std)
    81278127 ifdef VBOX_WITH_NO_GCC_WARNING_POLICY
    81288128  TEMPLATE_VBoxBldProg_CXXFLAGS         += $(VBOX_GCC_WERR)
    81298129 endif
    8130 TEMPLATE_VBoxBldProg_CXXFLAGS.x86        = -m32
    8131 TEMPLATE_VBoxBldProg_CXXFLAGS.sparc32    = -m32
    8132 TEMPLATE_VBoxBldProg_CXXFLAGS.amd64      = -m64
    8133 TEMPLATE_VBoxBldProg_CXXFLAGS.sparc64    = -m64
    8134 TEMPLATE_VBoxBldProg_CXXFLAGS.release    = -O2 -fno-omit-frame-pointer -fno-strict-aliasing
    8135 TEMPLATE_VBoxBldProg_CXXFLAGS.profile    = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release)
    8136 TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile   = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release)
    8137 TEMPLATE_VBoxBldProg_OBJCFLAGS           = $(TEMPLATE_VBoxBldProg_CFLAGS)
    8138 TEMPLATE_VBoxBldProg_OBJCFLAGS.x86       = $(TEMPLATE_VBoxBldProg_CFLAGS.x86)
    8139 TEMPLATE_VBoxBldProg_OBJCFLAGS.amd64     = $(TEMPLATE_VBoxBldProg_CFLAGS.amd64)
    8140 TEMPLATE_VBoxBldProg_OBJCFLAGS.release   = $(TEMPLATE_VBoxBldProg_CFLAGS.release)
    8141 TEMPLATE_VBoxBldProg_OBJCFLAGS.profile   = $(TEMPLATE_VBoxBldProg_CFLAGS.profile)
    8142 TEMPLATE_VBoxBldProg_OBJCFLAGS.kprofile = $(TEMPLATE_VBoxBldProg_CFLAGS.kprofile)
    8143 TEMPLATE_VBoxBldProg_OBJCXXFLAGS         = $(TEMPLATE_VBoxBldProg_CXXFLAGS)
    8144 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.x86     = $(TEMPLATE_VBoxBldProg_CXXFLAGS.x86)
    8145 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.amd64   = $(TEMPLATE_VBoxBldProg_CXXFLAGS.amd64)
    8146 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.release = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release)
    8147 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.profile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile)
    8148 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.kprofile= $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile)
    8149 TEMPLATE_VBoxBldProg_PCHFLAGS            = $(TEMPLATE_VBoxBldProg_CXXFLAGS)
    8150 TEMPLATE_VBoxBldProg_PCHFLAGS.x86        = $(TEMPLATE_VBoxBldProg_CXXFLAGS.x86)
    8151 TEMPLATE_VBoxBldProg_PCHFLAGS.amd64      = $(TEMPLATE_VBoxBldProg_CXXFLAGS.amd64)
    8152 TEMPLATE_VBoxBldProg_PCHFLAGS.release    = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release)
    8153 TEMPLATE_VBoxBldProg_PCHFLAGS.profile    = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile)
    8154 TEMPLATE_VBoxBldProg_PCHFLAGS.kprofile   = $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile)
    8155 TEMPLATE_VBoxBldProg_LDFLAGS.x86         = -m32
    8156 TEMPLATE_VBoxBldProg_LDFLAGS.sparc32     = -m32
    8157 TEMPLATE_VBoxBldProg_LDFLAGS.amd64       = -m64
    8158 TEMPLATE_VBoxBldProg_LDFLAGS.sparc64     = -m64
     8130 TEMPLATE_VBoxBldProg_CXXFLAGS.x86       = -m32
     8131 TEMPLATE_VBoxBldProg_CXXFLAGS.sparc32   = -m32
     8132 TEMPLATE_VBoxBldProg_CXXFLAGS.amd64     = -m64
     8133 TEMPLATE_VBoxBldProg_CXXFLAGS.sparc64   = -m64
     8134 TEMPLATE_VBoxBldProg_CXXFLAGS.release   = -O2 -fno-omit-frame-pointer -fno-strict-aliasing
     8135 TEMPLATE_VBoxBldProg_CXXFLAGS.profile   = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release)
     8136 TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile  = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release)
     8137 TEMPLATE_VBoxBldProg_OBJCFLAGS          = $(TEMPLATE_VBoxBldProg_CFLAGS)
     8138 TEMPLATE_VBoxBldProg_OBJCFLAGS.x86      = $(TEMPLATE_VBoxBldProg_CFLAGS.x86)
     8139 TEMPLATE_VBoxBldProg_OBJCFLAGS.amd64    = $(TEMPLATE_VBoxBldProg_CFLAGS.amd64)
     8140 TEMPLATE_VBoxBldProg_OBJCFLAGS.release  = $(TEMPLATE_VBoxBldProg_CFLAGS.release)
     8141 TEMPLATE_VBoxBldProg_OBJCFLAGS.profile  = $(TEMPLATE_VBoxBldProg_CFLAGS.profile)
     8142 TEMPLATE_VBoxBldProg_OBJCFLAGS.kprofile = $(TEMPLATE_VBoxBldProg_CFLAGS.kprofile)
     8143 TEMPLATE_VBoxBldProg_OBJCXXFLAGS        = $(TEMPLATE_VBoxBldProg_CXXFLAGS)
     8144 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.x86    = $(TEMPLATE_VBoxBldProg_CXXFLAGS.x86)
     8145 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.amd64  = $(TEMPLATE_VBoxBldProg_CXXFLAGS.amd64)
     8146 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.release = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release)
     8147 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.profile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile)
     8148 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.kprofile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile)
     8149 TEMPLATE_VBoxBldProg_PCHFLAGS           = $(TEMPLATE_VBoxBldProg_CXXFLAGS)
     8150 TEMPLATE_VBoxBldProg_PCHFLAGS.x86       = $(TEMPLATE_VBoxBldProg_CXXFLAGS.x86)
     8151 TEMPLATE_VBoxBldProg_PCHFLAGS.amd64     = $(TEMPLATE_VBoxBldProg_CXXFLAGS.amd64)
     8152 TEMPLATE_VBoxBldProg_PCHFLAGS.release   = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release)
     8153 TEMPLATE_VBoxBldProg_PCHFLAGS.profile   = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile)
     8154 TEMPLATE_VBoxBldProg_PCHFLAGS.kprofile  = $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile)
     8155 TEMPLATE_VBoxBldProg_LDFLAGS.x86        = -m32
     8156 TEMPLATE_VBoxBldProg_LDFLAGS.sparc32    = -m32
     8157 TEMPLATE_VBoxBldProg_LDFLAGS.amd64      = -m64
     8158 TEMPLATE_VBoxBldProg_LDFLAGS.sparc64    = -m64
    81598159 ifeq ($(KBUILD_HOST),linux)
    8160 TEMPLATE_VBoxBldProg_LIBS                = pthread m rt dl
     8160  TEMPLATE_VBoxBldProg_LIBS              = pthread m rt dl
    81618161 else ifeq ($(KBUILD_HOST),os2)
    8162 TEMPLATE_VBoxBldProg_TOOL                = GXX3OMF
    8163 TEMPLATE_VBoxBldProg_LIBS                = socket iconv
     8162  TEMPLATE_VBoxBldProg_TOOL              = GXX3OMF
     8163  TEMPLATE_VBoxBldProg_LIBS              = socket iconv
    81648164 else ifeq ($(KBUILD_HOST),darwin)
    8165 TEMPLATE_VBoxBldProg_TOOL                = $(VBOX_GCC_TOOL)
     8165  TEMPLATE_VBoxBldProg_TOOL              = $(VBOX_GCC_TOOL)
    81668166  if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.7" || "$(VBOX_DARWIN_HOST_VERSION_MAJOR)" == "7"
    8167 TEMPLATE_VBoxBldProg_DEFS.darwin         = $(VBOX_DARWIN_DEF_SDK_10_7_DEFS)
    8168 TEMPLATE_VBoxBldProg_CFLAGS.darwin       = $(VBOX_DARWIN_DEF_SDK_10_7_CFLAGS) -fno-common
    8169 TEMPLATE_VBoxBldProg_CXXFLAGS.darwin     = $(VBOX_DARWIN_DEF_SDK_10_7_CXXFLAGS)
    8170 TEMPLATE_VBoxBldProg_PCHFLAGS.darwin     = $(VBOX_DARWIN_DEF_SDK_10_7_CXXFLAGS)
    8171 TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin    = $(VBOX_DARWIN_DEF_SDK_10_7_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C)
    8172 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX)
    8173 TEMPLATE_VBoxBldProg_LDFLAGS.darwin      = $(VBOX_DARWIN_DEF_SDK_10_7_LDFLAGS)
     8167   TEMPLATE_VBoxBldProg_DEFS.darwin      = $(VBOX_DARWIN_DEF_SDK_10_7_DEFS)
     8168   TEMPLATE_VBoxBldProg_CFLAGS.darwin    = $(VBOX_DARWIN_DEF_SDK_10_7_CFLAGS) -fno-common
     8169   TEMPLATE_VBoxBldProg_CXXFLAGS.darwin  = $(VBOX_DARWIN_DEF_SDK_10_7_CXXFLAGS)
     8170   TEMPLATE_VBoxBldProg_PCHFLAGS.darwin  = $(VBOX_DARWIN_DEF_SDK_10_7_CXXFLAGS)
     8171   TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C)
     8172   TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_7_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX)
     8173   TEMPLATE_VBoxBldProg_LDFLAGS.darwin   = $(VBOX_DARWIN_DEF_SDK_10_7_LDFLAGS)
    81748174  else if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.6" || "$(VBOX_DARWIN_HOST_VERSION_MAJOR)" == "6"
    8175 TEMPLATE_VBoxBldProg_DEFS.darwin         = $(VBOX_DARWIN_DEF_SDK_10_6_DEFS)
    8176 TEMPLATE_VBoxBldProg_CFLAGS.darwin       = $(VBOX_DARWIN_DEF_SDK_10_6_CFLAGS) -fno-common
    8177 TEMPLATE_VBoxBldProg_CXXFLAGS.darwin     = $(VBOX_DARWIN_DEF_SDK_10_6_CXXFLAGS)
    8178 TEMPLATE_VBoxBldProg_PCHFLAGS.darwin     = $(VBOX_DARWIN_DEF_SDK_10_6_CXXFLAGS)
    8179 TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin    = $(VBOX_DARWIN_DEF_SDK_10_6_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C)
    8180 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX)
    8181 TEMPLATE_VBoxBldProg_LDFLAGS.darwin      = $(VBOX_DARWIN_DEF_SDK_10_6_LDFLAGS)
     8175   TEMPLATE_VBoxBldProg_DEFS.darwin      = $(VBOX_DARWIN_DEF_SDK_10_6_DEFS)
     8176   TEMPLATE_VBoxBldProg_CFLAGS.darwin    = $(VBOX_DARWIN_DEF_SDK_10_6_CFLAGS) -fno-common
     8177   TEMPLATE_VBoxBldProg_CXXFLAGS.darwin  = $(VBOX_DARWIN_DEF_SDK_10_6_CXXFLAGS)
     8178   TEMPLATE_VBoxBldProg_PCHFLAGS.darwin  = $(VBOX_DARWIN_DEF_SDK_10_6_CXXFLAGS)
     8179   TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C)
     8180   TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_6_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX)
     8181   TEMPLATE_VBoxBldProg_LDFLAGS.darwin   = $(VBOX_DARWIN_DEF_SDK_10_6_LDFLAGS)
    81828182  else if "$(VBOX_DEF_MACOSX_VERSION_MIN)" == "10.5" || "$(VBOX_DARWIN_HOST_VERSION_MAJOR)" == "5" || defined(VBOX_MACOS_10_5_WORKAROUND)
    8183 TEMPLATE_VBoxBldProg_DEFS.darwin         = $(VBOX_DARWIN_DEF_SDK_10_5_DEFS)
    8184 TEMPLATE_VBoxBldProg_CFLAGS.darwin       = $(VBOX_DARWIN_DEF_SDK_10_5_CFLAGS) -fno-common
    8185 TEMPLATE_VBoxBldProg_CXXFLAGS.darwin     = $(VBOX_DARWIN_DEF_SDK_10_5_CXXFLAGS)
    8186 TEMPLATE_VBoxBldProg_PCHFLAGS.darwin     = $(VBOX_DARWIN_DEF_SDK_10_5_CXXFLAGS)
    8187 TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin    = $(VBOX_DARWIN_DEF_SDK_10_5_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C)
    8188 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX)
    8189 TEMPLATE_VBoxBldProg_LDFLAGS.darwin      = $(VBOX_DARWIN_DEF_SDK_10_5_LDFLAGS)
     8183   TEMPLATE_VBoxBldProg_DEFS.darwin      = $(VBOX_DARWIN_DEF_SDK_10_5_DEFS)
     8184   TEMPLATE_VBoxBldProg_CFLAGS.darwin    = $(VBOX_DARWIN_DEF_SDK_10_5_CFLAGS) -fno-common
     8185   TEMPLATE_VBoxBldProg_CXXFLAGS.darwin  = $(VBOX_DARWIN_DEF_SDK_10_5_CXXFLAGS)
     8186   TEMPLATE_VBoxBldProg_PCHFLAGS.darwin  = $(VBOX_DARWIN_DEF_SDK_10_5_CXXFLAGS)
     8187   TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C)
     8188   TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_10_5_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX)
     8189   TEMPLATE_VBoxBldProg_LDFLAGS.darwin   = $(VBOX_DARWIN_DEF_SDK_10_5_LDFLAGS)
    81908190  else
    8191 TEMPLATE_VBoxBldProg_SDKS.darwin         = $(VBOX_DARWIN_DEF_SDK_SDKS)
    8192 TEMPLATE_VBoxBldProg_DEFS.darwin         = $(VBOX_DARWIN_DEF_SDK_DEFS)
    8193 TEMPLATE_VBoxBldProg_CFLAGS.darwin       = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -fno-common
    8194 TEMPLATE_VBoxBldProg_CXXFLAGS.darwin     = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
    8195 TEMPLATE_VBoxBldProg_PCHFLAGS.darwin     = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
    8196 TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin    = $(VBOX_DARWIN_DEF_SDK_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C)
    8197 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX)
    8198 TEMPLATE_VBoxBldProg_LDFLAGS.darwin      = $(VBOX_DARWIN_DEF_SDK_LDFLAGS)
    8199   endif
    8200 TEMPLATE_VBoxBldProg_LIBS                =
     8191   TEMPLATE_VBoxBldProg_SDKS.darwin      = $(VBOX_DARWIN_DEF_SDK_SDKS)
     8192   TEMPLATE_VBoxBldProg_DEFS.darwin      = $(VBOX_DARWIN_DEF_SDK_DEFS)
     8193   TEMPLATE_VBoxBldProg_CFLAGS.darwin    = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -fno-common
     8194   TEMPLATE_VBoxBldProg_CXXFLAGS.darwin  = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
     8195   TEMPLATE_VBoxBldProg_PCHFLAGS.darwin  = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
     8196   TEMPLATE_VBoxBldProg_OBJCFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_OBJCFLAGS) $(VBOX_GCC_PEDANTIC_C)
     8197   TEMPLATE_VBoxBldProg_OBJCXXFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_OBJCXXFLAGS) $(VBOX_GCC_PEDANTIC_CXX)
     8198   TEMPLATE_VBoxBldProg_LDFLAGS.darwin   = $(VBOX_DARWIN_DEF_SDK_LDFLAGS)
     8199  endif
     8200  TEMPLATE_VBoxBldProg_LIBS              =
    82018201 else ifeq ($(KBUILD_HOST),haiku)
    8202 TEMPLATE_VBoxBldProg_TOOL                = GXX3
    8203 TEMPLATE_VBoxBldProg_LIBS                = network iconv
    8204 TEMPLATE_VBoxBldProg_LIBPATH            += \
    8205         /boot/common/lib
     8202  TEMPLATE_VBoxBldProg_TOOL              = GXX3
     8203  TEMPLATE_VBoxBldProg_LIBS              = network iconv
     8204  TEMPLATE_VBoxBldProg_LIBPATH          += \
     8205        /boot/common/lib
    82068206 else if1of ($(KBUILD_HOST), freebsd openbsd)
    8207 TEMPLATE_VBoxBldProg_TOOL                = $(VBOX_GCC_TOOL)
    8208 TEMPLATE_VBoxBldProg_LIBS                = pthread
    8209 TEMPLATE_VBoxBldProg_INCS               += \
    8210         /usr/include \
    8211         /usr/X11R6/include \
    8212         /usr/local/include
    8213 TEMPLATE_VBoxBldProg_LIBPATH            += \
    8214         /usr/lib \
    8215         /usr/X11R6/lib \
    8216         /usr/local/lib
     8207  TEMPLATE_VBoxBldProg_TOOL              = $(VBOX_GCC_TOOL)
     8208  TEMPLATE_VBoxBldProg_LIBS              = pthread
     8209  TEMPLATE_VBoxBldProg_INCS             += \
     8210        /usr/include \
     8211        /usr/X11R6/include \
     8212        /usr/local/include
     8213  TEMPLATE_VBoxBldProg_LIBPATH          += \
     8214        /usr/lib \
     8215        /usr/X11R6/lib \
     8216        /usr/local/lib
    82178217 else ifeq ($(KBUILD_HOST),netbsd)
    8218 TEMPLATE_VBoxBldProg_TOOL                = GXX3
    8219 TEMPLATE_VBoxBldProg_LIBS                = pthread
    8220 TEMPLATE_VBoxBldProg_INCS               += \
    8221         /usr/include \
    8222         /usr/X11R7/include
    8223 TEMPLATE_VBoxBldProg_LIBPATH            += \
    8224         /usr/lib \
    8225         /usr/X11R7/lib
     8218  TEMPLATE_VBoxBldProg_TOOL              = GXX3
     8219  TEMPLATE_VBoxBldProg_LIBS              = pthread
     8220  TEMPLATE_VBoxBldProg_INCS             += \
     8221        /usr/include \
     8222        /usr/X11R7/include
     8223  TEMPLATE_VBoxBldProg_LIBPATH          += \
     8224        /usr/lib \
     8225        /usr/X11R7/lib
    82268226 else ifeq ($(KBUILD_HOST),solaris)
    8227 TEMPLATE_VBoxBldProg_TOOL                = GXX3PLAIN
    8228 TEMPLATE_VBoxBldProg_LIBS                = rt
     8227  TEMPLATE_VBoxBldProg_TOOL              = GXX3PLAIN
     8228  TEMPLATE_VBoxBldProg_LIBS              = rt
    82298229 else
    8230 $(warning Warning: VBOX Build: Target $(KBUILD_HOST) is not officially supported!)
     8230  $(warning Warning: VBOX Build: Target $(KBUILD_HOST) is not officially supported!)
    82318231 endif
    82328232
     
    82408240TEMPLATE_VBoxAdvBldProg_EXTENDS = VBoxBldProg
    82418241TEMPLATE_VBoxAdvBldProg_SDKS    = $(TEMPLATE_VBoxBldProg_SDKS)
    8242 TEMPLATE_VBoxAdvBldProg_SDKS.win= $(TEMPLATE_VBoxBldProg_SDKS.win) VBoxNtDll
     8242TEMPLATE_VBoxAdvBldProg_SDKS.win = $(TEMPLATE_VBoxBldProg_SDKS.win) VBoxNtDll
    82438243TEMPLATE_VBoxAdvBldProg_DEFS    = $(TEMPLATE_VBoxBldProg_DEFS) IN_RT_R3 IN_ADV_BLD_PROG
    82448244ifeq ($(KBUILD_HOST),win)
     
    82858285else
    82868286 WIN32_MC = $(EXEC_X86_WIN32) $(firstword $(wildcard \
    8287         $(PATH_SDK_$(VBOX_WINPSDK)_BIN)/MC.Exe\
    8288         $(PATH_SDK_WINPSDK_BIN)/MC.Exe\
    8289         $(PATH_SDK_WINPSDK)/Bin/MC.Exe\
    8290         $(PATH_SDK_WIN32SDK_BIN)/MC.Exe\
    8291         $(PATH_SDK_WIN64SDK_BIN)/MC.Exe\
    8292         $(KBUILD_DEVTOOLS)/win.x86/bin/mc.exe\
    8293         ) Sorry_Cannot_find_mc_in_the_PSDK)
     8287        $(PATH_SDK_$(VBOX_WINPSDK)_BIN)/MC.Exe \
     8288        $(PATH_SDK_WINPSDK_BIN)/MC.Exe \
     8289        $(PATH_SDK_WINPSDK)/Bin/MC.Exe \
     8290        $(PATH_SDK_WIN32SDK_BIN)/MC.Exe \
     8291        $(PATH_SDK_WIN64SDK_BIN)/MC.Exe \
     8292        $(KBUILD_DEVTOOLS)/win.x86/bin/mc.exe \
     8293        ) Sorry_Cannot_find_mc_in_the_PSDK)
    82948294endif
    82958295
     
    83758375else if1of ($(KBUILD_TARGET), darwin freebsd openbsd)
    83768376 TEMPLATE_VBoxGuestR3ExeBase_LIBS     = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) iconv
    8377 else ifeq ($(KBUILD_TARGET), solaris)
     8377else ifeq ($(KBUILD_TARGET),solaris)
    83788378 TEMPLATE_VBoxGuestR3ExeBase_LIBS     = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) nsl
    83798379endif
     
    84078407 endif
    84088408 TEMPLATE_VBoxGuestR3Exe_LIBS.x86      = \
    8409         $(VBOX_LIB_IPRT_GUEST_R3_X86) \
    8410         $(VBOX_LIB_VBGL_R3_X86) \
    8411         $(VBOX_LIB_IPRT_GUEST_R3_X86) \
    8412         $(TEMPLATE_VBoxGuestR3ExeBase_LIBS.x86)
     8409        $(VBOX_LIB_IPRT_GUEST_R3_X86) \
     8410        $(VBOX_LIB_VBGL_R3_X86) \
     8411        $(VBOX_LIB_IPRT_GUEST_R3_X86) \
     8412        $(TEMPLATE_VBoxGuestR3ExeBase_LIBS.x86)
    84138413 TEMPLATE_VBoxGuestR3Exe_LIBS.$(KBUILD_TARGET_ARCH) = \
    8414         $(VBOX_LIB_IPRT_GUEST_R3) \
    8415         $(VBOX_LIB_VBGL_R3) \
    8416         $(VBOX_LIB_IPRT_GUEST_R3) \
    8417         $(TEMPLATE_VBoxGuestR3ExeBase_LIBS.$(KBUILD_TARGET_ARCH))
     8414        $(VBOX_LIB_IPRT_GUEST_R3) \
     8415        $(VBOX_LIB_VBGL_R3) \
     8416        $(VBOX_LIB_IPRT_GUEST_R3) \
     8417        $(TEMPLATE_VBoxGuestR3ExeBase_LIBS.$(KBUILD_TARGET_ARCH))
    84188418else
    84198419 TEMPLATE_VBoxGuestR3Exe_CFLAGS        = $(TEMPLATE_VBoxGuestR3ExeBase_CFLAGS) $(VBOX_GCC_WERR)
     
    85088508 TEMPLATE_NewerVccVBoxGuestR3Dll_CXXFLAGS        = \
    85098509        $(filter-out $(VBOX_VCC_WARN_ALL) $(VBOX_VCC_WERR), $(TEMPLATE_VBoxGuestR3DllNonPedantic_CXXFLAGS)) \
    8510         $(VBOX_NEWER_VCC_WARN_ALL) $(VBOX_VCC_WERR)
     8510        $(VBOX_NEWER_VCC_WARN_ALL) $(VBOX_VCC_WERR)
    85118511 TEMPLATE_NewerVccVBoxGuestR3Dll_CFLAGS          = $(TEMPLATE_NewerVccVBoxGuestR3DllNonPedantic_CXXFLAGS)
    85128512 ifndef VBOX_WITH_NOCRT_STATIC
    8513 # Hack begin
    8514 # Does not work when building x86 for amd64 build (No rule to make target /oldnames.lib).
    8515 # TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.x86        = \
    8516 #       $(subst $(PATH_TOOL_$(TEMPLATE_VBoxGuestR3DllNonPedantic_TOOL.win.x86)_LIB),$(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.x86)_LIB), $(TEMPLATE_VBoxGuestR3DllNonPedantic_LIBS.x86))
    8517 # TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.amd64      = \
    8518 #       $(subst $(PATH_TOOL_$(TEMPLATE_VBoxGuestR3DllNonPedantic_TOOL.win.amd64)_LIB),$(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.amd64)_LIB), $(TEMPLATE_VBoxGuestR3DllNonPedantic_LIBS.amd64))
    8519 # Directly assign TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.
     8513  # Hack begin
     8514  # Does not work when building x86 for amd64 build (No rule to make target /oldnames.lib).
     8515  # TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.x86        = \
     8516  #     $(subst $(PATH_TOOL_$(TEMPLATE_VBoxGuestR3DllNonPedantic_TOOL.win.x86)_LIB),$(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.x86)_LIB), $(TEMPLATE_VBoxGuestR3DllNonPedantic_LIBS.x86))
     8517  # TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.amd64      = \
     8518  #     $(subst $(PATH_TOOL_$(TEMPLATE_VBoxGuestR3DllNonPedantic_TOOL.win.amd64)_LIB),$(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.amd64)_LIB), $(TEMPLATE_VBoxGuestR3DllNonPedantic_LIBS.amd64))
     8519  # Directly assign TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.
    85208520  TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.x86           = \
    85218521        $(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.x86)_LIB)/oldnames.lib \
     
    85278527        $(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.amd64)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib
    85288528 endif # !VBOX_WITH_NOCRT_STATIC
    8529 # Hack end
     8529 # Hack end
    85308530endif
    85318531TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS             = \
     
    85758575        IN_RT_STATIC
    85768576ifndef VBOX_WITH_NOCRT_STATIC
    8577 TEMPLATE_VBoxGuestR3NoCrtExe_DEFS.win        = $(TEMPLATE_VBoxGuestR3Exe_DEFS.win) \
    8578         RT_WITHOUT_NOCRT_WRAPPERS
     8577 TEMPLATE_VBoxGuestR3NoCrtExe_DEFS.win       = $(TEMPLATE_VBoxGuestR3Exe_DEFS.win) \
     8578        RT_WITHOUT_NOCRT_WRAPPERS
    85798579endif
    85808580TEMPLATE_VBoxGuestR3NoCrtExe_LIBS            = \
    85818581        $(PATH_STAGE_LIB)/RuntimeR3NoCrt$(VBOX_SUFF_LIB)
    85828582ifeq ($(KBUILD_TARGET),win)
    8583 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.x86        = $(NO_SUCH_VARIABLE)
    8584 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.amd64      = $(NO_SUCH_VARIABLE)
    8585 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.win        = $(NO_SUCH_VARIABLE)
    8586 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.win.x86    = \
    8587         $(PATH_TOOL_$(TEMPLATE_VBoxGuestR3NoCrtExe_TOOL.win.x86)_LIB)/chkstk.obj
    8588 TEMPLATE_VBoxGuestR3NoCrtExe_SDKS.win.x86    = VBoxWinInt64Lib
    8589 TEMPLATE_VBoxGuestR3NoCrtExe_LDFLAGS         = $(filter-out $(VBOX_VCC_LD_GUARD_CF) $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxGuestR3Exe_LDFLAGS))
    8590 TEMPLATE_VBoxGuestR3NoCrtExe_LDFLAGS.win.x86 = $(filter-out -Include%, $(TEMPLATE_VBoxGuestR3Exe_LDFLAGS.win.x86))
    8591 TEMPLATE_VBoxGuestR3NoCrtExe_LDFLAGS.win     = $(TEMPLATE_VBoxGuestR3Exe_LDFLAGS.win) /entry:CustomMainEntrypoint /subsystem:console
    8592 TEMPLATE_VBoxGuestR3NoCrtExe_CFLAGS          = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxGuestR3Exe_CFLAGS)) /GS- -EHs-
    8593 TEMPLATE_VBoxGuestR3NoCrtExe_CXXFLAGS        = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxGuestR3Exe_CXXFLAGS)) /GS- -EHs-
    8594 TEMPLATE_VBoxGuestR3NoCrtExe_PCHFLAGS        = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxGuestR3Exe_PCHFLAGS)) /GS- -EHs-
    8595 TEMPLATE_VBoxGuestR3NoCrtExe_CXXFLAGS.debug = $(filter-out /RTC% -RTC%, $(TEMPLATE_VBoxGuestR3Exe_CXXFLAGS.debug))
     8583 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.x86       = $(NO_SUCH_VARIABLE)
     8584 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.amd64     = $(NO_SUCH_VARIABLE)
     8585 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.win       = $(NO_SUCH_VARIABLE)
     8586 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.win.x86   = \
     8587        $(PATH_TOOL_$(TEMPLATE_VBoxGuestR3NoCrtExe_TOOL.win.x86)_LIB)/chkstk.obj
     8588 TEMPLATE_VBoxGuestR3NoCrtExe_SDKS.win.x86   = VBoxWinInt64Lib
     8589 TEMPLATE_VBoxGuestR3NoCrtExe_LDFLAGS        = $(filter-out $(VBOX_VCC_LD_GUARD_CF) $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxGuestR3Exe_LDFLAGS))
     8590 TEMPLATE_VBoxGuestR3NoCrtExe_LDFLAGS.win.x86 = $(filter-out -Include%, $(TEMPLATE_VBoxGuestR3Exe_LDFLAGS.win.x86))
     8591 TEMPLATE_VBoxGuestR3NoCrtExe_LDFLAGS.win    = $(TEMPLATE_VBoxGuestR3Exe_LDFLAGS.win) /entry:CustomMainEntrypoint /subsystem:console
     8592 TEMPLATE_VBoxGuestR3NoCrtExe_CFLAGS         = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxGuestR3Exe_CFLAGS)) /GS- -EHs-
     8593 TEMPLATE_VBoxGuestR3NoCrtExe_CXXFLAGS       = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxGuestR3Exe_CXXFLAGS)) /GS- -EHs-
     8594 TEMPLATE_VBoxGuestR3NoCrtExe_PCHFLAGS       = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxGuestR3Exe_PCHFLAGS)) /GS- -EHs-
     8595 TEMPLATE_VBoxGuestR3NoCrtExe_CXXFLAGS.debug = $(filter-out /RTC% -RTC%, $(TEMPLATE_VBoxGuestR3Exe_CXXFLAGS.debug))
    85968596else
    8597 TEMPLATE_VBoxGuestR3NoCrtExe_CXXFLAGS        = $(TEMPLATE_VBoxGuestR3Exe_CXXFLAGS) -fno-exceptions
    8598 TEMPLATE_VBoxGuestR3NoCrtExe_PCHFLAGS        = $(TEMPLATE_VBoxGuestR3Exe_PCHFLAGS) -fno-exceptions
     8597 TEMPLATE_VBoxGuestR3NoCrtExe_CXXFLAGS       = $(TEMPLATE_VBoxGuestR3Exe_CXXFLAGS) -fno-exceptions
     8598 TEMPLATE_VBoxGuestR3NoCrtExe_PCHFLAGS       = $(TEMPLATE_VBoxGuestR3Exe_PCHFLAGS) -fno-exceptions
    85998599endif
    86008600
     
    87158715# VBOX_LIB_IPRT_GUEST_R0_NT4      = $(VBOX_PATH_ADDITIONS_LIB)/RuntimeGuestR0NT4$(VBOX_SUFF_LIB)
    87168716#else
    8717  VBOX_LIB_IPRT_GUEST_R0_NT4      = $(VBOX_LIB_IPRT_GUEST_R0)
     8717VBOX_LIB_IPRT_GUEST_R0_NT4       = $(VBOX_LIB_IPRT_GUEST_R0)
    87188718#endif
    87198719VBOX_LIB_VBGL_R3                 = $(VBOX_PATH_ADDITIONS_LIB)/VBoxGuestR3Lib$(VBOX_SUFF_LIB)
     
    87778777
    87788778if $(words $(VBOX_VER_TMP1)) == 3 || ($(words $(VBOX_VER_TMP1)) == 2 && "$(VBOX_BUILD_PUBLISHER)" == "")
    8779  if      "$(substr $(word 2,$(VBOX_VER_TMP1)),1,4)" == "BETA"
     8779 if "$(substr $(word 2,$(VBOX_VER_TMP1)),1,4)" == "BETA"
    87808780  VBOX_VER_TMP2 = 5
    87818781 else if "$(substr $(word 2,$(VBOX_VER_TMP1)),1,5)" == "ALPHA"
     
    88998899  # VBOX_LICENSE_VER is used in several Makefiles
    89008900  VBOX_LICENSE_VER_KMK = $(PATH_OUT)/license-version.kmk
    8901 $(VBOX_LICENSE_VER_KMK): $(VBOX_BRAND_LICENSE_HTML)
     8901  $(VBOX_LICENSE_VER_KMK): $(VBOX_BRAND_LICENSE_HTML)
    89028902        $(call MSG_GENERATE,,$(VBOX_LICENSE_VER_KMK))
    89038903        $(QUIET)$(MKDIR) -p $(@D)
     
    89118911  ifdef VBOX_LICENSE_VER
    89128912   VBOX_LICENSE_FILES = \
    8913          License-$(VBOX_LICENSE_VER).html \
    8914          $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES),License-$(VBOX_LICENSE_VER)-$(f).html)
     8913        License-$(VBOX_LICENSE_VER).html \
     8914        $(foreach f,$(VBOX_INSTALLER_ADD_LANGUAGES),License-$(VBOX_LICENSE_VER)-$(f).html)
    89158915   VBOX_LICENSE_BINS = $(addprefix $(PATH_STAGE_BIN)/,$(VBOX_LICENSE_FILES))
    89168916  endif
     
    89208920
    89218921ifeq ($(KBUILD_TARGET),darwin)
    8922 $(VBOX_DARWIN_ENTITLEMENTS_FILE):
     8922 $(VBOX_DARWIN_ENTITLEMENTS_FILE):
    89238923        $(call MSG_GENERATE,,$@)
    89248924        $(QUIET)$(MKDIR) -p $(@D)
     
    89358935
    89368936ifndef VBOX_NOINC_MISC
    8937 # Force building of the version header file as the first thing anywhere in
    8938 # the tree. This eliminates the need for manual dependencies on it.
    8939 ## @todo there gotta be a better way of doing this.
    8940 Makefile.kmk: | $(VBOX_VERSION_HEADER) $(VBOX_VERSION_MK) $(VBOX_PRODUCT_HEADER) $(VBOX_PACKAGE_HEADER)
     8937 # Force building of the version header file as the first thing anywhere in
     8938 # the tree. This eliminates the need for manual dependencies on it.
     8939 ## @todo there gotta be a better way of doing this.
     8940 Makefile.kmk: | $(VBOX_VERSION_HEADER) $(VBOX_VERSION_MK) $(VBOX_PRODUCT_HEADER) $(VBOX_PACKAGE_HEADER)
    89418941 ifeq ($(KBUILD_TARGET),darwin)
    8942 Makefile.kmk: | $(VBOX_DARWIN_ENTITLEMENTS_FILE)
     8942  Makefile.kmk: | $(VBOX_DARWIN_ENTITLEMENTS_FILE)
    89438943 endif
    89448944endif
     
    89678967 endif
    89688968
    8969 # Rule for generating a timestamp and updating the real thing on change.
    8970 $(VBOX_SVN_REV_KMK).ts +| $(VBOX_SVN_REV_KMK): $(if $(VBOX_SVN_DEP), $(VBOX_SVN_DEP), $(PATH_ROOT)/Config.kmk)
     8969 # Rule for generating a timestamp and updating the real thing on change.
     8970 $(VBOX_SVN_REV_KMK).ts +| $(VBOX_SVN_REV_KMK): $(if $(VBOX_SVN_DEP), $(VBOX_SVN_DEP), $(PATH_ROOT)/Config.kmk)
    89718971        $(call MSG_GENERATE,,$(VBOX_SVN_REV_KMK))
    89728972        $(QUIET)$(RM) -f $@ [email protected]
     
    89878987 endif
    89888988else
    8989 # allow to overwrite VBOX_SVN_REV externally (mainly for building .debs/.rpms)
    8990 $(VBOX_SVN_REV_KMK):
     8989 # allow to overwrite VBOX_SVN_REV externally (mainly for building .debs/.rpms)
     8990 $(VBOX_SVN_REV_KMK):
    89918991        $(call MSG_GENERATE,,$(VBOX_SVN_REV_KMK))
    89928992        $(QUIET)$(RM) -f $@
     
    90599059                build-release-$(KBUILD_TARGET_ARCH) \
    90609060                build-debug-$(KBUILD_TARGET_ARCH)
    9061 both-x86-amd64     both-amd64-x86: \
     9061both-x86-amd64 both-amd64-x86: \
    90629062                build-$(KBUILD_TYPE)-x86 \
    90639063                build-$(KBUILD_TYPE)-x86
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette