Hi Allen,

On 2019.09.16 03:25, Cheng, Ching JenX wrote:
Hi Peter,

Thanks for your kind comments,
For the following comments
1. I will combine VS2017_HOST and VS2019_HOST to VS_HOST to apply both VS2017 
and VS2019 plateforms,

Great.

2. Sorry I just test x86/64 builds. So if it is ok, please help me to test 
ARM/AARCH64. Then I could update it to patch v2.

I'll be happy to help. Using Visual Studio 2019 to compile for ARM/AARCH64 is fairly easy. Here are the steps you should follow:

1. You must make sure that, when you installed Visual Studio 2019, you also installed the ARM and ARM64 build tools. These are usually not installed by default, so, if you haven't already done so, or want to confirm that they are installed, you need to launch the Visual Studio Installer and then select Modify -> Individual Components. There you need to make sure that you have both "MSVC v142 - VS 2019 C++ ARM build tools (v14.22)" and "MSVC v142 - VS 2019 C++ ARM64 build tools (v14.22)" selected.

You can find a picture illustrating that step at: https://github.com/pbatard/uefi-simple#visual-studio-2019-and-armarm64-support


2. Copy the "# ARM definitions", "# AARCH64 definitions" and "# EBC definitions" below (just copy the whole section between the markers) and add them right before the "# GCC Common" section in tools_def.template.

These are the exact same sections as the ones we use for VS2017, except all instances of "VS2017" have been replaced with "VS2019". Nothing else was changed.

########################## BEGIN COPY HERE ##########################

#################
# ARM definitions
#################
*_VS2019_ARM_CC_PATH              = DEF(VS2019_BIN_ARM)\cl.exe
*_VS2019_ARM_VFRPP_PATH           = DEF(VS2019_BIN_ARM)\cl.exe
*_VS2019_ARM_SLINK_PATH           = DEF(VS2019_BIN_ARM)\lib.exe
*_VS2019_ARM_DLINK_PATH           = DEF(VS2019_BIN_ARM)\link.exe
*_VS2019_ARM_APP_PATH             = DEF(VS2019_BIN_ARM)\cl.exe
*_VS2019_ARM_PP_PATH              = DEF(VS2019_BIN_ARM)\cl.exe
*_VS2019_ARM_ASM_PATH             = DEF(VS2019_BIN_ARM)\armasm.exe
*_VS2019_ARM_ASLCC_PATH           = DEF(VS2019_BIN_ARM)\cl.exe
*_VS2019_ARM_ASLPP_PATH           = DEF(VS2019_BIN_ARM)\cl.exe
*_VS2019_ARM_ASLDLINK_PATH        = DEF(VS2019_BIN_ARM)\link.exe

      *_VS2019_ARM_MAKE_FLAGS     = /nologo
DEBUG_VS2019_ARM_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw /Oi- RELEASE_VS2019_ARM_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /Oi- NOOPT_VS2019_ARM_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od /Oi-

  DEBUG_VS2019_ARM_ASM_FLAGS      = /nologo /g
RELEASE_VS2019_ARM_ASM_FLAGS      = /nologo
NOOPT_VS2019_ARM_ASM_FLAGS        = /nologo

DEBUG_VS2019_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG RELEASE_VS2019_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data NOOPT_VS2019_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG

#####################
# AARCH64 definitions
#####################
*_VS2019_AARCH64_CC_PATH           = DEF(VS2019_BIN_AARCH64)\cl.exe
*_VS2019_AARCH64_VFRPP_PATH        = DEF(VS2019_BIN_AARCH64)\cl.exe
*_VS2019_AARCH64_SLINK_PATH        = DEF(VS2019_BIN_AARCH64)\lib.exe
*_VS2019_AARCH64_DLINK_PATH        = DEF(VS2019_BIN_AARCH64)\link.exe
*_VS2019_AARCH64_APP_PATH          = DEF(VS2019_BIN_AARCH64)\cl.exe
*_VS2019_AARCH64_PP_PATH           = DEF(VS2019_BIN_AARCH64)\cl.exe
*_VS2019_AARCH64_ASM_PATH          = DEF(VS2019_BIN_AARCH64)\armasm64.exe
*_VS2019_AARCH64_ASLCC_PATH        = DEF(VS2019_BIN_AARCH64)\cl.exe
*_VS2019_AARCH64_ASLPP_PATH        = DEF(VS2019_BIN_AARCH64)\cl.exe
*_VS2019_AARCH64_ASLDLINK_PATH     = DEF(VS2019_BIN_AARCH64)\link.exe

      *_VS2019_AARCH64_MAKE_FLAGS  = /nologo
