diff --git a/EmulatorPkg/EmulatorPkg.dsc b/EmulatorPkg/EmulatorPkg.dsc index 14b8114281..3e4df619d0 100644 --- a/EmulatorPkg/EmulatorPkg.dsc +++ b/EmulatorPkg/EmulatorPkg.dsc @@ -17,7 +17,11 @@ PLATFORM_GUID = 05FD064D-1073-E844-936C-A0E16317107D PLATFORM_VERSION = 0.3 DSC_SPECIFICATION = 0x00010005 +!if $(WIN_MINGW32_BUILD) + OUTPUT_DIRECTORY = Build/Emulator$(ARCH)Mingw +!else OUTPUT_DIRECTORY = Build/Emulator$(ARCH) +!endif SUPPORTED_ARCHITECTURES = X64|IA32 BUILD_TARGETS = DEBUG|RELEASE|NOOPT @@ -45,6 +49,7 @@ 0|DEFAULT !include MdePkg/MdeLibs.dsc.inc +!include CryptoPkg/CryptoPkgFeatureFlagPcds.dsc.inc [LibraryClasses] # @@ -152,7 +157,7 @@ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf TimerLib|EmulatorPkg/Library/PeiTimerLib/PeiTimerLib.inf -[LibraryClasses.common.USER_DEFINED, LibraryClasses.common.BASE] +[LibraryClasses.common.HOST_APPLICATION, LibraryClasses.common.BASE] DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf @@ -163,7 +168,7 @@ PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf PpiListLib|EmulatorPkg/Library/SecPpiListLib/SecPpiListLib.inf PeiServicesLib|EmulatorPkg/Library/SecPeiServicesLib/SecPeiServicesLib.inf - + StackCheckLib|MdePkg/Library/StackCheckLibNull/StackCheckLibNullHostApplication.inf [LibraryClasses.common.PEIM, LibraryClasses.common.PEI_CORE] HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf @@ -217,6 +222,14 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFirst|FALSE gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables|FALSE gEmulatorPkgTokenSpaceGuid.PcdEmulatorLazyLoadSymbols|FALSE +!if $(WIN_MINGW32_BUILD) + # + # When WIN_MINGW32_BUILD is set, -target is set to build Windows application. + # Set PcdOpensslLibAssemblySourceStyleNasm to TRUE to use Openssl NASM + # source files that assume a Windows calling convention. + # + gEfiCryptoPkgTokenSpaceGuid.PcdOpensslLibAssemblySourceStyleNasm|TRUE +!endif [PcdsFixedAtBuild] gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy|0x00000000 @@ -315,23 +328,15 @@ [Components] !if "IA32" in $(ARCH) || "X64" in $(ARCH) - !if "MSFT" in $(FAMILY) || $(WIN_HOST_BUILD) == TRUE + !if $(WIN_HOST_BUILD) ## # Emulator, OS WIN application - # CLANGPDB is cross OS tool chain. It depends on WIN_HOST_BUILD flag - # to build WinHost application. # - # USER_DEFINED components skip normal NULL lib linking, so we have to link this - # specially here for the libs that have stack guard enabled - ## EmulatorPkg/Win/Host/WinHost.inf !else ## # Emulator, OS POSIX application # - # USER_DEFINED components skip normal NULL lib linking, so we have to link this - # specially here for the libs that have stack guard enabled - ## EmulatorPkg/Unix/Host/Host.inf !endif !endif @@ -522,25 +527,253 @@ !endif !include RedfishPkg/Redfish.dsc.inc +# +# Fail with error message if the OS/Compiler combination is not supported +# +# Operating System and Compiler Compatibility Matrix for EmulatorPkg +# +# +--------------------+--------+----------+------------+-----+----+--------+ +# | OS/Compiler | VS2019 | CLANGPDB | CLANGDWARF | GCC | XCODE5 | +# | | VS2022 | | | GCC5 | | +# | | | | | GCCNOLTO | | +# +--------------------+--------+----------+------------+----------+--------+ +# | Windows/VS |IA32/X64| | | | | +# | Windows/LLVM/VS | | IA32/X64 | | | | +# | Windows/LLVM/MSYS2 | | | X64 | | | +# | Windows/LLVM/MINGW | | | IA32/X64 | | | +# | Linux/LLVM | | | IA32/X64 | | | +# | Linux/GCC | | | | IA32/X64 | | +# | macOS/XCODE5 | | | | |IA32/X64| +# +--------------------+--------+----------+------------+----------+--------+ +# +# * Windows/VS: Windows environment with Visual Studio installed +# * Windows/LLVM/VS: Windows environment with Visual Studio and LLVM 20.1.8 or +# higher installed. The default version of LLVM installed with Visual Studio +# is not supported. +# * https://github.com/llvm/llvm-project/releases +# * EmulatorPkg builds depend on Visual Studio includes/libraries +# * Windows/LLVM/MSYS2: Windows environment with MSYS2 based LLVM 20.1.8 or +# higher installed. +# * https://github.com/tianocore/edk2-edkrepo/releases?q=clang +# * EmulatorPkg builds do not use any Visual Studio includes/libraries +# * MSYS2 based LLVM 20.1.8 does not provide IA32 includes/libraries +# * Windows/LLVM/MINGW: Windows environment with LLVM MINGW 20.1.8 or higher +# installed with UCRT includes/libraries. +# * https://github.com/mstorsjo/llvm-mingw/releases +# * EmulatorPkg builds do not use any Visual Studio includes/libraries +# * UCRT release provide IA32 and X64 includes/libraries +# * Linux/LLVM or Linux/GCC: Linux environment with GCC 13 or higher and +# LLVM 20.1.8 or higher installed. Not all Linux distributions provide IA32 +# includes/libraries for Host-based unit tests. +# * EmulatorPkg builds use GCC and LLVM includes/libraries +# * Ubuntu 24.04 apt modules for IA32 and X64 includes/libraries: +# build-essential uuid-dev lcov +# g++-13 gcc-13 +# g++-13-x86-64-linux-gnux32 gcc-13-x86-64-linux-gnux32 +# llvm-20 clang-20 lld-20 libclang-rt-20-dev +# gcc-multilib g++-multilib libx11-dev libx11-6 libxext6 libxext-dev +# libc6-i386 libc6-dev-i386 libxext6:i386 libxext-dev:i386 linux-libc-dev:i386 +# macOS/XCODE: macOS environment with XCODE5 installed. +# +!if $(WIN_MINGW32_BUILD) + !if $(TOOL_CHAIN_TAG) in "VS2019 VS2022" + !error EmulatorPkg not supported for Mingw/VS20xx builds + !endif + !if $(TOOL_CHAIN_TAG) in "CLANGPDB" + !error EmulatorPkg not supported for Mingw/CLANGPDB builds + !endif + !if $(TOOL_CHAIN_TAG) in "GCC GCC5 GCCNOLTO" + !error EmulatorPkg not supported for Mingw/GCC builds + !endif +!else + !if $(WIN_HOST_BUILD) + !if $(TOOL_CHAIN_TAG) in "GCC GCC5 GCCNOLTO" + !error EmulatorPkg not supported for Windows/GCC builds + !endif + !if $(TOOL_CHAIN_TAG) in "CLANGDWARF" + !error EmulatorPkg not supported for Windows/CLANGDWARF builds + !endif + !else + !if $(TOOL_CHAIN_TAG) in "VS2019 VS2022" + !error EmulatorPkg not supported for Linux/VS20xx builds + !endif + !if $(TOOL_CHAIN_TAG) in "CLANGPDB" + !error EmulatorPkg not supported for Linux/CLANGPDB builds + !endif + !endif +!endif + [BuildOptions] # # Disable deprecated APIs. # *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES + # + # Windows/VS20xx using Visual Studio includes and libraries + # MSFT:DEBUG_*_*_CC_FLAGS = /Od /Oy- MSFT:NOOPT_*_*_CC_FLAGS = /Od /Oy- - GCC:DEBUG_CLANGPDB_*_CC_FLAGS =-O0 -Wno-unused-command-line-argument -Wno-incompatible-pointer-types -Wno-enum-conversion -Wno-incompatible-pointer-types -Wno-sometimes-uninitialized -Wno-constant-conversion -Wno-main-return-type MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096 /FILEALIGN:4096 - MSFT:DEBUG_*_*_DLINK_FLAGS = /BASE:0x10000 - MSFT:NOOPT_*_*_DLINK_FLAGS = /BASE:0x10000 + MSFT:*_*_IA32_DLINK_FLAGS = /BASE:0x010000000 + MSFT:*_*_X64_DLINK_FLAGS = /BASE:0x180000000 -!if $(WIN_HOST_BUILD) == TRUE # - # CLANGPDB tool chain depends on WIN_HOST_BUILD flag to generate the windows application. + # Windows/CLANGPDB using Visual Studio includes and libraries # - CLANGPDB: *_*_*_DLINK_FLAGS = /ALIGN:4096 /FILEALIGN:4096 - CLANGPDB:DEBUG_*_*_DLINK_FLAGS = /BASE:0x10000 - CLANGPDB:NOOPT_*_*_DLINK_FLAGS = /BASE:0x10000 + CLANGPDB:RELEASE_*_*_CC_FLAGS = -g0 + CLANGPDB:DEBUG_*_*_CC_FLAGS = -g3 -fno-lto -O0 + CLANGPDB:NOOPT_*_*_CC_FLAGS = -g3 -fno-lto + + CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096 /FILEALIGN:4096 + CLANGPDB:*_*_IA32_DLINK_FLAGS = /BASE:0x010000000 + CLANGPDB:*_*_X64_DLINK_FLAGS = /BASE:0x180000000 + +!if $(WIN_MINGW32_BUILD) + # + # Windows/Mingw CLANGDWARF using Mingw CLANG includes and libraries + # + GCC:*_CLANGDWARF_IA32_PP_FLAGS = -target i686-w64-mingw32 + GCC:*_CLANGDWARF_X64_PP_FLAGS = -target x86_64-w64-mingw32 + + GCC:*_CLANGDWARF_X64_CC_FLAGS = -target x86_64-w64-mingw32 -mno-stack-arg-probe + GCC:*_CLANGDWARF_IA32_CC_FLAGS = -target i686-w64-mingw32 -mno-stack-arg-probe + GCC:RELEASE_CLANGDWARF_*_CC_FLAGS = -g0 + GCC:DEBUG_CLANGDWARF_*_CC_FLAGS = -g3 -gcodeview -fdebug-macro -fno-omit-frame-pointer -fexceptions -fno-lto -O0 + GCC:NOOPT_CLANGDWARF_*_CC_FLAGS = -g3 -gcodeview -fdebug-macro -fno-omit-frame-pointer -fexceptions -fno-lto + + GCC:*_CLANGDWARF_X64_NASM_FLAGS = -f win64 + GCC:*_CLANGDWARF_IA32_NASM_FLAGS = -f win32 + + # + # Change Windows/Mingw CLANGDWARF to use llvm-rc instead of objcopy to + # produce HII resources as a PE/COFF library + # + GCC:*_CLANGDWARF_*_GENFWHII_FLAGS == --hiipackage + GCC:*_CLANGDWARF_*_RC_PATH = llvm-rc + GCC:*_CLANGDWARF_*_RC_FLAGS == + + # + # Must override DLINK to use options compatible with Mingw CLANG that is + # subset of GCC options for Windows application targets. + # + # DLINK action does not support -gcodeview that must be set in CC_FLAGS + # to generate PDB symbol information. -Wno-unused-command-line-argument + # is added to ignore the error generated by -gcodeview in DLINK action. + # + GCC:*_CLANGDWARF_*_DLINK_FLAGS == -nostdlib -shared -Wl,--section-alignment=0x1000 -Wl,--file-alignment=0x1000 + GCC:*_CLANGDWARF_IA32_DLINK_FLAGS = -target i686-w64-mingw32 -Wl,--entry,__ModuleEntryPoint + GCC:*_CLANGDWARF_X64_DLINK_FLAGS = -target x86_64-w64-mingw32 -Wl,--entry,_ModuleEntryPoint + GCC:DEBUG_CLANGDWARF_*_DLINK_FLAGS = -g -Wl,--pdb,$(DEBUG_DIR)/$(BASE_NAME).pdb -Wno-unused-command-line-argument + GCC:NOOPT_CLANGDWARF_*_DLINK_FLAGS = -g -Wl,--pdb,$(DEBUG_DIR)/$(BASE_NAME).pdb -Wno-unused-command-line-argument + # + # Set DLINK2_FLAGS to empyty string to disable use of linker script + # + GCC:*_CLANGDWARF_X64_DLINK2_FLAGS == + GCC:*_CLANGDWARF_IA32_DLINK2_FLAGS == !endif + + GCC:RELEASE_*_*_CC_FLAGS = -g0 + GCC:DEBUG_*_*_CC_FLAGS = -g3 -fno-lto -O0 + GCC:NOOPT_*_*_CC_FLAGS = -g3 -fno-lto + + # + # GCC IA32 CLANGDWARF does not work with -flto. + # Disable LTO for this specific tool chain configuration + # + GCC:RELEASE_CLANGDWARF_IA32_CC_FLAGS = -fno-lto + +[Defines] + # + # Defines for settings that are common between MSFT and CLANGPDB tool chain + # families that must use Visual Studio specific defines and libraries when + # building modules of type HOST_APPLICATION + # +!if $(ARCH) in "X64" + DEFINE VS_ARCH_DIR = x64 +!endif +!if $(ARCH) in "IA32" + DEFINE VS_ARCH_DIR = x86 +!endif + DEFINE VISUAL_STUDIO_DEFINES = -D UNICODE -D _CRT_SECURE_NO_WARNINGS -D _CRT_SECURE_NO_DEPRECATE + DEFINE VISUAL_STUDIO_LIB_PATHS = /LIBPATH:"%VCToolsInstallDir%lib\$(VS_ARCH_DIR)" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\$(VS_ARCH_DIR)" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%um\$(VS_ARCH_DIR)" + DEFINE VISUAL_STUDIO_LIBS = Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib + +[BuildOptions.common.EDKII.HOST_APPLICATION] + MSFT:*_*_*_CC_FLAGS = $(VISUAL_STUDIO_DEFINES) + # + # Must ovveride DLINK_FLAGS to remove /DLL when linking .exe + # + MSFT:*_*_*_DLINK_FLAGS == /out:"$(BIN_DIR)\$(BASE_NAME).exe" /NOLOGO /SUBSYSTEM:CONSOLE /IGNORE:4086 /MAP /OPT:REF /LTCG + MSFT:*_*_*_DLINK_FLAGS = $(VISUAL_STUDIO_LIB_PATHS) $(VISUAL_STUDIO_LIBS) + MSFT:DEBUG_*_*_DLINK_FLAGS = /DEBUG /pdb:"$(BIN_DIR)\$(BASE_NAME).pdb" + MSFT:NOOPT_*_*_DLINK_FLAGS = /DEBUG /pdb:"$(BIN_DIR)\$(BASE_NAME).pdb" + + CLANGPDB:*_*_*_CC_FLAGS = $(VISUAL_STUDIO_DEFINES) + # + # Must ovveride DLINK_FLAGS to remove /DLL when linking .exe + # + CLANGPDB:*_*_*_DLINK_FLAGS == /OUT:"$(BIN_DIR)\$(BASE_NAME).exe" /NOLOGO /SUBSYSTEM:CONSOLE /IGNORE:4086 /OPT:REF /LLDMAP + CLANGPDB:*_*_*_DLINK_FLAGS = $(VISUAL_STUDIO_LIB_PATHS) $(VISUAL_STUDIO_LIBS) + CLANGPDB:DEBUG_*_*_DLINK_FLAGS = /DEBUG /pdb:"$(BIN_DIR)\$(BASE_NAME).pdb" + CLANGPDB:NOOPT_*_*_DLINK_FLAGS = /DEBUG /pdb:"$(BIN_DIR)\$(BASE_NAME).pdb" + + # + # GCC RELEASE X64 Host application does not work with -flto. + # Disable LTO for this specific tool chain configuration + # + GCC:RELEASE_*_X64_CC_FLAGS = -fno-lto + # + # Must override DLINK flags to remove -nostdlib because Host application must + # link against standard libraries + # + GCC:*_*_*_DLINK_FLAGS == -o $(BIN_DIR)/Host -z noexecstack + GCC:RELEASE_*_*_DLINK_FLAGS = -flto + GCC:*_*_IA32_DLINK_FLAGS = -m32 + GCC:*_*_X64_DLINK_FLAGS = -m64 + + GCC:*_*_*_DLINK2_FLAGS == -lpthread -ldl -lXext -lX11 + +!if $(WIN_MINGW32_BUILD) + # + # Windows Mingw CLANGDWARF + # + GCC:*_CLANGDWARF_*_CC_FLAGS = -D UNICODE -D _CRT_SECURE_NO_DEPRECATE -Wno-incompatible-pointer-types + GCC:RELEASE_CLANGDWARF_*_CC_FLAGS = -g0 + GCC:DEBUG_CLANGDWARF_*_CC_FLAGS = -g3 -gcodeview -fdebug-macro -fno-omit-frame-pointer -fexceptions -fno-lto -O0 + GCC:NOOPT_CLANGDWARF_*_CC_FLAGS = -g3 -gcodeview -fdebug-macro -fno-omit-frame-pointer -fexceptions -fno-lto + + # + # Must override DLINK to use options compatible with Mingw CLANG that is + # subset of GCC options for Windows application targets. + # + # DLINK action does not support -gcodeview that must be set in CC_FLAGS + # to generate PDB symbol information. -Wno-unused-command-line-argument + # is added to ignore the error generated by -gcodeview in DLINK action. + # + GCC:*_CLANGDWARF_*_DLINK_FLAGS == -o $(BIN_DIR)/$(BASE_NAME).exe -Wl,--entry,main -lwinmm -lgdi32 + GCC:*_CLANGDWARF_IA32_DLINK_FLAGS = -target i686-w64-mingw32 + GCC:*_CLANGDWARF_X64_DLINK_FLAGS = -target x86_64-w64-mingw32 + GCC:DEBUG_CLANGDWARF_*_DLINK_FLAGS = -g -Wl,--pdb,$(BIN_DIR)/$(BASE_NAME).pdb -Wno-unused-command-line-argument + GCC:NOOPT_CLANGDWARF_*_DLINK_FLAGS = -g -Wl,--pdb,$(BIN_DIR)/$(BASE_NAME).pdb -Wno-unused-command-line-argument + # + # DLINK2_FLAGS must be set to empty string to disable use of linker script + # + GCC:*_CLANGDWARF_IA32_DLINK2_FLAGS == + GCC:*_CLANGDWARF_X64_DLINK2_FLAGS == +!endif + + # + # Need to do XCODE link via gcc and not ld as the pathing to libraries changes + # from OS version to OS version + # + XCODE:*_*_IA32_DLINK_PATH == gcc + XCODE:*_*_IA32_CC_FLAGS = -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack + XCODE:*_*_IA32_DLINK_FLAGS == -arch i386 -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon + XCODE:*_*_IA32_ASM_FLAGS == -arch i386 -g + + XCODE:*_*_X64_DLINK_PATH == gcc + XCODE:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon -Wl,-no_pie + XCODE:*_*_X64_ASM_FLAGS == -g + XCODE:*_*_X64_CC_FLAGS = -O0 -target x86_64-apple-darwin -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack "-DEFIAPI=__attribute__((ms_abi))" diff --git a/EmulatorPkg/Unix/Host/Host.inf b/EmulatorPkg/Unix/Host/Host.inf index 910b46369e..467f6eceb9 100644 --- a/EmulatorPkg/Unix/Host/Host.inf +++ b/EmulatorPkg/Unix/Host/Host.inf @@ -14,7 +14,7 @@ INF_VERSION = 0x00010005 BASE_NAME = Host FILE_GUID = 8863C0AD-7724-C84B-88E5-A33B116D1485 - MODULE_TYPE = USER_DEFINED + MODULE_TYPE = HOST_APPLICATION VERSION_STRING = 1.0 # @@ -111,28 +111,3 @@ [FeaturePcd] gEmulatorPkgTokenSpaceGuid.PcdEmulatorLazyLoadSymbols - - -[BuildOptions] - GCC:*_*_*_CC_FLAGS == -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -idirafter/usr/include -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings - GCC:*_*_IA32_CC_FLAGS = -m32 - GCC:*_*_X64_CC_FLAGS = -m64 "-DEFIAPI=__attribute__((ms_abi))" -flto -DUSING_LTO -Os - - GCC:*_*_*_DLINK_FLAGS == -o $(BIN_DIR)/Host -z noexecstack -L/usr/X11R6/lib - GCC:*_*_IA32_DLINK_FLAGS = -m32 - GCC:*_*_X64_DLINK_FLAGS = -m64 -flto - - GCC:*_*_*_DLINK2_FLAGS == -lpthread -ldl -lXext -lX11 - -# -# Need to do this link via gcc and not ld as the pathing to libraries changes from OS version to OS version -# - XCODE:*_*_IA32_DLINK_PATH == gcc - XCODE:*_*_IA32_CC_FLAGS = -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack - XCODE:*_*_IA32_DLINK_FLAGS == -arch i386 -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon - XCODE:*_*_IA32_ASM_FLAGS == -arch i386 -g - - XCODE:*_*_X64_DLINK_PATH == gcc - XCODE:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon -Wl,-no_pie - XCODE:*_*_X64_ASM_FLAGS == -g - XCODE:*_*_X64_CC_FLAGS = -O0 -target x86_64-apple-darwin -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack "-DEFIAPI=__attribute__((ms_abi))" diff --git a/EmulatorPkg/Win/Host/WinHost.inf b/EmulatorPkg/Win/Host/WinHost.inf index b123ea9dcf..f697a5fc75 100644 --- a/EmulatorPkg/Win/Host/WinHost.inf +++ b/EmulatorPkg/Win/Host/WinHost.inf @@ -15,7 +15,7 @@ INF_VERSION = 0x00010005 BASE_NAME = WinHost FILE_GUID = 62E8F833-2B0A-4C19-A966-63C180588BE7 - MODULE_TYPE = USER_DEFINED + MODULE_TYPE = HOST_APPLICATION VERSION_STRING = 1.0 # @@ -85,30 +85,3 @@ gEmulatorPkgTokenSpaceGuid.PcdEmuFileSystem gEmulatorPkgTokenSpaceGuid.PcdPeiServicesTablePage gEmulatorPkgTokenSpaceGuid.PcdEmuNetworkInterface|L"0" - -[BuildOptions] - MSFT:*_*_*_DLINK_FLAGS == /out:"$(BIN_DIR)\$(BASE_NAME).exe" /base:0x10000000 /pdb:"$(BIN_DIR)\$(BASE_NAME).pdb" /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) - MSFT:*_*_*_CC_FLAGS = /nologo /W4 /WX /Gy /c /D UNICODE /Od /Oy- /FIAutoGen.h /EHs-c- /GF /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE - MSFT:*_*_*_PP_FLAGS == /nologo /E /TC /FIAutoGen.h - - MSFT:*_VS2015_IA32_DLINK_FLAGS = /LIBPATH:"%VS2015_PREFIX%Lib" /LIBPATH:"%VS2015_PREFIX%VC\Lib" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG Kernel32.lib MSVCRTD.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib vcruntimed.lib ucrtd.lib - MSFT:*_VS2015x86_IA32_DLINK_FLAGS = /LIBPATH:"%VS2015_PREFIX%Lib" /LIBPATH:"%VS2015_PREFIX%VC\Lib" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG Kernel32.lib MSVCRTD.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib vcruntimed.lib ucrtd.lib - MSFT:*_VS2017_IA32_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x86" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib - MSFT:*_VS2019_IA32_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x86" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib - MSFT:*_VS2022_IA32_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x86" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib - MSFT:*_*_IA32_ASM_FLAGS == /nologo /W3 /WX /c /coff /Cx /Zd /W0 /Zi - MSFT:*_*_IA32_ASMLINK_FLAGS == /link /nologo /tiny - - MSFT:*_VS2015_X64_DLINK_FLAGS = /LIBPATH:"%VS2015_PREFIX%VC\Lib\AMD64" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib - MSFT:*_VS2015x86_X64_DLINK_FLAGS = /LIBPATH:"%VS2015_PREFIX%VC\Lib\AMD64" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib - MSFT:*_VS2017_X64_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x64" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib - MSFT:*_VS2019_X64_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x64" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib - MSFT:*_VS2022_X64_DLINK_FLAGS = /LIBPATH:"%VCToolsInstallDir%lib\x64" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib - MSFT:*_*_X64_ASM_FLAGS == /nologo /W3 /WX /c /Cx /Zd /W0 /Zi - MSFT:*_*_X64_ASMLINK_FLAGS == /link /nologo - - GCC:*_CLANGPDB_X64_DLINK_FLAGS == /out:"$(BIN_DIR)\$(BASE_NAME).exe" /base:0x10000000 /pdb:"$(BIN_DIR)\$(BASE_NAME).pdb" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x64" /LIBPATH:"%VCToolsInstallDir%lib\x64" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /OPT:REF /DEBUG /MACHINE:AMD64 Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib /lldmap /EXPORT:InitializeDriver=_ModuleEntryPoint - GCC:*_CLANGPDB_X64_CC_FLAGS == -m64 -g -fshort-wchar -fno-strict-aliasing -Wall -c -include AutoGen.h -D _CRT_SECURE_NO_WARNINGS -Wnonportable-include-path -D UNICODE -D _CRT_SECURE_NO_DEPRECATE - - GCC:*_CLANGPDB_IA32_DLINK_FLAGS == /out:"$(BIN_DIR)\$(BASE_NAME).exe" /base:0x10000000 /pdb:"$(BIN_DIR)\$(BASE_NAME).pdb" /LIBPATH:"%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x86" /LIBPATH:"%WindowsSdkDir%lib\%WindowsSDKLibVersion%\um\x86" /LIBPATH:"%VCToolsInstallDir%ib\x86" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /OPT:REF /DEBUG /MACHINE:I386 Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib /lldmap /EXPORT:InitializeDriver=_ModuleEntryPoint - GCC:*_CLANGPDB_IA32_CC_FLAGS == -m32 -g -fshort-wchar -fno-strict-aliasing -Wall -c -include AutoGen.h -D _CRT_SECURE_NO_WARNINGS -Wnonportable-include-path -D UNICODE -D _CRT_SECURE_NO_DEPRECATE