Re: [edk2-devel] [PATCH 1/2] Add VS2019 Toolchain def

2019-09-16 Thread Pete Batard
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

2019-09-11 Thread Pete Batard

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

2019-09-11 Thread Cheng, Ching JenX
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