DEBUG_VS2019_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw /Oi- RELEASE_VS2019_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /Oi- NOOPT_VS2019_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od /Oi-

  DEBUG_VS2019_AARCH64_ASM_FLAGS   = /nologo /g
RELEASE_VS2019_AARCH64_ASM_FLAGS   = /nologo
NOOPT_VS2019_AARCH64_ASM_FLAGS     = /nologo

DEBUG_VS2019_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG RELEASE_VS2019_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /MERGE:.rdata=.data NOOPT_VS2019_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG

##################
# EBC definitions
##################
*_VS2019_EBC_*_FAMILY            = INTEL

*_VS2019_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
*_VS2019_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
*_VS2019_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
*_VS2019_EBC_SLINK_PATH          = DEF(VS2019_BIN_IA32)\link.exe
*_VS2019_EBC_DLINK_PATH          = DEF(VS2019_BIN_IA32)\link.exe

*_VS2019_EBC_MAKE_FLAGS          = /nologo
*_VS2019_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
*_VS2019_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT) *_VS2019_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
*_VS2019_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
*_VS2019_EBC_DLINK_FLAGS = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER

########################## END COPY HERE ##########################


3. With the above completed, you should e able to compile something like ShellPkg for ARM/AARCH64 by issuing:

# ARM
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsamd64_arm.bat"
edksetup.bat reconfig
build -a ARM -b RELEASE -t VS2019 -p ShellPkg/ShellPkg.dsc

# AARCH64
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsamd64_arm64.bat"
edksetup.bat reconfig
build -a AARCH64 -b RELEASE -t VS2019 -p ShellPkg/ShellPkg.dsc


I have tested ShellPkg as well as other custom applications recompilation with VS2019 for ARM/AARCH64 on my platform, and found no issues.

If you need more details, please let me know.

Regards,

/Pete


Thank you,
Best Regards,
Allen

-----Original Message-----
From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
Pete Batard
Sent: Wednesday, September 11, 2019 11:43 PM
To: devel@edk2.groups.io; Cheng, Ching JenX
<ching.jenx.ch...@intel.com>
Cc: Chan, Amy <amy.c...@intel.com>; Feng, Bob C <bob.c.f...@intel.com>;
Gao, Liming <liming....@intel.com>
Subject: Re: [edk2-devel] [PATCH 1/2] Add VS2019 Toolchain def

Hi Ching JenX,

Please see two comments inline.

On 2019.09.11 07:08, Cheng, Ching JenX wrote:
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2182

In order to support VS2019,
the first thing need to do is add 2019 toolchain on tools_def.template

Change-Id: Id52abdc9762cf06bb9a38bbfd1153608c878d839
Cc: Amy Chan <amy.c...@intel.com>
Cc: Bob Feng <bob.c.f...@intel.com>
Cc: Liming Gao <liming....@intel.com>
Signed-off-by: Ching JenX Cheng <ching.jenx.ch...@intel.com>
---
   BaseTools/Conf/tools_def.template | 134
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++------------
   1 file changed, 122 insertions(+), 12 deletions(-)

diff --git a/BaseTools/Conf/tools_def.template
b/BaseTools/Conf/tools_def.template
index 8f0e6cb6c2..7585a3e5db 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -63,27 +63,35 @@ DEFINE VS2017_BIN_X64     =
DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\x64
   DEFINE VS2017_BIN_ARM     =
DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\arm
   DEFINE VS2017_BIN_AARCH64 =
DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\arm64

-DEFINE WINSDK_BIN       = ENV(WINSDK_PREFIX)
-DEFINE WINSDKx86_BIN    = ENV(WINSDKx86_PREFIX)
+DEFINE VS2019_BIN         = ENV(VS2019_PREFIX)bin
+DEFINE VS2019_HOST        = x86
+DEFINE VS2019_BIN_HOST    =
DEF(VS2019_BIN)\HostDEF(VS2019_HOST)\DEF(VS2019_HOST)
+DEFINE VS2019_BIN_IA32    =
DEF(VS2019_BIN)\HostDEF(VS2019_HOST)\x86
+DEFINE VS2019_BIN_X64     =
DEF(VS2019_BIN)\HostDEF(VS2019_HOST)\x64
+DEFINE VS2019_BIN_ARM     =
DEF(VS2019_BIN)\HostDEF(VS2019_HOST)\arm
+DEFINE VS2019_BIN_AARCH64 =
+DEF(VS2019_BIN)\HostDEF(VS2019_HOST)\arm64
+
+DEFINE WINSDK_BIN           = ENV(WINSDK_PREFIX)
+DEFINE WINSDKx86_BIN        = ENV(WINSDKx86_PREFIX)

   # Microsoft Visual Studio 2010
-DEFINE WINSDK7_BIN       = ENV(WINSDK7_PREFIX)
-DEFINE WINSDK7x86_BIN    = ENV(WINSDK7x86_PREFIX)
+DEFINE WINSDK7_BIN          = ENV(WINSDK7_PREFIX)
+DEFINE WINSDK7x86_BIN       = ENV(WINSDK7x86_PREFIX)

   # Microsoft Visual Studio 2012 Update 1 (required for rc.exe that was not
included in the initial release)
-DEFINE WINSDK71_BIN       = ENV(WINSDK71_PREFIX)
-DEFINE WINSDK71x86_BIN    = ENV(WINSDK71x86_PREFIX)
+DEFINE WINSDK71_BIN         = ENV(WINSDK71_PREFIX)
+DEFINE WINSDK71x86_BIN      = ENV(WINSDK71x86_PREFIX)

   # Microsoft Visual Studio 2013 Professional Edition
-DEFINE WINSDK8_BIN       = ENV(WINSDK8_PREFIX)x86\
-DEFINE WINSDK8x86_BIN    = ENV(WINSDK8x86_PREFIX)x64
+DEFINE WINSDK8_BIN          = ENV(WINSDK8_PREFIX)x86\
+DEFINE WINSDK8x86_BIN       = ENV(WINSDK8x86_PREFIX)x64

   # Microsoft Visual Studio 2015 Professional Edition
-DEFINE WINSDK81_BIN       = ENV(WINSDK81_PREFIX)x86\
-DEFINE WINSDK81x86_BIN    = ENV(WINSDK81x86_PREFIX)x64
+DEFINE WINSDK81_BIN         = ENV(WINSDK81_PREFIX)x86\
+DEFINE WINSDK81x86_BIN      = ENV(WINSDK81x86_PREFIX)x64

-# Microsoft Visual Studio 2017 Professional Edition
-DEFINE WINSDK10_BIN       = ENV(WINSDK10_PREFIX)DEF(VS2017_HOST)
+# Microsoft Visual Studio 2017/2019 Professional Edition
+DEFINE WINSDK10_BIN         = ENV(WINSDK10_PREFIX)DEF(VS2017_HOST)

The above line does not use the VS2019_HOST defined above, so I think we
want to fix that.

I wouldn't expect many people to use both VS2017 and VS2019 toolchains
with a different host platform (e.g. x64 for VS2019 and x86 for VS2017) so I'd
suggest that we use a single "VS_HOST" that applies to both platforms.


   # These defines are needed for certain Microsoft Visual Studio tools that
   # are used by other toolchains.  An example is that ICC on Windows
normally
@@ -218,6 +226,17 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
   #                        Note:
   #                             Building of XIP firmware images for ARM/ARM64 
