Re: [edk2-devel] [PATCH 1/2] Add VS2019 Toolchain def
S2019_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 Cc: Chan, Amy ; Feng, Bob C ; Gao, Liming 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 Cc: Bob Feng Cc: Liming Gao Signed-off-by: Ching JenX Cheng --- 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(WIN
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 Cc: Bob Feng Cc: Liming Gao Signed-off-by: Ching JenX Cheng --- 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
[edk2-devel] [PATCH 1/2] Add VS2019 Toolchain def
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 Cc: Bob Feng Cc: Liming Gao Signed-off-by: Ching JenX Cheng --- 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) # 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