VirtualBox

Changeset 106683 in vbox


Ignore:
Timestamp:
Oct 25, 2024 10:28:28 AM (3 months ago)
Author:
vboxsync
Message:

/Config.kmk,*.kmk: Changed the LIBS properties on all templates to LATE_LIBS to help solve library ordering issues. Only tested on win.amd64. jiraref:1253

Location:
trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r106673 r106683  
    51745174SDK_VBoxLzf-x86_LIBS          ?= $(PATH_STAGE_LIB)/VBox-liblzf-x86$(VBOX_SUFF_LIB)
    51755175
    5176 SDK_VBoxLzf_STATIC            := lzf compressor/decompressor for static linking.
    5177 SDK_VBoxLzf_STATIC_EXTENDS    := VBoxLzf
     5176SDK_VBoxLzfStatic             := lzf compressor/decompressor for static linking.
     5177SDK_VBoxLzfStatic_EXTENDS     := VBoxLzf
    51785178if1of ($(KBUILD_TARGET), os2 win)
    5179  SDK_VBoxLzf_STATIC_LIBS      := $(PATH_STAGE_LIB)/VBox-liblzf-static$(VBOX_SUFF_LIB)
     5179 SDK_VBoxLzfStatic_LIBS       := $(PATH_STAGE_LIB)/VBox-liblzf-static$(VBOX_SUFF_LIB)
    51805180endif
    51815181
     
    54905490   TEMPLATE_VBoxRc_LDFLAGS          += -IntegrityCheck
    54915491  endif
    5492   TEMPLATE_VBoxRc_LIBS              += \
     5492  TEMPLATE_VBoxRc_LATE_LIBS         += \
    54935493        $(PATH_STAGE_LIB)/RuntimeRCStub$(VBOX_SUFF_LIB)
    54945494  TEMPLATE_VBoxRc_POST_CMDS          = $(VBOX_SIGN_IMAGE_CMDS)
     
    55115511  endif
    55125512  ifn1of ($(KBUILD_TARGET), solaris freebsd)
    5513    TEMPLATE_VBoxRc_LIBS               = \
     5513   TEMPLATE_VBoxRc_LATE_LIBS         = \
    55145514        $(VBOX_GCC32_LIBGCC) # intrinsics
    55155515  endif
     
    55375537  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
    55385538  TEMPLATE_VBoxRc_LDFLAGS            = -Zdll -nostdlib
    5539   TEMPLATE_VBoxRc_LIBS               = \
     5539  TEMPLATE_VBoxRc_LATE_LIBS          = \
    55405540        $(VBOX_GCC32_LIBGCC) \
    55415541        $(VBOX_OBJ_SYS0) \
     
    55585558        -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
    55595559        -Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com
    5560   TEMPLATE_VBoxRcExe_SDKS    = ReorderCompilerIncs $(VBOX_WINPSDK)
    5561   TEMPLATE_VBoxRcExe_LIBS    = \
     5560  TEMPLATE_VBoxRcExe_SDKS      = ReorderCompilerIncs $(VBOX_WINPSDK)
     5561  TEMPLATE_VBoxRcExe_LATE_LIBS = \
    55625562        $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/libcmt.lib \
    55635563        $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/oldnames.lib
     
    55735573  if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), freebsd.amd64)
    55745574   # The FreeBSD port of gcc isn't picking up -m32 where it should.
    5575    TEMPLATE_VBoxRcExe_DEFS.$(KBUILD_TARGET)    = $(TEMPLATE_VBoxRc_DEFS.$(KBUILD_TARGET))    IPRT_DONT_USE_SYSTEM_STDINT_H
    5576    TEMPLATE_VBoxRcExe_LDFLAGS.$(KBUILD_TARGET) = /usr/lib32/crt1.o /usr/lib32/crti.o /usr/lib32/crtbegin.o $(TEMPLATE_VBoxRc_LDFLAGS.$(KBUILD_TARGET)) -nostdlib -v
    5577    TEMPLATE_VBoxRcExe_LIBPATH.$(KBUILD_TARGET) = /usr/lib32
    5578    TEMPLATE_VBoxRcExe_LIBS.$(KBUILD_TARGET)    = /usr/lib32/crtend.o /usr/lib32/crtn.o /usr/lib32/libc.so
     5575   TEMPLATE_VBoxRcExe_DEFS.$(KBUILD_TARGET)      = $(TEMPLATE_VBoxRc_DEFS.$(KBUILD_TARGET))    IPRT_DONT_USE_SYSTEM_STDINT_H
     5576   TEMPLATE_VBoxRcExe_LDFLAGS.$(KBUILD_TARGET)   = /usr/lib32/crt1.o /usr/lib32/crti.o /usr/lib32/crtbegin.o $(TEMPLATE_VBoxRc_LDFLAGS.$(KBUILD_TARGET)) -nostdlib -v
     5577   TEMPLATE_VBoxRcExe_LIBPATH.$(KBUILD_TARGET)   = /usr/lib32
     5578   TEMPLATE_VBoxRcExe_LATE_LIBS.$(KBUILD_TARGET) = /usr/lib32/crtend.o /usr/lib32/crtn.o /usr/lib32/libc.so
    55795579  endif
    55805580 endif
     
    55875587
    55885588 ifeq ($(VBOX_LDR_FMT32),lx)
    5589   TEMPLATE_VBoxRcExe_CFLAGS   = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CFLAGS))
    5590   TEMPLATE_VBoxRcExe_CXXFLAGS = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CXXFLAGS))
    5591   TEMPLATE_VBoxRcExe_LDFLAGS  = -g
    5592   TEMPLATE_VBoxRcExe_LIBS    = $(NO_SUCH_VARIABLE)
     5589  TEMPLATE_VBoxRcExe_CFLAGS    = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CFLAGS))
     5590  TEMPLATE_VBoxRcExe_CXXFLAGS  = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CXXFLAGS))
     5591  TEMPLATE_VBoxRcExe_LDFLAGS   = -g
     5592  TEMPLATE_VBoxRcExe_LATE_LIBS = $(NO_SUCH_VARIABLE)
    55935593 endif
    55945594endif # VBOX_WITH_RAW_MODE
     
    56635663  TEMPLATE_VBoxR0_LDFLAGS.win.arm64 += -Include:__security_init_cookie -Export:ModuleInitSecurityCookie=__security_init_cookie
    56645664 endif
    5665  TEMPLATE_VBoxR0_LIBS               = \
     5665 TEMPLATE_VBoxR0_LATE_LIBS          = \
    56665666        $(PATH_STAGE_LIB)/RuntimeR0Stub$(VBOX_SUFF_LIB)
    56675667 ifneq ($(VBOX_VCC_CC_GUARD_CF),)
    5668   TEMPLATE_VBoxR0_LIBS.x86         += \
     5668  TEMPLATE_VBoxR0_LATE_LIBS.x86    += \
    56695669        $(PATH_SDK_$(VBOX_WINDDK)_LIB)/BufferOverflowK.lib
    5670   TEMPLATE_VBoxR0_LIBS.amd64       += \
     5670  TEMPLATE_VBoxR0_LATE_LIBS.amd64  += \
    56715671        $(PATH_SDK_$(VBOX_WINDDK)_LIB)/BufferOverflowK.lib
    5672   TEMPLATE_VBoxR0_LIBS.arm64       += \
     5672  TEMPLATE_VBoxR0_LATE_LIBS.arm64  += \
    56735673        $(PATH_SDK_$(VBOX_WINDDK)_LIB)/BufferOverflowFastFailK.lib
    56745674  include $(KBUILD_PATH)/sdks/$(VBOX_WINDDK).kmk ## TODO: Add a kBuild feature for loading SDKs.
     
    57015701  TEMPLATE_VBoxR0_LDFLAGS.solaris.amd64 = -m64
    57025702  TEMPLATE_VBoxR0_LDFLAGS.solaris.x86 = -m32
    5703   TEMPLATE_VBoxR0_LIBS.solaris      = \
     5703  TEMPLATE_VBoxR0_LATE_LIBS.solaris = \
    57045704        $(PATH_STAGE_LIB)/RuntimeR0Stub$(VBOX_SUFF_LIB)
    57055705  ifdef VBOX_GCC_USING_SOLARIS_AS
     
    57345734 endif
    57355735 ifdef VBOX_WITH_R0_MOD_IBT_BRANCH_PROTECTION
    5736   TEMPLATE_VBoxR0_CFLAGS          += $(VBOX_GCC_fcf-protection_branch) -fno-jump-tables
    5737   TEMPLATE_VBoxR0_CXXFLAGS        += $(VBOX_GCC_fcf-protection_branch) -fno-jump-tables
    5738   TEMPLATE_VBoxR0_LDFLAGS         += $(VBOX_GCC_fcf-protection_branch) $(VBOX_GCC_fcf-protection_check)
     5736  TEMPLATE_VBoxR0_CFLAGS           += $(VBOX_GCC_fcf-protection_branch) -fno-jump-tables
     5737  TEMPLATE_VBoxR0_CXXFLAGS         += $(VBOX_GCC_fcf-protection_branch) -fno-jump-tables
     5738  TEMPLATE_VBoxR0_LDFLAGS          += $(VBOX_GCC_fcf-protection_branch) $(VBOX_GCC_fcf-protection_check)
    57395739  ifeq ($(VBOX_GCC_fcf-protection_branch),)
    57405740   $(warning VBox: VBOX_WITH_R0_MOD_IBT_BRANCH_PROTECTION is set but gcc doesn't support branch protection)
     
    57425742 endif
    57435743 ifn1of ($(KBUILD_TARGET), solaris freebsd)
    5744   TEMPLATE_VBoxR0_LIBS              = \
     5744  TEMPLATE_VBoxR0_LATE_LIBS         = \
    57455745        $(VBOX_GCC_LIBGCC) # intrinsics
    57465746 endif
     
    57875787 endif
    57885788 TEMPLATE_VBoxR0_LDFLAGS            = -nostdlib -Zdll
    5789  TEMPLATE_VBoxR0_LIBS               = \
     5789 TEMPLATE_VBoxR0_LATE_LIBS          = \
    57905790        $(VBOX_GCC_LIBGCC) \
    57915791        $(VBOX_OBJ_SYS0) \
     
    59655965  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
    59665966  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
    5967   TEMPLATE_VBoxR0Drv_LIBS              = $(VBOX_GCC_LIBGCC)
     5967  TEMPLATE_VBoxR0Drv_LATE_LIBS         = $(VBOX_GCC_LIBGCC)
    59685968  # wlink thinks physdevice doesn't need fixups and should have a stack - stupid!
    59695969  TEMPLATE_VBoxR0Drv_LDFLAGS           = -Zlinker Option -Zlinker internalrelocs, -Zlinker togglerelocs
     
    60226022  TEMPLATE_VBoxR0Drv_LDFLAGS.amd64     = -m64
    60236023  TEMPLATE_VBoxR0Drv_LDFLAGS.x86       = -m32
    6024   TEMPLATE_VBoxR0Drv_LIBS              = kmodc++ kmod cc_kext cpp_kext $(VBOX_GCC_LIBGCC)
     6024  TEMPLATE_VBoxR0Drv_LATE_LIBS         = kmodc++ kmod cc_kext cpp_kext $(VBOX_GCC_LIBGCC)
    60256025 else
    60266026  # Note xcode uses -fstrict-aliasing, we currently don't dare... We also add -mno-red-zone.
     
    60766076  TEMPLATE_VBoxR0Drv_LDFLAGS.arm64     = -m64
    60776077  TEMPLATE_VBoxR0Drv_LDFLAGS.x86       = -m32
    6078   TEMPLATE_VBoxR0Drv_LIBS              = kmodc++ kmod cc_kext
     6078  TEMPLATE_VBoxR0Drv_LATE_LIBS         = kmodc++ kmod cc_kext
    60796079 endif
    60806080endif
     
    63956395 endif
    63966396endif
    6397 TEMPLATE_VBoxR3Exe_LIBS.kprofile       = $(LIB_KPROFILE)
     6397TEMPLATE_VBoxR3Exe_LATE_LIBS.kprofile  = $(LIB_KPROFILE)
    63986398ifeq ($(KBUILD_TARGET),win)
    63996399 # TEMPLATE_VBoxR3Exe_TOOL               = $(VBOX_VCC_TOOL)
     
    64566456
    64576457 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC140"
    6458   TEMPLATE_VBoxR3Exe_LIBS.x86           = \
     6458  TEMPLATE_VBoxR3Exe_LATE_LIBS.x86     = \
    64596459        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/vcruntime$(VBOX_VCC_CRT_TYPE).lib \
    64606460        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \
    64616461        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/msvcprt$(VBOX_VCC_CRT_TYPE).lib \
    64626462        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/oldnames.lib
    6463   TEMPLATE_VBoxR3Exe_LIBS.amd64         = \
     6463  TEMPLATE_VBoxR3Exe_LATE_LIBS.amd64   = \
    64646464        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.amd64)_LIB)/vcruntime$(VBOX_VCC_CRT_TYPE).lib \
    64656465        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.amd64)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \
    64666466        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.amd64)_LIB)/msvcprt$(VBOX_VCC_CRT_TYPE).lib \
    64676467        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.amd64)_LIB)/oldnames.lib
    6468   TEMPLATE_VBoxR3Exe_LIBS.arm64         = \
     6468  TEMPLATE_VBoxR3Exe_LATE_LIBS.arm64   = \
    64696469        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.arm64)_LIB)/vcruntime$(VBOX_VCC_CRT_TYPE).lib \
    64706470        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.arm64)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \
     
    64726472        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.arm64)_LIB)/oldnames.lib
    64736473  ifeq ($(KBUILD_TYPE),asan)
    6474    TEMPLATE_VBoxR3Exe_LIBS.x86         += \
     6474   TEMPLATE_VBoxR3Exe_LATE_LIBS.x86   += \
    64756475        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/clang_rt.asan_dynamic-i386.lib \
    64766476        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/clang_rt.asan_dynamic_runtime_thunk-i386.lib
    6477    TEMPLATE_VBoxR3Exe_LIBS.amd64      += \
     6477   TEMPLATE_VBoxR3Exe_LATE_LIBS.amd64 += \
    64786478        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.amd64)_LIB)/clang_rt.asan_dynamic-x86_64.lib \
    64796479        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.amd64)_LIB)/clang_rt.asan_dynamic_runtime_thunk-x86_64.lib
    64806480  endif
    64816481 else
    6482   TEMPLATE_VBoxR3Exe_LIBS.x86           = \
     6482  TEMPLATE_VBoxR3Exe_LATE_LIBS.x86     = \
    64836483        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \
    64846484        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/msvcprt$(VBOX_VCC_CRT_TYPE).lib \
    64856485        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/oldnames.lib
    6486   TEMPLATE_VBoxR3Exe_LIBS.amd64         = \
     6486  TEMPLATE_VBoxR3Exe_LATE_LIBS.amd64   = \
    64876487        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.amd64)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \
    64886488        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.amd64)_LIB)/msvcprt$(VBOX_VCC_CRT_TYPE).lib \
     
    64986498        -Include:_vcc100_kernel32_fakes_cpp \
    64996499        -Include:_vcc100_kernel32_fakes_asm
    6500   TEMPLATE_VBoxR3Exe_LIBS.win.x86      = \
     6500  TEMPLATE_VBoxR3Exe_LATE_LIBS.win.x86 = \
    65016501        $(PATH_STAGE_LIB)/RuntimeR3VccTricks2$(VBOX_SUFF_LIB)
    6502   TEMPLATE_VBoxR3Exe_LIBS.x86          = \
     6502  TEMPLATE_VBoxR3Exe_LATE_LIBS.x86     = \
    65036503        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/oldnames.lib \
    65046504        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
     
    65576557
    65586558 ifeq ($(KBUILD_TARGET),linux)
    6559   TEMPLATE_VBoxR3Exe_LIBS              = pthread m rt dl
     6559  TEMPLATE_VBoxR3Exe_LATE_LIBS         = pthread m rt dl
    65606560 else ifeq ($(KBUILD_TARGET),os2)
    65616561  TEMPLATE_VBoxR3Exe_TOOL              = GXX3OMF
    6562   TEMPLATE_VBoxR3Exe_LIBS              = socket iconv
     6562  TEMPLATE_VBoxR3Exe_LATE_LIBS         = socket iconv
    65636563 else ifeq ($(KBUILD_TARGET),darwin)
    65646564  TEMPLATE_VBoxR3Exe_TOOL              = $(VBOX_GCC_TOOL)
    6565   TEMPLATE_VBoxR3Exe_LIBS              =
     6565  TEMPLATE_VBoxR3Exe_LATE_LIBS         =
    65666566  TEMPLATE_VBoxR3Exe_DEFS             += LIBICONV_PLUG # Avoid 3rd party libiconv (from macports).
    65676567  TEMPLATE_VBoxR3Exe_SDKS.darwin       = $(VBOX_DARWIN_DEF_SDK_SDKS)
     
    65806580 else ifeq ($(KBUILD_TARGET),haiku)
    65816581  TEMPLATE_VBoxR3Exe_TOOL              = GXX3
    6582   TEMPLATE_VBoxR3Exe_POST_CMDS        = $(VBOX_HAIKU_XRES_SETVER_CMDS)
    6583   TEMPLATE_VBoxR3Exe_LIBS              = network iconv stdc++ supc++
     6582  TEMPLATE_VBoxR3Exe_POST_CMDS         = $(VBOX_HAIKU_XRES_SETVER_CMDS)
     6583  TEMPLATE_VBoxR3Exe_LATE_LIBS         = network iconv stdc++ supc++
    65846584  TEMPLATE_VBoxR3Exe_LIBPATH          += \
    65856585        /boot/common/lib
     
    65906590 else if1of ($(KBUILD_TARGET), freebsd openbsd)
    65916591  TEMPLATE_VBoxR3Exe_TOOL              = GXX3
    6592   TEMPLATE_VBoxR3Exe_LIBS              = pthread
     6592  TEMPLATE_VBoxR3Exe_LATE_LIBS         = pthread
    65936593  TEMPLATE_VBoxR3Exe_INCS             += \
    65946594        /usr/include \
     
    66016601 else ifeq ($(KBUILD_TARGET),netbsd)
    66026602  TEMPLATE_VBoxR3Exe_TOOL              = GXX3
    6603   TEMPLATE_VBoxR3Exe_LIBS              = pthread
     6603  TEMPLATE_VBoxR3Exe_LATE_LIBS              = pthread
    66046604  TEMPLATE_VBoxR3Exe_INCS             += \
    66056605        /usr/include \
     
    66146614   TEMPLATE_VBoxR3Exe_CFLAGS          += -std=gnu99
    66156615  endif
    6616   TEMPLATE_VBoxR3Exe_LIBS              = rt socket
     6616  TEMPLATE_VBoxR3Exe_LATE_LIBS         = rt socket
    66176617 else
    66186618  $(warning Warning: VBOX Build: Target $(KBUILD_TARGET) is not officially supported!)
     
    67906790 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC140"
    67916791  ifdef VBOX_WITH_NOCRT_STATIC
    6792    TEMPLATE_VBoxR3StaticBase_LIBS.amd64        = $(NO_SUCH_VARIABLE)
    6793    TEMPLATE_VBoxR3StaticBase_LIBS.x86          = $(NO_SUCH_VARIABLE)
     6792   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.amd64   = $(NO_SUCH_VARIABLE)
     6793   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.x86     = $(NO_SUCH_VARIABLE)
    67946794  else
    6795    TEMPLATE_VBoxR3StaticBase_LIBS.x86          = \
     6795   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.x86     = \
    67966796        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.x86)_LIB)/libvcruntime$(VBOX_VCC_CRT_TYPE).lib \
    67976797        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.x86)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
    67986798        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.x86)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib \
    67996799        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.x86)_LIB)/oldnames.lib
    6800    TEMPLATE_VBoxR3StaticBase_LIBS.amd64        = \
     6800   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.amd64   = \
    68016801        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.amd64)_LIB)/libvcruntime$(VBOX_VCC_CRT_TYPE).lib \
    68026802        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.amd64)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
    68036803        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.amd64)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib \
    68046804        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.amd64)_LIB)/oldnames.lib
    6805    TEMPLATE_VBoxR3StaticBase_LIBS.arm64        = \
     6805   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.arm64   = \
    68066806        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.arm64)_LIB)/libvcruntime$(VBOX_VCC_CRT_TYPE).lib \
    68076807        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.arm64)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
     
    68106810  endif
    68116811  ifeq ($(KBUILD_TYPE),asan)
    6812    TEMPLATE_VBoxR3StaticBase_LIBS.x86         += \
     6812   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.x86    += \
    68136813        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.x86)_LIB)/clang_rt.asan-i386.lib \
    68146814        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.x86)_LIB)/clang_rt.asan_cxx-i386.lib
    6815    TEMPLATE_VBoxR3StaticBase_LIBS.amd64       += \
     6815   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.amd64  += \
    68166816        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.amd64)_LIB)/clang_rt.asan-x86_64.lib \
    68176817        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.amd64)_LIB)/clang_rt.asan_cxx-x86_64.lib
     
    68196819 else
    68206820  ifdef VBOX_WITH_NOCRT_STATIC
    6821    TEMPLATE_VBoxR3StaticBase_LIBS.amd64        = $(NO_SUCH_VARIABLE)
    6822    TEMPLATE_VBoxR3StaticBase_LIBS.x86          = $(NO_SUCH_VARIABLE)
     6821   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.amd64   = $(NO_SUCH_VARIABLE)
     6822   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.x86     = $(NO_SUCH_VARIABLE)
    68236823  else
    6824    TEMPLATE_VBoxR3StaticBase_LIBS.x86          = \
     6824   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.x86     = \
    68256825        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.x86)_LIB)/oldnames.lib \
    68266826        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.x86)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
    68276827        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.x86)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib
    6828    TEMPLATE_VBoxR3StaticBase_LIBS.amd64        = \
     6828   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.amd64   = \
    68296829        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.amd64)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
    68306830        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.amd64)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib \
    68316831        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.amd64)_LIB)/oldnames.lib
    6832    TEMPLATE_VBoxR3StaticBase_LIBS.arm64        = \
     6832   TEMPLATE_VBoxR3StaticBase_LATE_LIBS.arm64   = \
    68336833        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.arm64)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
    68346834        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticBase_TOOL.win.arm64)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib \
     
    68496849  TEMPLATE_VBoxR3StaticBase_LDFLAGS         = $(TEMPLATE_VBoxR3Exe_LDFLAGS) -static
    68506850 else ifeq ($(KBUILD_TARGET),solaris)
    6851   TEMPLATE_VBoxR3StaticBase_LIBS            = $(TEMPLATE_VBoxR3Exe_LIBS) nsl
     6851  TEMPLATE_VBoxR3StaticBase_LATE_LIBS       = $(TEMPLATE_VBoxR3Exe_LATE_LIBS) nsl
    68526852  TEMPLATE_VBoxR3StaticBase_LDFLAGS         = $(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)',$(TEMPLATE_VBoxR3Exe_LDFLAGS))
    68536853 else
     
    68876887 TEMPLATE_VBoxR3Static_LDFLAGS.darwin.arm64 += $(TEMPLATE_VBoxR3StaticBase_LDFLAGS.darwin.arm64) -framework IOKit
    68886888endif
    6889 TEMPLATE_VBoxR3Static_LIBS.$(KBUILD_TARGET_ARCH) += \
     6889TEMPLATE_VBoxR3Static_LATE_LIBS.$(KBUILD_TARGET_ARCH) += \
    68906890        $(VBOX_LIB_RUNTIME_STATIC)
    68916891ifneq ($(KBUILD_TARGET_ARCH),x86)
    6892  TEMPLATE_VBoxR3Static_LIBS.x86    += \
     6892 TEMPLATE_VBoxR3Static_LATE_LIBS.x86 += \
    68936893        $(VBOX_LIB_RUNTIME_STATIC_X86)
    68946894endif
    68956895ifndef SDK_VBoxLibXml2_LIBS
    6896  TEMPLATE_VBoxR3Static_LIBS.$(KBUILD_TARGET_ARCH) += \
     6896 TEMPLATE_VBoxR3Static_LATE_LIBS.$(KBUILD_TARGET_ARCH) += \
    68976897        $(PATH_STAGE_LIB)/VBox-libxml2-static$(VBOX_SUFF_LIB)
    68986898endif
    68996899if1of ($(KBUILD_TARGET), os2 win)
    6900  TEMPLATE_VBoxR3Static_LIBS.$(KBUILD_TARGET_ARCH) += \
    6901         $(SDK_VBoxLzf_STATIC_LIBS) \
     6900 TEMPLATE_VBoxR3Static_LATE_LIBS.$(KBUILD_TARGET_ARCH) += \
     6901        $(SDK_VBoxLzfStatic_LIBS) \
    69026902        $(SDK_VBoxZlibStatic_LIBS) \
    69036903        $(SDK_VBoxLibLzmaStatic_LIBS)
    69046904else
    6905  TEMPLATE_VBoxR3Static_LIBS.$(KBUILD_TARGET_ARCH) += \
     6905 TEMPLATE_VBoxR3Static_LATE_LIBS.$(KBUILD_TARGET_ARCH) += \
    69066906        $(SDK_VBoxLzf_LIBS) \
    69076907        $(SDK_VBoxZlib_LIBS) \
    69086908        $(SDK_VBoxLibLzma_LIBS)
    69096909 if1of ($(KBUILD_TARGET), darwin freebsd)
    6910   TEMPLATE_VBoxR3Static_LIBS       += iconv
     6910  TEMPLATE_VBoxR3Static_LATE_LIBS  += iconv
    69116911 else ifeq ($(KBUILD_TARGET),solaris)
    6912   TEMPLATE_VBoxR3Static_LIBS       += kstat
     6912  TEMPLATE_VBoxR3Static_LATE_LIBS  += kstat
    69136913 endif
    69146914endif
     
    69186918#
    69196919TEMPLATE_VBoxR3StaticExeNoAsan = VBoxR3Static but w/o ASAN
    6920 TEMPLATE_VBoxR3StaticExeNoAsan_EXTENDS     = VBoxR3Static
     6920TEMPLATE_VBoxR3StaticExeNoAsan_EXTENDS          = VBoxR3Static
    69216921if "$(KBUILD_TARGET)" == "win" && "$(KBUILD_TYPE)" == "asan"
    6922  TEMPLATE_VBoxR3StaticExeNoAsan_CFLAGS     = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3Static_CFLAGS))
    6923  TEMPLATE_VBoxR3StaticExeNoAsan_CXXFLAGS   = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3Static_CXXFLAGS))
    6924  TEMPLATE_VBoxR3StaticExeNoAsan_PCHFLAGS   = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3Static_PCHFLAGS))
    6925  TEMPLATE_VBoxR3StaticExeNoAsan_LDFLAGS    = $(filter-out $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxR3Static_LDFLAGS)) -InferAsanLibs:No
    6926  TEMPLATE_VBoxR3StaticExeNoAsan_LIBS.x86   = $(subst $(VBOX_LIB_RUNTIME_STATIC),$(VBOX_LIB_RUNTIME_STATIC_NO_ASAN),$(filter-out %clang_rt.asan-i386.lib   %clang_rt.asan_cxx-i386.lib  , $(TEMPLATE_VBoxR3Static_LIBS.x86)))
    6927  TEMPLATE_VBoxR3StaticExeNoAsan_LIBS.amd64 = $(subst $(VBOX_LIB_RUNTIME_STATIC),$(VBOX_LIB_RUNTIME_STATIC_NO_ASAN),$(filter-out %clang_rt.asan-x86_64.lib %clang_rt.asan_cxx-x86_64.lib, $(TEMPLATE_VBoxR3Static_LIBS.amd64)))
     6922 TEMPLATE_VBoxR3StaticExeNoAsan_CFLAGS          = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3Static_CFLAGS))
     6923 TEMPLATE_VBoxR3StaticExeNoAsan_CXXFLAGS        = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3Static_CXXFLAGS))
     6924 TEMPLATE_VBoxR3StaticExeNoAsan_PCHFLAGS        = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3Static_PCHFLAGS))
     6925 TEMPLATE_VBoxR3StaticExeNoAsan_LDFLAGS         = $(filter-out $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxR3Static_LDFLAGS)) -InferAsanLibs:No
     6926 TEMPLATE_VBoxR3StaticExeNoAsan_LATE_LIBS.x86   = $(subst $(VBOX_LIB_RUNTIME_STATIC),$(VBOX_LIB_RUNTIME_STATIC_NO_ASAN),$(filter-out %clang_rt.asan-i386.lib   %clang_rt.asan_cxx-i386.lib  , $(TEMPLATE_VBoxR3Static_LATE_LIBS.x86)))
     6927 TEMPLATE_VBoxR3StaticExeNoAsan_LATE_LIBS.amd64 = $(subst $(VBOX_LIB_RUNTIME_STATIC),$(VBOX_LIB_RUNTIME_STATIC_NO_ASAN),$(filter-out %clang_rt.asan-x86_64.lib %clang_rt.asan_cxx-x86_64.lib, $(TEMPLATE_VBoxR3Static_LATE_LIBS.amd64)))
    69286928endif
    69296929
     
    69326932#
    69336933## @todo make VBoxR3StaticDll work on non-windows.
    6934 TEMPLATE_VBoxR3StaticDll             = VBox Static Ring-3 DLL
    6935 TEMPLATE_VBoxR3StaticDll_EXTENDS     = VBoxR3Static
     6934TEMPLATE_VBoxR3StaticDll                  = VBox Static Ring-3 DLL
     6935TEMPLATE_VBoxR3StaticDll_EXTENDS          = VBoxR3Static
    69366936if "$(KBUILD_TARGET)" == "win" && "$(KBUILD_TYPE)" == "asan"
    6937  TEMPLATE_VBoxR3StaticDll_LIBS.x86   = $(patsubst %clang_rt.asan-i386.lib, %clang_rt.asan_dll_thunk-i386.lib, $(filter-out %clang_rt.asan_cxx-i386.lib,$(TEMPLATE_VBoxR3Static_LIBS.x86)))
    6938  TEMPLATE_VBoxR3StaticDll_LIBS.amd64 = $(patsubst %clang_rt.asan-x86_64.lib, %clang_rt.asan_dll_thunk-x86_64.lib, $(filter-out %clang_rt.asan_cxx-x86_64.lib,$(TEMPLATE_VBoxR3Static_LIBS.amd64)))
     6937 TEMPLATE_VBoxR3StaticDll_LATE_LIBS.x86   = $(patsubst %clang_rt.asan-i386.lib, %clang_rt.asan_dll_thunk-i386.lib, $(filter-out %clang_rt.asan_cxx-i386.lib,$(TEMPLATE_VBoxR3Static_LATE_LIBS.x86)))
     6938 TEMPLATE_VBoxR3StaticDll_LATE_LIBS.amd64 = $(patsubst %clang_rt.asan-x86_64.lib, %clang_rt.asan_dll_thunk-x86_64.lib, $(filter-out %clang_rt.asan_cxx-x86_64.lib,$(TEMPLATE_VBoxR3Static_LATE_LIBS.amd64)))
    69396939endif
    69406940
     
    69456945#
    69466946TEMPLATE_VBoxR3StaticDllNoAsan = VBoxR3StaticDll but w/o ASAN
    6947 TEMPLATE_VBoxR3StaticDllNoAsan_EXTENDS     = VBoxR3StaticDll
     6947TEMPLATE_VBoxR3StaticDllNoAsan_EXTENDS          = VBoxR3StaticDll
    69486948if "$(KBUILD_TARGET)" == "win" && "$(KBUILD_TYPE)" == "asan"
    6949  TEMPLATE_VBoxR3StaticDllNoAsan_CFLAGS     = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3StaticDll_CFLAGS))
    6950  TEMPLATE_VBoxR3StaticDllNoAsan_CXXFLAGS   = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3StaticDll_CXXFLAGS))
    6951  TEMPLATE_VBoxR3StaticDllNoAsan_PCHFLAGS   = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3StaticDll_PCHFLAGS))
    6952  TEMPLATE_VBoxR3StaticDllNoAsan_LDFLAGS    = $(filter-out $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxR3StaticDll_LDFLAGS)) -InferAsanLibs:No
    6953  TEMPLATE_VBoxR3StaticDllNoAsan_LIBS.x86   = $(subst $(VBOX_LIB_RUNTIME_STATIC),$(VBOX_LIB_RUNTIME_STATIC_NO_ASAN),$(filter-out %clang_rt.asan_dll_thunk-i386.lib, $(TEMPLATE_VBoxR3StaticDll_LIBS.x86)))
    6954  TEMPLATE_VBoxR3StaticDllNoAsan_LIBS.amd64 = $(subst $(VBOX_LIB_RUNTIME_STATIC),$(VBOX_LIB_RUNTIME_STATIC_NO_ASAN),$(filter-out %clang_rt.asan_dll_thunk-x86_64.lib, $(TEMPLATE_VBoxR3StaticDll_LIBS.amd64)))
     6949 TEMPLATE_VBoxR3StaticDllNoAsan_CFLAGS          = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3StaticDll_CFLAGS))
     6950 TEMPLATE_VBoxR3StaticDllNoAsan_CXXFLAGS        = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3StaticDll_CXXFLAGS))
     6951 TEMPLATE_VBoxR3StaticDllNoAsan_PCHFLAGS        = $(filter-out $(VBOX_VCC_SANITIZER_FLAGS)  , $(TEMPLATE_VBoxR3StaticDll_PCHFLAGS))
     6952 TEMPLATE_VBoxR3StaticDllNoAsan_LDFLAGS         = $(filter-out $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxR3StaticDll_LDFLAGS)) -InferAsanLibs:No
     6953 TEMPLATE_VBoxR3StaticDllNoAsan_LATE_LIBS.x86   = $(subst $(VBOX_LIB_RUNTIME_STATIC),$(VBOX_LIB_RUNTIME_STATIC_NO_ASAN),$(filter-out %clang_rt.asan_dll_thunk-i386.lib, $(TEMPLATE_VBoxR3StaticDll_LATE_LIBS.x86)))
     6954 TEMPLATE_VBoxR3StaticDllNoAsan_LATE_LIBS.amd64 = $(subst $(VBOX_LIB_RUNTIME_STATIC),$(VBOX_LIB_RUNTIME_STATIC_NO_ASAN),$(filter-out %clang_rt.asan_dll_thunk-x86_64.lib, $(TEMPLATE_VBoxR3StaticDll_LATE_LIBS.amd64)))
    69556955endif
    69566956
     
    69816981# Note! Not compatible with BLD_TRG_ARCH overrides yet.
    69826982#
    6983 TEMPLATE_VBoxR3StaticNoCrt               = Static
    6984 TEMPLATE_VBoxR3StaticNoCrt_EXTENDS       = VBoxR3Static
    6985 TEMPLATE_VBoxR3StaticNoCrt_SDKS          = $(subst WINSDK10-UCRT$(VBOX_VCC_CRT_TYPE_UPPER)-STATIC,WINSDK10-UCRT-INCS, $(TEMPLATE_VBoxR3Static_SDKS))
     6983TEMPLATE_VBoxR3StaticNoCrt                  = Static
     6984TEMPLATE_VBoxR3StaticNoCrt_EXTENDS          = VBoxR3Static
     6985TEMPLATE_VBoxR3StaticNoCrt_SDKS             = $(subst WINSDK10-UCRT$(VBOX_VCC_CRT_TYPE_UPPER)-STATIC,WINSDK10-UCRT-INCS, $(TEMPLATE_VBoxR3Static_SDKS))
    69866986TEMPLATE_VBoxR3StaticNoCrt_SDKS.$(KBUILD_TARGET_ARCH) = $(filter-out VBoxOpenSslStatic,$(TEMPLATE_VBoxR3Static_SDKS.$(KBUILD_TARGET_ARCH)))
    6987 TEMPLATE_VBoxR3StaticNoCrt_DEFS          = $(TEMPLATE_VBoxR3Static_DEFS) \
     6987TEMPLATE_VBoxR3StaticNoCrt_DEFS             = $(TEMPLATE_VBoxR3Static_DEFS) \
    69886988        RT_NO_CRT \
    69896989        IN_RT_STATIC
    69906990ifndef VBOX_WITH_NOCRT_STATIC
    6991  TEMPLATE_VBoxR3StaticNoCrt_DEFS.win     = $(TEMPLATE_VBoxR3Static_DEFS.win) \
     6991 TEMPLATE_VBoxR3StaticNoCrt_DEFS.win        = $(TEMPLATE_VBoxR3Static_DEFS.win) \
    69926992        RT_WITHOUT_NOCRT_WRAPPERS
    69936993endif
    6994 TEMPLATE_VBoxR3StaticNoCrt_LIBS          = \
     6994TEMPLATE_VBoxR3StaticNoCrt_LATE_LIBS        = \
    69956995        $(PATH_STAGE_LIB)/RuntimeR3NoCrt$(VBOX_SUFF_LIB)
    69966996ifeq ($(KBUILD_TARGET),win)
    6997  TEMPLATE_VBoxR3StaticNoCrt_LIBS.x86       = $(NO_SUCH_VARIABLE)
    6998  TEMPLATE_VBoxR3StaticNoCrt_LIBS.amd64    = $(NO_SUCH_VARIABLE)
    6999  TEMPLATE_VBoxR3StaticNoCrt_LIBS.arm64    = $(NO_SUCH_VARIABLE)
    7000  TEMPLATE_VBoxR3StaticNoCrt_LIBS.win       = $(NO_SUCH_VARIABLE)
     6997 TEMPLATE_VBoxR3StaticNoCrt_LATE_LIBS.x86   = $(NO_SUCH_VARIABLE)
     6998 TEMPLATE_VBoxR3StaticNoCrt_LATE_LIBS.amd64 = $(NO_SUCH_VARIABLE)
     6999 TEMPLATE_VBoxR3StaticNoCrt_LATE_LIBS.arm64 = $(NO_SUCH_VARIABLE)
     7000 TEMPLATE_VBoxR3StaticNoCrt_LATE_LIBS.win   = $(NO_SUCH_VARIABLE)
    70017001 ifdef VBOX_WITH_NOCRT_STATIC
    7002   TEMPLATE_VBoxR3StaticNoCrt_LIBS.$(KBUILD_TARGET_ARCH) = \
     7002  TEMPLATE_VBoxR3StaticNoCrt_LATE_LIBS.$(KBUILD_TARGET_ARCH) = \
    70037003        $(PATH_STAGE_LIB)/RuntimeR3NoCrt$(VBOX_SUFF_LIB)
    70047004  ifneq ($(KBUILD_TARGET_ARCH),x86)
    7005    TEMPLATE_VBoxR3StaticNoCrt_LIBS.x86    = \
     7005   TEMPLATE_VBoxR3StaticNoCrt_LATE_LIBS.x86 = \
    70067006        $(PATH_STAGE_LIB)/RuntimeR3NoCrt-x86$(VBOX_SUFF_LIB) # place holder, we don't have this library
    70077007  endif
    70087008 else
    7009   TEMPLATE_VBoxR3StaticNoCrt_LIBS.win.x86 = \
     7009  TEMPLATE_VBoxR3StaticNoCrt_LATE_LIBS.win.x86 = \
    70107010        $(PATH_TOOL_$(TEMPLATE_VBoxR3StaticNoCrt_TOOL.win.x86)_LIB)/chkstk.obj
    70117011 endif
    7012  TEMPLATE_VBoxR3StaticNoCrt_LDFLAGS        = $(filter-out $(VBOX_VCC_LD_GUARD_CF) $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxR3Static_LDFLAGS))
     7012 TEMPLATE_VBoxR3StaticNoCrt_LDFLAGS         = $(filter-out $(VBOX_VCC_LD_GUARD_CF) $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxR3Static_LDFLAGS))
    70137013 TEMPLATE_VBoxR3StaticNoCrt_LDFLAGS.win.x86 = $(filter-out -Include%, $(TEMPLATE_VBoxR3Static_LDFLAGS.win.x86))
    7014  TEMPLATE_VBoxR3StaticNoCrt_CFLAGS         = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_CFLAGS)) /GS- -EHs-
    7015  TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS       = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_CXXFLAGS)) /GS- -EHs-
    7016  TEMPLATE_VBoxR3StaticNoCrt_PCHFLAGS       = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_PCHFLAGS)) /GS- -EHs-
    7017  TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS.debug = $(filter-out /RTC% -RTC%, $(TEMPLATE_VBoxR3Static_CXXFLAGS.debug))
     7014 TEMPLATE_VBoxR3StaticNoCrt_CFLAGS          = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_CFLAGS)) /GS- -EHs-
     7015 TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS        = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_CXXFLAGS)) /GS- -EHs-
     7016 TEMPLATE_VBoxR3StaticNoCrt_PCHFLAGS        = $(filter-out -EH% -GS $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_SANITIZER_FLAGS),$(TEMPLATE_VBoxR3Static_PCHFLAGS)) /GS- -EHs-
     7017 TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS.debug  = $(filter-out /RTC% -RTC%, $(TEMPLATE_VBoxR3Static_CXXFLAGS.debug))
    70187018else
    7019  TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS       = $(TEMPLATE_VBoxR3Static_CXXFLAGS) -fno-exceptions
    7020  TEMPLATE_VBoxR3StaticNoCrt_PCHFLAGS       = $(TEMPLATE_VBoxR3Static_PCHFLAGS) -fno-exceptions
     7019 TEMPLATE_VBoxR3StaticNoCrt_CXXFLAGS        = $(TEMPLATE_VBoxR3Static_CXXFLAGS) -fno-exceptions
     7020 TEMPLATE_VBoxR3StaticNoCrt_PCHFLAGS        = $(TEMPLATE_VBoxR3Static_PCHFLAGS) -fno-exceptions
    70217021endif
    70227022
     
    70417041TEMPLATE_VBoxR3HardenedExe_DEFS  = $(TEMPLATE_VBoxR3Exe_DEFS) RTMEM_NO_WRAP_TO_EF_APIS
    70427042ifdef VBOX_WITH_HARDENING
    7043  TEMPLATE_VBoxR3HardenedExe_LIBS = $(VBOX_LIB_SUPHARDENED) $(TEMPLATE_VBoxR3Exe_LIBS)
     7043 TEMPLATE_VBoxR3HardenedExe_LATE_LIBS = $(VBOX_LIB_SUPHARDENED) $(TEMPLATE_VBoxR3Exe_LATE_LIBS)
    70447044else
    7045  TEMPLATE_VBoxR3HardenedExe_LIBS = $(TEMPLATE_VBoxR3Exe_LIBS)
     7045 TEMPLATE_VBoxR3HardenedExe_LATE_LIBS = $(TEMPLATE_VBoxR3Exe_LATE_LIBS)
    70467046endif
    70477047TEMPLATE_VBoxR3HardenedExe_LDFLAGS.darwin = $(TEMPLATE_VBoxR3Exe_LDFLAGS.darwin) -framework IOKit
    70487048ifeq ($(KBUILD_TARGET),linux)
    70497049 # not necessary except USE_LIB_PCAP is defined in SUPR3HardenedMain.cpp
    7050  # TEMPLATE_VBoxR3HardenedExe_LIBS += cap
     7050 # TEMPLATE_VBoxR3HardenedExe_LATE_LIBS += cap
    70517051endif
    70527052ifeq ($(KBUILD_TARGET),win) # No CRT!
     
    70727072        /DISALLOWLIB:vcruntime$(VBOX_VCC_CRT_TYPE).lib \
    70737073        /DISALLOWLIB:ucrt$(VBOX_VCC_CRT_TYPE).lib
    7074  TEMPLATE_VBoxR3HardenedExe_LDFLAGS.win.x86   = $(TEMPLATE_VBoxR3Exe_LDFLAGS.win.x86)   /entry:suplibHardenedWindowsMain
    7075  TEMPLATE_VBoxR3HardenedExe_LDFLAGS.win.amd64 = $(TEMPLATE_VBoxR3Exe_LDFLAGS.win.amd64) /entry:suplibHardenedWindowsMain
    7076  TEMPLATE_VBoxR3HardenedExe_LDFLAGS.win.arm64 = $(TEMPLATE_VBoxR3Exe_LDFLAGS.win.arm64) /entry:suplibHardenedWindowsMain
    7077  TEMPLATE_VBoxR3HardenedExe_LIBS.x86       = $(NOT_SUCH_VARIABLE)
    7078  TEMPLATE_VBoxR3HardenedExe_LIBS.amd64     = $(NOT_SUCH_VARIABLE)
    7079  TEMPLATE_VBoxR3HardenedExe_LIBS.arm64     = $(NOT_SUCH_VARIABLE)
    7080  TEMPLATE_VBoxR3HardenedExe_USES.win       = $(TEMPLATE_VBoxR3Exe_USES.win) vboximportchecker
     7074 TEMPLATE_VBoxR3HardenedExe_LDFLAGS.win.x86    = $(TEMPLATE_VBoxR3Exe_LDFLAGS.win.x86)   /entry:suplibHardenedWindowsMain
     7075 TEMPLATE_VBoxR3HardenedExe_LDFLAGS.win.amd64  = $(TEMPLATE_VBoxR3Exe_LDFLAGS.win.amd64) /entry:suplibHardenedWindowsMain
     7076 TEMPLATE_VBoxR3HardenedExe_LDFLAGS.win.arm64  = $(TEMPLATE_VBoxR3Exe_LDFLAGS.win.arm64) /entry:suplibHardenedWindowsMain
     7077 TEMPLATE_VBoxR3HardenedExe_LATE_LIBS.x86      = $(NOT_SUCH_VARIABLE)
     7078 TEMPLATE_VBoxR3HardenedExe_LATE_LIBS.amd64    = $(NOT_SUCH_VARIABLE)
     7079 TEMPLATE_VBoxR3HardenedExe_LATE_LIBS.arm64    = $(NOT_SUCH_VARIABLE)
     7080 TEMPLATE_VBoxR3HardenedExe_USES.win           = $(TEMPLATE_VBoxR3Exe_USES.win) vboximportchecker
    70817081 TEMPLATE_VBoxR3HardenedExe_VBOX_IMPORT_CHECKER.win = noimports
    70827082else ifn1of ($(KBUILD_TARGET), os2)
    70837083 ifneq ($(KBUILD_TYPE),asan) # Keep RPATH in asan builds so we can find libasan.so.X and libubsan.so.Y.
    7084   TEMPLATE_VBoxR3HardenedExe_LDFLAGS       = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3Exe_LDFLAGS))
    7085   TEMPLATE_VBoxR3HardenedExe_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3Exe_LDFLAGS.linux))
     7084  TEMPLATE_VBoxR3HardenedExe_LDFLAGS           = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBoxR3Exe_LDFLAGS))
     7085  TEMPLATE_VBoxR3HardenedExe_LDFLAGS.linux     = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBoxR3Exe_LDFLAGS.linux))
    70867086 endif
    70877087endif
     
    70927092TEMPLATE_VBoxR3HardenedLib = Hardened VBox Ring-3 LIB
    70937093TEMPLATE_VBoxR3HardenedLib_EXTENDS   = VBoxR3HardenedExe
     7094TEMPLATE_VBoxR3HardenedLib_LATE_LIBS = $(NO_SUCH_VARIABLE)
    70947095TEMPLATE_VBoxR3HardenedLib_LIBS      = $(NO_SUCH_VARIABLE)
    70957096TEMPLATE_VBoxR3HardenedLib_USES.win  = $(NO_SUCH_VARIABLE)
     
    71287129 TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS = $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_SANITIZER_LDFLAGS)
    71297130endif
    7130 TEMPLATE_VBoxR3SetUidToRoot_LIBS = $(NO_SUCH_VARIABLE)
     7131TEMPLATE_VBoxR3SetUidToRoot_LIBS     = $(NO_SUCH_VARIABLE)
     7132TEMPLATE_VBoxR3SetUidToRoot_LATE_LIBS = $(NO_SUCH_VARIABLE)
    71317133ifdef VBOX_WITH_RUNPATH
    71327134 TEMPLATE_VBoxR3SetUidToRoot_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
     
    71627164 endif
    71637165endif
    7164 TEMPLATE_VBoxR3Tool_LIBS       = $(LIB_RUNTIME) $(TEMPLATE_VBoxR3Exe_LIBS)
     7166TEMPLATE_VBoxR3Tool_LATE_LIBS  = $(LIB_RUNTIME) $(TEMPLATE_VBoxR3Exe_LATE_LIBS)
    71657167if defined(VBOX_WITH_MORE_NT4_COMPAT_BINARIES) && "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.x86"
    7166  TEMPLATE_VBoxR3Tool_LIBS.x86  = \
     7168 TEMPLATE_VBoxR3Tool_LATE_LIBS.x86  = \
    71677169        $(PATH_STAGE_LIB)/RuntimeR3VccTricks2$(VBOX_SUFF_LIB) \
    71687170        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/oldnames.lib
     
    71877189endif
    71887190TEMPLATE_VBoxR3AutoTest_INST        = $(INST_TESTCASE)
    7189 TEMPLATE_VBoxR3AutoTest_LIBS.$(KBUILD_TARGET_ARCH) = $(filter-out \
     7191TEMPLATE_VBoxR3AutoTest_LATE_LIBS.$(KBUILD_TARGET_ARCH) = $(filter-out \
    71907192                $(if-expr !defined(SDK_VBoxLibXml2_LIBS),$(PATH_STAGE_LIB)/VBox-libxml2-static$(VBOX_SUFF_LIB),) \
    71917193        $(if-expr "$(KBUILD_TARGET)" == "win" || "$(KBUILD_TARGET)" == "os2" \
    7192                 ,$(SDK_VBoxLzf_STATIC_LIBS) $(SDK_VBoxZlibStatic_LIBS) $(SDK_VBoxLibLzmaStatic_LIBS) \
     7194                ,$(SDK_VBoxLzfStatic_LIBS) $(SDK_VBoxZlibStatic_LIBS) $(SDK_VBoxLibLzmaStatic_LIBS) \
    71937195                ,$(SDK_VBoxLzf_LIBS) $(SDK_VBoxZlib_LIBS) $(SDK_VBoxLibLzma_LIBS)) \
    7194         ,$(TEMPLATE_$(TEMPLATE_VBoxR3AutoTest_EXTENDS)_LIBS.$(KBUILD_TARGET_ARCH)))
     7196        ,$(TEMPLATE_$(TEMPLATE_VBoxR3AutoTest_EXTENDS)_LATE_LIBS.$(KBUILD_TARGET_ARCH)))
    71957197
    71967198#
     
    71987200# This is the VBoxR3Exe template only with a different install dir.
    71997201#
    7200 TEMPLATE_VBoxR3TstExe  = VBox Ring 3 Testcase Exe
    7201 TEMPLATE_VBoxR3TstExe_EXTENDS = VBoxR3Exe
    7202 TEMPLATE_VBoxR3TstExe_LIBS    = $(LIB_RUNTIME) $(TEMPLATE_VBoxR3Exe_LIBS)
    7203 TEMPLATE_VBoxR3TstExe_INST    = $(INST_TESTCASE)
     7202TEMPLATE_VBoxR3TstExe           = VBox Ring 3 Testcase Exe
     7203TEMPLATE_VBoxR3TstExe_EXTENDS   = VBoxR3Exe
     7204TEMPLATE_VBoxR3TstExe_LATE_LIBS = $(LIB_RUNTIME) $(TEMPLATE_VBoxR3Exe_LATE_LIBS)
     7205TEMPLATE_VBoxR3TstExe_INST      = $(INST_TESTCASE)
    72047206ifdef VBOX_WITH_RUNPATH
    7205  TEMPLATE_VBoxR3TstExe_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' $(TEMPLATE_VBoxR3Exe_LDFLAGS)
     7207 TEMPLATE_VBoxR3TstExe_LDFLAGS  = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' $(TEMPLATE_VBoxR3Exe_LDFLAGS)
    72067208else ifdef VBOX_WITH_RELATIVE_RUNPATH
    7207  TEMPLATE_VBoxR3TstExe_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' $(TEMPLATE_VBoxR3Exe_LDFLAGS)
     7209 TEMPLATE_VBoxR3TstExe_LDFLAGS  = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' $(TEMPLATE_VBoxR3Exe_LDFLAGS)
    72087210endif
    72097211if "$(KBUILD_TARGET)" == "win" && defined(VBOX_SIGNING_MODE)
     
    72137215if defined(VBOX_WITH_MORE_NT4_COMPAT_BINARIES) && "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.x86"
    72147216 TEMPLATE_VBoxR3TstExe_POST_CMDS.win.x86 = $(if $(eq $(tool_do),LINK_LIBRARY),,$(VBOX_PE_SET_VERSION) $(out))
    7215  TEMPLATE_VBoxR3TstExe_LIBS.x86 = \
     7217 TEMPLATE_VBoxR3TstExe_LATE_LIBS.x86 = \
    72167218        $(PATH_STAGE_LIB)/RuntimeR3VccTricks2$(VBOX_SUFF_LIB) \
    72177219        $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/oldnames.lib
     
    72227224TEMPLATE_VBoxR3TstExe-x86_EXTENDS      := VBoxR3TstExe
    72237225TEMPLATE_VBoxR3TstExe-x86_BLD_TRG_ARCH := x86
    7224 TEMPLATE_VBoxR3TstExe-x86_LIBS          = $(LIB_RUNTIME_X86) $(TEMPLATE_VBoxR3Exe_LIBS)
     7226TEMPLATE_VBoxR3TstExe-x86_LATE_LIBS     = $(LIB_RUNTIME_X86) $(TEMPLATE_VBoxR3Exe_LATE_LIBS)
    72257227
    72267228#
     
    72987300 TEMPLATE_VBoxR3RuntimeDll_CXXFLAGS = $(filter-out -MD$(VBOX_VCC_CRT_TYPE), $(TEMPLATE_VBoxR3Dll_CXXFLAGS)) -MT$(VBOX_VCC_CRT_TYPE)
    72997301 TEMPLATE_VBoxR3RuntimeDll_PCHFLAGS = $(filter-out -MD$(VBOX_VCC_CRT_TYPE), $(TEMPLATE_VBoxR3Dll_PCHFLAGS)) -MT$(VBOX_VCC_CRT_TYPE)
    7300  TEMPLATE_VBoxR3RuntimeDll_LIBS.x86 = $(filter-out $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/%, $(TEMPLATE_VBoxR3Dll_LIBS.x86)) \
     7302 TEMPLATE_VBoxR3RuntimeDll_LATE_LIBS.x86 = $(filter-out $(PATH_TOOL_$(TEMPLATE_VBoxR3Exe_TOOL.win.x86)_LIB)/%, $(TEMPLATE_VBoxR3Dll_LATE_LIBS.x86)) \
    73017303        $(PATH_TOOL_$(TEMPLATE_VBoxR3RuntimeDll_TOOL.win.x86)_LIB)/oldnames.lib \
    73027304        $(PATH_TOOL_$(TEMPLATE_VBoxR3RuntimeDll_TOOL.win.x86)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
     
    73667368TEMPLATE_VBoxMainExe_DEFS.win            = _UNICODE
    73677369TEMPLATE_VBoxMainExe_RCDEFS              = $(TEMPLATE_VBoxR3Exe_RCDEFS)
    7368 TEMPLATE_VBoxMainExe_LIBS.kprofile       = $(LIB_KPROFILE)
     7370TEMPLATE_VBoxMainExe_LATE_LIBS.kprofile  = $(LIB_KPROFILE)
    73697371TEMPLATE_VBoxMainExe_USES                = dtrace
    73707372if defined(VBOX_WITH_DTRACE_R3_MAIN) && defined(VBOX_WITH_NATIVE_DTRACE)
     
    74467448 endif
    74477449 TEMPLATE_VBoxMainExe_LDFLAGS.win.amd64  = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA)
    7448  TEMPLATE_VBoxMainExe_LIBS               = \
     7450 TEMPLATE_VBoxMainExe_LATE_LIBS          = \
    74497451        $(LIB_RUNTIME)
    74507452 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC140"
    7451   TEMPLATE_VBoxMainExe_LIBS.x86           = \
     7453  TEMPLATE_VBoxMainExe_LATE_LIBS.x86     = \
    74527454        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.x86)_LIB)/vcruntime$(VBOX_VCC_CRT_TYPE).lib \
    74537455        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.x86)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \
    74547456        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.x86)_LIB)/msvcprt$(VBOX_VCC_CRT_TYPE).lib \
    74557457        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.x86)_LIB)/oldnames.lib
    7456   TEMPLATE_VBoxMainExe_LIBS.amd64         = \
     7458  TEMPLATE_VBoxMainExe_LATE_LIBS.amd64   = \
    74577459        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.amd64)_LIB)/vcruntime$(VBOX_VCC_CRT_TYPE).lib \
    74587460        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.amd64)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \
    74597461        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.amd64)_LIB)/msvcprt$(VBOX_VCC_CRT_TYPE).lib \
    74607462        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.amd64)_LIB)/oldnames.lib
    7461   TEMPLATE_VBoxMainExe_LIBS.arm64         = \
     7463  TEMPLATE_VBoxMainExe_LATE_LIBS.arm64   = \
    74627464        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.arm64)_LIB)/vcruntime$(VBOX_VCC_CRT_TYPE).lib \
    74637465        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.arm64)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \
     
    74657467        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.arm64)_LIB)/oldnames.lib
    74667468  ifeq ($(KBUILD_TYPE),asan)
    7467    TEMPLATE_VBoxMainExe_LIBS.x86         += \
     7469   TEMPLATE_VBoxMainExe_LATE_LIBS.x86   += \
    74687470        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.x86)_LIB)/clang_rt.asan_dynamic-i386.lib \
    74697471        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.x86)_LIB)/clang_rt.asan_dynamic_runtime_thunk-i386.lib
    7470    TEMPLATE_VBoxMainExe_LIBS.amd64      += \
     7472   TEMPLATE_VBoxMainExe_LATE_LIBS.amd64 += \
    74717473        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.amd64)_LIB)/clang_rt.asan_dynamic-x86_64.lib \
    74727474        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.amd64)_LIB)/clang_rt.asan_dynamic_runtime_thunk-x86_64.lib
    74737475  endif
    74747476 else
    7475   TEMPLATE_VBoxMainExe_LIBS.x86           = \
     7477  TEMPLATE_VBoxMainExe_LATE_LIBS.x86     = \
    74767478        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.x86)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \
    74777479        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.x86)_LIB)/msvcprt$(VBOX_VCC_CRT_TYPE).lib \
    74787480        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.x86)_LIB)/oldnames.lib
    7479   TEMPLATE_VBoxMainExe_LIBS.amd64         = \
     7481  TEMPLATE_VBoxMainExe_LATE_LIBS.amd64   = \
    74807482        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.amd64)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \
    74817483        $(PATH_TOOL_$(TEMPLATE_VBoxMainExe_TOOL.win.amd64)_LIB)/msvcprt$(VBOX_VCC_CRT_TYPE).lib \
     
    75377539 TEMPLATE_VBoxMainExe_LDFLAGS.amd64      = -m64
    75387540 ifeq ($(KBUILD_TARGET),linux)
    7539   TEMPLATE_VBoxMainExe_LIBS              = pthread m rt $(LIB_RUNTIME) dl
     7541  TEMPLATE_VBoxMainExe_LATE_LIBS         = pthread m rt $(LIB_RUNTIME) dl
    75407542  TEMPLATE_VBoxMainExe_LDFLAGS.linux     = -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
    75417543 else ifeq ($(KBUILD_TARGET),os2)
    75427544  TEMPLATE_VBoxMainExe_TOOL              = GXX3OMF
    7543   TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME)
     7545  TEMPLATE_VBoxMainExe_LATE_LIBS         = $(LIB_RUNTIME)
    75447546 else ifeq ($(KBUILD_TARGET),darwin)
    75457547  TEMPLATE_VBoxMainExe_TOOL              = $(VBOX_GCC_TOOL)
     
    75527554  TEMPLATE_VBoxMainExe_LDFLAGS.darwin   += -bind_at_load
    75537555  TEMPLATE_VBoxMainExe_LDFLAGS          += $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -framework Carbon -Wl,-headerpad_max_install_names
    7554   TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME)
     7556  TEMPLATE_VBoxMainExe_LATE_LIBS         = $(LIB_RUNTIME)
    75557557  TEMPLATE_VBoxMainExe_POST_CMDS.darwin  = $(VBOX_SIGN_IMAGE_CMDS)
    75567558 else ifeq ($(KBUILD_TARGET),haiku)
    75577559  TEMPLATE_VBoxMainExe_TOOL              = GXX3
    7558   TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME) network stdc++ supc++
     7560  TEMPLATE_VBoxMainExe_LATE_LIBS         = $(LIB_RUNTIME) network stdc++ supc++
    75597561 else if1of ($(KBUILD_TARGET), freebsd openbsd)
    75607562  TEMPLATE_VBoxMainExe_TOOL              = GXX3
    7561   TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME)
     7563  TEMPLATE_VBoxMainExe_LATE_LIBS         = $(LIB_RUNTIME)
    75627564  TEMPLATE_VBoxMainExe_INCS             += \
    75637565        /usr/include \
     
    75707572 else ifeq ($(KBUILD_TARGET),netbsd)
    75717573  TEMPLATE_VBoxMainExe_TOOL              = GXX3
    7572   TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME)
     7574  TEMPLATE_VBoxMainExe_LATE_LIBS         = $(LIB_RUNTIME)
    75737575  TEMPLATE_VBoxMainExe_INCS             += \
    75747576        /usr/include \
     
    75807582  TEMPLATE_VBoxMainExe_TOOL              = GXX3PLAIN
    75817583  TEMPLATE_VBoxMainExe_DEFS             += _REENTRANT
    7582   TEMPLATE_VBoxMainExe_LIBS              = $(LIB_RUNTIME) rt thread
     7584  TEMPLATE_VBoxMainExe_LATE_LIBS         = $(LIB_RUNTIME) rt thread
    75837585 else
    7584   $(warning Warning: VBOX Build: Target $(KBUILD_TARGET) is not officially supported!)
    7585   TEMPLATE_VBoxMainExe_LIBS              =
     7586  $(warning Warning: VBox Build: Target $(KBUILD_TARGET) is not officially supported and may need TEMPLATE_VBoxMainExe tweaking!)
     7587  TEMPLATE_VBoxMainExe_LATE_LIBS         =
    75867588 endif
    75877589 TEMPLATE_VBoxMainExe_LDFLAGS.solaris    = -Wl,-z,ignore # Same as VBOX_LD_as_needed.
     
    75987600
    75997601# Add COM/XPCOM stuff
    7600 TEMPLATE_VBoxMainExe_LIBS               += \
     7602TEMPLATE_VBoxMainExe_LATE_LIBS          += \
    76017603        $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB)
    76027604ifdef VBOX_WITH_XPCOM
     
    76087610 TEMPLATE_VBoxMainExe_INCS              += \
    76097611        $(VBOX_XPCOM_INCS)
    7610  TEMPLATE_VBoxMainExe_LIBS              += \
     7612 TEMPLATE_VBoxMainExe_LATE_LIBS         += \
    76117613        $(LIB_XPCOM)
    76127614 TEMPLATE_VBoxMainExe_INTERMEDIATES     += \
     
    76827684TEMPLATE_VBoxMainComp-x86_DEFS = $(filter-out HC_ARCH_BITS%,$(TEMPLATE_VBoxMainComp_DEFS)) HC_ARCH_BIT=32 ARCH_BITS=32 \
    76837685        VBOX_IN_32_ON_64_MAIN_API
    7684 TEMPLATE_VBoxMainComp-x86_LIBS = \
     7686TEMPLATE_VBoxMainComp-x86_LATE_LIBS = \
    76857687        $(subst $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB),$(PATH_STAGE_LIB)/VBoxCOM-x86$(VBOX_SUFF_LIB), \
    76867688                $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86), \
    76877689                        $(subst $(LIB_XPCOM),$(VBOX_LIB_XPCOM_X86), \
    7688                                 $(TEMPLATE_VBoxMainComp_LIBS))))
     7690                                $(TEMPLATE_VBoxMainComp_LATE_LIBS))))
    76897691
    76907692
     
    76927694# Template for building the Main static libraries.
    76937695#
    7694 # This differs from VBoxMainDll only that it zeroes out the _LIBS definition.
     7696# This differs from VBoxMainDll only that it zeroes out the _LATE_LIBS definition.
    76957697#
    76967698TEMPLATE_VBoxMainLib  = VBox Main Component (static library)
    76977699TEMPLATE_VBoxMainLib_EXTENDS = VBoxMainDll
    7698 TEMPLATE_VBoxMainLib_LIBS =
     7700TEMPLATE_VBoxMainLib_LATE_LIBS = $(NO_SUCH_VARIABLE)
    76997701
    77007702TEMPLATE_VBoxMainLib-x86  = 32-bit VBox Main Component (static library)
     
    77277729ifeq ($(KBUILD_TARGET),win)
    77287730 TEMPLATE_VBoxMainClientExe_DEPS            = $(VBOX_PATH_SDK)/bindings/mscom/include/VirtualBox.h
    7729  TEMPLATE_VBoxMainClientExe_LIBS.win        = $(TEMPLATE_VBoxMainExe_LIBS.win) \
     7731 TEMPLATE_VBoxMainClientExe_LATE_LIBS.win   = $(TEMPLATE_VBoxMainExe_LATE_LIBS.win) \
    77307732        $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/User32.Lib \
    77317733        $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Shell32.Lib \
     
    77657767TEMPLATE_VBoxMainClientDll-x86_DEFS          = $(filter-out HC_ARCH_BITS%,$(TEMPLATE_VBoxMainClientDll_DEFS)) \
    77667768        HC_ARCH_BIT=32 ARCH_BITS=32 VBOX_IN_32_ON_64_MAIN_API
    7767 TEMPLATE_VBoxMainClientDll-x86_LIBS = \
     7769TEMPLATE_VBoxMainClientDll-x86_LATE_LIBS = \
    77687770        $(subst $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB),$(PATH_STAGE_LIB)/VBoxCOM-x86$(VBOX_SUFF_LIB), \
    77697771                $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86), \
    77707772                        $(subst $(LIB_XPCOM),$(VBOX_LIB_XPCOM_X86), \
    7771                                 $(TEMPLATE_VBoxMainClientDll_LIBS))))
     7773                                $(TEMPLATE_VBoxMainClientDll_LATE_LIBS))))
    77727774
    77737775#
     
    78147816 ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
    78157817  if1of ($(KBUILD_TARGET), win os2)
    7816    TEMPLATE_VBoxR3ExtPack_LIBS = \
     7818   TEMPLATE_VBoxR3ExtPack_LATE_LIBS = \
    78177819        $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_LIB)
    78187820  else
    7819    TEMPLATE_VBoxR3ExtPack_LIBS = \
     7821   TEMPLATE_VBoxR3ExtPack_LATE_LIBS = \
    78207822        $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_DLL)
    78217823  endif
    78227824 else
    7823   TEMPLATE_VBoxR3ExtPack_LIBS = \
     7825  TEMPLATE_VBoxR3ExtPack_LATE_LIBS = \
    78247826        $(LIB_RUNTIME)
    78257827 endif
     
    78397841 ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
    78407842  if1of ($(KBUILD_TARGET), win os2)
    7841    TEMPLATE_VBoxR3ExtPackApi_LIBS = \
     7843   TEMPLATE_VBoxR3ExtPackApi_LATE_LIBS = \
    78427844        $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_LIB)
    78437845  else
    7844    TEMPLATE_VBoxR3ExtPackApi_LIBS = \
     7846   TEMPLATE_VBoxR3ExtPackApi_LATE_LIBS = \
    78457847        $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_DLL)
    78467848  endif
    78477849 else
    7848   TEMPLATE_VBoxR3ExtPackApi_LIBS = \
     7850  TEMPLATE_VBoxR3ExtPackApi_LATE_LIBS = \
    78497851        $(LIB_RUNTIME)
    78507852 endif
     
    78597861 TEMPLATE_VBoxR0ExtPack_DEFS = VBOX_IN_EXTPACK VBOX_IN_EXTPACK_R0
    78607862 if1of ($(VBOX_LDR_FMT), pe lx)
    7861   TEMPLATE_VBoxR0ExtPack_LIBS = \
     7863  TEMPLATE_VBoxR0ExtPack_LATE_LIBS = \
    78627864        $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB)
    78637865 endif
    7864  TEMPLATE_VBoxR0ExtPack_LIBS += \
     7866 TEMPLATE_VBoxR0ExtPack_LATE_LIBS += \
    78657867        $(VBOX_LIB_SUPR0)
    78667868
     
    78727874 TEMPLATE_VBoxRcExtPack_DEFS = VBOX_IN_EXTPACK VBOX_IN_EXTPACK_RC
    78737875 if1of ($(VBOX_LDR_FMT32), pe lx)
    7874   TEMPLATE_VBoxRcExtPack_LIBS = \
     7876  TEMPLATE_VBoxRcExtPack_LATE_LIBS = \
    78757877        $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
    78767878        $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
     
    81418143  TEMPLATE_VBoxQtGuiExe_SDKS += $(VBOX_WINPSDK)
    81428144  if "$(VBOX_VCC_TOOL_STEM)" >= "VCC140"
    8143    TEMPLATE_VBoxQtGuiExe_LIBS = \
     8145   TEMPLATE_VBoxQtGuiExe_LATE_LIBS = \
    81448146        $(VBOX_LIBS_QT) \
    81458147        $(LIB_RUNTIME) \
     
    81508152        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
    81518153   ifeq ($(KBUILD_TYPE),asan)
    8152     TEMPLATE_VBoxQtGuiExe_LIBS += \
     8154    TEMPLATE_VBoxQtGuiExe_LATE_LIBS += \
    81538155        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/clang_rt.asan_dynamic-x86_64.lib \
    81548156        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/clang_rt.asan_dynamic_runtime_thunk-x86_64.lib
    81558157   endif
    81568158  else
    8157    TEMPLATE_VBoxQtGuiExe_LIBS = \
     8159   TEMPLATE_VBoxQtGuiExe_LATE_LIBS = \
    81588160        $(VBOX_LIBS_QT) \
    81598161        $(LIB_RUNTIME) \
     
    82118213  TEMPLATE_VBoxQtGuiExe_LDFLAGS.x86 = -m32
    82128214  TEMPLATE_VBoxQtGuiExe_LDFLAGS.amd64 = -m64
    8213   TEMPLATE_VBoxQtGuiExe_LIBS = \
     8215  TEMPLATE_VBoxQtGuiExe_LATE_LIBS = \
    82148216        $(VBOX_LIBS_QT) \
    82158217        $(LIB_RUNTIME)
     
    82188220   TEMPLATE_VBoxQtGuiExe_LDFLAGS += -Wl,-z,noexecstack,-z,relro $(VBOX_LD_as_needed)
    82198221   TEMPLATE_VBOXQTGUIEXE_LDFLAGS += -Wl,-rpath,$(PATH_SDK_QT6_LIB)
    8220    TEMPLATE_VBoxQtGuiExe_LIBS += \
     8222   TEMPLATE_VBoxQtGuiExe_LATE_LIBS += \
    82218223        $(VBOX_XCURSOR_LIBS) \
    82228224        Xext \
     
    82338235   TEMPLATE_VBoxQtGuiExe_OBJCXXFLAGS.darwin += $(VBOX_DARWIN_DEF_SDK_OBJCXXFLAGS)
    82348236   TEMPLATE_VBoxQtGuiExe_LDFLAGS.darwin     += $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -bind_at_load -Wl,-headerpad_max_install_names
    8235    TEMPLATE_VBoxQtGuiExe_LIBS +=
     8237   TEMPLATE_VBoxQtGuiExe_LATE_LIBS +=
    82368238   TEMPLATE_VBoxQtGuiExe_LIBPATH +=
    82378239   TEMPLATE_VBoxQtGuiExe_POST_CMDS.darwin    = $(VBOX_SIGN_IMAGE_CMDS)
     
    82398241   TEMPLATE_VBoxQtGuiExe_INCS += \
    82408242        $(VBOX_XCURSOR_INCS)
    8241    TEMPLATE_VBoxQtGuiExe_LIBS += \
    8242         $(VBOX_XCURSOR_LIBS) \
     8243   TEMPLATE_VBoxQtGuiExe_LATE_LIBS += \
     8244        $(VBOX_XCURSOR_LATE_LIBS) \
    82438245        Xext \
    82448246        X11 \
     
    82598261   ifeq ($(KBUILD_TARGET),solaris)
    82608262    TEMPLATE_VBoxQtGuiExe_LDFLAGS.solaris = -Wl,-z,ignore # Same as VBOX_LD_as_needed.
    8261     TEMPLATE_VBoxQtGuiExe_LIBS += \
     8263    TEMPLATE_VBoxQtGuiExe_LATE_LIBS += \
    82628264        rt socket nsl
    82638265   endif
     
    82738275
    82748276 # Add COM/XPCOM stuff
    8275  TEMPLATE_VBoxQtGuiExe_LIBS += \
     8277 TEMPLATE_VBoxQtGuiExe_LATE_LIBS += \
    82768278        $(PATH_STAGE_LIB)/VBoxCOM$(if-expr "$(VBOX_QT_DBG)" != "$(VBOX_VCC_CRT_TYPE)" && $(KBUILD_TARGET) == win,-GUI,)$(VBOX_SUFF_LIB)
    82778279 ifdef VBOX_WITH_XPCOM
     
    82838285  TEMPLATE_VBoxQtGuiExe_INCS += \
    82848286        $(VBOX_XPCOM_INCS)
    8285   TEMPLATE_VBoxQtGuiExe_LIBS += \
     8287  TEMPLATE_VBoxQtGuiExe_LATE_LIBS += \
    82868288        $(LIB_XPCOM)
    82878289  TEMPLATE_VBoxQtGuiExe_INTERMEDIATES += \
     
    83158317 TEMPLATE_VBoxQtGuiDll = VBox Qt GUI Components
    83168318 TEMPLATE_VBoxQtGuiDll_EXTENDS = VBoxQtGuiExe
    8317  TEMPLATE_VBoxQtGuiDll_LIBS = $(filter-out $(QTMAIN),$(TEMPLATE_VBoxQtGuiExe_LIBS))
     8319 TEMPLATE_VBoxQtGuiDll_LATE_LIBS = $(filter-out $(QTMAIN),$(TEMPLATE_VBoxQtGuiExe_LATE_LIBS))
    83188320 ifeq ($(KBUILD_TARGET),darwin)
    83198321  TEMPLATE_VBoxQtGuiDll_LDFLAGS.darwin += $(filter-out -bind_at_load,$(TEMPLATE_VBoxQtGuiExe_LDFLAGS.darwin)) \
     
    83498351 TEMPLATE_VBoxNLS_SDKS.$(KBUILD_TARGET_ARCH)  = $(filter-out VBoxOpenSslStatic,$(TEMPLATE_VBoxR3Static_SDKS.$(KBUILD_TARGET_ARCH)))
    83508352 ifdef VBOX_WITH_NOCRT_STATIC
    8351   TEMPLATE_VBoxNLS_LIBS.$(KBUILD_TARGET_ARCH) = $(filter-out \
     8353  TEMPLATE_VBoxNLS_LATE_LIBS.$(KBUILD_TARGET_ARCH) = $(filter-out \
    83528354                $(PATH_STAGE_LIB)/VBox-libxml2-static$(VBOX_SUFF_LIB), \
    8353                 $(TEMPLATE_VBoxR3Static_LIBS.$(KBUILD_TARGET_ARCH)))
     8355                $(TEMPLATE_VBoxR3Static_LATE_LIBS.$(KBUILD_TARGET_ARCH)))
    83548356 else
    8355   TEMPLATE_VBoxNLS_LIBS.$(KBUILD_TARGET_ARCH) = $(filter-out \
     8357  TEMPLATE_VBoxNLS_LATE_LIBS.$(KBUILD_TARGET_ARCH) = $(filter-out \
    83568358                $(VBOX_LIB_RUNTIME_STATIC) \
    83578359                $(PATH_STAGE_LIB)/VBox-libxml2-static$(VBOX_SUFF_LIB), \
    8358                 $(TEMPLATE_VBoxR3Static_LIBS.$(KBUILD_TARGET_ARCH)))
     8360                $(TEMPLATE_VBoxR3Static_LATE_LIBS.$(KBUILD_TARGET_ARCH)))
    83598361 endif
    83608362endif # !VBOX_WITH_NLS
     
    84398441 endif
    84408442 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC140"
    8441   TEMPLATE_VBoxBldProg_LIBS               = \
     8443  TEMPLATE_VBoxBldProg_LATE_LIBS         = \
    84428444        $(PATH_TOOL_$(TEMPLATE_VBoxBldProg_TOOL)_LIB)/libvcruntime$(VBOX_VCC_CRT_TYPE).lib \
    84438445        $(PATH_TOOL_$(TEMPLATE_VBoxBldProg_TOOL)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
     
    84458447        $(PATH_TOOL_$(TEMPLATE_VBoxBldProg_TOOL)_LIB)/oldnames.lib
    84468448 else
    8447   TEMPLATE_VBoxBldProg_LIBS               = \
     8449  TEMPLATE_VBoxBldProg_LATE_LIBS         = \
    84488450        $(PATH_TOOL_$(TEMPLATE_VBoxBldProg_TOOL)_LIB)/oldnames.lib \
    84498451        $(PATH_TOOL_$(TEMPLATE_VBoxBldProg_TOOL)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
     
    85028504 TEMPLATE_VBoxBldProg_LDFLAGS.sparc64    = -m64
    85038505 ifeq ($(KBUILD_HOST),linux)
    8504   TEMPLATE_VBoxBldProg_LIBS              = pthread m rt dl
     8506  TEMPLATE_VBoxBldProg_LATE_LIBS         = pthread m rt dl
    85058507 else ifeq ($(KBUILD_HOST),os2)
    85068508  TEMPLATE_VBoxBldProg_TOOL              = GXX3OMF
    8507   TEMPLATE_VBoxBldProg_LIBS              = socket iconv
     8509  TEMPLATE_VBoxBldProg_LATE_LIBS         = socket iconv
    85088510 else ifeq ($(KBUILD_HOST),darwin)
    85098511  TEMPLATE_VBoxBldProg_TOOL              = $(VBOX_GCC_TOOL)
     
    85428544   TEMPLATE_VBoxBldProg_LDFLAGS.darwin   = $(VBOX_DARWIN_DEF_SDK_LDFLAGS)
    85438545  endif
    8544   TEMPLATE_VBoxBldProg_LIBS              =
     8546  TEMPLATE_VBoxBldProg_LATE_LIBS         =
    85458547 else ifeq ($(KBUILD_HOST),haiku)
    85468548  TEMPLATE_VBoxBldProg_TOOL              = GXX3
    8547   TEMPLATE_VBoxBldProg_LIBS              = network iconv
     8549  TEMPLATE_VBoxBldProg_LATE_LIBS         = network iconv
    85488550  TEMPLATE_VBoxBldProg_LIBPATH          += \
    85498551        /boot/common/lib
    85508552 else if1of ($(KBUILD_HOST), freebsd openbsd)
    85518553  TEMPLATE_VBoxBldProg_TOOL              = $(VBOX_GCC_TOOL)
    8552   TEMPLATE_VBoxBldProg_LIBS              = pthread
     8554  TEMPLATE_VBoxBldProg_LATE_LIBS         = pthread
    85538555  TEMPLATE_VBoxBldProg_INCS             += \
    85548556        /usr/include \
     
    85618563 else ifeq ($(KBUILD_HOST),netbsd)
    85628564  TEMPLATE_VBoxBldProg_TOOL              = GXX3
    8563   TEMPLATE_VBoxBldProg_LIBS              = pthread
     8565  TEMPLATE_VBoxBldProg_LATE_LIBS         = pthread
    85648566  TEMPLATE_VBoxBldProg_INCS             += \
    85658567        /usr/include \
     
    85708572 else ifeq ($(KBUILD_HOST),solaris)
    85718573  TEMPLATE_VBoxBldProg_TOOL              = GXX3PLAIN
    8572   TEMPLATE_VBoxBldProg_LIBS              = rt
     8574  TEMPLATE_VBoxBldProg_LATE_LIBS         = rt
    85738575 else
    85748576  $(warning Warning: VBOX Build: Target $(KBUILD_HOST) is not officially supported!)
     
    85938595TEMPLATE_VBoxAdvBldProg_LDFLAGS.darwin.arm64 = \
    85948596        $(TEMPLATE_VBoxBldProg_LDFLAGS.darwin.arm64) -framework IOKit
    8595 TEMPLATE_VBoxAdvBldProg_LIBS    = \
     8597TEMPLATE_VBoxAdvBldProg_LATE_LIBS    = \
    85968598        $(PATH_STAGE_LIB)/RuntimeBldProg$(VBOX_HOSTSUFF_LIB) \
    8597         $(TEMPLATE_VBoxBldProg_LIBS)
    8598 TEMPLATE_VBoxAdvBldProg_LIBS.darwin = \
    8599         $(TEMPLATE_VBoxAdvBldProg_LIBS) \
     8599        $(TEMPLATE_VBoxBldProg_LATE_LIBS)
     8600TEMPLATE_VBoxAdvBldProg_LATE_LIBS.darwin = \
     8601        $(TEMPLATE_VBoxAdvBldProg_LATE_LIBS) \
    86008602        iconv \
    8601         $(TEMPLATE_VBoxBldProg_LIBS.darwin)
    8602 TEMPLATE_VBoxAdvBldProg_LIBS.freebsd = \
    8603         $(TEMPLATE_VBoxAdvBldProg_LIBS) \
     8603        $(TEMPLATE_VBoxBldProg_LATE_LIBS.darwin)
     8604TEMPLATE_VBoxAdvBldProg_LATE_LIBS.freebsd = \
     8605        $(TEMPLATE_VBoxAdvBldProg_LATE_LIBS) \
    86048606        iconv \
    86058607        rt \
    8606         $(TEMPLATE_VBoxBldProg_LIBS.freebsd)
    8607 TEMPLATE_VBoxAdvBldProg_LIBS.linux = \
    8608         $(TEMPLATE_VBoxAdvBldProg_LIBS) \
    8609         $(TEMPLATE_VBoxBldProg_LIBS.linux)
    8610 TEMPLATE_VBoxAdvBldProg_LIBS.solaris = \
    8611         $(TEMPLATE_VBoxAdvBldProg_LIBS) \
     8608        $(TEMPLATE_VBoxBldProg_LATE_LIBS.freebsd)
     8609TEMPLATE_VBoxAdvBldProg_LATE_LIBS.linux = \
     8610        $(TEMPLATE_VBoxAdvBldProg_LATE_LIBS) \
     8611        $(TEMPLATE_VBoxBldProg_LATE_LIBS.linux)
     8612TEMPLATE_VBoxAdvBldProg_LATE_LIBS.solaris = \
     8613        $(TEMPLATE_VBoxAdvBldProg_LATE_LIBS) \
    86128614        contract \
    86138615        kstat \
     
    86158617        socket \
    86168618        nsl \
    8617         $(TEMPLATE_VBoxBldProg_LIBS.solaris)
     8619        $(TEMPLATE_VBoxBldProg_LATE_LIBS.solaris)
    86188620
    86198621
     
    86838685
    86848686 if defined(VBOX_WITH_MORE_NT4_COMPAT_BINARIES) && "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.x86"
    8685   TEMPLATE_VBoxGuestR3ExeBase_LIBS.win.x86 = $(NO_SUCH_VARIABLE)# Ditch RuntimeR3VccTricks2
     8687  TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS.win.x86 = $(NO_SUCH_VARIABLE)# Ditch RuntimeR3VccTricks2
    86868688 endif
    86878689
     
    87168718        RT_NEED_NEW_AND_DELETE
    87178719ifeq ($(KBUILD_TARGET),linux) # As few libs as possible on linux.
    8718  TEMPLATE_VBoxGuestR3ExeBase_LIBS    = pthread rt m dl
     8720 TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = pthread rt m dl
    87198721else if1of ($(KBUILD_TARGET), darwin freebsd openbsd)
    8720  TEMPLATE_VBoxGuestR3ExeBase_LIBS     = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) iconv
     8722 TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LATE_LIBS) iconv
    87218723else ifeq ($(KBUILD_TARGET),solaris)
    8722  TEMPLATE_VBoxGuestR3ExeBase_LIBS     = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LIBS) nsl
     8724 TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS = $(TEMPLATE_$(TEMPLATE_VBoxGuestR3ExeBase_EXTENDS)_LATE_LIBS) nsl
    87238725endif
    87248726
     
    87508752  TEMPLATE_VBoxGuestR3Exe_LDFLAGS.win.x86 = $(TEMPLATE_VBoxGuestR3ExeBase_LDFLAGS.win.x86) -Include:_vcc100_kernel32_fakes_asm
    87518753 endif
    8752  TEMPLATE_VBoxGuestR3Exe_LIBS.x86      = \
     8754 TEMPLATE_VBoxGuestR3Exe_LATE_LIBS.x86 = \
    87538755        $(VBOX_LIB_IPRT_GUEST_R3_X86) \
    87548756        $(VBOX_LIB_VBGL_R3_X86) \
    87558757        $(VBOX_LIB_IPRT_GUEST_R3_X86) \
    8756         $(TEMPLATE_VBoxGuestR3ExeBase_LIBS.x86)
    8757  TEMPLATE_VBoxGuestR3Exe_LIBS.$(KBUILD_TARGET_ARCH) = \
     8758        $(TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS.x86)
     8759 TEMPLATE_VBoxGuestR3Exe_LATE_LIBS.$(KBUILD_TARGET_ARCH) = \
    87588760        $(VBOX_LIB_IPRT_GUEST_R3) \
    87598761        $(VBOX_LIB_VBGL_R3) \
    87608762        $(VBOX_LIB_IPRT_GUEST_R3) \
    8761         $(TEMPLATE_VBoxGuestR3ExeBase_LIBS.$(KBUILD_TARGET_ARCH))
     8763        $(TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS.$(KBUILD_TARGET_ARCH))
    87628764else
    87638765 TEMPLATE_VBoxGuestR3Exe_CFLAGS        = $(TEMPLATE_VBoxGuestR3ExeBase_CFLAGS) $(VBOX_GCC_WERR)
    87648766 TEMPLATE_VBoxGuestR3Exe_CXXFLAGS      = $(TEMPLATE_VBoxGuestR3ExeBase_CXXFLAGS) $(VBOX_GCC_WERR)
    8765  TEMPLATE_VBoxGuestR3Exe_LIBS          = \
     8767 TEMPLATE_VBoxGuestR3Exe_LATE_LIBS     = \
    87668768        $(VBOX_LIB_IPRT_GUEST_R3) \
    87678769        $(VBOX_LIB_VBGL_R3) \
    87688770        $(VBOX_LIB_IPRT_GUEST_R3) \
    8769         $(TEMPLATE_VBoxGuestR3ExeBase_LIBS)
     8771        $(TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS)
    87708772 ifeq ($(KBUILD_TARGET),solaris)
    8771   TEMPLATE_VBoxGuestR3Exe_LIBS        += contract
     8773  TEMPLATE_VBoxGuestR3Exe_LATE_LIBS   += contract
    87728774 endif
    87738775endif
     
    87818783ifeq ($(KBUILD_TARGET),win)
    87828784 ifeq ($(KBUILD_TYPE),asan)
    8783   TEMPLATE_VBoxGuestR3DllNonPedantic_LIBS.x86   = $(patsubst %clang_rt.asan-i386.lib, %clang_rt.asan_dll_thunk-i386.lib, $(filter-out %clang_rt.asan_cxx-i386.lib,$(TEMPLATE_VBoxGuestR3ExeBase_LIBS.x86)))
    8784   TEMPLATE_VBoxGuestR3DllNonPedantic_LIBS.amd64 = $(patsubst %clang_rt.asan-x86_64.lib, %clang_rt.asan_dll_thunk-x86_64.lib, $(filter-out %clang_rt.asan_cxx-x86_64.lib,$(TEMPLATE_VBoxGuestR3ExeBase_LIBS.amd64)))
     8785  TEMPLATE_VBoxGuestR3DllNonPedantic_LATE_LIBS.x86   = $(patsubst %clang_rt.asan-i386.lib, %clang_rt.asan_dll_thunk-i386.lib, $(filter-out %clang_rt.asan_cxx-i386.lib,$(TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS.x86)))
     8786  TEMPLATE_VBoxGuestR3DllNonPedantic_LATE_LIBS.amd64 = $(patsubst %clang_rt.asan-x86_64.lib, %clang_rt.asan_dll_thunk-x86_64.lib, $(filter-out %clang_rt.asan_cxx-x86_64.lib,$(TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS.amd64)))
    87858787 endif
    87868788else ifn1of ($(KBUILD_TARGET), darwin os2 win)
     
    87918793endif
    87928794ifeq ($(KBUILD_TARGET),win)
    8793  TEMPLATE_VBoxGuestR3DllNonPedantic_LIBS.x86 = \
     8795 TEMPLATE_VBoxGuestR3DllNonPedantic_LATE_LIBS.x86 = \
    87948796        $(VBOX_LIB_IPRT_GUEST_R3_SHARED_X86) \
    87958797        $(VBOX_LIB_VBGL_R3_SHARED_X86) \
    87968798        $(VBOX_LIB_IPRT_GUEST_R3_SHARED_X86) \
    8797         $(TEMPLATE_VBoxGuestR3ExeBase_LIBS.x86)
    8798  TEMPLATE_VBoxGuestR3DllNonPedantic_LIBS.$(KBUILD_TARGET_ARCH) = \
     8799        $(TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS.x86)
     8800 TEMPLATE_VBoxGuestR3DllNonPedantic_LATE_LIBS.$(KBUILD_TARGET_ARCH) = \
    87998801        $(VBOX_LIB_IPRT_GUEST_R3_SHARED) \
    88008802        $(VBOX_LIB_VBGL_R3_SHARED) \
    88018803        $(VBOX_LIB_IPRT_GUEST_R3_SHARED) \
    8802         $(TEMPLATE_VBoxGuestR3ExeBase_LIBS.$(KBUILD_TARGET_ARCH))
     8804        $(TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS.$(KBUILD_TARGET_ARCH))
    88038805else
    8804  TEMPLATE_VBoxGuestR3DllNonPedantic_LIBS = \
     8806 TEMPLATE_VBoxGuestR3DllNonPedantic_LATE_LIBS = \
    88058807        $(VBOX_LIB_IPRT_GUEST_R3_SHARED) \
    88068808        $(VBOX_LIB_VBGL_R3_SHARED) \
    88078809        $(VBOX_LIB_IPRT_GUEST_R3_SHARED) \
    8808         $(TEMPLATE_VBoxGuestR3ExeBase_LIBS)
     8810        $(TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS)
    88098811endif
    88108812
     
    88718873 TEMPLATE_NewerVccVBoxGuestR3Dll_CFLAGS          = $(TEMPLATE_NewerVccVBoxGuestR3DllNonPedantic_CXXFLAGS)
    88728874 ifndef VBOX_WITH_NOCRT_STATIC
    8873   # Hack begin
    8874   # Does not work when building x86 for amd64 build (No rule to make target /oldnames.lib).
    8875   # TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.x86        = \
    8876   #     $(subst $(PATH_TOOL_$(TEMPLATE_VBoxGuestR3DllNonPedantic_TOOL.win.x86)_LIB),$(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.x86)_LIB), $(TEMPLATE_VBoxGuestR3DllNonPedantic_LIBS.x86))
    8877   # TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.amd64      = \
    8878   #     $(subst $(PATH_TOOL_$(TEMPLATE_VBoxGuestR3DllNonPedantic_TOOL.win.amd64)_LIB),$(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.amd64)_LIB), $(TEMPLATE_VBoxGuestR3DllNonPedantic_LIBS.amd64))
    8879   # Directly assign TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.
    8880   TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.x86           = \
     8875  TEMPLATE_NewerVccVBoxGuestR3Dll_LATE_LIBS.x86  = \
    88818876        $(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.x86)_LIB)/oldnames.lib \
    88828877        $(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.x86)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
    88838878        $(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.x86)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib
    8884   TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.amd64        = \
     8879  TEMPLATE_NewerVccVBoxGuestR3Dll_LATE_LIBS.amd64 = \
    88858880        $(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.amd64)_LIB)/oldnames.lib \
    88868881        $(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.amd64)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
    88878882        $(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.amd64)_LIB)/libcpmt$(VBOX_VCC_CRT_TYPE).lib
    8888   TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.arm64        = \
     8883  TEMPLATE_NewerVccVBoxGuestR3Dll_LATE_LIBS.arm64 = \
    88898884        $(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.arm64)_LIB)/oldnames.lib \
    88908885        $(PATH_TOOL_$(TEMPLATE_NewerVccVBoxGuestR3Dll_TOOL.win.arm64)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
     
    88938888 # Hack end
    88948889endif
    8895 TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS             = \
    8896         $(TEMPLATE_VBoxGuestR3ExeBase_LIBS)
     8890TEMPLATE_NewerVccVBoxGuestR3Dll_LATE_LIBS        = $(TEMPLATE_VBoxGuestR3ExeBase_LATE_LIBS) # Not sure why this is here...
    88978891
    88988892#
     
    89438937        RT_WITHOUT_NOCRT_WRAPPERS
    89448938endif
    8945 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS            = \
     8939TEMPLATE_VBoxGuestR3NoCrtExe_LATE_LIBS       = \
    89468940        $(PATH_STAGE_LIB)/RuntimeR3NoCrt$(VBOX_SUFF_LIB)
    89478941ifeq ($(KBUILD_TARGET),win)
     8942 TEMPLATE_VBoxGuestR3NoCrtExe_LATE_LIBS.x86  = $(NO_SUCH_VARIABLE)
     8943 TEMPLATE_VBoxGuestR3NoCrtExe_LATE_LIBS.amd64= $(NO_SUCH_VARIABLE)
     8944 TEMPLATE_VBoxGuestR3NoCrtExe_LATE_LIBS.win  = $(NO_SUCH_VARIABLE)
     8945 TEMPLATE_VBoxGuestR3NoCrtExe_LATE_LIBS.win.x86 = \
     8946        $(PATH_TOOL_$(TEMPLATE_VBoxGuestR3NoCrtExe_TOOL.win.x86)_LIB)/chkstk.obj
     8947 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS           = $(NO_SUCH_VARIABLE) # These four aren't necessary, just being careful.
    89488948 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.x86       = $(NO_SUCH_VARIABLE)
    89498949 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.amd64     = $(NO_SUCH_VARIABLE)
    89508950 TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.win       = $(NO_SUCH_VARIABLE)
    8951  TEMPLATE_VBoxGuestR3NoCrtExe_LIBS.win.x86   = \
    8952         $(PATH_TOOL_$(TEMPLATE_VBoxGuestR3NoCrtExe_TOOL.win.x86)_LIB)/chkstk.obj
    89538951 TEMPLATE_VBoxGuestR3NoCrtExe_LDFLAGS        = $(filter-out $(VBOX_VCC_LD_GUARD_CF) $(VBOX_VCC_SANITIZER_LDFLAGS), $(TEMPLATE_VBoxGuestR3Exe_LDFLAGS))
    89548952 TEMPLATE_VBoxGuestR3NoCrtExe_LDFLAGS.win.x86 = $(filter-out -Include%, $(TEMPLATE_VBoxGuestR3Exe_LDFLAGS.win.x86))
     
    89888986 TEMPLATE_VBoxGuestR3XFree86Mod_LDFLAGS.amd64          := -m elf_x86_64
    89898987endif
    8990 TEMPLATE_VBoxGuestR3XFree86Mod_LIBS                     = $(VBOX_LIB_VBGL_R3_XFREE86)
    8991 TEMPLATE_VBoxGuestR3XFree86Mod_LIBS.$(KBUILD_TYPE)      = $(NO_SUCH_VARIABLE)
    8992 TEMPLATE_VBoxGuestR3XFree86Mod_LIBS.$(KBUILD_TARGET)    = $(NO_SUCH_VARIABLE)
     8988TEMPLATE_VBoxGuestR3XFree86Mod_LATE_LIBS                   = $(VBOX_LIB_VBGL_R3_XFREE86)
     8989TEMPLATE_VBoxGuestR3XFree86Mod_LATE_LIBS.$(KBUILD_TYPE)    = $(NO_SUCH_VARIABLE)
     8990TEMPLATE_VBoxGuestR3XFree86Mod_LATE_LIBS.$(KBUILD_TARGET)  = $(NO_SUCH_VARIABLE)
     8991TEMPLATE_VBoxGuestR3XFree86Mod_LIBS                        = $(NO_SUCH_VARIABLE)  # These three aren't necessary, just being careful.
     8992TEMPLATE_VBoxGuestR3XFree86Mod_LIBS.$(KBUILD_TYPE)         = $(NO_SUCH_VARIABLE)
     8993TEMPLATE_VBoxGuestR3XFree86Mod_LIBS.$(KBUILD_TARGET)       = $(NO_SUCH_VARIABLE)
    89938994
    89948995
     
    89999000TEMPLATE_VBoxGuestR3XFree86Lib_EXTENDS := VBoxGuestR3XFree86Mod
    90009001TEMPLATE_VBoxGuestR3XFree86Lib_INST     = $(INST_ADDITIONS_LIB)
    9001 TEMPLATE_VBoxGuestR3XFree86Lib_LIBS     = $(INST_ADDITIONS_LIB)
    90029002
    90039003
     
    90189018endif
    90199019TEMPLATE_VBoxGuestR3XOrgMod_LDFLAGS  = $(filter-out $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_SANITIZER_LDFLAGS),$(TEMPLATE_VBoxGuestR3DllNonPedantic_LDFLAGS))
    9020 TEMPLATE_VBoxGuestR3XOrgMod_LIBS                    = $(VBOX_LIB_VBGL_R3_XORG)
    9021 TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TYPE)     = $(NO_SUCH_VARIABLE)
    9022 TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TARGET)   = $(NO_SUCH_VARIABLE)
    9023 TEMPLATE_VBoxGuestR3XOrgMod_LIBS.freebsd           += iconv
     9020TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS                  = $(VBOX_LIB_VBGL_R3_XORG)
     9021TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TYPE)   = $(NO_SUCH_VARIABLE)
     9022TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.$(KBUILD_TARGET) = $(NO_SUCH_VARIABLE)
     9023TEMPLATE_VBoxGuestR3XOrgMod_LATE_LIBS.freebsd          = iconv
     9024TEMPLATE_VBoxGuestR3XOrgMod_LIBS                       = $(NO_SUCH_VARIABLE) # These three aren't necessary, just being careful.
     9025TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TYPE)        = $(NO_SUCH_VARIABLE)
     9026TEMPLATE_VBoxGuestR3XOrgMod_LIBS.$(KBUILD_TARGET)      = $(NO_SUCH_VARIABLE)
    90249027
    90259028
  • trunk/src/VBox/Additions/3D/Config.kmk

    r106061 r106683  
    126126        $(VBOX_PATH_3D)/win/VBoxWddmUmHlp
    127127ifdef VBOX_WITH_NOCRT_STATIC # Only the softfloat libs are added here as mesa includes a softfloat.h and we wish for no conflicts.
    128  TEMPLATE_VBoxMesa3DGuestR3Dll_LIBS.x86 = \
    129         $(filter-out $(VBOX_LIB_VBGL_R3_SHARED_X86),$(TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.x86)) \
     128 TEMPLATE_VBoxMesa3DGuestR3Dll_LATE_LIBS.x86 = \
     129        $(filter-out $(VBOX_LIB_VBGL_R3_SHARED_X86),$(TEMPLATE_NewerVccVBoxGuestR3Dll_LATE_LIBS.x86)) \
    130130        $(VBOX_LIB_IPRT_GUEST_R3_SHARED_X86) \
    131131        $(SDK_VBoxSoftFloatGuestR3Shared_LIBS.x86)
    132  TEMPLATE_VBoxMesa3DGuestR3Dll_LIBS.$(KBUILD_TARGET_ARCH) = \
    133         $(filter-out $(VBOX_LIB_VBGL_R3_SHARED),$(TEMPLATE_NewerVccVBoxGuestR3Dll_LIBS.$(KBUILD_TARGET))) \
     132 TEMPLATE_VBoxMesa3DGuestR3Dll_LATE_LIBS.$(KBUILD_TARGET_ARCH) = \
     133        $(filter-out $(VBOX_LIB_VBGL_R3_SHARED),$(TEMPLATE_NewerVccVBoxGuestR3Dll_LATE_LIBS.$(KBUILD_TARGET))) \
    134134        $(VBOX_LIB_IPRT_GUEST_R3_SHARED) \
    135135        $(SDK_VBoxSoftFloatGuestR3Shared_LIBS.$(KBUILD_TARGET_ARCH))
  • trunk/src/VBox/Additions/os2/Config.kmk

    r106061 r106683  
    8383        $(PATH_DDKVIDEO)/rel/os2c/include/base/os2/16bit
    8484
    85 TEMPLATE_VBoxOs2Vac308_LIBS = \
     85TEMPLATE_VBoxOs2Vac308_LATE_LIBS = \
    8686        $(PATH_DDKVIDEO)/rel/os2c/lib/os2/os2386.lib \
    8787        $(PATH_TOOL_VAC308_LIB)/cppon30.lib
  • trunk/src/VBox/Devices/EFI/Firmware/Config.kmk

    r106061 r106683  
    160160        $(VBOX_PATH_EFI_FIRMWARE)/MdePkg/Include/AArch64
    161161
    162 TEMPLATE_VBoxEfiBldProg_LIBS = \
     162TEMPLATE_VBoxEfiBldProg_LATE_LIBS = \
    163163        $(VBOX_PATH_STAGE_EFI_BLDPROGS)/EfiBldCommonLib$(VBOX_SUFF_LIB) \
    164         $(TEMPLATE_VBoxBldProg_LIBS)
     164        $(TEMPLATE_VBoxBldProg_LATE_LIBS)
    165165ifn1of ($(KBUILD_HOST), win) # This stuff isn't up to our standard at all! :/
    166166 TEMPLATE_VBoxEfiBldProg_CFLAGS = $(filter-out -pedantic,$(TEMPLATE_VBoxBldProg_CFLAGS)) \
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk

    r106647 r106683  
    276276  #
    277277  TEMPLATE_VBoxNetFltR3 = Template for NetFltInstall, NetFltUninstall, NetAdpInstall, NetAdpUninstall, ++
    278   TEMPLATE_VBoxNetFltR3_EXTENDS = VBoxR3Exe
    279   TEMPLATE_VBoxNetFltR3_SDKS    = $(TEMPLATE_VBoxR3Exe_SDKS) ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBoxNtDll VBoxWinNewDevLib
    280   TEMPLATE_VBoxNetFltR3_LIBS    = $(TEMPLATE_VBoxR3Exe_LIBS) \
     278  TEMPLATE_VBoxNetFltR3_EXTENDS   = VBoxR3Exe
     279  TEMPLATE_VBoxNetFltR3_SDKS      = $(TEMPLATE_VBoxR3Exe_SDKS) ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBoxNtDll VBoxWinNewDevLib
     280  TEMPLATE_VBoxNetFltR3_LATE_LIBS = $(TEMPLATE_VBoxR3Exe_LATE_LIBS) \
    281281        $(WinNetConfigExe_1_TARGET) \
    282282        $(PATH_STAGE_LIB)/VBoxDrvCfgExe$(VBOX_SUFF_LIB) \
  • trunk/src/VBox/HostDrivers/VBoxUSB/win/Makefile.kmk

    r106647 r106683  
    130130#
    131131TEMPLATE_VBoxUsbR3 = Template for USBInstalls, USBUninstall and USBTest
    132 TEMPLATE_VBoxUsbR3_EXTENDS  = VBoxR3Exe
    133 TEMPLATE_VBoxUsbR3_SDKS     = $(TEMPLATE_VBoxR3Exe_SDKS) ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBoxWinNewDevLib
    134 TEMPLATE_VBoxUsbR3_CXXFLAGS = $(TEMPLATE_VBoxR3Exe_CXXFLAGS) -Gz
    135 TEMPLATE_VBoxUsbR3_CFLAGS   = $(TEMPLATE_VBoxR3Exe_CFLAGS) -Gz
    136 TEMPLATE_VBoxUsbR3_LIBS     = $(TEMPLATE_VBoxR3Exe_LIBS) \
     132TEMPLATE_VBoxUsbR3_EXTENDS   = VBoxR3Exe
     133TEMPLATE_VBoxUsbR3_SDKS      = $(TEMPLATE_VBoxR3Exe_SDKS) ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBoxWinNewDevLib
     134TEMPLATE_VBoxUsbR3_CXXFLAGS  = $(TEMPLATE_VBoxR3Exe_CXXFLAGS) -Gz
     135TEMPLATE_VBoxUsbR3_CFLAGS    = $(TEMPLATE_VBoxR3Exe_CFLAGS) -Gz
     136TEMPLATE_VBoxUsbR3_LATE_LIBS = $(TEMPLATE_VBoxR3Exe_LATE_LIBS) \
    137137        $(PATH_STAGE_LIB)/VBoxDrvCfgExe$(VBOX_SUFF_LIB) \
    138138        $(LIB_RUNTIME)
  • trunk/src/VBox/Runtime/Makefile.kmk

    r106635 r106683  
    30543054 TEMPLATE_VBoxR3RuntimeDllItself = xx
    30553055 TEMPLATE_VBoxR3RuntimeDllItself_EXTENDS = VBoxR3RuntimeDll
    3056  TEMPLATE_VBoxR3RuntimeDllItself_LIBS.win.x86 = \
    3057         $(filter-out $(PATH_STAGE_LIB)/RuntimeR3VccTricks%, $(TEMPLATE_VBoxR3RuntimeDll_LIBS.win.x86))
     3056 TEMPLATE_VBoxR3RuntimeDllItself_LATE_LIBS.win.x86 = \
     3057        $(filter-out $(PATH_STAGE_LIB)/RuntimeR3VccTricks%, $(TEMPLATE_VBoxR3RuntimeDll_LATE_LIBS.win.x86))
    30583058 TEMPLATE_VBoxR3RuntimeDllItself_DEFS   += IN_RING3 VCC_FAKES_TARGET_$(VBOX_VCC_TOOL_STEM) VCC_FAKES_TARGET=$(substr $(VBOX_VCC_TOOL_STEM),-3)
    30593059 TEMPLATE_VBoxR3RuntimeDllItself_SOURCES = \
  • trunk/src/VBox/Storage/testcase/Makefile.kmk

    r106061 r106683  
    163163  if1of ($(KBUILD_TARGET), os2 win)
    164164   vbox-img_LIBS += \
    165         $(SDK_VBoxLzf_STATIC_LIBS) \
     165        $(SDK_VBoxLzfStatic_LIBS) \
    166166        $(SDK_VBoxZlibStatic_LIBS)
    167167  else
     
    213213 if1of ($(KBUILD_TARGET), os2 win)
    214214  vdkeystoremgr_LIBS += \
    215         $(SDK_VBoxLzf_STATIC_LIBS) \
     215        $(SDK_VBoxLzfStatic_LIBS) \
    216216        $(SDK_VBoxZlibStatic_LIBS)
    217217 else
  • trunk/src/VBox/ValidationKit/Config.kmk

    r106061 r106683  
    5353#
    5454TEMPLATE_VBoxValidationKitR3Base = VBox Validation Kit ring-3 program base, both guest and host.
    55 TEMPLATE_VBoxValidationKitR3Base_EXTENDS = VBoxR3Static
     55TEMPLATE_VBoxValidationKitR3Base_EXTENDS          = VBoxR3Static
    5656ifeq ($(KBUILD_TARGET),win)
    5757 TEMPLATE_VBoxValidationKitR3Base_LDFLAGS         = $(filter-out -IntegrityCheck, $(TEMPLATE_VBoxR3Static_LDFLAGS))
     
    6262 TEMPLATE_VBoxValidationKitR3Base_LDFLAGS         = $(filter-out -static, $(TEMPLATE_VBoxR3Static_LDFLAGS))
    6363endif
    64 TEMPLATE_VBoxValidationKitR3Base_DEFS = $(filter-out VBOX_WITH_DTRACE,$(TEMPLATE_VBoxR3Static_DEFS))
    65 TEMPLATE_VBoxValidationKitR3Base_LIBS = $(TEMPLATE_VBoxR3Static_LIBS)
     64TEMPLATE_VBoxValidationKitR3Base_DEFS             = $(filter-out VBOX_WITH_DTRACE,$(TEMPLATE_VBoxR3Static_DEFS))
     65TEMPLATE_VBoxValidationKitR3Base_LATE_LIBS        = $(TEMPLATE_VBoxR3Static_LATE_LIBS)
    6666if1of ($(KBUILD_TARGET), linux)
    6767 if $(VBOX_GCC_VERSION_CXX) < 40800
    68   TEMPLATE_VBoxValidationKitR3Base_LIBS += supc++
    69   TEMPLATE_VBoxValidationKitR3Base_LDTOOL = $(subst GXX,GCC,$(TEMPLATE_VBoxR3Static_TOOL))
    70  endif
    71 endif
    72 TEMPLATE_VBoxValidationKitR3Base_LDFLAGS.darwin = $(TEMPLATE_VBoxR3Static_LDFLAGS.darwin) -framework IOKit
     68  TEMPLATE_VBoxValidationKitR3Base_LATE_LIBS    += supc++
     69  TEMPLATE_VBoxValidationKitR3Base_LDTOOL         = $(subst GXX,GCC,$(TEMPLATE_VBoxR3Static_TOOL))
     70 endif
     71endif
     72TEMPLATE_VBoxValidationKitR3Base_LDFLAGS.darwin   = $(TEMPLATE_VBoxR3Static_LDFLAGS.darwin) -framework IOKit
    7373
    7474
     
    8383TEMPLATE_VBoxValidationKitR3_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBoxNtDll
    8484TEMPLATE_VBoxValidationKitR3_DEFS = IN_RT_R3
    85 TEMPLATE_VBoxValidationKitR3_LIBS.darwin = iconv
    86 TEMPLATE_VBoxValidationKitR3_LIBS.freebsd = iconv
    87 TEMPLATE_VBoxValidationKitR3_LIBS = \
     85TEMPLATE_VBoxValidationKitR3_LATE_LIBS.darwin = iconv
     86TEMPLATE_VBoxValidationKitR3_LATE_LIBS.freebsd = iconv
     87TEMPLATE_VBoxValidationKitR3_LATE_LIBS = \
    8888        $(PATH_STAGE_LIB)/RuntimeR3$(VBOX_SUFF_LIB)
    8989ifeq ($(KBUILD_TARGET),solaris)
    90  TEMPLATE_VBoxValidationKitR3_LIBS += \
     90 TEMPLATE_VBoxValidationKitR3_LATE_LIBS += \
    9191        kstat \
    9292        nsl \
    9393        contract
    9494 if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
    95   TEMPLATE_VBoxValidationKitR3_LIBS += \
     95  TEMPLATE_VBoxValidationKitR3_LATE_LIBS += \
    9696        smbios
    9797 endif
    9898endif
    9999ifneq ($(KBUILD_TARGET),win)
    100  TEMPLATE_VBoxValidationKitR3_LIBS += \
     100 TEMPLATE_VBoxValidationKitR3_LATE_LIBS += \
    101101        $(SDK_VBoxZlib_LIBS)
    102102endif
     
    104104# Make VCC100 output work on NT3.x, NT4, W2K, XP and W2K3.
    105105ifndef VBOX_WITH_NOCRT_STATIC
    106  TEMPLATE_VBoxValidationKitR3_LIBS.win.x86 = \
     106 TEMPLATE_VBoxValidationKitR3_LATE_LIBS.win.x86 = \
    107107        $(PATH_TOOL_$(TEMPLATE_VBoxValidationKitR3_TOOL.win.x86)_LIB)/oldnames.lib \
    108108        $(PATH_TOOL_$(TEMPLATE_VBoxValidationKitR3_TOOL.win.x86)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
     
    147147TEMPLATE_VBoxValidationKitR3SupDrv_EXTENDS_BY = appending
    148148TEMPLATE_VBoxValidationKitR3SupDrv_DEFS = IN_SUP_R3
    149 TEMPLATE_VBoxValidationKitR3SupDrv_LIBS = \
     149TEMPLATE_VBoxValidationKitR3SupDrv_LATE_LIBS = \
    150150        $(PATH_STAGE_LIB)/SUPR3Static$(VBOX_SUFF_LIB) \
    151151        $(PATH_STAGE_LIB)/RuntimeR3$(VBOX_SUFF_LIB)
     
    164164TEMPLATE_VBoxValidationKitR0_INST = $(INST_VALIDATIONKIT)$(KBUILD_TARGET)/$(KBUILD_TARGET_ARCH)/
    165165TEMPLATE_VBoxValidationKitR0_DEFS = IN_RT_R0
    166 TEMPLATE_VBoxValidationKitR0_LIBS = \
     166TEMPLATE_VBoxValidationKitR0_LATE_LIBS = \
    167167        $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
    168168        $(VBOX_LIB_SUPR0)
  • trunk/src/VBox/ValidationKit/bootsectors/Config.kmk

    r106560 r106683  
    789789        $(eval .PRECIOUS: $(outbase).map) # ugly hack!
    790790
    791 TEMPLATE_VBoxBS3KitImg_LIBS = \
     791TEMPLATE_VBoxBS3KitImg_LATE_LIBS = \
    792792        $(PATH_OBJ)/bs3kit-common-16/bs3kit-common-16.lib \
    793793        $(PATH_OBJ)/bs3kit-common-32/bs3kit-common-32.lib \
     
    895895        disable 1014, 1080
    896896
    897 TEMPLATE_VBoxBS3KitHighImg_LIBS = \
     897TEMPLATE_VBoxBS3KitHighImg_LATE_LIBS = \
    898898        $(PATH_OBJ)/bs3kit-common-16/bs3kit-common-16-implib.lib \
    899899        $(PATH_OBJ)/bs3kit-common-32/bs3kit-common-32-implib.lib \
  • trunk/src/libs/openssl-3.1.7/Config.kmk

    r106538 r106683  
    376376 TEMPLATE_LibCryptoTstExe_CFLAGS = $(filter-out $(VBOX_GCC_PEDANTIC_C), $(TEMPLATE_VBoxR3TstExe_CFLAGS)) $(VBOX_GCC_NON_PEDANTIC_C)
    377377endif
    378 TEMPLATE_LibCryptoTstExe_LIBS    = $(PATH_STAGE_LIB)/VBox-libcrypto$(VBOX_SUFF_LIB) $(TEMPLATE_VBoxR3TstExe_LIBS)
     378TEMPLATE_LibCryptoTstExe_LATE_LIBS = $(PATH_STAGE_LIB)/VBox-libcrypto$(VBOX_SUFF_LIB) $(TEMPLATE_VBoxR3TstExe_LATE_LIBS)
    379379
    380380
  • trunk/src/libs/softfloat-3e/testfloat/Makefile.kmk

    r106061 r106683  
    6262#
    6363TEMPLATE_VBoxTestFloatExe = Template for building SoftFloat-3e programs.
    64 TEMPLATE_VBoxTestFloatExe_EXTENDS = VBoxTestFloat
    65 TEMPLATE_VBoxTestFloatExe_INST    = $(INST_TESTCASE)
    66 TEMPLATE_VBoxTestFloatExe_LIBS    = \
     64TEMPLATE_VBoxTestFloatExe_EXTENDS   = VBoxTestFloat
     65TEMPLATE_VBoxTestFloatExe_INST      = $(INST_TESTCASE)
     66TEMPLATE_VBoxTestFloatExe_LATE_LIBS = \
    6767        $(VBox-TestFloat_1_TARGET) \
    68         $(TEMPLATE_VBoxTestFloat_LIBS)
     68        $(TEMPLATE_VBoxTestFloat_LATE_LIBS)
    6969
    7070# -wd4098: testfloat.c(438): warning C4098: 'subjFunction_az_extF80_rx': 'void' function returning a value
  • trunk/src/libs/xpcom18a4/Config.kmk

    r106535 r106683  
    165165
    166166# When using IPRT in NSRP or/and using IPRT for logging, link with IPRT.
    167 TEMPLATE_XPComDll_LIBS               += $(LIB_RUNTIME)
     167TEMPLATE_XPComDll_LATE_LIBS          += $(LIB_RUNTIME)
    168168
    169169
     
    182182        $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
    183183        .
    184 TEMPLATE_XPComExe_LIBS             = \
     184TEMPLATE_XPComExe_LATE_LIBS        = \
    185185        $(VBox-xpcom-ipcshared_1_TARGET) \
    186186        $(VBoxXPCOM_1_TARGET) \
    187         $(TEMPLATE_XPComDll_LIBS)
    188 TEMPLATE_XPComExe_LIBS.freebsd    = $(LIB_PTHREAD)
    189 TEMPLATE_XPComExe_LIBS.linux       = dl $(LIB_PTHREAD)
     187        $(TEMPLATE_XPComDll_LATE_LIBS)
     188TEMPLATE_XPComExe_LATE_LIBS.freebsd = $(LIB_PTHREAD)
     189TEMPLATE_XPComExe_LATE_LIBS.linux  = dl $(LIB_PTHREAD)
    190190TEMPLATE_XPComExe_LDFLAGS.darwin   = -bind_at_load $(filter-out -current_version -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD),$(TEMPLATE_XPComDll_LDFLAGS.darwin))
    191191
     
    233233TEMPLATE_XPComBldProg_LDFLAGS.darwin     = $(TEMPLATE_VBoxAdvBldProg_LDFLAGS.darwin)      -fpascal-strings -fshort-wchar -fno-rtti -fno-exceptions
    234234TEMPLATE_XPComBldProg_ORDERDEPS          = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $($(hdrinst)_1_TARGET))
    235 TEMPLATE_XPComBldProg_LIBS.darwin        = \
     235TEMPLATE_XPComBldProg_LATE_LIBS.darwin   = \
    236236        iconv
    237237
     
    255255TEMPLATE_XPComDll-x86_BLD_TRG_ARCH     = x86
    256256TEMPLATE_XPComDll-x86_DEFS             = $(TEMPLATE_XPComDll_DEFS) VBOX_IN_32_ON_64_MAIN_API
    257 TEMPLATE_XPComDll-x86_LIBS             = $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86),$(TEMPLATE_XPComDll_LIBS))
     257TEMPLATE_XPComDll-x86_LATE_LIBS        = $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86),$(TEMPLATE_XPComDll_LATE_LIBS))
    258258
    259259
  • trunk/src/libs/xpcom18a4/Makefile.kmk

    r106535 r106683  
    764764 TEMPLATE_XPComIpcDll_DEFS           += IPC_LOGGING
    765765endif
    766 TEMPLATE_XPComIpcDll_LIBS             = $(VBoxXPCOM_1_TARGET) $(TEMPLATE_XPComDll_LIBS)
     766TEMPLATE_XPComIpcDll_LATE_LIBS        = $(VBoxXPCOM_1_TARGET) $(TEMPLATE_XPComDll_LATE_LIBS)
    767767ifneq ($(KBUILD_TARGET),win)
    768768 ifeq ($(filter-out solaris.x86 %.amd64 %.sparc32 %.sparc64,$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)),) ## TODO: cleanup!
     
    780780TEMPLATE_XPComIpcDll-x86_EXTENDS      = XPComIpcDll
    781781TEMPLATE_XPComIpcDll-x86_BLD_TRG_ARCH = x86
    782 TEMPLATE_XPComIpcDll-x86_LIBS         = $(VBoxXPCOM-x86_1_TARGET) $(TEMPLATE_XPComDll-x86_LIBS)
     782TEMPLATE_XPComIpcDll-x86_LATE_LIBS    = $(VBoxXPCOM-x86_1_TARGET) $(TEMPLATE_XPComDll-x86_LATE_LIBS)
    783783
    784784TEMPLATE_XPComIpcExe               = XPCOM IPC executables
     
    836836        $(VBox-xpcom-ipcshared_1_TARGET) \
    837837        $(VBoxXPCOM_1_TARGET) \
    838         $(TEMPLATE_XPComDll_LIBS)
     838        $(TEMPLATE_XPComDll_LATE_LIBS)
    839839
    840840
Note: See TracChangeset for help on using the changeset viewer.

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