is not
currently supported (only applications).
   #                             /FILEALIGN:4096 and other changes are needed 
for ARM
firmware builds.
+#   VS2019      -win32-  Requires:
+#                             Microsoft Visual Studio 2019 version 16.2 or 
later
+#                        Optional:
+#                             Required to build EBC drivers:
+#                               Intel(r) Compiler for Efi Byte Code (Intel(r) 
EBC Compiler)
+#                             Required to build platforms or ACPI tables:
+#                               Intel(r) ACPI Compiler (iasl.exe) from
+#                               https://acpica.org/downloads
+#                        Note:
+#                             Building of XIP firmware images for ARM/ARM64 is 
not
currently supported (only applications).
+#                             /FILEALIGN:4096 and other changes are needed for 
ARM
firmware builds.
   #   GCC48       -Linux,Windows-  Requires:
   #                             GCC 4.8 targeting x86_64-linux-gnu, 
aarch64-linux-gnu, or
arm-linux-gnueabi
   #                        Optional:
@@ -1691,6 +1710,97 @@ NOOPT_VS2017_AARCH64_DLINK_FLAGS   =
/NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
   *_VS2017_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
   *_VS2017_EBC_DLINK_FLAGS         = "C:\Program Files
(x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC
/OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT)
/SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER


+#########################################################
###########################
+#   VS2019       - Microsoft Visual Studio 2017 with Intel ASL
+#   ASL          - Intel ACPI Source Language Compiler (iasl.exe)

