Changeset 93254 in vbox
- Timestamp:
- Jan 16, 2022 11:15:57 PM (3 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
Config.kmk (modified) (21 diffs)
-
src/VBox/HostDrivers/Support/Makefile.kmk (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Config.kmk
r93252 r93254 3500 3500 3501 3501 # 3502 # Version dependent Visual C++ stuff. 3503 # 3504 if1of (win, $(KBUILD_TARGET) $(KBUILD_HOST)) 3505 ifn1of ($(VBOX_VCC_TOOL_STEM), VCC100 VCC110 VCC120) 3506 ifndef VBOX_WITHOUT_CONTROL_FLOW_GUARD 3507 VBOX_VCC_CC_GUARD_CF = -guard:cf 3508 VBOX_VCC_LD_GUARD_CF = -Guard:CF 3509 else 3510 VBOX_VCC_CC_GUARD_CF = 3511 VBOX_VCC_LD_GUARD_CF = 3512 endif 3513 VBOX_VCC_LD_HIGH_ENTRYOPY_VA = /HighEntropyVA 3514 else 3515 VBOX_VCC_CC_GUARD_CF = 3516 VBOX_VCC_LD_GUARD_CF = 3517 VBOX_VCC_LD_HIGH_ENTRYOPY_VA = 3518 endif 3519 ifn1of ((VBOX_VCC_TOOL_STEM), VCC100 VCC110 VCC120 VCC140 VCC141) 3520 # 16.7 and later, so not in our linker yet. 3521 ## @todo BUGBUG! Update VCC before 7.0 is released. 3522 #VBOX_VCC_LD_CET_COMPAT = /CetCompat 3523 VBOX_VCC_LD_CET_COMPAT = 3524 else 3525 VBOX_VCC_LD_CET_COMPAT = 3526 endif 3527 endif 3528 3529 # 3502 3530 # Compiler optimization flags. 3503 3531 # … … 5007 5035 TEMPLATE_VBoxR0_RCDEFS = VBOX_SVN_REV=$(VBOX_SVN_REV) VBOX_SVN_REV_MOD_5K=$(expr $(VBOX_SVN_REV) % 50000) 5008 5036 TEMPLATE_VBoxR0_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -GS- -Zc:wchar_t- $(VBOX_VCC_OPT) $(VBOX_VCC_FP) \ 5009 -Gy $(VBOX_VCC_ WARN_ALL) -wd4505 $(VBOX_VCC_WERR)5037 -Gy $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_WARN_ALL) -wd4505 $(VBOX_VCC_WERR) 5010 5038 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC120" 5011 5039 TEMPLATE_VBoxR0_CXXFLAGS += -Gw 5012 5040 endif 5013 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD)5014 TEMPLATE_VBoxR0_CXXFLAGS += -guard:cf5015 endif5016 5041 ifdef VBOX_WITH_MSC_ANALYZE_THIS 5017 5042 TEMPLATE_VBoxR0_CXXFLAGS += /analyze … … 5019 5044 TEMPLATE_VBoxR0_CFLAGS = $(TEMPLATE_VBoxR0_CXXFLAGS) 5020 5045 TEMPLATE_VBoxR0_LDFLAGS = -Ignore:4197 \ 5021 -Driver -Subsystem:NATIVE -Incremental:NO -Align:4096 -MapInfo:Exports -NoD $(VBOX_VCC_LD_WERR) -Release -Debug -Opt:Ref -Opt:Icf \ 5046 -Driver -Subsystem:NATIVE -Incremental:NO -Align:4096 -MapInfo:Exports -NoD $(VBOX_VCC_LD_WERR) \ 5047 -Release -Debug -Opt:Ref -Opt:Icf $(VBOX_VCC_LD_GUARD_CF) \ 5022 5048 -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ 5023 5049 -Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com … … 5028 5054 TEMPLATE_VBoxR0_LDFLAGS += -IntegrityCheck 5029 5055 endif 5030 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD) 5031 TEMPLATE_VBoxR0_LDFLAGS += -Guard:CF 5032 endif 5056 TEMPLATE_VBoxR0_LDFLAGS.win.amd64 = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA) 5033 5057 TEMPLATE_VBoxR0_LIBS = \ 5034 5058 $(PATH_STAGE_LIB)/RuntimeR0Stub$(VBOX_SUFF_LIB) … … 5191 5215 TEMPLATE_VBOXR0DRV_DEFS.win = IPRT_NT_MAP_TO_ZW 5192 5216 TEMPLATE_VBOXR0DRV_CXXFLAGS = -Zi -Zl -GR- -EHs- -GF -Gz -GS- -Zc:wchar_t- $(VBOX_VCC_FP) -Gs4096 $(VBOX_VCC_OPT) \ 5193 -Gy $(VBOX_VCC_ WARN_ALL) $(VBOX_VCC_WERR)5217 -Gy $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_WARN_ALL) $(VBOX_VCC_WERR) 5194 5218 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC120" 5195 5219 TEMPLATE_VBOXR0DRV_CXXFLAGS += -Gw 5196 endif5197 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD)5198 TEMPLATE_VBOXR0DRV_CXXFLAGS += -guard:cf5199 5220 endif 5200 5221 ifdef VBOX_WITH_MSC_ANALYZE_THIS … … 5204 5225 TEMPLATE_VBOXR0DRV_LDFLAGS = -Ignore:4197 \ 5205 5226 -Driver -Subsystem:NATIVE -Incremental:NO -Align:4096 -MapInfo:Exports -NoD -Release -Debug -Opt:Ref -Opt:Icf \ 5227 $(VBOX_VCC_LD_GUARD_CF) \ 5206 5228 -Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ 5207 5229 -Stub:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com … … 5212 5234 TEMPLATE_VBOXR0DRV_LDFLAGS += -IntegrityCheck 5213 5235 endif 5214 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD) 5215 TEMPLATE_VBOXR0DRV_LDFLAGS += -Guard:CF 5216 endif 5236 TEMPLATE_VBOXR0DRV_LDFLAGS.win.amd64 = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA) 5217 5237 TEMPLATE_VBOXR0DRV_ORDERDEPS = $(VBOX_SIGN_DRIVER_ORDERDEPS) 5218 5238 TEMPLATE_VBOXR0DRV_POST_CMDS = $(VBOX_SIGN_DRIVER_CMDS) … … 5754 5774 endif 5755 5775 TEMPLATE_VBOXR3EXE_CXXFLAGS = -Zi -Zl -GR- -EHsc -GF -MD$(VBOX_VCC_CRT_TYPE) -Zc:wchar_t- $(VBOX_VCC_OPT) $(VBOX_VCC_FP) \ 5756 -Gy $(VBOX_VCC_ WARN_ALL) $(VBOX_VCC_WERR)5776 -Gy $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_WARN_ALL) $(VBOX_VCC_WERR) 5757 5777 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC120" 5758 5778 TEMPLATE_VBOXR3EXE_CXXFLAGS += -Gw 5759 endif5760 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD)5761 TEMPLATE_VBOXR3EXE_CXXFLAGS += -guard:cf5762 5779 endif 5763 5780 ifdef VBOX_WITH_MSC_ANALYZE_THIS … … 5777 5794 TEMPLATE_VBOXR3EXE_LDFLAGS = -Ignore:4197 \ 5778 5795 /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware /DynamicBase /NxCompat /Release /Debug /Opt:Ref /Opt:Icf \ 5796 $(VBOX_VCC_LD_GUARD_CF) \ 5779 5797 /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ 5780 5798 /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com \ … … 5791 5809 TEMPLATE_VBOXR3EXE_LDFLAGS += -IntegrityCheck 5792 5810 endif 5793 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD) 5794 TEMPLATE_VBOXR3EXE_LDFLAGS += -Guard:CF 5795 endif 5811 TEMPLATE_VBOXR3EXE_LDFLAGS.win.amd64 = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA) 5796 5812 5797 5813 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC140" … … 6785 6801 TEMPLATE_VBOXMAINEXE_SDKS = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) 6786 6802 endif 6787 TEMPLATE_VBOXMAINEXE_CXXFLAGS = -Zi -Zl -GR -EHsc -GF -MD$(VBOX_VCC_CRT_TYPE) -Zc:wchar_t- $(VBOX_VCC_OPT) $(VBOX_VCC_FP) 6803 TEMPLATE_VBOXMAINEXE_CXXFLAGS = -Zi -Zl -GR -EHsc -GF -MD$(VBOX_VCC_CRT_TYPE) -Zc:wchar_t- \ 6804 $(VBOX_VCC_OPT) $(VBOX_VCC_FP) $(VBOX_VCC_CC_GUARD_CF) 6788 6805 # -wd4625: 'DisplaySourceBitmap' : copy constructor could not be generated because a base class copy constructor is inaccessible 6789 6806 # -wd4626: 'DisplaySourceBitmap' : assignment operator could not be generated because a base class assignment operator is inaccessible … … 6794 6811 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC120" 6795 6812 TEMPLATE_VBOXMAINEXE_CXXFLAGS += -Gw 6796 endif6797 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD)6798 TEMPLATE_VBOXMAINEXE_CXXFLAGS += -guard:cf6799 6813 endif 6800 6814 ifdef VBOX_WITH_MSC_ANALYZE_THIS … … 6814 6828 TEMPLATE_VBOXMAINEXE_LDFLAGS = -Ignore:4197 \ 6815 6829 /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware /DynamicBase /NxCompat /Release /Debug /Opt:Ref /Opt:Icf \ 6830 $(VBOX_VCC_LD_GUARD_CF) \ 6816 6831 /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ 6817 6832 /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com \ … … 6831 6846 TEMPLATE_VBOXMAINEXE_LDFLAGS += -IntegrityCheck 6832 6847 endif 6833 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD)6834 TEMPLATE_VBOXMAINEXE_LDFLAGS += -Guard:CF6835 endif6836 6848 ifdef VBOX_WITH_DTRACE_R3_MAIN 6837 6849 TEMPLATE_VBOXMAINEXE_LDFLAGS += -Merge:VTGPrLc.Data=VTGPrLc.Begin -Merge:VTGPrLc.End=VTGPrLc.Begin -Merge:VTGPrLc.Begin=VTGObj 6838 6850 endif 6851 TEMPLATE_VBOXMAINEXE_LDFLAGS.win.amd64 = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA) 6839 6852 TEMPLATE_VBOXMAINEXE_LIBS = \ 6840 6853 $(LIB_RUNTIME) … … 7438 7451 QT_DLL _CRT_SECURE_NO_DEPRECATE \ 7439 7452 $(QMAKE_PRL_DEFINES) 7440 TEMPLATE_VBOXQTGUIEXE_CXXFLAGS = -nologo -Zm200 -MD -Zi -EHsc -Zc:wchar_t- 7453 TEMPLATE_VBOXQTGUIEXE_CXXFLAGS = -nologo -Zm200 -MD -Zi -EHsc -Zc:wchar_t- $(VBOX_VCC_CC_GUARD_CF) 7441 7454 # -wd4481: nonstandard extension used: override specifier 'override' 7442 7455 # -wd4625: 'QRubberBand' : copy constructor could not be generated because a base class copy constructor is inaccessible … … 7464 7477 TEMPLATE_VBOXQTGUIEXE_CXXFLAGS += -Gw 7465 7478 endif 7466 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD)7467 TEMPLATE_VBOXR0DRV_CXXFLAGS += -guard:cf7468 endif7469 7479 ifdef VBOX_WITH_MSC_ANALYZE_THIS 7470 7480 TEMPLATE_VBOXR0DRV_CXXFLAGS += /analyze … … 7479 7489 TEMPLATE_VBOXQTGUIEXE_LDFLAGS = -Ignore:4197 \ 7480 7490 /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware /DynamicBase /NxCompat /Release /Debug /Opt:Ref /Opt:Icf \ 7491 $(VBOX_VCC_LD_GUARD_CF) \ 7481 7492 /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ 7482 7493 /STUB:$(PATH_ROOT)/src/VBox/HostDrivers/Support/win/winstub.com … … 7484 7495 TEMPLATE_VBOXQTGUIEXE_LDFLAGS += -IntegrityCheck 7485 7496 endif 7486 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD) 7487 TEMPLATE_VBOXQTGUIEXE_LDFLAGS += -Guard:CF 7488 endif 7497 TEMPLATE_VBOXQTGUIEXE_LDFLAGS.win.amd64 = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA) 7489 7498 7490 7499 TEMPLATE_VBOXQTGUIEXE_SDKS += $(VBOX_WINPSDK) … … 7747 7756 TEMPLATE_VBoxBldProg_SDKS := ReorderCompilerIncs $(VBOX_WINPSDK) 7748 7757 endif 7749 TEMPLATE_VBoxBldProg_CXXFLAGS := -Zi -Zl -GR- -EHsc -GF -Zc:wchar_t- $(VBOX_VCC_OPT) $(VBOX_VCC_FP) -MT$(VBOX_VCC_CRT_TYPE)\7750 -Gy$(VBOX_VCC_WARN_ALL) $(VBOX_VCC_WERR)7758 TEMPLATE_VBoxBldProg_CXXFLAGS := -Zi -Zl -GR- -EHsc -GF -Zc:wchar_t- $(VBOX_VCC_OPT) $(VBOX_VCC_FP) \ 7759 -MT$(VBOX_VCC_CRT_TYPE) -Gy $(VBOX_VCC_CC_GUARD_CF) $(VBOX_VCC_WARN_ALL) $(VBOX_VCC_WERR) 7751 7760 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC120" 7752 7761 TEMPLATE_VBoxBldProg_CXXFLAGS += -Gw 7753 endif7754 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD)7755 TEMPLATE_VBoxBldProg_CXXFLAGS += -guard:cf7756 7762 endif 7757 7763 ifdef VBOX_WITH_MSC_ANALYZE_THIS … … 7776 7782 TEMPLATE_VBoxBldProg_LDFLAGS = -Ignore:4197 \ 7777 7783 /NOD /INCREMENTAL:NO /MAPINFO:EXPORTS /LargeAddressAware /DynamicBase /NxCompat /Release /Debug /Opt:Ref /Opt:Icf \ 7784 $(VBOX_VCC_LD_GUARD_CF) \ 7778 7785 /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ 7779 7786 /DISALLOWLIB:libc$(VBOX_VCC_CRT_TYPE_N).lib \ … … 7789 7796 /DISALLOWLIB:ucrt.lib \ 7790 7797 /DISALLOWLIB:ucrtd.lib 7791 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC142" && !defined(VBOX_WITHOUT_CONTROL_FLOW_GUARD) 7792 TEMPLATE_VBoxBldProg_LDFLAGS += -Guard:CF 7793 endif 7798 TEMPLATE_VBoxBldProg_LDFLAGS.win.amd64 = $(VBOX_VCC_LD_HIGH_ENTRYOPY_VA) 7794 7799 if "$(VBOX_VCC_TOOL_STEM)" >= "VCC140" 7795 7800 TEMPLATE_VBoxBldProg_LIBS = \ -
trunk/src/VBox/HostDrivers/Support/Makefile.kmk
r93239 r93254 432 432 SUPR3HardenedStatic_SOURCES.win += \ 433 433 $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/chkstk.obj 434 435 # And a few extracted from the static libc to support -guard and cookes. 436 # In 14.2 these files does not import anything from the win32 API and are 437 # mostly tiny bits of code. Needs not initialization that I can spot. 438 ifneq ($(VBOX_VCC_LD_GUARD_CF),) 439 SUPR3HardenedStatic_SOURCES.win += \ 440 $(SUPR3HardenedStatic_0_OUTDIR)/loadcfg.obj \ 441 $(SUPR3HardenedStatic_0_OUTDIR)/gs_cookie.obj \ 442 $(SUPR3HardenedStatic_0_OUTDIR)/guard_support.obj \ 443 $(SUPR3HardenedStatic_0_OUTDIR)/guard_dispatch.obj \ 444 $(SUPR3HardenedStatic_0_OUTDIR)/guard_xfg_dispatch.obj 445 446 $$(SUPR3HardenedStatic_0_OUTDIR)/loadcfg.obj \ 447 $$(SUPR3HardenedStatic_0_OUTDIR)/gs_cookie.obj \ 448 $$(SUPR3HardenedStatic_0_OUTDIR)/guard_support.obj \ 449 $$(SUPR3HardenedStatic_0_OUTDIR)/guard_dispatch.obj \ 450 $$(SUPR3HardenedStatic_0_OUTDIR)/guard_xfg_dispatch.obj \ 451 : \ 452 $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/libcmt.lib | $$(dir $$@) 453 set -x; $(TOOL_$(VBOX_VCC_TOOL)_AR) "/EXTRACT:$$($(TOOL_$(VBOX_VCC_TOOL)_AR) /LIST "$<" | $(SED_EXT) -e '/$(notdir $@)/!d' )" "/OUT:$@" "$<" 454 endif 434 455 endif 435 456 endif
Note:
See TracChangeset
for help on using the changeset viewer.