+#########################################################
###########################
+#   VS2019           - Microsoft Visual Studio 2017 professional Edition with
Intel ASL
+*_VS2019_*_*_FAMILY        = MSFT
+*_VS2019_*_*_DLL           = DEF(VS2019_BIN_HOST)
+
+*_VS2019_*_MAKE_PATH       = DEF(VS2019_BIN_HOST)\nmake.exe
+*_VS2019_*_MAKE_FLAG       = /nologo
+*_VS2019_*_RC_PATH         = DEF(WINSDK10_BIN)\rc.exe
+
+*_VS2019_*_MAKE_FLAGS      = /nologo
+*_VS2019_*_SLINK_FLAGS     = /NOLOGO /LTCG
+*_VS2019_*_APP_FLAGS       = /nologo /E /TC
+*_VS2019_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
+*_VS2019_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE
/FI$(MODULE_NAME)StrDefs.h
+*_VS2019_*_DLINK2_FLAGS    = /WHOLEARCHIVE
+*_VS2019_*_ASM16_PATH      = DEF(VS2019_BIN_IA32)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2019_*_ASL_PATH        = DEF(WIN_IASL_BIN)
+*_VS2019_*_ASL_FLAGS       = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_VS2019_*_ASL_OUTFLAGS    = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_VS2019_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
+*_VS2019_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
+*_VS2019_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2019_IA32_CC_PATH      = DEF(VS2019_BIN_IA32)\cl.exe
+*_VS2019_IA32_VFRPP_PATH   = DEF(VS2019_BIN_IA32)\cl.exe
+*_VS2019_IA32_ASLCC_PATH   = DEF(VS2019_BIN_IA32)\cl.exe
+*_VS2019_IA32_ASLPP_PATH   = DEF(VS2019_BIN_IA32)\cl.exe
+*_VS2019_IA32_SLINK_PATH   = DEF(VS2019_BIN_IA32)\lib.exe
+*_VS2019_IA32_DLINK_PATH   = DEF(VS2019_BIN_IA32)\link.exe
+*_VS2019_IA32_ASLDLINK_PATH= DEF(VS2019_BIN_IA32)\link.exe
+*_VS2019_IA32_APP_PATH     = DEF(VS2019_BIN_IA32)\cl.exe
+*_VS2019_IA32_PP_PATH      = DEF(VS2019_BIN_IA32)\cl.exe
+*_VS2019_IA32_ASM_PATH     = DEF(VS2019_BIN_IA32)\ml.exe
+
+      *_VS2019_IA32_MAKE_FLAGS  = /nologo
+  DEBUG_VS2019_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4
/Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7
/Gw /MP
+RELEASE_VS2019_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4
/Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP
+NOOPT_VS2019_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4
/Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP
+
+  DEBUG_VS2019_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
/Zi
+RELEASE_VS2019_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
+NOOPT_VS2019_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd
/Zi
+
+  DEBUG_VS2019_IA32_NASM_FLAGS  = -Ox -f win32 -g
+RELEASE_VS2019_IA32_NASM_FLAGS  = -Ox -f win32
+NOOPT_VS2019_IA32_NASM_FLAGS    = -O0 -f win32 -g
+
+  DEBUG_VS2019_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB
/IGNORE:4001
+/OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
/SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL
/ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
/SAFESEH:NO /BASE:0 /DRIVER /DEBUG
RELEASE_VS2019_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB
/IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32
/SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL
/ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
/SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
+NOOPT_VS2019_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB
/IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
/SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL
/ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
/SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# X64 definitions
+##################
+*_VS2019_X64_CC_PATH       = DEF(VS2019_BIN_X64)\cl.exe
+*_VS2019_X64_PP_PATH       = DEF(VS2019_BIN_X64)\cl.exe
+*_VS2019_X64_APP_PATH      = DEF(VS2019_BIN_X64)\cl.exe
+*_VS2019_X64_VFRPP_PATH    = DEF(VS2019_BIN_X64)\cl.exe
+*_VS2019_X64_ASLCC_PATH    = DEF(VS2019_BIN_X64)\cl.exe
+*_VS2019_X64_ASLPP_PATH    = DEF(VS2019_BIN_X64)\cl.exe
+*_VS2019_X64_ASM_PATH      = DEF(VS2019_BIN_X64)\ml64.exe
+*_VS2019_X64_SLINK_PATH    = DEF(VS2019_BIN_X64)\lib.exe
+*_VS2019_X64_DLINK_PATH    = DEF(VS2019_BIN_X64)\link.exe
+*_VS2019_X64_ASLDLINK_PATH = DEF(VS2019_BIN_X64)\link.exe
+
+  DEBUG_VS2019_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768
/D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /MP
+RELEASE_VS2019_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768
/D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP
+NOOPT_VS2019_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768
/D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP
+
+  DEBUG_VS2019_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2019_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
+NOOPT_VS2019_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
+
+  DEBUG_VS2019_X64_NASM_FLAGS   = -Ox -f win64 -g
+RELEASE_VS2019_X64_NASM_FLAGS   = -Ox -f win64
+NOOPT_VS2019_X64_NASM_FLAGS     = -O0 -f win64 -g
+
+  DEBUG_VS2019_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB
/IGNORE:4001
+/IGNORE:4281 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
/SECTION:.pdata,D /Machine:X64 /LTCG /DLL
/ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
/SAFESEH:NO /BASE:0 /DRIVER /DEBUG RELEASE_VS2019_X64_DLINK_FLAGS
= /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /IGNORE:4254
/OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
/SECTION:.pdata,D /Machine:X64 /LTCG /DLL
/ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
/SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
+NOOPT_VS2019_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB
/IGNORE:4001 /IGNORE:4281 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32
/SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL
/ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
/SAFESEH:NO /BASE:0 /DRIVER /DEBUG

Why are there no ARM, AARCH64 and EBC definitions, like there are for
VS2017?

I am afraid there are some of us here that are actually mad enough to want
to build ARM and AARCH64 EDK2 projects using Visual Studio... ;)

If it helps, I can confirm that simply copy/pasting the VS2017 sections and
replacing all of the "VS2017" instances with "VS2019" appears to work just
fine when compiling my ARM/AARCH64 projects. I haven't tested EBC, but I
expect the same to be true.

Apart from that, both patches look good to me.

Regards,

/Pete

+

##########################################################
##########################
   # GCC Common


##########################################################
############
##############







-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#47274): https://edk2.groups.io/g/devel/message/47274
Mute This Topic: https://groups.io/mt/34100573/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to