public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF
@ 2023-04-19 19:57 Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 01/13] BaseTools,CryptoPkg: Update CLANGDWARF, remove CLANG 35/38 toolchains Rebecca Cran
                   ` (13 more replies)
  0 siblings, 14 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser

Update the toolchain definitions:

- Delete the CLANG35 and CLANG38 toolchains, and replace CLANG38 with
  CLANGDWARF, updating it to support ARM and AARCH64 in addition to X64
and IA32.

- Mark GCC48, GCC49 and GCC5 as deprecated.

- Add GCC and GCCNOLTO toolchain definitions.

- Remove VS2008, VS2010, VS2012 and VS2013.

- Remove EBC compiler definitions. Full removal of EBC support from the
  various packages etc. will be done in a follow-up patch series.

- Remove unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS definitions.

- Remove unused CYGWIN_ definitions.

Personal GitHub PR: https://github.com/tianocore/edk2/pull/4240
GitHub branch: https://github.com/bcran/edk2/tree/clangdwarf

Note: CI is now passing.

Changes from v1 to v2
=====================

- Added a commit to delete GCC48 and GCC49, rename GCC5 to GCC and
  update the flags for other toolchains to work with the new GCC
  definitions.

- Bumped VERSION from 2.00 to 3.00 to inform users that they should
  update their Conf/tools_def.txt.

Changes from v2 to v3
=====================

- Keep GCC48, GCC49 and GCC5 but mark them deprecated, including with
  warnings at the start and end of running a build.

- Dropped the commit fixing the IA32 build of UefiPayloadPkg, because it
  causes CI to fail due to building both IA32 and X64 at the same time:

  "Module built under multiple ARCHs [IA32, X64]. Not able to determine which output to put into flash for Module..."

- Added more information to the VERSION section in tools_def.template.

- Various fixes to the CLANGDWARF flags.

Changes from v3 to v4
=====================

- Use lld for -a ARM -t CLANGDWARF.

Rebecca Cran (13):
  BaseTools,CryptoPkg: Update CLANGDWARF, remove CLANG 35/38 toolchains
  BaseTools: Remove VS2008, 2010, 2012 and 2013 toolchain definitions
  BaseTools: Remove VS2008-VS2013 remnants
  MdePkg: Remove VS2008-VS2013 remnants
  edksetup.bat: Remove VS2008-VS2013 remnants
  BaseTools: Remove unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS defs
  BaseTools: Remove EBC (EFI Byte Code) compiler definitions
  BaseTools: Update VS toolchain descriptions in tools_def.txt.template
  BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains
  BaseTools: Only call LoadConfiguration once in build.py
  BaseTools: Add a deprecation warning for GCC48,GCC49,GCC5 to build.py
  BaseTools/Conf/tools_def.template: Add section for deprecated
    toolchains
  BaseTools/Conf/tools_def.template: Bump VERSION to 3.00

 UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc       |    2 ++
 IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc                     |    9 ++++++++-
 CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf             |    3 +--
 CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf              |    3 +--
 CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf          |    3 +--
 CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf              |    3 +--
 CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf              |    3 +--
 CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf |    3 +--
 CryptoPkg/Library/OpensslLib/OpensslLib.inf                 |    3 +--
 CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf            |    3 +--
 CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf           |    3 +--
 CryptoPkg/Library/OpensslLib/OpensslLibFull.inf             |    3 +--
 CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf        |    3 +--
 EmulatorPkg/Unix/Host/Host.inf                              |    2 ++
 MdePkg/Include/Ia32/ProcessorBind.h                         |    8 ++------
 MdePkg/Include/X64/ProcessorBind.h                          |    8 ++------
 BaseTools/Conf/tools_def.template                           | 1993
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------
 BaseTools/Scripts/SetVisualStudio.bat                       |   22 +---------------------
 BaseTools/Scripts/ShowEnvironment.bat                       |   44 --------------------------------------------
 BaseTools/Source/Python/build/build.py                      |   18 +++++++++++++++---
 BaseTools/get_vsvars.bat                                    |   13 -------------
 BaseTools/set_vsprefix_envs.bat                             |   64 ----------------------------------------------------------------
 BaseTools/toolsetup.bat                                     |   24 +-----------------------
 edksetup.bat                                                |    6 +-----
 24 files changed, 627 insertions(+), 1619 deletions(-)

-- 
2.37.2


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v4 01/13] BaseTools,CryptoPkg: Update CLANGDWARF, remove CLANG 35/38 toolchains
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 02/13] BaseTools: Remove VS2008, 2010, 2012 and 2013 toolchain definitions Rebecca Cran
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser

Update the CLANGDWARF toolchain definition in tools_def.template with the
settings from CLANG38, and delete the CLANG35 and CLANG38 toolchains.

The CLANG35 and CLANG38 toolchains were added for compatibility with
ARM's proprietary clang-based toolchain. Things have since moved on, and
with the latest clang version being 16.0.0, versions 3.5 and 3.9 are
obsolete and can be removed.

Update CryptoPkg: Add CLANGDWARF and remove CLANG35 and CLANG38 compiler flags

With the removal of CLANG35 and CLANG38 and the update of the CLANGDWARF
toolchain definition in Conf/tools_def.txt update the compiler flags in
BaseCryptLib and OpensslLib.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
---
 CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf             |   3 +--
 CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf              |   3 +--
 CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf          |   3 +--
 CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf              |   3 +--
 CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf              |   3 +--
 CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf |   3 +--
 CryptoPkg/Library/OpensslLib/OpensslLib.inf                 |   3 +--
 CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf            |   3 +--
 CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf           |   3 +--
 CryptoPkg/Library/OpensslLib/OpensslLibFull.inf             |   3 +--
 CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf        |   3 +--
 BaseTools/Conf/tools_def.template                           | 471 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 12 files changed, 200 insertions(+), 304 deletions(-)

diff --git a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
index 5be1724f0852..d99337a9ea39 100644
--- a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
@@ -110,8 +110,7 @@ [BuildOptions]
   #
   # suppress the following warnings so we do not break the build with warnings-as-errors:
   #
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99
-  GCC:*_CLANG38_*_CC_FLAGS = -std=c99
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
 
   XCODE:*_*_*_CC_FLAGS = -std=c99
diff --git a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
index 66261138a00b..5203941c75c1 100644
--- a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
@@ -97,8 +97,7 @@ [BuildOptions]
   #
   # suppress the following warnings so we do not break the build with warnings-as-errors:
   #
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99
-  GCC:*_CLANG38_*_CC_FLAGS = -std=c99
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
 
   XCODE:*_*_*_CC_FLAGS = -std=c99
diff --git a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
index 07dbc0e7a8bd..ea64d2aa72a9 100644
--- a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
@@ -106,8 +106,7 @@ [BuildOptions]
   #
   # suppress the following warnings so we do not break the build with warnings-as-errors:
   #
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99
-  GCC:*_CLANG38_*_CC_FLAGS = -std=c99
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
 
   XCODE:*_*_*_CC_FLAGS = -std=c99
diff --git a/CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf
index 4ad59b7bbc59..426cab2c5c8f 100644
--- a/CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf
@@ -81,8 +81,7 @@ [BuildOptions]
   #
   # suppress the following warnings so we do not break the build with warnings-as-errors:
   #
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99
-  GCC:*_CLANG38_*_CC_FLAGS = -std=c99
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
 
   XCODE:*_*_*_CC_FLAGS = -std=c99
diff --git a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
index ab1993087167..df345a8996e0 100644
--- a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
@@ -105,6 +105,5 @@ [BuildOptions]
 
   XCODE:*_*_*_CC_FLAGS = -mmmx -msse -std=c99
 
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99
-  GCC:*_CLANG38_*_CC_FLAGS = -std=c99
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
diff --git a/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf
index 80261794470f..1f0f11c22cc5 100644
--- a/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf
@@ -78,8 +78,7 @@ [BuildOptions]
   #
   # suppress the following warnings so we do not break the build with warnings-as-errors:
   #
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99
-  GCC:*_CLANG38_*_CC_FLAGS = -std=c99
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
 
   XCODE:*_*_*_CC_FLAGS = -std=c99
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLib.inf b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
index 86a00b1c4b2a..003e17cb8e17 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
@@ -639,8 +639,7 @@ [BuildOptions]
   GCC:*_*_AARCH64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-error=maybe-uninitialized -Wno-format -Wno-error=unused-but-set-variable -Wno-error=format
   GCC:*_*_RISCV64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-error=maybe-uninitialized -Wno-format -Wno-error=unused-but-set-variable
   GCC:*_*_LOONGARCH64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-error=maybe-uninitialized -Wno-format -Wno-error=unused-but-set-variable
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
-  GCC:*_CLANG38_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized -Wno-error=incompatible-pointer-types -Wno-error=pointer-sign -Wno-error=implicit-function-declaration -Wno-error=ignored-pragma-optimize
   # Revisit after switching to 3.0 branch
   GCC:*_GCC5_*_CC_FLAGS    = -Wno-unused-but-set-variable
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
index 2e4f95909b51..dded0b66806b 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
@@ -687,8 +687,7 @@ [BuildOptions]
   #
   GCC:*_*_IA32_CC_FLAGS    = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) -Wno-error=maybe-uninitialized -Wno-error=unused-but-set-variable
   GCC:*_*_X64_CC_FLAGS     = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) -Wno-error=maybe-uninitialized -Wno-error=format -Wno-format -Wno-error=unused-but-set-variable -DNO_MSABI_VA_FUNCS
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
-  GCC:*_CLANG38_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized -Wno-error=incompatible-pointer-types -Wno-error=pointer-sign -Wno-error=implicit-function-declaration -Wno-error=ignored-pragma-optimize
   # Revisit after switching to 3.0 branch
   GCC:*_GCC5_*_CC_FLAGS    = -Wno-unused-but-set-variable
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
index 637d4769e8ca..523d766f6be0 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
@@ -589,8 +589,7 @@ [BuildOptions]
   GCC:*_*_AARCH64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-error=maybe-uninitialized -Wno-format -Wno-error=unused-but-set-variable -Wno-error=format
   GCC:*_*_RISCV64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-error=maybe-uninitialized -Wno-format -Wno-error=unused-but-set-variable
   GCC:*_*_LOONGARCH64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-error=maybe-uninitialized -Wno-format -Wno-error=unused-but-set-variable
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
-  GCC:*_CLANG38_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized -Wno-error=incompatible-pointer-types -Wno-error=pointer-sign -Wno-error=implicit-function-declaration -Wno-error=ignored-pragma-optimize
   # Revisit after switching to 3.0 branch
   GCC:*_GCC5_*_CC_FLAGS    = -Wno-unused-but-set-variable
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
index c5f90221fc66..9baf0cbfb42c 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
@@ -694,8 +694,7 @@ [BuildOptions]
   GCC:*_*_AARCH64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-error=maybe-uninitialized -Wno-format -Wno-error=unused-but-set-variable -Wno-error=format
   GCC:*_*_RISCV64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-error=maybe-uninitialized -Wno-format -Wno-error=unused-but-set-variable
   GCC:*_*_LOONGARCH64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-error=maybe-uninitialized -Wno-format -Wno-error=unused-but-set-variable
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
-  GCC:*_CLANG38_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized -Wno-error=incompatible-pointer-types -Wno-error=pointer-sign -Wno-error=implicit-function-declaration -Wno-error=ignored-pragma-optimize
   # Revisit after switching to 3.0 branch
   GCC:*_GCC5_*_CC_FLAGS    = -Wno-unused-but-set-variable
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
index 076295244a2a..beb8e6986a4a 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
@@ -742,8 +742,7 @@ [BuildOptions]
   #
   GCC:*_*_IA32_CC_FLAGS    = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) -Wno-error=maybe-uninitialized -Wno-error=unused-but-set-variable
   GCC:*_*_X64_CC_FLAGS     = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) -Wno-error=maybe-uninitialized -Wno-error=format -Wno-format -Wno-error=unused-but-set-variable -DNO_MSABI_VA_FUNCS
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
-  GCC:*_CLANG38_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=uninitialized -Wno-error=incompatible-pointer-types -Wno-error=pointer-sign -Wno-error=implicit-function-declaration -Wno-error=ignored-pragma-optimize
   # Revisit after switching to 3.0 branch
   GCC:*_GCC5_*_CC_FLAGS    = -Wno-unused-but-set-variable
diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 9a5c11f6a385..1ef74ba86cd8 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -273,32 +273,21 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #                             Required to build platforms or ACPI tables:
 #                               Intel(r) ACPI Compiler from
 #                               https://acpica.org/downloads
-#
-#   CLANG35     -Linux,Windows-  Requires:
-#                             Clang v3.5 or later, and GNU binutils targeting aarch64-linux-gnu or arm-linux-gnueabi
-#                        Optional:
-#                             Required to build platforms or ACPI tables:
-#                               Intel(r) ACPI Compiler from
-#                               https://acpica.org/downloads
-#   CLANG38  -Linux-  Requires:
-#                             Clang v3.8, LLVMgold plugin and GNU binutils 2.26 targeting x86_64-linux-gnu, aarch64-linux-gnu or arm-linux-gnueabi
-#                             Clang v3.9 or later, LLVMgold plugin and GNU binutils 2.28 targeting x86_64-linux-gnu, aarch64-linux-gnu or arm-linux-gnueabi
+#   CLANGDWARF  -Linux-  Requires:
+#                             Clang 9 or above, and GNU binutils targeting x86_64-linux-gnu, aaarch64-linux-gnu or arm-linux-gnuaebi
 #                        Optional:
 #                             Required to build platforms or ACPI tables:
 #                               Intel(r) ACPI Compiler from
 #                               https://acpica.org/downloads
+#                             Required to compile nasm source:
+#                               nasm compiler from
+#                               NASM -- https://nasm.us
 #   CLANGPDB -Linux, Windows, Mac-  Requires:
 #                             Clang 9 or above from http://releases.llvm.org/
 #                        Optional:
 #                             Required to compile nasm source:
 #                               nasm compiler from
 #                               NASM -- http://www.nasm.us/
-#   CLANGDWARF -Linux, Windows, Mac-  Requires:
-#                             Clang 9 or above from http://releases.llvm.org/
-#                        Optional:
-#                             Required to compile nasm source:
-#                               nasm compiler from
-#                               NASM -- http://www.nasm.us/
 #   VS2008x86   -win64-  Requires:
 #                             Microsoft Visual Studio 2008 (x86)
 #                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
@@ -2480,273 +2469,191 @@ RELEASE_GCC5_LOONGARCH64_CC_FLAGS       = DEF(GCC5_LOONGARCH64_CC_FLAGS) -Wno-un
 
 ####################################################################################
 #
-# CLANG35   - This configuration is used to compile under Linux to produce
-#             PE/COFF binaries using the clang compiler and assembler (v3.5 and up)
-#             and GNU linker
+# Clang - This configuration is used to compile under Linux to produce
+#  PE/COFF binaries using LLVM/Clang with Link Time Optimization enabled
 #
 ####################################################################################
-*_CLANG35_*_*_FAMILY             = GCC
+*_CLANGDWARF_*_*_FAMILY                = GCC
+*_CLANGDWARF_*_MAKE_PATH               = make
+*_CLANGDWARF_*_*_DLL                   = ENV(CLANGDWARF_DLL)
+*_CLANGDWARF_*_ASL_PATH                = DEF(UNIX_IASL_BIN)
 
-*_CLANG35_*_MAKE_PATH            = make
-*_CLANG35_*_*_DLL                = ENV(CLANG35_DLL)
-*_CLANG35_*_ASL_PATH             = DEF(UNIX_IASL_BIN)
+*_CLANGDWARF_*_APP_FLAGS               =
+*_CLANGDWARF_*_ASL_FLAGS               = DEF(IASL_FLAGS)
+*_CLANGDWARF_*_ASL_OUTFLAGS            = DEF(IASL_OUTFLAGS)
+*_CLANGDWARF_*_DEPS_FLAGS              = DEF(GCC_DEPS_FLAGS)
+DEFINE CLANGDWARF_IA32_PREFIX          = ENV(CLANGDWARF_BIN)
+DEFINE CLANGDWARF_X64_PREFIX           = ENV(CLANGDWARF_BIN)
 
-*_CLANG35_*_PP_FLAGS             = DEF(GCC_PP_FLAGS)
-*_CLANG35_*_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)
-*_CLANG35_*_APP_FLAGS            =
-*_CLANG35_*_ASL_FLAGS            = DEF(IASL_FLAGS)
-*_CLANG35_*_ASL_OUTFLAGS         = DEF(IASL_OUTFLAGS)
-*_CLANG35_*_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)
+DEFINE CLANGDWARF_IA32_TARGET          = -target i686-pc-linux-gnu
+DEFINE CLANGDWARF_X64_TARGET           = -target x86_64-pc-linux-gnu
 
-*_CLANG35_*_CC_PATH              = ENV(CLANG35_BIN)clang
-*_CLANG35_*_ASM_PATH             = ENV(CLANG35_BIN)clang
-*_CLANG35_*_PP_PATH              = ENV(CLANG35_BIN)clang
-*_CLANG35_*_VFRPP_PATH           = ENV(CLANG35_BIN)clang
-*_CLANG35_*_ASLCC_PATH           = ENV(CLANG35_BIN)clang
-*_CLANG35_*_ASLPP_PATH           = ENV(CLANG35_BIN)clang
-*_CLANG35_*_DLINK_PATH           = ENV(CLANG35_BIN)clang
-*_CLANG35_*_ASLDLINK_PATH        = ENV(CLANG35_BIN)clang
-*_CLANG35_*_DEPS_FLAGS           = DEF(GCC_DEPS_FLAGS)
-
-DEFINE CLANG35_ARM_TARGET        = -target arm-linux-gnueabi
-DEFINE CLANG35_AARCH64_TARGET    = -target aarch64-linux-gnu
-
-DEFINE CLANG35_WARNING_OVERRIDES = -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empty-body -Wno-unknown-warning-option -Wno-unused-but-set-variable -Wno-unused-const-variable
-DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES)
-DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANG35_AARCH64_TARGET) -mcmodel=small DEF(CLANG35_WARNING_OVERRIDES)
-
-##################
-# CLANG35 ARM definitions
-##################
-*_CLANG35_ARM_SLINK_PATH         = ENV(CLANG35_ARM_PREFIX)ar
-*_CLANG35_ARM_RC_PATH            = ENV(CLANG35_ARM_PREFIX)objcopy
-
-*_CLANG35_ARM_ASLCC_FLAGS        = DEF(GCC_ASLCC_FLAGS)
-*_CLANG35_ARM_ASLDLINK_FLAGS     = DEF(CLANG35_ARM_TARGET) DEF(GCC_ARM_ASLDLINK_FLAGS)
-*_CLANG35_ARM_ASM_FLAGS          = DEF(GCC_ASM_FLAGS) DEF(CLANG35_ARM_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments
-*_CLANG35_ARM_DLINK_FLAGS        = DEF(CLANG35_ARM_TARGET) DEF(GCC_ARM_DLINK_FLAGS)
-*_CLANG35_ARM_DLINK2_FLAGS       = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x220
-*_CLANG35_ARM_PLATFORM_FLAGS     = -march=armv7-a -mkernel -Qunused-arguments
-*_CLANG35_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS) DEF(CLANG35_ARM_TARGET) $(PLATFORM_FLAGS)
-*_CLANG35_ARM_RC_FLAGS           = DEF(GCC_ARM_RC_FLAGS)
-*_CLANG35_ARM_VFRPP_FLAGS        = DEF(GCC_VFRPP_FLAGS) DEF(CLANG35_ARM_TARGET) $(PLATFORM_FLAGS)
-*_CLANG35_ARM_ASLPP_FLAGS        = DEF(GCC_ASLPP_FLAGS) DEF(CLANG35_ARM_TARGET)
-*_CLANG35_ARM_CC_XIPFLAGS        = DEF(GCC_ARM_CC_XIPFLAGS)
-
-  DEBUG_CLANG35_ARM_CC_FLAGS     = DEF(CLANG35_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -O1
-RELEASE_CLANG35_ARM_CC_FLAGS     = DEF(CLANG35_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -Oz
-  NOOPT_CLANG35_ARM_CC_FLAGS     = DEF(CLANG35_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -O0
-
-##################
-# CLANG35 AARCH64 definitions
-##################
-*_CLANG35_AARCH64_SLINK_PATH     = ENV(CLANG35_AARCH64_PREFIX)ar
-*_CLANG35_AARCH64_RC_PATH        = ENV(CLANG35_AARCH64_PREFIX)objcopy
-
-*_CLANG35_AARCH64_ASLCC_FLAGS    = DEF(GCC_ASLCC_FLAGS)
-*_CLANG35_AARCH64_ASLDLINK_FLAGS = DEF(CLANG35_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS)
-*_CLANG35_AARCH64_ASM_FLAGS      = DEF(GCC_ASM_FLAGS) DEF(CLANG35_AARCH64_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments
-*_CLANG35_AARCH64_DLINK_FLAGS    = DEF(CLANG35_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000
-*_CLANG35_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
-*_CLANG35_AARCH64_DLINK2_FLAGS   = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228
-*_CLANG35_AARCH64_PLATFORM_FLAGS =
-*_CLANG35_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS) DEF(CLANG35_AARCH64_TARGET) $(PLATFORM_FLAGS)
-*_CLANG35_AARCH64_RC_FLAGS       = DEF(GCC_AARCH64_RC_FLAGS)
-*_CLANG35_AARCH64_VFRPP_FLAGS    = DEF(GCC_VFRPP_FLAGS) DEF(CLANG35_AARCH64_TARGET) $(PLATFORM_FLAGS)
-*_CLANG35_AARCH64_ASLPP_FLAGS    = DEF(GCC_ASLPP_FLAGS) DEF(CLANG35_AARCH64_TARGET)
-*_CLANG35_AARCH64_CC_XIPFLAGS    = DEF(GCC_AARCH64_CC_XIPFLAGS)
-
-  DEBUG_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -O1
-RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -Oz
-  NOOPT_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -O0
-
-####################################################################################
-#
-# Clang 3.8 - This configuration is used to compile under Linux to produce
-#  PE/COFF binaries using LLVM/Clang 3.8 with Link Time Optimization enabled
-#
-####################################################################################
-*_CLANG38_*_*_FAMILY                = GCC
-*_CLANG38_*_MAKE_PATH               = make
-*_CLANG38_*_*_DLL                   = ENV(CLANG38_DLL)
-*_CLANG38_*_ASL_PATH                = DEF(UNIX_IASL_BIN)
-
-*_CLANG38_*_APP_FLAGS               =
-*_CLANG38_*_ASL_FLAGS               = DEF(IASL_FLAGS)
-*_CLANG38_*_ASL_OUTFLAGS            = DEF(IASL_OUTFLAGS)
-*_CLANG38_*_DEPS_FLAGS              = DEF(GCC_DEPS_FLAGS)
-DEFINE CLANG38_IA32_PREFIX          = ENV(CLANG38_BIN)
-DEFINE CLANG38_X64_PREFIX           = ENV(CLANG38_BIN)
-
-DEFINE CLANG38_IA32_TARGET          = -target i686-pc-linux-gnu
-DEFINE CLANG38_X64_TARGET           = -target x86_64-pc-linux-gnu
-
-DEFINE CLANG38_WARNING_OVERRIDES    = -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empty-body -Wno-unused-const-variable -Wno-varargs -Wno-unknown-warning-option -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-unaligned-access
-DEFINE CLANG38_ALL_CC_FLAGS         = DEF(GCC48_ALL_CC_FLAGS) DEF(CLANG38_WARNING_OVERRIDES) -fno-stack-protector -mms-bitfields -Wno-address -Wno-shift-negative-value -Wno-unknown-pragmas -Wno-incompatible-library-redeclaration -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -msoft-float -mno-implicit-float  -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -funsigned-char -fno-ms-extensions -Wno-null-dereference
+DEFINE CLANGDWARF_WARNING_OVERRIDES    = -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empty-body -Wno-unused-const-variable -Wno-varargs -Wno-unknown-warning-option -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-unaligned-access
+DEFINE CLANGDWARF_ALL_CC_FLAGS         = DEF(GCC48_ALL_CC_FLAGS) DEF(CLANGDWARF_WARNING_OVERRIDES) -fno-stack-protector -mms-bitfields -Wno-address -Wno-shift-negative-value -Wno-unknown-pragmas -Wno-incompatible-library-redeclaration -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -msoft-float -mno-implicit-float  -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -funsigned-char -fno-ms-extensions -Wno-null-dereference
 
 ###########################
-# CLANG38 IA32 definitions
+# CLANGDWARF IA32 definitions
 ###########################
-*_CLANG38_IA32_OBJCOPY_PATH         = objcopy
-*_CLANG38_IA32_CC_PATH              = DEF(CLANG38_IA32_PREFIX)clang
-*_CLANG38_IA32_SLINK_PATH           = DEF(CLANG38_IA32_PREFIX)llvm-ar
-*_CLANG38_IA32_DLINK_PATH           = DEF(CLANG38_IA32_PREFIX)clang
-*_CLANG38_IA32_ASLDLINK_PATH        = DEF(CLANG38_IA32_PREFIX)clang
-*_CLANG38_IA32_ASM_PATH             = DEF(CLANG38_IA32_PREFIX)clang
-*_CLANG38_IA32_PP_PATH              = DEF(CLANG38_IA32_PREFIX)clang
-*_CLANG38_IA32_VFRPP_PATH           = DEF(CLANG38_IA32_PREFIX)clang
-*_CLANG38_IA32_ASLCC_PATH           = DEF(CLANG38_IA32_PREFIX)clang
-*_CLANG38_IA32_ASLPP_PATH           = DEF(CLANG38_IA32_PREFIX)clang
-*_CLANG38_IA32_RC_PATH              = objcopy
-
-*_CLANG38_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto DEF(CLANG38_IA32_TARGET)
-*_CLANG38_IA32_ASLDLINK_FLAGS       = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386
-*_CLANG38_IA32_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m32 -march=i386 DEF(CLANG38_IA32_TARGET)
-*_CLANG38_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
-*_CLANG38_IA32_OBJCOPY_FLAGS        =
-*_CLANG38_IA32_NASM_FLAGS           = -f elf32
-*_CLANG38_IA32_PP_FLAGS             = DEF(GCC_PP_FLAGS) DEF(CLANG38_IA32_TARGET)
-*_CLANG38_IA32_ASLPP_FLAGS          = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_IA32_TARGET)
-*_CLANG38_IA32_VFRPP_FLAGS          = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_IA32_TARGET)
-
-DEBUG_CLANG38_IA32_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double
-DEBUG_CLANG38_IA32_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32-i386
-DEBUG_CLANG38_IA32_DLINK2_FLAGS     = DEF(GCC5_IA32_DLINK2_FLAGS) -O3
-
-RELEASE_CLANG38_IA32_CC_FLAGS       = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double
-RELEASE_CLANG38_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32-i386
-RELEASE_CLANG38_IA32_DLINK2_FLAGS   = DEF(GCC5_IA32_DLINK2_FLAGS) -O3
-
-NOOPT_CLANG38_IA32_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double
-NOOPT_CLANG38_IA32_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 -Wl,--oformat=elf32-i386
-NOOPT_CLANG38_IA32_DLINK2_FLAGS     = DEF(GCC5_IA32_DLINK2_FLAGS) -O0
+*_CLANGDWARF_IA32_OBJCOPY_PATH         = objcopy
+*_CLANGDWARF_IA32_CC_PATH              = DEF(CLANGDWARF_IA32_PREFIX)clang
+*_CLANGDWARF_IA32_SLINK_PATH           = DEF(CLANGDWARF_IA32_PREFIX)llvm-ar
+*_CLANGDWARF_IA32_DLINK_PATH           = DEF(CLANGDWARF_IA32_PREFIX)clang
+*_CLANGDWARF_IA32_ASLDLINK_PATH        = DEF(CLANGDWARF_IA32_PREFIX)clang
+*_CLANGDWARF_IA32_ASM_PATH             = DEF(CLANGDWARF_IA32_PREFIX)clang
+*_CLANGDWARF_IA32_PP_PATH              = DEF(CLANGDWARF_IA32_PREFIX)clang
+*_CLANGDWARF_IA32_VFRPP_PATH           = DEF(CLANGDWARF_IA32_PREFIX)clang
+*_CLANGDWARF_IA32_ASLCC_PATH           = DEF(CLANGDWARF_IA32_PREFIX)clang
+*_CLANGDWARF_IA32_ASLPP_PATH           = DEF(CLANGDWARF_IA32_PREFIX)clang
+*_CLANGDWARF_IA32_RC_PATH              = objcopy
+
+*_CLANGDWARF_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto DEF(CLANGDWARF_IA32_TARGET)
+*_CLANGDWARF_IA32_ASLDLINK_FLAGS       = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386
+*_CLANGDWARF_IA32_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m32 -march=i386 DEF(CLANGDWARF_IA32_TARGET)
+*_CLANGDWARF_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
+*_CLANGDWARF_IA32_OBJCOPY_FLAGS        =
+*_CLANGDWARF_IA32_NASM_FLAGS           = -f elf32
+*_CLANGDWARF_IA32_PP_FLAGS             = DEF(GCC_PP_FLAGS) DEF(CLANGDWARF_IA32_TARGET)
+*_CLANGDWARF_IA32_ASLPP_FLAGS          = DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWARF_IA32_TARGET)
+*_CLANGDWARF_IA32_VFRPP_FLAGS          = DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWARF_IA32_TARGET)
+
+DEBUG_CLANGDWARF_IA32_CC_FLAGS         = DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANGDWARF_IA32_TARGET) -g -malign-double
+DEBUG_CLANGDWARF_IA32_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32-i386
+DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS     = DEF(GCC5_IA32_DLINK2_FLAGS) -O3
+
+RELEASE_CLANGDWARF_IA32_CC_FLAGS       = DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANGDWARF_IA32_TARGET) -malign-double
+RELEASE_CLANGDWARF_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32-i386
+RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS   = DEF(GCC5_IA32_DLINK2_FLAGS) -O3
+
+NOOPT_CLANGDWARF_IA32_CC_FLAGS         = DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 -O0 -march=i586 DEF(CLANGDWARF_IA32_TARGET) -g -malign-double
+NOOPT_CLANGDWARF_IA32_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 -Wl,--oformat=elf32-i386
+NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS     = DEF(GCC5_IA32_DLINK2_FLAGS) -O0
 
 ##########################
-# CLANG38 X64 definitions
+# CLANGDWARF X64 definitions
 ##########################
-*_CLANG38_X64_OBJCOPY_PATH         = objcopy
-*_CLANG38_X64_CC_PATH              = DEF(CLANG38_X64_PREFIX)clang
-*_CLANG38_X64_SLINK_PATH           = DEF(CLANG38_X64_PREFIX)llvm-ar
-*_CLANG38_X64_DLINK_PATH           = DEF(CLANG38_X64_PREFIX)clang
-*_CLANG38_X64_ASLDLINK_PATH        = DEF(CLANG38_X64_PREFIX)clang
-*_CLANG38_X64_ASM_PATH             = DEF(CLANG38_X64_PREFIX)clang
-*_CLANG38_X64_PP_PATH              = DEF(CLANG38_X64_PREFIX)clang
-*_CLANG38_X64_VFRPP_PATH           = DEF(CLANG38_X64_PREFIX)clang
-*_CLANG38_X64_ASLCC_PATH           = DEF(CLANG38_X64_PREFIX)clang
-*_CLANG38_X64_ASLPP_PATH           = DEF(CLANG38_X64_PREFIX)clang
-*_CLANG38_X64_RC_PATH              = objcopy
-
-*_CLANG38_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto DEF(CLANG38_X64_TARGET)
-*_CLANG38_X64_ASLDLINK_FLAGS       = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
-*_CLANG38_X64_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m64 DEF(CLANG38_X64_TARGET)
-*_CLANG38_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
-*_CLANG38_X64_OBJCOPY_FLAGS        =
-*_CLANG38_X64_NASM_FLAGS           = -f elf64
-*_CLANG38_X64_PP_FLAGS             = DEF(GCC_PP_FLAGS) DEF(CLANG38_X64_TARGET)
-*_CLANG38_X64_ASLPP_FLAGS          = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_X64_TARGET)
-*_CLANG38_X64_VFRPP_FLAGS          = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_X64_TARGET)
-
-DEBUG_CLANG38_X64_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANG38_X64_TARGET) -g
-DEBUG_CLANG38_X64_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small
-DEBUG_CLANG38_X64_DLINK2_FLAGS     = DEF(GCC5_X64_DLINK2_FLAGS) -O3
-
-RELEASE_CLANG38_X64_CC_FLAGS       = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANG38_X64_TARGET)
-RELEASE_CLANG38_X64_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small
-RELEASE_CLANG38_X64_DLINK2_FLAGS   = DEF(GCC5_X64_DLINK2_FLAGS) -O3
-
-NOOPT_CLANG38_X64_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -O0 DEF(CLANG38_X64_TARGET) -g
-NOOPT_CLANG38_X64_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small
-NOOPT_CLANG38_X64_DLINK2_FLAGS     = DEF(GCC5_X64_DLINK2_FLAGS) -O0
+*_CLANGDWARF_X64_OBJCOPY_PATH         = objcopy
+*_CLANGDWARF_X64_CC_PATH              = DEF(CLANGDWARF_X64_PREFIX)clang
+*_CLANGDWARF_X64_SLINK_PATH           = DEF(CLANGDWARF_X64_PREFIX)llvm-ar
+*_CLANGDWARF_X64_DLINK_PATH           = DEF(CLANGDWARF_X64_PREFIX)clang
+*_CLANGDWARF_X64_ASLDLINK_PATH        = DEF(CLANGDWARF_X64_PREFIX)clang
+*_CLANGDWARF_X64_ASM_PATH             = DEF(CLANGDWARF_X64_PREFIX)clang
+*_CLANGDWARF_X64_PP_PATH              = DEF(CLANGDWARF_X64_PREFIX)clang
+*_CLANGDWARF_X64_VFRPP_PATH           = DEF(CLANGDWARF_X64_PREFIX)clang
+*_CLANGDWARF_X64_ASLCC_PATH           = DEF(CLANGDWARF_X64_PREFIX)clang
+*_CLANGDWARF_X64_ASLPP_PATH           = DEF(CLANGDWARF_X64_PREFIX)clang
+*_CLANGDWARF_X64_RC_PATH              = objcopy
+
+*_CLANGDWARF_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto DEF(CLANGDWARF_X64_TARGET)
+*_CLANGDWARF_X64_ASLDLINK_FLAGS       = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
+*_CLANGDWARF_X64_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m64 DEF(CLANGDWARF_X64_TARGET)
+*_CLANGDWARF_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
+*_CLANGDWARF_X64_OBJCOPY_FLAGS        =
+*_CLANGDWARF_X64_NASM_FLAGS           = -f elf64
+*_CLANGDWARF_X64_PP_FLAGS             = DEF(GCC_PP_FLAGS) DEF(CLANGDWARF_X64_TARGET)
+*_CLANGDWARF_X64_ASLPP_FLAGS          = DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWARF_X64_TARGET)
+*_CLANGDWARF_X64_VFRPP_FLAGS          = DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWARF_X64_TARGET)
+
+DEBUG_CLANGDWARF_X64_CC_FLAGS         = DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANGDWARF_X64_TARGET) -g
+DEBUG_CLANGDWARF_X64_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small
+DEBUG_CLANGDWARF_X64_DLINK2_FLAGS     = DEF(GCC5_X64_DLINK2_FLAGS) -O3
+
+RELEASE_CLANGDWARF_X64_CC_FLAGS       = DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANGDWARF_X64_TARGET)
+RELEASE_CLANGDWARF_X64_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small -fuse-ld=lld
+RELEASE_CLANGDWARF_X64_DLINK2_FLAGS   = DEF(GCC5_X64_DLINK2_FLAGS) -O3 -fuse-ld=lld
+
+NOOPT_CLANGDWARF_X64_CC_FLAGS         = DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -O0 DEF(CLANGDWARF_X64_TARGET) -g
+NOOPT_CLANGDWARF_X64_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-O0 -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small
+NOOPT_CLANGDWARF_X64_DLINK2_FLAGS     = DEF(GCC5_X64_DLINK2_FLAGS) -O0
 
 ##################
-# CLANG38 ARM definitions
+# CLANGDWARF ARM definitions
 ##################
-DEFINE CLANG38_ARM_TARGET        = -target arm-linux-gnueabi
-DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-movt
-DEFINE CLANG38_ARM_DLINK_FLAGS   = DEF(CLANG38_ARM_TARGET) DEF(GCC_ARM_DLINK_FLAGS)
-
-*_CLANG38_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS)
-*_CLANG38_ARM_ASLCC_FLAGS        = DEF(GCC_ASLCC_FLAGS)
-*_CLANG38_ARM_APP_FLAGS          =
-*_CLANG38_ARM_ASL_FLAGS          = DEF(IASL_FLAGS)
-*_CLANG38_ARM_ASL_OUTFLAGS       = DEF(IASL_OUTFLAGS)
-*_CLANG38_ARM_DTCPP_FLAGS        = DEF(GCC_DTCPP_FLAGS)
-
-*_CLANG38_ARM_CC_PATH            = ENV(CLANG38_BIN)clang
-*_CLANG38_ARM_ASM_PATH           = ENV(CLANG38_BIN)clang
-*_CLANG38_ARM_PP_PATH            = ENV(CLANG38_BIN)clang
-*_CLANG38_ARM_VFRPP_PATH         = ENV(CLANG38_BIN)clang
-*_CLANG38_ARM_ASLCC_PATH         = ENV(CLANG38_BIN)clang
-*_CLANG38_ARM_ASLPP_PATH         = ENV(CLANG38_BIN)clang
-*_CLANG38_ARM_DLINK_PATH         = ENV(CLANG38_BIN)clang
-*_CLANG38_ARM_ASLDLINK_PATH      = ENV(CLANG38_BIN)clang
-
-*_CLANG38_ARM_SLINK_PATH         = ENV(CLANG38_BIN)llvm-ar
-*_CLANG38_ARM_RC_PATH            = ENV(CLANG38_ARM_PREFIX)objcopy
-
-*_CLANG38_ARM_ASLCC_FLAGS        = DEF(GCC_ASLCC_FLAGS) -fno-lto
-*_CLANG38_ARM_ASLDLINK_FLAGS     = DEF(CLANG38_ARM_TARGET) DEF(GCC_ARM_ASLDLINK_FLAGS)
-*_CLANG38_ARM_ASM_FLAGS          = DEF(GCC_ASM_FLAGS) DEF(CLANG38_ARM_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments
-*_CLANG38_ARM_DLINK2_FLAGS       = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x220
-*_CLANG38_ARM_PLATFORM_FLAGS     = -march=armv7-a
-*_CLANG38_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS) DEF(CLANG38_ARM_TARGET) $(PLATFORM_FLAGS)
-*_CLANG38_ARM_RC_FLAGS           = DEF(GCC_ARM_RC_FLAGS)
-*_CLANG38_ARM_VFRPP_FLAGS        = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_ARM_TARGET) $(PLATFORM_FLAGS)
-*_CLANG38_ARM_ASLPP_FLAGS        = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_ARM_TARGET)
-*_CLANG38_ARM_CC_XIPFLAGS        = DEF(GCC_ARM_CC_XIPFLAGS)
-
-  DEBUG_CLANG38_ARM_CC_FLAGS     = DEF(CLANG38_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O1
-  DEBUG_CLANG38_ARM_DLINK_FLAGS  = DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm
-  NOOPT_CLANG38_ARM_CC_FLAGS     = DEF(CLANG38_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -O0
-  NOOPT_CLANG38_ARM_DLINK_FLAGS  = DEF(CLANG38_ARM_DLINK_FLAGS)
-RELEASE_CLANG38_ARM_CC_FLAGS     = DEF(CLANG38_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O3
-RELEASE_CLANG38_ARM_DLINK_FLAGS  = DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm
+DEFINE CLANGDWARF_ARM_TARGET        = -target arm-linux-gnueabi
+DEFINE CLANGDWARF_ARM_CC_FLAGS      = $(PLATFORM_FLAGS) DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -fomit-frame-pointer -Wno-address -mthumb -fno-pic -fno-pie DEF(CLANGDWARF_ARM_TARGET) DEF(CLANGDWARF_WARNING_OVERRIDES) -mno-movt
+DEFINE CLANGDWARF_ARM_DLINK_FLAGS   = DEF(CLANGDWARF_ARM_TARGET) DEF(GCC_ARM_DLINK_FLAGS)
+
+*_CLANGDWARF_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS)
+*_CLANGDWARF_ARM_ASLCC_FLAGS        = DEF(GCC_ASLCC_FLAGS)
+*_CLANGDWARF_ARM_APP_FLAGS          =
+*_CLANGDWARF_ARM_ASL_FLAGS          = DEF(IASL_FLAGS)
+*_CLANGDWARF_ARM_ASL_OUTFLAGS       = DEF(IASL_OUTFLAGS)
+*_CLANGDWARF_ARM_DTCPP_FLAGS        = DEF(GCC_DTCPP_FLAGS)
+
+*_CLANGDWARF_ARM_CC_PATH            = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_ARM_ASM_PATH           = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_ARM_PP_PATH            = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_ARM_VFRPP_PATH         = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_ARM_ASLCC_PATH         = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_ARM_ASLPP_PATH         = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_ARM_DLINK_PATH         = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_ARM_ASLDLINK_PATH      = ENV(CLANGDWARF_BIN)clang
+
+*_CLANGDWARF_ARM_SLINK_PATH         = ENV(CLANGDWARF_BIN)llvm-ar
+*_CLANGDWARF_ARM_RC_PATH            = ENV(CLANGDWARF_ARM_PREFIX)objcopy
+
+*_CLANGDWARF_ARM_ASLCC_FLAGS        = DEF(GCC_ASLCC_FLAGS) -fno-lto
+*_CLANGDWARF_ARM_ASLDLINK_FLAGS     = DEF(CLANGDWARF_ARM_TARGET) DEF(GCC_ARM_ASLDLINK_FLAGS)
+*_CLANGDWARF_ARM_ASM_FLAGS          = DEF(GCC_ASM_FLAGS) DEF(CLANGDWARF_ARM_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments
+*_CLANGDWARF_ARM_DLINK2_FLAGS       = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x220
+*_CLANGDWARF_ARM_PLATFORM_FLAGS     = -march=armv7-a
+*_CLANGDWARF_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS) DEF(CLANGDWARF_ARM_TARGET) $(PLATFORM_FLAGS)
+*_CLANGDWARF_ARM_RC_FLAGS           = DEF(GCC_ARM_RC_FLAGS)
+*_CLANGDWARF_ARM_VFRPP_FLAGS        = DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWARF_ARM_TARGET) $(PLATFORM_FLAGS)
+*_CLANGDWARF_ARM_ASLPP_FLAGS        = DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWARF_ARM_TARGET)
+*_CLANGDWARF_ARM_CC_XIPFLAGS        = DEF(GCC_ARM_CC_XIPFLAGS)
+
+  DEBUG_CLANGDWARF_ARM_CC_FLAGS     = DEF(CLANGDWARF_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O1
+  DEBUG_CLANGDWARF_ARM_DLINK_FLAGS  = DEF(CLANGDWARF_ARM_DLINK_FLAGS) -flto -Wl,-O1 -fuse-ld=lld -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm -Wl,--no-pie,--no-relax
+  NOOPT_CLANGDWARF_ARM_CC_FLAGS     = DEF(CLANGDWARF_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -O0
+  NOOPT_CLANGDWARF_ARM_DLINK_FLAGS  = DEF(CLANGDWARF_ARM_DLINK_FLAGS) -fuse-ld=lld -Wl,--no-pie,--no-relax
+RELEASE_CLANGDWARF_ARM_CC_FLAGS     = DEF(CLANGDWARF_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O3
+RELEASE_CLANGDWARF_ARM_DLINK_FLAGS  = DEF(CLANGDWARF_ARM_DLINK_FLAGS) -flto -Wl,-O3 -fuse-ld=lld -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm -Wl,--no-pie,--no-relax
 
 ##################
-# CLANG38 AARCH64 definitions
+# CLANGDWARF AARCH64 definitions
 ##################
-DEFINE CLANG38_AARCH64_TARGET    = -target aarch64-linux-gnu
-DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANG38_AARCH64_TARGET) -mcmodel=small DEF(CLANG38_WARNING_OVERRIDES)
-DEFINE CLANG38_AARCH64_DLINK_FLAGS  = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000
-
-*_CLANG38_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS)
-*_CLANG38_AARCH64_ASLCC_FLAGS    = DEF(GCC_ASLCC_FLAGS)
-*_CLANG38_AARCH64_APP_FLAGS      =
-*_CLANG38_AARCH64_ASL_FLAGS      = DEF(IASL_FLAGS)
-*_CLANG38_AARCH64_ASL_OUTFLAGS   = DEF(IASL_OUTFLAGS)
-*_CLANG38_AARCH64_DTCPP_FLAGS    = DEF(GCC_DTCPP_FLAGS)
-
-*_CLANG38_AARCH64_CC_PATH        = ENV(CLANG38_BIN)clang
-*_CLANG38_AARCH64_ASM_PATH       = ENV(CLANG38_BIN)clang
-*_CLANG38_AARCH64_PP_PATH        = ENV(CLANG38_BIN)clang
-*_CLANG38_AARCH64_VFRPP_PATH     = ENV(CLANG38_BIN)clang
-*_CLANG38_AARCH64_ASLCC_PATH     = ENV(CLANG38_BIN)clang
-*_CLANG38_AARCH64_ASLPP_PATH     = ENV(CLANG38_BIN)clang
-*_CLANG38_AARCH64_DLINK_PATH     = ENV(CLANG38_BIN)clang
-*_CLANG38_AARCH64_ASLDLINK_PATH  = ENV(CLANG38_BIN)clang
-
-*_CLANG38_AARCH64_SLINK_PATH     = ENV(CLANG38_BIN)llvm-ar
-*_CLANG38_AARCH64_RC_PATH        = ENV(CLANG38_AARCH64_PREFIX)objcopy
-
-*_CLANG38_AARCH64_ASLCC_FLAGS    = DEF(GCC_ASLCC_FLAGS) -fno-lto
-*_CLANG38_AARCH64_ASLDLINK_FLAGS = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS)
-*_CLANG38_AARCH64_ASM_FLAGS      = DEF(GCC_ASM_FLAGS) DEF(CLANG38_AARCH64_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments
-*_CLANG38_AARCH64_DLINK_FLAGS    = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000
-*_CLANG38_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
-*_CLANG38_AARCH64_DLINK2_FLAGS   = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228
-*_CLANG38_AARCH64_PLATFORM_FLAGS =
-*_CLANG38_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS) DEF(CLANG38_AARCH64_TARGET) $(PLATFORM_FLAGS)
-*_CLANG38_AARCH64_RC_FLAGS       = DEF(GCC_AARCH64_RC_FLAGS) DEF(GCC_AARCH64_RC_BTI_FLAGS)
-*_CLANG38_AARCH64_VFRPP_FLAGS    = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_AARCH64_TARGET) $(PLATFORM_FLAGS)
-*_CLANG38_AARCH64_ASLPP_FLAGS    = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_AARCH64_TARGET)
-*_CLANG38_AARCH64_CC_XIPFLAGS    = DEF(GCC_AARCH64_CC_XIPFLAGS)
-
-  DEBUG_CLANG38_AARCH64_CC_FLAGS    = DEF(CLANG38_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O1
-  DEBUG_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64
-  NOOPT_CLANG38_AARCH64_CC_FLAGS    = DEF(CLANG38_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -O0
-  NOOPT_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_DLINK_FLAGS)
-RELEASE_CLANG38_AARCH64_CC_FLAGS    = DEF(CLANG38_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O3
-RELEASE_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_DLINK_FLAGS) -flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64
+DEFINE CLANGDWARF_AARCH64_TARGET    = -target aarch64-linux-gnu
+DEFINE CLANGDWARF_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET) -mcmodel=small DEF(CLANGDWARF_WARNING_OVERRIDES)
+DEFINE CLANGDWARF_AARCH64_DLINK_FLAGS  = DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000
+
+*_CLANGDWARF_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS)
+*_CLANGDWARF_AARCH64_ASLCC_FLAGS    = DEF(GCC_ASLCC_FLAGS)
+*_CLANGDWARF_AARCH64_APP_FLAGS      =
+*_CLANGDWARF_AARCH64_ASL_FLAGS      = DEF(IASL_FLAGS)
+*_CLANGDWARF_AARCH64_ASL_OUTFLAGS   = DEF(IASL_OUTFLAGS)
+*_CLANGDWARF_AARCH64_DTCPP_FLAGS    = DEF(GCC_DTCPP_FLAGS)
+
+*_CLANGDWARF_AARCH64_CC_PATH        = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_AARCH64_ASM_PATH       = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_AARCH64_PP_PATH        = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_AARCH64_VFRPP_PATH     = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_AARCH64_ASLCC_PATH     = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_AARCH64_ASLPP_PATH     = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_AARCH64_DLINK_PATH     = ENV(CLANGDWARF_BIN)clang
+*_CLANGDWARF_AARCH64_ASLDLINK_PATH  = ENV(CLANGDWARF_BIN)clang
+
+*_CLANGDWARF_AARCH64_SLINK_PATH     = ENV(CLANGDWARF_BIN)llvm-ar
+*_CLANGDWARF_AARCH64_RC_PATH        = ENV(CLANGDWARF_AARCH64_PREFIX)objcopy
+
+*_CLANGDWARF_AARCH64_ASLCC_FLAGS    = DEF(GCC_ASLCC_FLAGS) -fno-lto
+*_CLANGDWARF_AARCH64_ASLDLINK_FLAGS = DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS)
+*_CLANGDWARF_AARCH64_ASM_FLAGS      = DEF(GCC_ASM_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments
+*_CLANGDWARF_AARCH64_DLINK_FLAGS    = DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000
+*_CLANGDWARF_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
+*_CLANGDWARF_AARCH64_DLINK2_FLAGS   = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228
+*_CLANGDWARF_AARCH64_PLATFORM_FLAGS =
+*_CLANGDWARF_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET) $(PLATFORM_FLAGS)
+*_CLANGDWARF_AARCH64_RC_FLAGS       = DEF(GCC_AARCH64_RC_FLAGS) DEF(GCC_AARCH64_RC_BTI_FLAGS)
+*_CLANGDWARF_AARCH64_VFRPP_FLAGS    = DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET) $(PLATFORM_FLAGS)
+*_CLANGDWARF_AARCH64_ASLPP_FLAGS    = DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET)
+*_CLANGDWARF_AARCH64_CC_XIPFLAGS    = DEF(GCC_AARCH64_CC_XIPFLAGS)
+
+  DEBUG_CLANGDWARF_AARCH64_CC_FLAGS    = DEF(CLANGDWARF_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O1
+  DEBUG_CLANGDWARF_AARCH64_DLINK_FLAGS = DEF(CLANGDWARF_AARCH64_DLINK_FLAGS) -flto -Wl,-O1 -fuse-ld=lld -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wl,--no-pie,--no-relax
+  NOOPT_CLANGDWARF_AARCH64_CC_FLAGS    = DEF(CLANGDWARF_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -O0
+  NOOPT_CLANGDWARF_AARCH64_DLINK_FLAGS = DEF(CLANGDWARF_AARCH64_DLINK_FLAGS) -fuse-ld=lld -Wl,--no-pie,--no-relax
+RELEASE_CLANGDWARF_AARCH64_CC_FLAGS    = DEF(CLANGDWARF_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O3
+RELEASE_CLANGDWARF_AARCH64_DLINK_FLAGS = DEF(CLANGDWARF_AARCH64_DLINK_FLAGS) -flto -Wl,-O3 -fuse-ld=lld -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wl,--no-pie,--no-relax
 
 ####################################################################################
 #
@@ -2888,25 +2795,25 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS        = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22
 *_CLANGDWARF_IA32_ASLPP_PATH           = DEF(CLANGDWARF_IA32_PREFIX)clang
 *_CLANGDWARF_IA32_RC_PATH              = DEF(CLANGDWARF_IA32_PREFIX)llvm-rc
 
-*_CLANGDWARF_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto DEF(CLANG38_IA32_TARGET)
+*_CLANGDWARF_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto DEF(CLANGDWARF_IA32_TARGET)
 *_CLANGDWARF_IA32_ASLDLINK_FLAGS       = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld -no-pie
-*_CLANGDWARF_IA32_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m32 -march=i386 DEF(CLANG38_IA32_TARGET)
+*_CLANGDWARF_IA32_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m32 -march=i386 DEF(CLANGDWARF_IA32_TARGET)
 *_CLANGDWARF_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
 *_CLANGDWARF_IA32_OBJCOPY_FLAGS        =
 *_CLANGDWARF_IA32_NASM_FLAGS           = -f elf32
-*_CLANGDWARF_IA32_PP_FLAGS             = DEF(GCC_PP_FLAGS) DEF(CLANG38_IA32_TARGET)
-*_CLANGDWARF_IA32_ASLPP_FLAGS          = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_IA32_TARGET)
-*_CLANGDWARF_IA32_VFRPP_FLAGS          = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_IA32_TARGET)
+*_CLANGDWARF_IA32_PP_FLAGS             = DEF(GCC_PP_FLAGS) DEF(CLANGDWARF_IA32_TARGET)
+*_CLANGDWARF_IA32_ASLPP_FLAGS          = DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWARF_IA32_TARGET)
+*_CLANGDWARF_IA32_VFRPP_FLAGS          = DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWARF_IA32_TARGET)
 
-DEBUG_CLANGDWARF_IA32_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double
+DEBUG_CLANGDWARF_IA32_CC_FLAGS         = DEF(CLANGDWARF_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANGDWARF_IA32_TARGET) -g -malign-double
 DEBUG_CLANGDWARF_IA32_DLINK_FLAGS      = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386
 DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS     = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie
 
-RELEASE_CLANGDWARF_IA32_CC_FLAGS       = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double
+RELEASE_CLANGDWARF_IA32_CC_FLAGS       = DEF(CLANGDWARF_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANGDWARF_IA32_TARGET) -malign-double
 RELEASE_CLANGDWARF_IA32_DLINK_FLAGS    = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386
 RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS   = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie
 
-NOOPT_CLANGDWARF_IA32_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double
+NOOPT_CLANGDWARF_IA32_CC_FLAGS         = DEF(CLANGDWARF_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -O0 -march=i586 DEF(CLANGDWARF_IA32_TARGET) -g -malign-double
 NOOPT_CLANGDWARF_IA32_DLINK_FLAGS      = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 -Wl,--oformat,elf32-i386
 NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS     = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=lld -no-pie
 
@@ -2924,25 +2831,25 @@ NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS     = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -
 *_CLANGDWARF_X64_ASLPP_PATH           = DEF(CLANGDWARF_X64_PREFIX)clang
 *_CLANGDWARF_X64_RC_PATH              = DEF(CLANGDWARF_X64_PREFIX)llvm-rc
 
-*_CLANGDWARF_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto DEF(CLANG38_X64_TARGET)
+*_CLANGDWARF_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto DEF(CLANGDWARF_X64_TARGET)
 *_CLANGDWARF_X64_ASLDLINK_FLAGS       = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64 -fuse-ld=lld
-*_CLANGDWARF_X64_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m64 DEF(CLANG38_X64_TARGET)
+*_CLANGDWARF_X64_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m64 DEF(CLANGDWARF_X64_TARGET)
 *_CLANGDWARF_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
 *_CLANGDWARF_X64_OBJCOPY_FLAGS        =
 *_CLANGDWARF_X64_NASM_FLAGS           = -f elf64
-*_CLANGDWARF_X64_PP_FLAGS             = DEF(GCC_PP_FLAGS) DEF(CLANG38_X64_TARGET)
-*_CLANGDWARF_X64_ASLPP_FLAGS          = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_X64_TARGET)
-*_CLANGDWARF_X64_VFRPP_FLAGS          = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_X64_TARGET)
+*_CLANGDWARF_X64_PP_FLAGS             = DEF(GCC_PP_FLAGS) DEF(CLANGDWARF_X64_TARGET)
+*_CLANGDWARF_X64_ASLPP_FLAGS          = DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWARF_X64_TARGET)
+*_CLANGDWARF_X64_VFRPP_FLAGS          = DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWARF_X64_TARGET)
 
-DEBUG_CLANGDWARF_X64_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANG38_X64_TARGET) -g
+DEBUG_CLANGDWARF_X64_CC_FLAGS         = DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANGDWARF_X64_TARGET) -g
 DEBUG_CLANGDWARF_X64_DLINK_FLAGS      = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=small -Wl,--apply-dynamic-relocs
 DEBUG_CLANGDWARF_X64_DLINK2_FLAGS     = DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O3 -fuse-ld=lld
 
-RELEASE_CLANGDWARF_X64_CC_FLAGS       = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANG38_X64_TARGET)
+RELEASE_CLANGDWARF_X64_CC_FLAGS       = DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANGDWARF_X64_TARGET)
 RELEASE_CLANGDWARF_X64_DLINK_FLAGS    = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=small -Wl,--apply-dynamic-relocs
 RELEASE_CLANGDWARF_X64_DLINK2_FLAGS   = DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O3 -fuse-ld=lld
 
-NOOPT_CLANGDWARF_X64_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -O0 DEF(CLANG38_X64_TARGET) -g
+NOOPT_CLANGDWARF_X64_CC_FLAGS         = DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -O0 DEF(CLANGDWARF_X64_TARGET) -g
 NOOPT_CLANGDWARF_X64_DLINK_FLAGS      = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=small -Wl,--apply-dynamic-relocs
 NOOPT_CLANGDWARF_X64_DLINK2_FLAGS     = DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O0 -fuse-ld=lld
 
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 02/13] BaseTools: Remove VS2008, 2010, 2012 and 2013 toolchain definitions
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 01/13] BaseTools,CryptoPkg: Update CLANGDWARF, remove CLANG 35/38 toolchains Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 03/13] BaseTools: Remove VS2008-VS2013 remnants Rebecca Cran
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser, Oliver Smith-Denny

With recent changes, Visual Studio versions older than VS2015 are
unable to build EDK2 code.

To avoid confusion, remove VS2008, 2010, 2012 and 2013 toolchain
definitions from Conf/tools_def.template, leaving only versions that can
be used to successfully build firmware.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Reviewed-by: Oliver Smith-Denny <osd@smith-denny.com>
---
 BaseTools/Conf/tools_def.template | 1005
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------
 1 file changed, 1005 deletions(-)

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 1ef74ba86cd8..08dc62406a83 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -21,42 +21,6 @@
 IDENTIFIER = Default TOOL_CHAIN_CONF
 
 # common path macros
-DEFINE VS2008_BIN      = ENV(VS2008_PREFIX)Vc\bin
-DEFINE VS2008_DLL      = ENV(VS2008_PREFIX)Common7\IDE;DEF(VS2008_BIN)
-DEFINE VS2008_BINX64   = DEF(VS2008_BIN)\x86_amd64
-DEFINE VS2008_BIN64    = DEF(VS2008_BIN)\x86_ia64
-
-DEFINE VS2008x86_BIN    = ENV(VS2008_PREFIX)Vc\bin
-DEFINE VS2008x86_DLL    = ENV(VS2008_PREFIX)Common7\IDE;DEF(VS2008x86_BIN)
-DEFINE VS2008x86_BINX64 = DEF(VS2008x86_BIN)\x86_amd64
-DEFINE VS2008x86_BIN64  = DEF(VS2008x86_BIN)\x86_ia64
-
-DEFINE VS2010_BIN      = ENV(VS2010_PREFIX)Vc\bin
-DEFINE VS2010_DLL      = ENV(VS2010_PREFIX)Common7\IDE;DEF(VS2010_BIN)
-DEFINE VS2010_BINX64   = DEF(VS2010_BIN)\x86_amd64
-DEFINE VS2010_BIN64    = DEF(VS2010_BIN)\x86_ia64
-
-DEFINE VS2010x86_BIN    = ENV(VS2010_PREFIX)Vc\bin
-DEFINE VS2010x86_DLL    = ENV(VS2010_PREFIX)Common7\IDE;DEF(VS2010x86_BIN)
-DEFINE VS2010x86_BINX64 = DEF(VS2010x86_BIN)\x86_amd64
-DEFINE VS2010x86_BIN64  = DEF(VS2010x86_BIN)\x86_ia64
-
-DEFINE VS2012_BIN      = ENV(VS2012_PREFIX)Vc\bin
-DEFINE VS2012_DLL      = ENV(VS2012_PREFIX)Common7\IDE;DEF(VS2012_BIN)
-DEFINE VS2012_BINX64   = DEF(VS2012_BIN)\x86_amd64
-
-DEFINE VS2012x86_BIN    = ENV(VS2012_PREFIX)Vc\bin
-DEFINE VS2012x86_DLL    = ENV(VS2012_PREFIX)Common7\IDE;DEF(VS2012x86_BIN)
-DEFINE VS2012x86_BINX64 = DEF(VS2012x86_BIN)\x86_amd64
-
-DEFINE VS2013_BIN      = ENV(VS2013_PREFIX)Vc\bin
-DEFINE VS2013_DLL      = ENV(VS2013_PREFIX)Common7\IDE;DEF(VS2013_BIN)
-DEFINE VS2013_BINX64   = DEF(VS2013_BIN)\x86_amd64
-
-DEFINE VS2013x86_BIN    = ENV(VS2013_PREFIX)Vc\bin
-DEFINE VS2013x86_DLL    = ENV(VS2013_PREFIX)Common7\IDE;DEF(VS2013x86_BIN)
-DEFINE VS2013x86_BINX64 = DEF(VS2013x86_BIN)\x86_amd64
-
 DEFINE VS2015_BIN      = ENV(VS2015_PREFIX)Vc\bin
 DEFINE VS2015_DLL      = ENV(VS2015_PREFIX)Common7\IDE;DEF(VS2015_BIN)
 DEFINE VS2015_BINX64   = DEF(VS2015_BIN)\x86_amd64
@@ -112,11 +76,6 @@ DEFINE WINSDK10_BIN         = ENV(WINSDK10_PREFIX)DEF(VS_HOST)
 # are used by other toolchains.  An example is that ICC on Windows normally
 # uses Microsoft's nmake.exe.
 
-# Some MS_VS_BIN options: DEF(VS2008_BIN), DEF(VS2008x86_BIN)
-DEFINE MS_VS_BIN   = DEF(VS2008_BIN)
-# Some MS_VS_DLL options: DEF(VS2008_DLL), DEF(VS2008x86_DLL)
-DEFINE MS_VS_DLL   = DEF(VS2008_DLL)
-
 DEFINE WINDDK_BIN16     = ENV(WINDDK3790_PREFIX)bin16
 DEFINE WINDDK_BINX64    = ENV(WINDDK3790_PREFIX)win64\x86\amd64
 
@@ -188,42 +147,6 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #
 # Supported Tool Chains
 # =====================
-#   VS2008      -win32-  Requires:
-#                             Microsoft Visual Studio 2008 Team Suite Edition
-#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
-#                        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
-#   VS2010      -win32-  Requires:
-#                             Microsoft Visual Studio 2010 Premium Edition
-#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
-#                        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
-#   VS2012      -win32-  Requires:
-#                             Microsoft Visual Studio 2012 Professional Edition
-#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
-#                        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
-#   VS2013      -win32-  Requires:
-#                             Microsoft Visual Studio 2013 Professional Edition
-#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
-#                        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
 #   VS2015      -win32-  Requires:
 #                             Microsoft Visual Studio 2015 Professional Edition
 #                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
@@ -288,34 +211,6 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #                             Required to compile nasm source:
 #                               nasm compiler from
 #                               NASM -- http://www.nasm.us/
-#   VS2008x86   -win64-  Requires:
-#                             Microsoft Visual Studio 2008 (x86)
-#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
-#                        Optional:
-#                             Required to build platforms or ACPI tables:
-#                               Intel(r) ACPI Compiler (iasl.exe) from
-#                               https://acpica.org/downloads
-#   VS2010x86   -win64-  Requires:
-#                             Microsoft Visual Studio 2010 (x86) Premium Edition
-#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
-#                        Optional:
-#                             Required to build platforms or ACPI tables:
-#                               Intel(r) ACPI Compiler (iasl.exe) from
-#                               https://acpica.org/downloads
-#   VS2012x86   -win64-  Requires:
-#                             Microsoft Visual Studio 2012 (x86) Professional Edition
-#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
-#                        Optional:
-#                             Required to build platforms or ACPI tables:
-#                               Intel(r) ACPI Compiler (iasl.exe) from
-#                               https://acpica.org/downloads
-#   VS2013x86   -win64-  Requires:
-#                             Microsoft Visual Studio 2013 (x86) Professional Edition
-#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
-#                        Optional:
-#                             Required to build platforms or ACPI tables:
-#                               Intel(r) ACPI Compiler (iasl.exe) from
-#                               https://acpica.org/downloads
 #   VS2015x86   -win64-  Requires:
 #                             Microsoft Visual Studio 2015 (x86) Update 2 or above
 #                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
@@ -379,906 +274,6 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #
 ####################################################################################
 
-####################################################################################
-#
-# Microsoft Visual Studio 2008
-#
-#   VS2008  - Microsoft Visual Studio 2005 All Edition, including Standard, Professional, Express, TeamSuite
-#   ASL     - Intel ACPI Source Language Compiler
-####################################################################################
-#   VS2008           - Microsoft Visual Studio 2008 ALL Edition, including Standard, Professional, Express, TeamSuite
-*_VS2008_*_*_FAMILY               = MSFT
-
-*_VS2008_*_MAKE_PATH              = DEF(VS2008_BIN)\nmake.exe
-*_VS2008_*_MAKE_FLAGS             = /nologo
-*_VS2008_*_RC_PATH                = DEF(WINSDK_BIN)\rc.exe
-
-*_VS2008_*_SLINK_FLAGS            = /NOLOGO /LTCG
-*_VS2008_*_APP_FLAGS              = /nologo /E /TC
-*_VS2008_*_PP_FLAGS               = /nologo /E /TC /FIAutoGen.h
-*_VS2008_*_VFRPP_FLAGS            = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2008_*_DEPS_FLAGS            = DEF(MSFT_DEPS_FLAGS)
-*_VS2008_*_ASM16_PATH             = DEF(VS2008_BIN)\ml.exe
-
-##################
-# ASL definitions
-##################
-*_VS2008_*_ASL_PATH               = DEF(DEFAULT_WIN_ASL_BIN)
-*_VS2008_*_ASL_FLAGS              = DEF(DEFAULT_WIN_ASL_FLAGS)
-*_VS2008_*_ASL_OUTFLAGS           = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
-*_VS2008_*_ASLCC_FLAGS            = DEF(MSFT_ASLCC_FLAGS)
-*_VS2008_*_ASLPP_FLAGS            = DEF(MSFT_ASLPP_FLAGS)
-*_VS2008_*_ASLDLINK_FLAGS         = DEF(MSFT_ASLDLINK_FLAGS)
-
-##################
-# IA32 definitions
-##################
-*_VS2008_IA32_*_DLL               = DEF(VS2008_DLL)
-
-*_VS2008_IA32_CC_PATH             = DEF(VS2008_BIN)\cl.exe
-*_VS2008_IA32_VFRPP_PATH          = DEF(VS2008_BIN)\cl.exe
-*_VS2008_IA32_SLINK_PATH          = DEF(VS2008_BIN)\lib.exe
-*_VS2008_IA32_DLINK_PATH          = DEF(VS2008_BIN)\link.exe
-*_VS2008_IA32_APP_PATH            = DEF(VS2008_BIN)\cl.exe
-*_VS2008_IA32_PP_PATH             = DEF(VS2008_BIN)\cl.exe
-*_VS2008_IA32_ASM_PATH            = DEF(VS2008_BIN)\ml.exe
-*_VS2008_IA32_ASLCC_PATH          = DEF(VS2008_BIN)\cl.exe
-*_VS2008_IA32_ASLPP_PATH          = DEF(VS2008_BIN)\cl.exe
-*_VS2008_IA32_ASLDLINK_PATH       = DEF(VS2008_BIN)\link.exe
-
-  DEBUG_VS2008_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
-RELEASE_VS2008_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2008_IA32_CC_FLAGS        = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
-
-  DEBUG_VS2008_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-RELEASE_VS2008_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd
-NOOPT_VS2008_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-
-  DEBUG_VS2008_IA32_NASM_FLAGS    = -Ox -f win32 -g
-RELEASE_VS2008_IA32_NASM_FLAGS    = -Ox -f win32
-NOOPT_VS2008_IA32_NASM_FLAGS      = -O0 -f win32 -g
-
-  DEBUG_VS2008_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_VS2008_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_VS2008_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
-##################
-*_VS2008_X64_*_DLL         = DEF(VS2008_DLL)
-
-*_VS2008_X64_CC_PATH       = DEF(VS2008_BINX64)\cl.exe
-*_VS2008_X64_PP_PATH       = DEF(VS2008_BINX64)\cl.exe
-*_VS2008_X64_APP_PATH      = DEF(VS2008_BINX64)\cl.exe
-*_VS2008_X64_VFRPP_PATH    = DEF(VS2008_BINX64)\cl.exe
-*_VS2008_X64_ASM_PATH      = DEF(VS2008_BINX64)\ml64.exe
-*_VS2008_X64_SLINK_PATH    = DEF(VS2008_BINX64)\lib.exe
-*_VS2008_X64_DLINK_PATH    = DEF(VS2008_BINX64)\link.exe
-*_VS2008_X64_ASLCC_PATH    = DEF(VS2008_BINX64)\cl.exe
-*_VS2008_X64_ASLPP_PATH    = DEF(VS2008_BINX64)\cl.exe
-*_VS2008_X64_ASLDLINK_PATH = DEF(VS2008_BINX64)\link.exe
-
-  DEBUG_VS2008_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7
-RELEASE_VS2008_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2008_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od
-
-  DEBUG_VS2008_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-RELEASE_VS2008_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
-NOOPT_VS2008_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-
-  DEBUG_VS2008_X64_NASM_FLAGS   = -Ox -f win64 -g
-RELEASE_VS2008_X64_NASM_FLAGS   = -Ox -f win64
-NOOPT_VS2008_X64_NASM_FLAGS     = -O0 -f win64 -g
-
-  DEBUG_VS2008_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2008_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2008_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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
-
-##################
-# EBC definitions
-##################
-*_VS2008_EBC_*_FAMILY            = INTEL
-*_VS2008_EBC_*_DLL               = DEF(VS2008_DLL)
-
-*_VS2008_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe
-*_VS2008_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
-*_VS2008_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
-*_VS2008_EBC_SLINK_PATH          = DEF(VS2008_BIN)\link.exe
-*_VS2008_EBC_DLINK_PATH          = DEF(VS2008_BIN)\link.exe
-
-*_VS2008_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
-*_VS2008_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
-*_VS2008_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2008_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
-*_VS2008_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
-
-
-####################################################################################
-#   VS2008x86       - Microsoft Visual Studio 2008 (x86) with Intel ASL
-#   ASL  - Intel ACPI Source Language Compiler (iasl.exe)
-####################################################################################
-#   VS2008x86           - Microsoft Visual Studio 2008 (x86) ALL Edition with Intel ASL
-*_VS2008x86_*_*_FAMILY        = MSFT
-
-*_VS2008x86_*_MAKE_PATH       = DEF(VS2008x86_BIN)\nmake.exe
-*_VS2008x86_*_MAKE_FLAGS      = /nologo
-*_VS2008x86_*_RC_PATH         = DEF(WINSDK_BIN)\rc.exe
-
-*_VS2008x86_*_SLINK_FLAGS     = /NOLOGO /LTCG
-*_VS2008x86_*_APP_FLAGS       = /nologo /E /TC
-*_VS2008x86_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
-*_VS2008x86_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2008x86_*_DEPS_FLAGS      = DEF(MSFT_DEPS_FLAGS)
-*_VS2008x86_*_ASM16_PATH      = DEF(VS2008x86_BIN)\ml.exe
-
-##################
-# ASL definitions
-##################
-*_VS2008x86_*_ASL_PATH        = DEF(WIN_IASL_BIN)
-*_VS2008x86_*_ASL_FLAGS       = DEF(DEFAULT_WIN_ASL_FLAGS)
-*_VS2008x86_*_ASL_OUTFLAGS    = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
-*_VS2008x86_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
-*_VS2008x86_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
-*_VS2008x86_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
-
-##################
-# IA32 definitions
-##################
-*_VS2008x86_IA32_*_DLL        = DEF(VS2008x86_DLL)
-
-*_VS2008x86_IA32_CC_PATH      = DEF(VS2008x86_BIN)\cl.exe
-*_VS2008x86_IA32_VFRPP_PATH   = DEF(VS2008x86_BIN)\cl.exe
-*_VS2008x86_IA32_ASLCC_PATH   = DEF(VS2008x86_BIN)\cl.exe
-*_VS2008x86_IA32_ASLPP_PATH   = DEF(VS2008x86_BIN)\cl.exe
-*_VS2008x86_IA32_SLINK_PATH   = DEF(VS2008x86_BIN)\lib.exe
-*_VS2008x86_IA32_DLINK_PATH   = DEF(VS2008x86_BIN)\link.exe
-*_VS2008x86_IA32_ASLDLINK_PATH= DEF(VS2008x86_BIN)\link.exe
-*_VS2008x86_IA32_APP_PATH     = DEF(VS2008x86_BIN)\cl.exe
-*_VS2008x86_IA32_PP_PATH      = DEF(VS2008x86_BIN)\cl.exe
-*_VS2008x86_IA32_ASM_PATH     = DEF(VS2008x86_BIN)\ml.exe
-
-  DEBUG_VS2008x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7
-RELEASE_VS2008x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2008x86_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od
-
-  DEBUG_VS2008x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-RELEASE_VS2008x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
-NOOPT_VS2008x86_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-
-  DEBUG_VS2008x86_IA32_NASM_FLAGS  = -Ox -f win32 -g
-RELEASE_VS2008x86_IA32_NASM_FLAGS  = -Ox -f win32
-NOOPT_VS2008x86_IA32_NASM_FLAGS    = -O0 -f win32 -g
-
-  DEBUG_VS2008x86_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_VS2008x86_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_VS2008x86_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
-##################
-*_VS2008x86_X64_*_DLL         = DEF(VS2008x86_DLL)
-
-*_VS2008x86_X64_CC_PATH       = DEF(VS2008x86_BINX64)\cl.exe
-*_VS2008x86_X64_PP_PATH       = DEF(VS2008x86_BINX64)\cl.exe
-*_VS2008x86_X64_APP_PATH      = DEF(VS2008x86_BINX64)\cl.exe
-*_VS2008x86_X64_VFRPP_PATH    = DEF(VS2008x86_BINX64)\cl.exe
-*_VS2008x86_X64_ASLCC_PATH    = DEF(VS2008x86_BINX64)\cl.exe
-*_VS2008x86_X64_ASLPP_PATH    = DEF(VS2008x86_BINX64)\cl.exe
-*_VS2008x86_X64_ASM_PATH      = DEF(VS2008x86_BINX64)\ml64.exe
-*_VS2008x86_X64_SLINK_PATH    = DEF(VS2008x86_BINX64)\lib.exe
-*_VS2008x86_X64_DLINK_PATH    = DEF(VS2008x86_BINX64)\link.exe
-*_VS2008x86_X64_ASLDLINK_PATH = DEF(VS2008x86_BINX64)\link.exe
-
-  DEBUG_VS2008x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7
-RELEASE_VS2008x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2008x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od
-  DEBUG_VS2008x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-RELEASE_VS2008x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
-NOOPT_VS2008x86_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
-
-  DEBUG_VS2008x86_X64_NASM_FLAGS   = -Ox -f win64 -g
-RELEASE_VS2008x86_X64_NASM_FLAGS   = -Ox -f win64
-NOOPT_VS2008x86_X64_NASM_FLAGS     = -O0 -f win64 -g
-
-  DEBUG_VS2008x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2008x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2008x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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
-
-##################
-# EBC definitions
-##################
-*_VS2008x86_EBC_*_FAMILY            = INTEL
-*_VS2008x86_EBC_*_DLL               = DEF(VS2008x86_DLL)
-
-*_VS2008x86_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2008x86_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
-*_VS2008x86_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2008x86_EBC_SLINK_PATH          = DEF(VS2008x86_BIN)\link.exe
-*_VS2008x86_EBC_DLINK_PATH          = DEF(VS2008x86_BIN)\link.exe
-
-*_VS2008x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
-*_VS2008x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
-*_VS2008x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2008x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
-*_VS2008x86_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
-
-
-
-####################################################################################
-#
-# Microsoft Visual Studio 2010
-#
-#   VS2010  - Microsoft Visual Studio 2010 Premium Edition with Intel ASL
-#   ASL     - Intel ACPI Source Language Compiler
-####################################################################################
-#   VS2010           - Microsoft Visual Studio 2010 Premium Edition
-*_VS2010_*_*_FAMILY               = MSFT
-
-*_VS2010_*_MAKE_PATH              = DEF(VS2010_BIN)\nmake.exe
-*_VS2010_*_MAKE_FLAGS             = /nologo
-*_VS2010_*_RC_PATH                = DEF(WINSDK7_BIN)\rc.exe
-
-*_VS2010_*_SLINK_FLAGS            = /NOLOGO /LTCG
-*_VS2010_*_APP_FLAGS              = /nologo /E /TC
-*_VS2010_*_PP_FLAGS               = /nologo /E /TC /FIAutoGen.h
-*_VS2010_*_VFRPP_FLAGS            = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2010_*_DEPS_FLAGS      = DEF(MSFT_DEPS_FLAGS)
-*_VS2010_*_ASM16_PATH             = DEF(VS2010_BIN)\ml.exe
-
-##################
-# ASL definitions
-##################
-*_VS2010_*_ASL_PATH               = DEF(DEFAULT_WIN_ASL_BIN)
-*_VS2010_*_ASL_FLAGS              = DEF(DEFAULT_WIN_ASL_FLAGS)
-*_VS2010_*_ASL_OUTFLAGS           = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
-*_VS2010_*_ASLCC_FLAGS            = DEF(MSFT_ASLCC_FLAGS)
-*_VS2010_*_ASLPP_FLAGS            = DEF(MSFT_ASLPP_FLAGS)
-*_VS2010_*_ASLDLINK_FLAGS         = DEF(MSFT_ASLDLINK_FLAGS)
-
-##################
-# IA32 definitions
-##################
-*_VS2010_IA32_*_DLL               = DEF(VS2010_DLL)
-
-*_VS2010_IA32_CC_PATH             = DEF(VS2010_BIN)\cl.exe
-*_VS2010_IA32_VFRPP_PATH          = DEF(VS2010_BIN)\cl.exe
-*_VS2010_IA32_SLINK_PATH          = DEF(VS2010_BIN)\lib.exe
-*_VS2010_IA32_DLINK_PATH          = DEF(VS2010_BIN)\link.exe
-*_VS2010_IA32_APP_PATH            = DEF(VS2010_BIN)\cl.exe
-*_VS2010_IA32_PP_PATH             = DEF(VS2010_BIN)\cl.exe
-*_VS2010_IA32_ASM_PATH            = DEF(VS2010_BIN)\ml.exe
-*_VS2010_IA32_ASLCC_PATH          = DEF(VS2010_BIN)\cl.exe
-*_VS2010_IA32_ASLPP_PATH          = DEF(VS2010_BIN)\cl.exe
-*_VS2010_IA32_ASLDLINK_PATH       = DEF(VS2010_BIN)\link.exe
-
-  DEBUG_VS2010_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7
-RELEASE_VS2010_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2010_IA32_CC_FLAGS        = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
-
-  DEBUG_VS2010_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-RELEASE_VS2010_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd
-NOOPT_VS2010_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-
-  DEBUG_VS2010_IA32_NASM_FLAGS    = -Ox -f win32 -g
-RELEASE_VS2010_IA32_NASM_FLAGS    = -Ox -f win32
-NOOPT_VS2010_IA32_NASM_FLAGS      = -O0 -f win32 -g
-
-  DEBUG_VS2010_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_VS2010_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_VS2010_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
-##################
-*_VS2010_X64_*_DLL         = DEF(VS2010_DLL)
-
-*_VS2010_X64_CC_PATH       = DEF(VS2010_BINX64)\cl.exe
-*_VS2010_X64_PP_PATH       = DEF(VS2010_BINX64)\cl.exe
-*_VS2010_X64_APP_PATH      = DEF(VS2010_BINX64)\cl.exe
-*_VS2010_X64_VFRPP_PATH    = DEF(VS2010_BINX64)\cl.exe
-*_VS2010_X64_ASM_PATH      = DEF(VS2010_BINX64)\ml64.exe
-*_VS2010_X64_SLINK_PATH    = DEF(VS2010_BINX64)\lib.exe
-*_VS2010_X64_DLINK_PATH    = DEF(VS2010_BINX64)\link.exe
-*_VS2010_X64_ASLCC_PATH    = DEF(VS2010_BINX64)\cl.exe
-*_VS2010_X64_ASLPP_PATH    = DEF(VS2010_BINX64)\cl.exe
-*_VS2010_X64_ASLDLINK_PATH = DEF(VS2010_BINX64)\link.exe
-
-  DEBUG_VS2010_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7
-RELEASE_VS2010_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2010_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od
-
-  DEBUG_VS2010_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-RELEASE_VS2010_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
-NOOPT_VS2010_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-
-  DEBUG_VS2010_X64_NASM_FLAGS   = -Ox -f win64 -g
-RELEASE_VS2010_X64_NASM_FLAGS   = -Ox -f win64
-NOOPT_VS2010_X64_NASM_FLAGS     = -O0 -f win64 -g
-
-  DEBUG_VS2010_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2010_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2010_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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
-
-##################
-# EBC definitions
-##################
-*_VS2010_EBC_*_FAMILY            = INTEL
-*_VS2010_EBC_*_DLL               = DEF(VS2010_DLL)
-
-*_VS2010_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe
-*_VS2010_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
-*_VS2010_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
-*_VS2010_EBC_SLINK_PATH          = DEF(VS2010_BIN)\link.exe
-*_VS2010_EBC_DLINK_PATH          = DEF(VS2010_BIN)\link.exe
-
-*_VS2010_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
-*_VS2010_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
-*_VS2010_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2010_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
-*_VS2010_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
-
-
-####################################################################################
-#   VS2010x86       - Microsoft Visual Studio 2010 (x86) with Intel ASL
-#   ASL  - Intel ACPI Source Language Compiler (iasl.exe)
-####################################################################################
-#   VS2010x86           - Microsoft Visual Studio 2010 (x86) ALL Edition with Intel ASL
-*_VS2010x86_*_*_FAMILY        = MSFT
-
-*_VS2010x86_*_MAKE_PATH       = DEF(VS2010x86_BIN)\nmake.exe
-*_VS2010x86_*_MAKE_FLAGS      = /nologo
-*_VS2010x86_*_RC_PATH         = DEF(WINSDK7x86_BIN)\rc.exe
-
-*_VS2010x86_*_SLINK_FLAGS     = /NOLOGO /LTCG
-*_VS2010x86_*_APP_FLAGS       = /nologo /E /TC
-*_VS2010x86_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
-*_VS2010x86_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2010x86_*_DEPS_FLAGS      = DEF(MSFT_DEPS_FLAGS)
-*_VS2010x86_*_ASM16_PATH      = DEF(VS2010x86_BIN)\ml.exe
-
-##################
-# ASL definitions
-##################
-*_VS2010x86_*_ASL_PATH        = DEF(WIN_IASL_BIN)
-*_VS2010x86_*_ASL_FLAGS       = DEF(DEFAULT_WIN_ASL_FLAGS)
-*_VS2010x86_*_ASL_OUTFLAGS    = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
-*_VS2010x86_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
-*_VS2010x86_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
-*_VS2010x86_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
-
-##################
-# IA32 definitions
-##################
-*_VS2010x86_IA32_*_DLL        = DEF(VS2010x86_DLL)
-
-*_VS2010x86_IA32_CC_PATH      = DEF(VS2010x86_BIN)\cl.exe
-*_VS2010x86_IA32_VFRPP_PATH   = DEF(VS2010x86_BIN)\cl.exe
-*_VS2010x86_IA32_ASLCC_PATH   = DEF(VS2010x86_BIN)\cl.exe
-*_VS2010x86_IA32_ASLPP_PATH   = DEF(VS2010x86_BIN)\cl.exe
-*_VS2010x86_IA32_SLINK_PATH   = DEF(VS2010x86_BIN)\lib.exe
-*_VS2010x86_IA32_DLINK_PATH   = DEF(VS2010x86_BIN)\link.exe
-*_VS2010x86_IA32_ASLDLINK_PATH= DEF(VS2010x86_BIN)\link.exe
-*_VS2010x86_IA32_APP_PATH     = DEF(VS2010x86_BIN)\cl.exe
-*_VS2010x86_IA32_PP_PATH      = DEF(VS2010x86_BIN)\cl.exe
-*_VS2010x86_IA32_ASM_PATH     = DEF(VS2010x86_BIN)\ml.exe
-
-  DEBUG_VS2010x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7
-RELEASE_VS2010x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2010x86_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od
-
-  DEBUG_VS2010x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-RELEASE_VS2010x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
-NOOPT_VS2010x86_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-
-  DEBUG_VS2010x86_IA32_NASM_FLAGS  = -Ox -f win32 -g
-RELEASE_VS2010x86_IA32_NASM_FLAGS  = -Ox -f win32
-NOOPT_VS2010x86_IA32_NASM_FLAGS    = -O0 -f win32 -g
-
-  DEBUG_VS2010x86_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_VS2010x86_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_VS2010x86_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
-##################
-*_VS2010x86_X64_*_DLL         = DEF(VS2010x86_DLL)
-
-*_VS2010x86_X64_CC_PATH       = DEF(VS2010x86_BINX64)\cl.exe
-*_VS2010x86_X64_PP_PATH       = DEF(VS2010x86_BINX64)\cl.exe
-*_VS2010x86_X64_APP_PATH      = DEF(VS2010x86_BINX64)\cl.exe
-*_VS2010x86_X64_VFRPP_PATH    = DEF(VS2010x86_BINX64)\cl.exe
-*_VS2010x86_X64_ASLCC_PATH    = DEF(VS2010x86_BINX64)\cl.exe
-*_VS2010x86_X64_ASLPP_PATH    = DEF(VS2010x86_BINX64)\cl.exe
-*_VS2010x86_X64_ASM_PATH      = DEF(VS2010x86_BINX64)\ml64.exe
-*_VS2010x86_X64_SLINK_PATH    = DEF(VS2010x86_BINX64)\lib.exe
-*_VS2010x86_X64_DLINK_PATH    = DEF(VS2010x86_BINX64)\link.exe
-*_VS2010x86_X64_ASLDLINK_PATH = DEF(VS2010x86_BINX64)\link.exe
-
-  DEBUG_VS2010x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7
-RELEASE_VS2010x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2010x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od
-
-  DEBUG_VS2010x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-RELEASE_VS2010x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
-NOOPT_VS2010x86_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
-
-  DEBUG_VS2010x86_X64_NASM_FLAGS   = -Ox -f win64 -g
-RELEASE_VS2010x86_X64_NASM_FLAGS   = -Ox -f win64
-NOOPT_VS2010x86_X64_NASM_FLAGS     = -O0 -f win64 -g
-
-  DEBUG_VS2010x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2010x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2010x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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
-
-##################
-# EBC definitions
-##################
-*_VS2010x86_EBC_*_FAMILY            = INTEL
-*_VS2010x86_EBC_*_DLL               = DEF(VS2010x86_DLL)
-
-*_VS2010x86_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2010x86_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
-*_VS2010x86_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2010x86_EBC_SLINK_PATH          = DEF(VS2010x86_BIN)\link.exe
-*_VS2010x86_EBC_DLINK_PATH          = DEF(VS2010x86_BIN)\link.exe
-
-*_VS2010x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
-*_VS2010x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
-*_VS2010x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2010x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
-*_VS2010x86_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
-
-
-####################################################################################
-#
-# Microsoft Visual Studio 2012
-#
-#   VS2012  - Microsoft Visual Studio 2012 Professional Edition with Intel ASL
-#   ASL     - Intel ACPI Source Language Compiler
-####################################################################################
-#   VS2012           - Microsoft Visual Studio 2012 Professional Edition
-*_VS2012_*_*_FAMILY               = MSFT
-
-*_VS2012_*_MAKE_PATH              = DEF(VS2012_BIN)\nmake.exe
-*_VS2012_*_MAKE_FLAGS             = /nologo
-*_VS2012_*_RC_PATH                = DEF(WINSDK71_BIN)\rc.exe
-
-*_VS2012_*_SLINK_FLAGS            = /NOLOGO /LTCG
-*_VS2012_*_APP_FLAGS              = /nologo /E /TC
-*_VS2012_*_PP_FLAGS               = /nologo /E /TC /FIAutoGen.h
-*_VS2012_*_VFRPP_FLAGS            = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2012_*_DEPS_FLAGS      = DEF(MSFT_DEPS_FLAGS)
-*_VS2012_*_ASM16_PATH             = DEF(VS2012_BIN)\ml.exe
-
-##################
-# ASL definitions
-##################
-*_VS2012_*_ASL_PATH               = DEF(DEFAULT_WIN_ASL_BIN)
-*_VS2012_*_ASL_FLAGS              = DEF(DEFAULT_WIN_ASL_FLAGS)
-*_VS2012_*_ASL_OUTFLAGS           = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
-*_VS2012_*_ASLCC_FLAGS            = DEF(MSFT_ASLCC_FLAGS)
-*_VS2012_*_ASLPP_FLAGS            = DEF(MSFT_ASLPP_FLAGS)
-*_VS2012_*_ASLDLINK_FLAGS         = DEF(MSFT_ASLDLINK_FLAGS)
-
-##################
-# IA32 definitions
-##################
-*_VS2012_IA32_*_DLL               = DEF(VS2012_DLL)
-
-*_VS2012_IA32_CC_PATH             = DEF(VS2012_BIN)\cl.exe
-*_VS2012_IA32_VFRPP_PATH          = DEF(VS2012_BIN)\cl.exe
-*_VS2012_IA32_SLINK_PATH          = DEF(VS2012_BIN)\lib.exe
-*_VS2012_IA32_DLINK_PATH          = DEF(VS2012_BIN)\link.exe
-*_VS2012_IA32_APP_PATH            = DEF(VS2012_BIN)\cl.exe
-*_VS2012_IA32_PP_PATH             = DEF(VS2012_BIN)\cl.exe
-*_VS2012_IA32_ASM_PATH            = DEF(VS2012_BIN)\ml.exe
-*_VS2012_IA32_ASLCC_PATH          = DEF(VS2012_BIN)\cl.exe
-*_VS2012_IA32_ASLPP_PATH          = DEF(VS2012_BIN)\cl.exe
-*_VS2012_IA32_ASLDLINK_PATH       = DEF(VS2012_BIN)\link.exe
-
-  DEBUG_VS2012_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7
-RELEASE_VS2012_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2012_IA32_CC_FLAGS        = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od
-
-  DEBUG_VS2012_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-RELEASE_VS2012_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd
-NOOPT_VS2012_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-
-  DEBUG_VS2012_IA32_NASM_FLAGS    = -Ox -f win32 -g
-RELEASE_VS2012_IA32_NASM_FLAGS    = -Ox -f win32
-NOOPT_VS2012_IA32_NASM_FLAGS      = -O0 -f win32 -g
-
-  DEBUG_VS2012_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_VS2012_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_VS2012_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
-##################
-*_VS2012_X64_*_DLL         = DEF(VS2012_DLL)
-
-*_VS2012_X64_CC_PATH       = DEF(VS2012_BINX64)\cl.exe
-*_VS2012_X64_PP_PATH       = DEF(VS2012_BINX64)\cl.exe
-*_VS2012_X64_APP_PATH      = DEF(VS2012_BINX64)\cl.exe
-*_VS2012_X64_VFRPP_PATH    = DEF(VS2012_BINX64)\cl.exe
-*_VS2012_X64_ASM_PATH      = DEF(VS2012_BINX64)\ml64.exe
-*_VS2012_X64_SLINK_PATH    = DEF(VS2012_BINX64)\lib.exe
-*_VS2012_X64_DLINK_PATH    = DEF(VS2012_BINX64)\link.exe
-*_VS2012_X64_ASLCC_PATH    = DEF(VS2012_BINX64)\cl.exe
-*_VS2012_X64_ASLPP_PATH    = DEF(VS2012_BINX64)\cl.exe
-*_VS2012_X64_ASLDLINK_PATH = DEF(VS2012_BINX64)\link.exe
-
-  DEBUG_VS2012_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7
-RELEASE_VS2012_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2012_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od
-
-  DEBUG_VS2012_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-RELEASE_VS2012_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
-NOOPT_VS2012_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-
-  DEBUG_VS2012_X64_NASM_FLAGS   = -Ox -f win64 -g
-RELEASE_VS2012_X64_NASM_FLAGS   = -Ox -f win64
-NOOPT_VS2012_X64_NASM_FLAGS     = -O0 -f win64 -g
-
-  DEBUG_VS2012_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2012_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2012_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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
-
-##################
-# EBC definitions
-##################
-*_VS2012_EBC_*_FAMILY            = INTEL
-*_VS2012_EBC_*_DLL               = DEF(VS2012_DLL)
-
-*_VS2012_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe
-*_VS2012_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
-*_VS2012_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
-*_VS2012_EBC_SLINK_PATH          = DEF(VS2012_BIN)\link.exe
-*_VS2012_EBC_DLINK_PATH          = DEF(VS2012_BIN)\link.exe
-
-*_VS2012_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
-*_VS2012_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
-*_VS2012_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2012_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
-*_VS2012_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
-
-
-####################################################################################
-#   VS2012x86       - Microsoft Visual Studio 2012 (x86) professional with Intel ASL
-#   ASL  - Intel ACPI Source Language Compiler (iasl.exe)
-####################################################################################
-#   VS2012x86           - Microsoft Visual Studio 2012 (x86) professional Edition with Intel ASL
-*_VS2012x86_*_*_FAMILY        = MSFT
-
-*_VS2012x86_*_MAKE_PATH       = DEF(VS2012x86_BIN)\nmake.exe
-*_VS2012x86_*_MAKE_FLAGS      = /nologo
-*_VS2012x86_*_RC_PATH         = DEF(WINSDK71x86_BIN)\rc.exe
-
-*_VS2012x86_*_SLINK_FLAGS     = /NOLOGO /LTCG
-*_VS2012x86_*_APP_FLAGS       = /nologo /E /TC
-*_VS2012x86_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
-*_VS2012x86_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2012x86_*_DEPS_FLAGS      = DEF(MSFT_DEPS_FLAGS)
-*_VS2012x86_*_ASM16_PATH      = DEF(VS2012x86_BIN)\ml.exe
-
-##################
-# ASL definitions
-##################
-*_VS2012x86_*_ASL_PATH        = DEF(WIN_IASL_BIN)
-*_VS2012x86_*_ASL_FLAGS       = DEF(DEFAULT_WIN_ASL_FLAGS)
-*_VS2012x86_*_ASL_OUTFLAGS    = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
-*_VS2012x86_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
-*_VS2012x86_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
-*_VS2012x86_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
-
-##################
-# IA32 definitions
-##################
-*_VS2012x86_IA32_*_DLL        = DEF(VS2012x86_DLL)
-
-*_VS2012x86_IA32_CC_PATH      = DEF(VS2012x86_BIN)\cl.exe
-*_VS2012x86_IA32_VFRPP_PATH   = DEF(VS2012x86_BIN)\cl.exe
-*_VS2012x86_IA32_ASLCC_PATH   = DEF(VS2012x86_BIN)\cl.exe
-*_VS2012x86_IA32_ASLPP_PATH   = DEF(VS2012x86_BIN)\cl.exe
-*_VS2012x86_IA32_SLINK_PATH   = DEF(VS2012x86_BIN)\lib.exe
-*_VS2012x86_IA32_DLINK_PATH   = DEF(VS2012x86_BIN)\link.exe
-*_VS2012x86_IA32_ASLDLINK_PATH= DEF(VS2012x86_BIN)\link.exe
-*_VS2012x86_IA32_APP_PATH     = DEF(VS2012x86_BIN)\cl.exe
-*_VS2012x86_IA32_PP_PATH      = DEF(VS2012x86_BIN)\cl.exe
-*_VS2012x86_IA32_ASM_PATH     = DEF(VS2012x86_BIN)\ml.exe
-
-  DEBUG_VS2012x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7
-RELEASE_VS2012x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2012x86_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od
-
-  DEBUG_VS2012x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-RELEASE_VS2012x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
-NOOPT_VS2012x86_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-
-  DEBUG_VS2012x86_IA32_NASM_FLAGS  = -Ox -f win32 -g
-RELEASE_VS2012x86_IA32_NASM_FLAGS  = -Ox -f win32
-NOOPT_VS2012x86_IA32_NASM_FLAGS    = -O0 -f win32 -g
-
-  DEBUG_VS2012x86_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_VS2012x86_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_VS2012x86_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
-##################
-*_VS2012x86_X64_*_DLL         = DEF(VS2012x86_DLL)
-
-*_VS2012x86_X64_CC_PATH       = DEF(VS2012x86_BINX64)\cl.exe
-*_VS2012x86_X64_PP_PATH       = DEF(VS2012x86_BINX64)\cl.exe
-*_VS2012x86_X64_APP_PATH      = DEF(VS2012x86_BINX64)\cl.exe
-*_VS2012x86_X64_VFRPP_PATH    = DEF(VS2012x86_BINX64)\cl.exe
-*_VS2012x86_X64_ASLCC_PATH    = DEF(VS2012x86_BINX64)\cl.exe
-*_VS2012x86_X64_ASLPP_PATH    = DEF(VS2012x86_BINX64)\cl.exe
-*_VS2012x86_X64_ASM_PATH      = DEF(VS2012x86_BINX64)\ml64.exe
-*_VS2012x86_X64_SLINK_PATH    = DEF(VS2012x86_BINX64)\lib.exe
-*_VS2012x86_X64_DLINK_PATH    = DEF(VS2012x86_BINX64)\link.exe
-*_VS2012x86_X64_ASLDLINK_PATH = DEF(VS2012x86_BINX64)\link.exe
-
-  DEBUG_VS2012x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7
-RELEASE_VS2012x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
-NOOPT_VS2012x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od
-
-  DEBUG_VS2012x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-RELEASE_VS2012x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
-NOOPT_VS2012x86_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
-
-  DEBUG_VS2012x86_X64_NASM_FLAGS   = -Ox -f win64 -g
-RELEASE_VS2012x86_X64_NASM_FLAGS   = -Ox -f win64
-NOOPT_VS2012x86_X64_NASM_FLAGS     = -O0 -f win64 -g
-
-  DEBUG_VS2012x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2012x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2012x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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
-
-##################
-# EBC definitions
-##################
-*_VS2012x86_EBC_*_FAMILY            = INTEL
-*_VS2012x86_EBC_*_DLL               = DEF(VS2012x86_DLL)
-
-*_VS2012x86_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2012x86_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
-*_VS2012x86_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2012x86_EBC_SLINK_PATH          = DEF(VS2012x86_BIN)\link.exe
-*_VS2012x86_EBC_DLINK_PATH          = DEF(VS2012x86_BIN)\link.exe
-
-*_VS2012x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
-*_VS2012x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
-*_VS2012x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2012x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
-*_VS2012x86_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
-
-
-####################################################################################
-#
-# Microsoft Visual Studio 2013
-#
-#   VS2013  - Microsoft Visual Studio 2013 Professional Edition with Intel ASL
-#   ASL     - Intel ACPI Source Language Compiler
-####################################################################################
-#   VS2013           - Microsoft Visual Studio 2013 Professional Edition
-*_VS2013_*_*_FAMILY               = MSFT
-
-*_VS2013_*_MAKE_PATH              = DEF(VS2013_BIN)\nmake.exe
-*_VS2013_*_MAKE_FLAGS             = /nologo
-*_VS2013_*_RC_PATH                = DEF(WINSDK8_BIN)\rc.exe
-
-*_VS2013_*_SLINK_FLAGS            = /NOLOGO /LTCG
-*_VS2013_*_APP_FLAGS              = /nologo /E /TC
-*_VS2013_*_PP_FLAGS               = /nologo /E /TC /FIAutoGen.h
-*_VS2013_*_VFRPP_FLAGS            = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2013_*_DEPS_FLAGS      = DEF(MSFT_DEPS_FLAGS)
-*_VS2013_*_ASM16_PATH             = DEF(VS2013_BIN)\ml.exe
-
-##################
-# ASL definitions
-##################
-*_VS2013_*_ASL_PATH               = DEF(DEFAULT_WIN_ASL_BIN)
-*_VS2013_*_ASL_FLAGS              = DEF(DEFAULT_WIN_ASL_FLAGS)
-*_VS2013_*_ASL_OUTFLAGS           = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
-*_VS2013_*_ASLCC_FLAGS            = DEF(MSFT_ASLCC_FLAGS)
-*_VS2013_*_ASLPP_FLAGS            = DEF(MSFT_ASLPP_FLAGS)
-*_VS2013_*_ASLDLINK_FLAGS         = DEF(MSFT_ASLDLINK_FLAGS)
-
-##################
-# IA32 definitions
-##################
-*_VS2013_IA32_*_DLL               = DEF(VS2013_DLL)
-
-*_VS2013_IA32_CC_PATH             = DEF(VS2013_BIN)\cl.exe
-*_VS2013_IA32_VFRPP_PATH          = DEF(VS2013_BIN)\cl.exe
-*_VS2013_IA32_SLINK_PATH          = DEF(VS2013_BIN)\lib.exe
-*_VS2013_IA32_DLINK_PATH          = DEF(VS2013_BIN)\link.exe
-*_VS2013_IA32_APP_PATH            = DEF(VS2013_BIN)\cl.exe
-*_VS2013_IA32_PP_PATH             = DEF(VS2013_BIN)\cl.exe
-*_VS2013_IA32_ASM_PATH            = DEF(VS2013_BIN)\ml.exe
-*_VS2013_IA32_ASLCC_PATH          = DEF(VS2013_BIN)\cl.exe
-*_VS2013_IA32_ASLPP_PATH          = DEF(VS2013_BIN)\cl.exe
-*_VS2013_IA32_ASLDLINK_PATH       = DEF(VS2013_BIN)\link.exe
-
-  DEBUG_VS2013_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw
-RELEASE_VS2013_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw
-NOOPT_VS2013_IA32_CC_FLAGS        = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od
-
-  DEBUG_VS2013_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-RELEASE_VS2013_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd
-NOOPT_VS2013_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-
-  DEBUG_VS2013_IA32_NASM_FLAGS    = -Ox -f win32 -g
-RELEASE_VS2013_IA32_NASM_FLAGS    = -Ox -f win32
-NOOPT_VS2013_IA32_NASM_FLAGS      = -O0 -f win32 -g
-
-  DEBUG_VS2013_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_VS2013_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_VS2013_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
-##################
-*_VS2013_X64_*_DLL         = DEF(VS2013_DLL)
-
-*_VS2013_X64_CC_PATH       = DEF(VS2013_BINX64)\cl.exe
-*_VS2013_X64_PP_PATH       = DEF(VS2013_BINX64)\cl.exe
-*_VS2013_X64_APP_PATH      = DEF(VS2013_BINX64)\cl.exe
-*_VS2013_X64_VFRPP_PATH    = DEF(VS2013_BINX64)\cl.exe
-*_VS2013_X64_ASM_PATH      = DEF(VS2013_BINX64)\ml64.exe
-*_VS2013_X64_SLINK_PATH    = DEF(VS2013_BINX64)\lib.exe
-*_VS2013_X64_DLINK_PATH    = DEF(VS2013_BINX64)\link.exe
-*_VS2013_X64_ASLCC_PATH    = DEF(VS2013_BINX64)\cl.exe
-*_VS2013_X64_ASLPP_PATH    = DEF(VS2013_BINX64)\cl.exe
-*_VS2013_X64_ASLDLINK_PATH = DEF(VS2013_BINX64)\link.exe
-
-  DEBUG_VS2013_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw
-RELEASE_VS2013_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw
-NOOPT_VS2013_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od
-
-  DEBUG_VS2013_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-RELEASE_VS2013_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
-NOOPT_VS2013_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-
-  DEBUG_VS2013_X64_NASM_FLAGS   = -Ox -f win64 -g
-RELEASE_VS2013_X64_NASM_FLAGS   = -Ox -f win64
-NOOPT_VS2013_X64_NASM_FLAGS     = -O0 -f win64 -g
-
-  DEBUG_VS2013_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2013_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2013_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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
-
-##################
-# EBC definitions
-##################
-*_VS2013_EBC_*_FAMILY            = INTEL
-*_VS2013_EBC_*_DLL               = DEF(VS2013_DLL)
-
-*_VS2013_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe
-*_VS2013_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
-*_VS2013_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
-*_VS2013_EBC_SLINK_PATH          = DEF(VS2013_BIN)\link.exe
-*_VS2013_EBC_DLINK_PATH          = DEF(VS2013_BIN)\link.exe
-
-*_VS2013_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
-*_VS2013_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
-*_VS2013_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2013_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
-*_VS2013_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
-
-
-####################################################################################
-#   VS2013x86       - Microsoft Visual Studio 2013 (x86) professional with Intel ASL
-#   ASL  - Intel ACPI Source Language Compiler (iasl.exe)
-####################################################################################
-#   VS2013x86           - Microsoft Visual Studio 2013 (x86) professional Edition with Intel ASL
-*_VS2013x86_*_*_FAMILY        = MSFT
-
-*_VS2013x86_*_MAKE_PATH       = DEF(VS2013x86_BIN)\nmake.exe
-*_VS2013x86_*_MAKE_FLAGS      = /nologo
-*_VS2013x86_*_RC_PATH         = DEF(WINSDK8x86_BIN)\rc.exe
-
-*_VS2013x86_*_SLINK_FLAGS     = /NOLOGO /LTCG
-*_VS2013x86_*_APP_FLAGS       = /nologo /E /TC
-*_VS2013x86_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
-*_VS2013x86_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2013x86_*_DEPS_FLAGS      = DEF(MSFT_DEPS_FLAGS)
-*_VS2013x86_*_ASM16_PATH      = DEF(VS2013x86_BIN)\ml.exe
-
-##################
-# ASL definitions
-##################
-*_VS2013x86_*_ASL_PATH        = DEF(WIN_IASL_BIN)
-*_VS2013x86_*_ASL_FLAGS       = DEF(DEFAULT_WIN_ASL_FLAGS)
-*_VS2013x86_*_ASL_OUTFLAGS    = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
-*_VS2013x86_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
-*_VS2013x86_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
-*_VS2013x86_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
-
-##################
-# IA32 definitions
-##################
-*_VS2013x86_IA32_*_DLL        = DEF(VS2013x86_DLL)
-
-*_VS2013x86_IA32_CC_PATH      = DEF(VS2013x86_BIN)\cl.exe
-*_VS2013x86_IA32_VFRPP_PATH   = DEF(VS2013x86_BIN)\cl.exe
-*_VS2013x86_IA32_ASLCC_PATH   = DEF(VS2013x86_BIN)\cl.exe
-*_VS2013x86_IA32_ASLPP_PATH   = DEF(VS2013x86_BIN)\cl.exe
-*_VS2013x86_IA32_SLINK_PATH   = DEF(VS2013x86_BIN)\lib.exe
-*_VS2013x86_IA32_DLINK_PATH   = DEF(VS2013x86_BIN)\link.exe
-*_VS2013x86_IA32_ASLDLINK_PATH= DEF(VS2013x86_BIN)\link.exe
-*_VS2013x86_IA32_APP_PATH     = DEF(VS2013x86_BIN)\cl.exe
-*_VS2013x86_IA32_PP_PATH      = DEF(VS2013x86_BIN)\cl.exe
-*_VS2013x86_IA32_ASM_PATH     = DEF(VS2013x86_BIN)\ml.exe
-
-  DEBUG_VS2013x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw
-RELEASE_VS2013x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw
-NOOPT_VS2013x86_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od
-
-  DEBUG_VS2013x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-RELEASE_VS2013x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
-NOOPT_VS2013x86_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
-
-  DEBUG_VS2013x86_IA32_NASM_FLAGS  = -Ox -f win32 -g
-RELEASE_VS2013x86_IA32_NASM_FLAGS  = -Ox -f win32
-NOOPT_VS2013x86_IA32_NASM_FLAGS    = -O0 -f win32 -g
-
-  DEBUG_VS2013x86_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_VS2013x86_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_VS2013x86_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
-##################
-*_VS2013x86_X64_*_DLL         = DEF(VS2013x86_DLL)
-
-*_VS2013x86_X64_CC_PATH       = DEF(VS2013x86_BINX64)\cl.exe
-*_VS2013x86_X64_PP_PATH       = DEF(VS2013x86_BINX64)\cl.exe
-*_VS2013x86_X64_APP_PATH      = DEF(VS2013x86_BINX64)\cl.exe
-*_VS2013x86_X64_VFRPP_PATH    = DEF(VS2013x86_BINX64)\cl.exe
-*_VS2013x86_X64_ASLCC_PATH    = DEF(VS2013x86_BINX64)\cl.exe
-*_VS2013x86_X64_ASLPP_PATH    = DEF(VS2013x86_BINX64)\cl.exe
-*_VS2013x86_X64_ASM_PATH      = DEF(VS2013x86_BINX64)\ml64.exe
-*_VS2013x86_X64_SLINK_PATH    = DEF(VS2013x86_BINX64)\lib.exe
-*_VS2013x86_X64_DLINK_PATH    = DEF(VS2013x86_BINX64)\link.exe
-*_VS2013x86_X64_ASLDLINK_PATH = DEF(VS2013x86_BINX64)\link.exe
-
-  DEBUG_VS2013x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw
-RELEASE_VS2013x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw
-NOOPT_VS2013x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od
-
-  DEBUG_VS2013x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
-RELEASE_VS2013x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
-NOOPT_VS2013x86_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
-
-  DEBUG_VS2013x86_X64_NASM_FLAGS   = -Ox -f win64 -g
-RELEASE_VS2013x86_X64_NASM_FLAGS   = -Ox -f win64
-NOOPT_VS2013x86_X64_NASM_FLAGS     = -O0 -f win64 -g
-
-  DEBUG_VS2013x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2013x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2013x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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
-
-##################
-# EBC definitions
-##################
-*_VS2013x86_EBC_*_FAMILY            = INTEL
-*_VS2013x86_EBC_*_DLL               = DEF(VS2013x86_DLL)
-
-*_VS2013x86_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2013x86_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
-*_VS2013x86_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2013x86_EBC_SLINK_PATH          = DEF(VS2013x86_BIN)\link.exe
-*_VS2013x86_EBC_DLINK_PATH          = DEF(VS2013x86_BIN)\link.exe
-
-*_VS2013x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
-*_VS2013x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
-*_VS2013x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2013x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
-*_VS2013x86_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
-
-
 ####################################################################################
 #
 # Microsoft Visual Studio 2015
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 03/13] BaseTools: Remove VS2008-VS2013 remnants
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 01/13] BaseTools,CryptoPkg: Update CLANGDWARF, remove CLANG 35/38 toolchains Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 02/13] BaseTools: Remove VS2008, 2010, 2012 and 2013 toolchain definitions Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 04/13] MdePkg: " Rebecca Cran
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser, Oliver Smith-Denny

Remove remnants of Visual Studio 2008-2013 support from
Conf/tools_def.txt and various batch scripts.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Reviewed-by: Oliver Smith-Denny <osd@smith-denny.com>
---
 BaseTools/Conf/tools_def.template     | 12 ------------
 BaseTools/Scripts/SetVisualStudio.bat | 22 +---------------------
 BaseTools/Scripts/ShowEnvironment.bat | 44 --------------------------------------------
 BaseTools/get_vsvars.bat              | 13 -------------
 BaseTools/set_vsprefix_envs.bat       | 64 ----------------------------------------------------------------
 BaseTools/toolsetup.bat               | 24 +-----------------------
 6 files changed, 2 insertions(+), 177 deletions(-)

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 08dc62406a83..3aef3d0bc05f 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -53,18 +53,6 @@ DEFINE RC_PATH    = ENV(WINSDK_PATH_FOR_RC_EXE)\rc.exe
 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)
-
-# 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)
-
-# Microsoft Visual Studio 2013 Professional Edition
-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
diff --git a/BaseTools/Scripts/SetVisualStudio.bat b/BaseTools/Scripts/SetVisualStudio.bat
index 60d493a4110d..fba9f846effb 100755
--- a/BaseTools/Scripts/SetVisualStudio.bat
+++ b/BaseTools/Scripts/SetVisualStudio.bat
@@ -2,7 +2,7 @@
 @REM Windows batch file to set up the Microsoft Visual Studio environment
 @REM
 @REM This script is used to set up one of the Microsoft Visual Studio
-@REM environments, VS2008x86, VS2010x86, VS2012x86 or VS2013x86 for
+@REM environments, VS2015 for
 @REM building the Nt32Pkg/Nt32Pkg.dsc emulation environment to run on
 @REM an X64 version of Windows.
 @REM The system environment variables in this script are set by the
@@ -23,26 +23,6 @@ echo.
    @set "COMMONTOOLSx64=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64"
    @goto SetVs
 )
-
-@if defined VS120COMNTOOLS (
-   @set "COMMONTOOLSx64=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64"
-   @goto SetVs
-)
-
-@if defined VS110COMNTOOLS (
-   @set "COMMONTOOLSx64=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64"
-   @goto SetVs
-)
-
-@if defined VS100COMNTOOLS (
-   @set "COMMONTOOLSx64=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64"
-   @goto SetVs
-)
-
-@if defined VS90COMNTOOLS (
-   @set "COMMONTOOLSx64=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\x86_amd64"
-   @goto SetVs
-)
 @echo.
 @echo No version of Microsoft Visual Studio was found on this system
 @echo.
diff --git a/BaseTools/Scripts/ShowEnvironment.bat b/BaseTools/Scripts/ShowEnvironment.bat
index b91886b6a955..1301d5fcb11b 100755
--- a/BaseTools/Scripts/ShowEnvironment.bat
+++ b/BaseTools/Scripts/ShowEnvironment.bat
@@ -80,50 +80,6 @@ if defined SRC_CONF @goto SetEnv
 @goto End
 
 :CheckVsVer
-@set "TEST_VS=C:\Program Files (x86)\Microsoft Visual Studio 9.0\"
-@if "%VSINSTALLDIR%"=="%TEST_VS%" (
-    @echo     TOOL_CHAIN_TAG       = VS2008x86
-    @goto :EOF
-)
-@set "TEST_VS=C:\Program Files\Microsoft Visual Studio 9.0\"
-@if "%VSINSTALLDIR%"=="%TEST_VS%" (
-    @echo     TOOL_CHAIN_TAG       = VS2008
-    @goto :EOF
-)
-
-@set "TEST_VS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\"
-@if "%VSINSTALLDIR%"=="%TEST_VS%" (
-    @echo     TOOL_CHAIN_TAG       = VS2010x86
-    @goto :EOF
-)
-@set "TEST_VS=C:\Program Files\Microsoft Visual Studio 10.0\"
-@if "%VSINSTALLDIR%"=="%TEST_VS%" (
-    @echo     TOOL_CHAIN_TAG       = VS2010
-    @goto :EOF
-)
-
-@set "TEST_VS=C:\Program Files (x86)\Microsoft Visual Studio 11.0\"
-@if "%VSINSTALLDIR%"=="%TEST_VS%" (
-    @echo     TOOL_CHAIN_TAG       = VS2012x86
-    @goto :EOF
-)
-@set "TEST_VS=C:\Program Files\Microsoft Visual Studio 11.0\"
-@if "%VSINSTALLDIR%"=="%TEST_VS%" (
-    @echo     TOOL_CHAIN_TAG       = VS2012
-    @goto :EOF
-)
-
-@set "TEST_VS=C:\Program Files (x86)\Microsoft Visual Studio 12.0\"
-@if "%VSINSTALLDIR%"=="%TEST_VS%" (
-    @echo     TOOL_CHAIN_TAG       = VS2013x86
-    @goto :EOF
-)
-@set "TEST_VS=C:\Program Files\Microsoft Visual Studio 12.0\"
-@if "%VSINSTALLDIR%"=="%TEST_VS%" (
-    @echo     TOOL_CHAIN_TAG       = VS2013
-    @goto :EOF
-)
-
 @set "TEST_VS=C:\Program Files (x86)\Microsoft Visual Studio 14.0\"
 @if "%VSINSTALLDIR%"=="%TEST_VS%" (
     @echo     TOOL_CHAIN_TAG       = VS2015x86
diff --git a/BaseTools/get_vsvars.bat b/BaseTools/get_vsvars.bat
index 3beb113be296..b67e147ee61a 100644
--- a/BaseTools/get_vsvars.bat
+++ b/BaseTools/get_vsvars.bat
@@ -13,8 +13,6 @@ if "%1"=="" goto main
 if /I "%1"=="VS2019" goto VS2019Vars
 if /I "%1"=="VS2017" goto VS2017Vars
 if /I "%1"=="VS2015" goto VS2015Vars
-if /I "%1"=="VS2013" goto VS2013Vars
-if /I "%1"=="VS2012" goto VS2012Vars
 
 :set_vsvars
 if defined VCINSTALLDIR goto :EOF
@@ -85,16 +83,5 @@ if defined VCINSTALLDIR goto :done
   :VS2015Vars
   if defined VS140COMNTOOLS (call :read_vsvars  "%VS140COMNTOOLS%") else (if /I "%1"=="VS2015" goto ToolNotInstall)
 
-  :VS2013Vars
-  if defined VS120COMNTOOLS ( call :read_vsvars  "%VS120COMNTOOLS%") else (if /I "%1"=="VS2013" goto ToolNotInstall)
-
-  :VS2012Vars
-  if defined VS110COMNTOOLS (call :read_vsvars  "%VS110COMNTOOLS%") else (if /I "%1"=="VS2012" goto ToolNotInstall)
-
-  if defined VS100COMNTOOLS  call :read_vsvars  "%VS100COMNTOOLS%"
-  if defined VS90COMNTOOLS   call :read_vsvars  "%VS90COMNTOOLS%"
-  if defined VS80COMNTOOLS   call :read_vsvars  "%VS80COMNTOOLS%"
-  if defined VS71COMNTOOLS   call :read_vsvars  "%VS71COMNTOOLS%"
-
 :done
 set GET_VSVARS_BAT_CHECK_DIR=
diff --git a/BaseTools/set_vsprefix_envs.bat b/BaseTools/set_vsprefix_envs.bat
index d4eb84f0648d..0b9a0c75b975 100644
--- a/BaseTools/set_vsprefix_envs.bat
+++ b/BaseTools/set_vsprefix_envs.bat
@@ -21,8 +21,6 @@ goto :EOF
 if /I "%1"=="VS2019" goto SetVS2019
 if /I "%1"=="VS2017" goto SetVS2017
 if /I "%1"=="VS2015" goto SetVS2015
-if /I "%1"=="VS2013" goto SetVS2013
-if /I "%1"=="VS2012" goto SetVS2012
 
 if defined VS71COMNTOOLS (
   if not defined VS2003_PREFIX (
@@ -30,68 +28,6 @@ if defined VS71COMNTOOLS (
   )
 )
 
-if defined VS80COMNTOOLS (
-  if not defined VS2005_PREFIX (
-    set "VS2005_PREFIX=%VS80COMNTOOLS:~0,-14%"
-  )
-)
-
-if defined VS90COMNTOOLS (
-  if not defined VS2008_PREFIX (
-    set "VS2008_PREFIX=%VS90COMNTOOLS:~0,-14%"
-  )
-  if not defined WINSDK_PREFIX (
-    set "WINSDK_PREFIX=c:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\"
-  )
-  if not defined WINSDKx86_PREFIX (
-    set "WINSDKx86_PREFIX=c:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin\"
-  )
-)
-
-if defined VS100COMNTOOLS (
-  if not defined VS2010_PREFIX (
-    set "VS2010_PREFIX=%VS100COMNTOOLS:~0,-14%"
-  )
-  if not defined WINSDK7_PREFIX (
-    set "WINSDK7_PREFIX=c:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin\"
-  )
-  if not defined WINSDK7x86_PREFIX (
-    set "WINSDK7x86_PREFIX=c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\"
-  )
-)
-
-:SetVS2012
-if defined VS110COMNTOOLS (
-  if not defined VS2012_PREFIX (
-    set "VS2012_PREFIX=%VS110COMNTOOLS:~0,-14%"
-  )
-  if not defined WINSDK71_PREFIX (
-    set "WINSDK71_PREFIX=c:\Program Files\Microsoft SDKs\Windows\v7.1A\Bin\"
-  )
-  if not defined WINSDK71x86_PREFIX (
-    set "WINSDK71x86_PREFIX=c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\"
-  )
-) else (
-  if /I "%1"=="VS2012" goto ToolNotInstall
-)
-if /I "%1"=="VS2012" goto SetWinDDK
-
-:SetVS2013
-if defined VS120COMNTOOLS (
-  if not defined VS2013_PREFIX (
-    set "VS2013_PREFIX=%VS120COMNTOOLS:~0,-14%"
-  )
-  if not defined WINSDK8_PREFIX (
-    set "WINSDK8_PREFIX=c:\Program Files\Windows Kits\8.0\bin\"
-  )
-  if not defined WINSDK8x86_PREFIX (
-    set "WINSDK8x86_PREFIX=c:\Program Files (x86)\Windows Kits\8.0\bin\"
-  )
-) else (
-  if /I "%1"=="VS2013" goto ToolNotInstall
-)
-if /I "%1"=="VS2013" goto SetWinDDK
-
 :SetVS2015
 if defined VS140COMNTOOLS (
   if not defined VS2015_PREFIX (
diff --git a/BaseTools/toolsetup.bat b/BaseTools/toolsetup.bat
index 58fd26a4b585..25d13d559cd6 100755
--- a/BaseTools/toolsetup.bat
+++ b/BaseTools/toolsetup.bat
@@ -60,18 +60,6 @@ if /I "%1"=="/?" goto Usage
     set VSTool=VS2015
     goto loop
   )
-  if /I "%1"=="VS2013" (
-    shift
-    set VS2013=TRUE
-    set VSTool=VS2013
-    goto loop
-  )
-  if /I "%1"=="VS2012" (
-    shift
-    set VS2012=TRUE
-    set VSTool=VS2012
-    goto loop
-  )
   if "%1"=="" goto setup_workspace
   if exist %1 (
     if not defined BASE_TOOLS_PATH (
@@ -189,12 +177,6 @@ if defined VS2019 (
 ) else if defined VS2015 (
   call %EDK_TOOLS_PATH%\set_vsprefix_envs.bat VS2015
   call %EDK_TOOLS_PATH%\get_vsvars.bat VS2015
-) else if defined VS2013 (
-  call %EDK_TOOLS_PATH%\set_vsprefix_envs.bat VS2013
-  call %EDK_TOOLS_PATH%\get_vsvars.bat VS2013
-) else if defined VS2012 (
-  call %EDK_TOOLS_PATH%\set_vsprefix_envs.bat VS2012
-  call %EDK_TOOLS_PATH%\get_vsvars.bat VS2012
 ) else (
   call %EDK_TOOLS_PATH%\set_vsprefix_envs.bat
   call %EDK_TOOLS_PATH%\get_vsvars.bat
@@ -472,7 +454,7 @@ goto end
 
 :Usage
   @echo.
-  echo  Usage: "%0 [-h | -help | --help | /h | /help | /?] [ Rebuild | ForceRebuild ] [Reconfig] [base_tools_path [edk_tools_path]] [VS2019] [VS2017] [VS2015] [VS2013] [VS2012]"
+  echo  Usage: "%0 [-h | -help | --help | /h | /help | /?] [ Rebuild | ForceRebuild ] [Reconfig] [base_tools_path [edk_tools_path]] [VS2019] [VS2017] [VS2015]"
   @echo.
   @echo         base_tools_path   BaseTools project path, BASE_TOOLS_PATH will be set to this path.
   @echo         edk_tools_path    EDK_TOOLS_PATH will be set to this path.
@@ -481,8 +463,6 @@ goto end
   @echo         ForceRebuild      If sources are available, rebuild all tools regardless of
   @echo                           whether they have been updated or not.
   @echo         Reconfig          Reinstall target.txt, tools_def.txt and build_rule.txt.
-  @echo         VS2012            Set the env for VS2012 build.
-  @echo         VS2013            Set the env for VS2013 build.
   @echo         VS2015            Set the env for VS2015 build.
   @echo         VS2017            Set the env for VS2017 build.
   @echo         VS2019            Set the env for VS2019 build.
@@ -495,8 +475,6 @@ set RECONFIG=
 set VS2019=
 set VS2017=
 set VS2015=
-set VS2013=
-set VS2012=
 set VSTool=
 popd
 
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 04/13] MdePkg: Remove VS2008-VS2013 remnants
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (2 preceding siblings ...)
  2023-04-19 19:57 ` [PATCH v4 03/13] BaseTools: Remove VS2008-VS2013 remnants Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 05/13] edksetup.bat: " Rebecca Cran
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser, Oliver Smith-Denny

Since Visual Studio versions older than VS2015 are no longer supported,
remove mention of them from MdePkg.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Reviewed-by: Oliver Smith-Denny <osd@smith-denny.com>
---
 MdePkg/Include/Ia32/ProcessorBind.h | 8 ++------
 MdePkg/Include/X64/ProcessorBind.h  | 8 ++------
 2 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/MdePkg/Include/Ia32/ProcessorBind.h b/MdePkg/Include/Ia32/ProcessorBind.h
index ee39d1cfe10b..62ca7f8607d3 100644
--- a/MdePkg/Include/Ia32/ProcessorBind.h
+++ b/MdePkg/Include/Ia32/ProcessorBind.h
@@ -88,19 +88,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 
   #if defined (_MSC_VER) && _MSC_VER >= 1800
 
-//
-// Disable these warnings for VS2013.
-//
-
 //
 // This warning is for potentially uninitialized local variable, and it may cause false
-// positive issues in VS2013 and VS2015 build
+// positive issues in VS2015 build
 //
     #pragma warning ( disable : 4701 )
 
 //
 // This warning is for potentially uninitialized local pointer variable, and it may cause
-// false positive issues in VS2013 and VS2015 build
+// false positive issues in VS2015 build
 //
     #pragma warning ( disable : 4703 )
 
diff --git a/MdePkg/Include/X64/ProcessorBind.h b/MdePkg/Include/X64/ProcessorBind.h
index f0a4d00142b9..cdbb4fd6d3d1 100644
--- a/MdePkg/Include/X64/ProcessorBind.h
+++ b/MdePkg/Include/X64/ProcessorBind.h
@@ -102,19 +102,15 @@
 
   #if defined (_MSC_VER) && _MSC_VER >= 1800
 
-//
-// Disable these warnings for VS2013.
-//
-
 //
 // This warning is for potentially uninitialized local variable, and it may cause false
-// positive issues in VS2013 and VS2015 build
+// positive issues in VS2015 build
 //
     #pragma warning ( disable : 4701 )
 
 //
 // This warning is for potentially uninitialized local pointer variable, and it may cause
-// false positive issues in VS2013 and VS2015 build
+// false positive issues in VS2015 build
 //
     #pragma warning ( disable : 4703 )
 
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 05/13] edksetup.bat: Remove VS2008-VS2013 remnants
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (3 preceding siblings ...)
  2023-04-19 19:57 ` [PATCH v4 04/13] MdePkg: " Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-20 17:34   ` [edk2-devel] " Leif Lindholm
  2023-04-19 19:57 ` [PATCH v4 06/13] BaseTools: Remove unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS defs Rebecca Cran
                   ` (8 subsequent siblings)
  13 siblings, 1 reply; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser, Oliver Smith-Denny

Since Visual Studio versions older than VS2015 are no longer supported,
remove mention of them from edksetup.bat.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Reviewed-by: Oliver Smith-Denny <osd@smith-denny.com>
---
 edksetup.bat | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/edksetup.bat b/edksetup.bat
index 7ad137bb3e9b..2fdf130e00e2 100755
--- a/edksetup.bat
+++ b/edksetup.bat
@@ -148,19 +148,15 @@ if /I "%1"=="ForceRebuild" shift
 if /I "%1"=="VS2019" shift
 if /I "%1"=="VS2017" shift
 if /I "%1"=="VS2015" shift
-if /I "%1"=="VS2013" shift
-if /I "%1"=="VS2012" shift
 if "%1"=="" goto end
 
 :Usage
   @echo.
-  @echo  Usage: "%0 [-h | -help | --help | /h | /help | /?] [Reconfig] [Rebuild] [ForceRebuild] [VS2019] [VS2017] [VS2015] [VS2013] [VS2012]"
+  @echo  Usage: "%0 [-h | -help | --help | /h | /help | /?] [Reconfig] [Rebuild] [ForceRebuild] [VS2019] [VS2017] [VS2015]"
   @echo.
   @echo         Reconfig       Reinstall target.txt, tools_def.txt and build_rule.txt.
   @echo         Rebuild        Perform incremental rebuild of BaseTools binaries.
   @echo         ForceRebuild   Force a full rebuild of BaseTools binaries.
-  @echo         VS2012         Set the env for VS2012 build.
-  @echo         VS2013         Set the env for VS2013 build.
   @echo         VS2015         Set the env for VS2015 build.
   @echo         VS2017         Set the env for VS2017 build.
   @echo         VS2019         Set the env for VS2019 build.
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 06/13] BaseTools: Remove unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS defs
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (4 preceding siblings ...)
  2023-04-19 19:57 ` [PATCH v4 05/13] edksetup.bat: " Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 07/13] BaseTools: Remove EBC (EFI Byte Code) compiler definitions Rebecca Cran
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser, Oliver Smith-Denny

Remove the unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS definitions
from Conf/tools_def.template.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Reviewed-by: Oliver Smith-Denny <osd@smith-denny.com>
---
 BaseTools/Conf/tools_def.template | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 3aef3d0bc05f..eaf338846700 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -102,10 +102,6 @@ DEFINE MSFT_ASLPP_FLAGS        = /nologo /E /C /FIAutoGen.h
 DEFINE MSFT_ASLCC_FLAGS        = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
 DEFINE MSFT_ASLDLINK_FLAGS     = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
 
-DEFINE IPHONE_TOOLS            = /Developer/Platforms/iPhoneOS.platform/Developer
-
-DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G++ Lite/bin
-
 DEFINE DTCPP_BIN               = ENV(DTCPP_PREFIX)cpp
 DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 07/13] BaseTools: Remove EBC (EFI Byte Code) compiler definitions
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (5 preceding siblings ...)
  2023-04-19 19:57 ` [PATCH v4 06/13] BaseTools: Remove unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS defs Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 08/13] BaseTools: Update VS toolchain descriptions in tools_def.txt.template Rebecca Cran
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser, Oliver Smith-Denny

The edk2-stable202302 release was the last to support building
EFI Byte Code drivers. Since the Intel EFI Byte Code Compiler is no
longer available, a decision has been made to remove support for EBC
from edk2.

Remove the definitions for Intel's EBC compiler from
Conf/tools_def.template.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Reviewed-by: Oliver Smith-Denny <osd@smith-denny.com>
---
 BaseTools/Conf/tools_def.template | 98 --------------------------------------------------------------------------------------------------
 1 file changed, 98 deletions(-)

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index eaf338846700..298c153d15ff 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -67,10 +67,6 @@ DEFINE WINSDK10_BIN         = ENV(WINSDK10_PREFIX)DEF(VS_HOST)
 DEFINE WINDDK_BIN16     = ENV(WINDDK3790_PREFIX)bin16
 DEFINE WINDDK_BINX64    = ENV(WINDDK3790_PREFIX)win64\x86\amd64
 
-DEFINE EBC_BIN          = C:\Program Files\Intel\EBC\Bin
-DEFINE EBC_BINx86       = C:\Program Files (x86)\Intel\EBC\Bin
-
-
 DEFINE CYGWIN_BIN              = c:/cygwin/bin
 DEFINE CYGWIN_BINIA32          = c:/cygwin/opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/
 DEFINE CYGWIN_BINX64           = c:/cygwin/opt/tiano/x86_64-pc-mingw64/x86_64-pc-mingw64/bin/
@@ -135,16 +131,12 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #                             Microsoft Visual Studio 2015 Professional Edition
 #                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
 #                        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
 #   VS2017      -win32-  Requires:
 #                             Microsoft Visual Studio 2017 version 15.2 (15.4 for ARM64) 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
@@ -154,8 +146,6 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #   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
@@ -224,22 +214,6 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 ####################################################################################
 ####################################################################################
 #
-# Intel EFI Byte Code Compiler (Template)
-#
-####################################################################################
-# *_*_EBC_*_FAMILY                   = INTEL
-#
-# *_*_EBC_PP_PATH                    = C:\Program Files\Intel\EBC\Bin\iec.exe
-# *_*_EBC_CC_PATH                    = C:\Program Files\Intel\EBC\Bin\iec.exe
-# *_*_EBC_SLINK_PATH                 = C:\Program Files\Intel\EBC\Bin\link.exe
-#
-# *_*_EBC_SLINK_FLAGS                = /lib /NOLOGO /MACHINE:EBC
-# *_*_EBC_PP_FLAGS                   = /nologo /E /TC /FIAutoGen.h
-# *_*_EBC_CC_FLAGS                   = /nologo /FAcs /c /W3 /WX /FIAutoGen.h
-# *_*_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /MACHINE:EBC /OPT:REF /NODEFAULTLIB /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /ALIGN:32 /DRIVER
-#
-####################################################################################
-#
 # Intel ACPI Source Language Compiler (Template)
 #
 ####################################################################################
@@ -354,25 +328,6 @@ NOOPT_VS2015_X64_NASM_FLAGS     = -O0 -f win64 -g
 RELEASE_VS2015_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2015_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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
 
-##################
-# EBC definitions
-##################
-*_VS2015_EBC_*_FAMILY            = INTEL
-*_VS2015_EBC_*_DLL               = DEF(VS2015_DLL)
-
-*_VS2015_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe
-*_VS2015_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
-*_VS2015_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
-*_VS2015_EBC_SLINK_PATH          = DEF(VS2015_BIN)\link.exe
-*_VS2015_EBC_DLINK_PATH          = DEF(VS2015_BIN)\link.exe
-
-*_VS2015_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
-*_VS2015_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
-*_VS2015_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2015_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
-*_VS2015_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
-
-
 ####################################################################################
 #   VS2015x86       - Microsoft Visual Studio 2015 (x86) professional with Intel ASL
 #   ASL  - Intel ACPI Source Language Compiler (iasl.exe)
@@ -466,25 +421,6 @@ NOOPT_VS2015x86_X64_NASM_FLAGS     = -O0 -f win64 -g
 RELEASE_VS2015x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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_VS2015x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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
 
-##################
-# EBC definitions
-##################
-*_VS2015x86_EBC_*_FAMILY            = INTEL
-*_VS2015x86_EBC_*_DLL               = DEF(VS2015x86_DLL)
-
-*_VS2015x86_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2015x86_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
-*_VS2015x86_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2015x86_EBC_SLINK_PATH          = DEF(VS2015x86_BIN)\link.exe
-*_VS2015x86_EBC_DLINK_PATH          = DEF(VS2015x86_BIN)\link.exe
-
-*_VS2015x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
-*_VS2015x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
-*_VS2015x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_VS2015x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
-*_VS2015x86_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
-
-
 ####################################################################################
 #   VS2017       - Microsoft Visual Studio 2017 with Intel ASL
 #   ASL          - Intel ACPI Source Language Compiler (iasl.exe)
@@ -626,23 +562,6 @@ NOOPT_VS2017_AARCH64_ASM_FLAGS     = /nologo
 RELEASE_VS2017_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_VS2017_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
-##################
-*_VS2017_EBC_*_FAMILY            = INTEL
-
-*_VS2017_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2017_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
-*_VS2017_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
-*_VS2017_EBC_SLINK_PATH          = DEF(VS2017_BIN_IA32)\link.exe
-*_VS2017_EBC_DLINK_PATH          = DEF(VS2017_BIN_IA32)\link.exe
-
-*_VS2017_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
-*_VS2017_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
-*_VS2017_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
-*_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 2019 with Intel ASL
 #   ASL          - Intel ACPI Source Language Compiler (iasl.exe)
@@ -784,23 +703,6 @@ NOOPT_VS2019_AARCH64_ASM_FLAGS     = /nologo
 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_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
-
 ####################################################################################
 # GCC Common
 ####################################################################################
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 08/13] BaseTools: Update VS toolchain descriptions in tools_def.txt.template
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (6 preceding siblings ...)
  2023-04-19 19:57 ` [PATCH v4 07/13] BaseTools: Remove EBC (EFI Byte Code) compiler definitions Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains Rebecca Cran
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser

Update the Visual Studio toolchain descriptions in
tools_def.txt.template:

- The WinDDK is no longer needed.
- Update 3 is required for VS 2015.
- VS 2005 has been removed.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
---
 BaseTools/Conf/tools_def.template | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 298c153d15ff..6fd03ee77ac6 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -128,8 +128,7 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 # Supported Tool Chains
 # =====================
 #   VS2015      -win32-  Requires:
-#                             Microsoft Visual Studio 2015 Professional Edition
-#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
+#                             Microsoft Visual Studio 2015 Professional Edition, Update 3
 #                        Optional:
 #                             Required to build platforms or ACPI tables:
 #                               Intel(r) ACPI Compiler (iasl.exe) from
@@ -186,13 +185,11 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #                               nasm compiler from
 #                               NASM -- http://www.nasm.us/
 #   VS2015x86   -win64-  Requires:
-#                             Microsoft Visual Studio 2015 (x86) Update 2 or above
-#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
+#                             Microsoft Visual Studio 2015 (x86) Update 3 or above
 #                        Optional:
 #                             Required to build platforms or ACPI tables:
 #                               Intel(r) ACPI Compiler (iasl.exe) from
 #                               https://acpica.org/downloads
-# * Commented out - All versions of VS2005 use the same standard install directory
 #
 ####################################################################################
 ####################################################################################
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (7 preceding siblings ...)
  2023-04-19 19:57 ` [PATCH v4 08/13] BaseTools: Update VS toolchain descriptions in tools_def.txt.template Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-21  2:32   ` 回复: " gaoliming
  2023-04-19 19:57 ` [PATCH v4 10/13] BaseTools: Only call LoadConfiguration once in build.py Rebecca Cran
                   ` (4 subsequent siblings)
  13 siblings, 1 reply; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser

Add a 'GCC' toolchain that's a copy of the existing GCC5 definition.
Add a 'GCCNOLTO' toolchain that's a copy of the existing GCC48
toolchain.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
---
 UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc |   2 ++
 IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc               |   9 ++++++++-
 EmulatorPkg/Unix/Host/Host.inf                        |   2 ++
 BaseTools/Conf/tools_def.template                     | 366 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 378 insertions(+), 1 deletion(-)

diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
index 7866c36e6693..b24ecdbf8661 100644
--- a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
+++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
@@ -31,6 +31,8 @@ [BuildOptions]
 !endif
   GCC:*_GCC5_*_CC_FLAGS = --coverage
   GCC:*_GCC5_*_DLINK_FLAGS = --coverage
+  GCC:*_GCC_*_CC_FLAGS = --coverage
+  GCC:*_GCC_*_DLINK_FLAGS = --coverage
 [BuildOptions.common.EDKII.HOST_APPLICATION]
   #
   # MSFT
diff --git a/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc b/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
index 31558121185d..2db3854274c8 100644
--- a/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
+++ b/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
@@ -461,10 +461,17 @@ [Components.IA32]
 ###################################################################################################
 [BuildOptions]
 # Append build options for EDK and EDKII drivers (= is Append, == is Replace)
-  # Enable link-time optimization when building with GCC49
+  # Enable link-time optimization when building with GCC49 or GCCNOLTO
   *_GCC49_IA32_CC_FLAGS = -flto
   *_GCC49_IA32_DLINK_FLAGS = -flto
+  *_GCCNOLTO_IA32_CC_FLAGS = -flto
+  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto
   *_GCC5_IA32_CC_FLAGS = -fno-pic
   *_GCC5_IA32_DLINK_FLAGS = -no-pie
   *_GCC5_IA32_ASLCC_FLAGS = -fno-pic
   *_GCC5_IA32_ASLDLINK_FLAGS = -no-pie
+  *_GCC_IA32_CC_FLAGS = -fno-pic
+  *_GCC_IA32_DLINK_FLAGS = -no-pie
+  *_GCC_IA32_ASLCC_FLAGS = -fno-pic
+  *_GCC_IA32_ASLDLINK_FLAGS = -no-pie
+
diff --git a/EmulatorPkg/Unix/Host/Host.inf b/EmulatorPkg/Unix/Host/Host.inf
index f5ebbed68344..90e8c36b6186 100644
--- a/EmulatorPkg/Unix/Host/Host.inf
+++ b/EmulatorPkg/Unix/Host/Host.inf
@@ -123,7 +123,9 @@ [BuildOptions]
    GCC:*_*_X64_CC_FLAGS == -m64 -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:*_GCC48_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
    GCC:*_GCC49_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
+   GCC:*_GCCNOLTO_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
    GCC:*_GCC5_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))" -flto -DUSING_LTO -Os
+   GCC:*_GCC_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))" -flto -DUSING_LTO -Os
    GCC:*_*_X64_PP_FLAGS == -m64 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
    GCC:*_*_X64_ASM_FLAGS == -m64 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
 
diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 6fd03ee77ac6..36772b9fe34f 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -77,8 +77,13 @@ DEFINE GCC48_X64_PREFIX        = ENV(GCC48_BIN)
 DEFINE GCC49_IA32_PREFIX       = ENV(GCC49_BIN)
 DEFINE GCC49_X64_PREFIX        = ENV(GCC49_BIN)
 
+DEFINE GCCNOLTO_IA32_PREFIX    = ENV(GCCNOLTO_BIN)
+DEFINE GCCNOLTO_X64_PREFIX     = ENV(GCCNOLTO_BIN)
+
 DEFINE GCC5_IA32_PREFIX        = ENV(GCC5_BIN)
 DEFINE GCC5_X64_PREFIX         = ENV(GCC5_BIN)
+DEFINE GCC_IA32_PREFIX         = ENV(GCC_BIN)
+DEFINE GCC_X64_PREFIX          = ENV(GCC_BIN)
 DEFINE GCC_HOST_PREFIX         = ENV(GCC_HOST_BIN)
 
 DEFINE UNIX_IASL_BIN           = ENV(IASL_PREFIX)iasl
@@ -1128,6 +1133,150 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
   NOOPT_GCC49_AARCH64_DLINK_FLAGS  = DEF(GCC49_AARCH64_DLINK_FLAGS) -O0
   NOOPT_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 -O0
 
+####################################################################################
+#
+# GCC NOLTO - This configuration is used to compile under Linux to produce
+#             PE/COFF binaries using GCC without Link Time Optimization
+#
+####################################################################################
+*_GCCNOLTO_*_*_FAMILY               = GCC
+
+*_GCCNOLTO_*_MAKE_PATH                    = DEF(GCC_HOST_PREFIX)make
+*_GCCNOLTO_*_*_DLL                        = ENV(GCCNOLTO_DLL)
+*_GCCNOLTO_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)
+
+*_GCCNOLTO_*_PP_FLAGS                     = DEF(GCC_PP_FLAGS)
+*_GCCNOLTO_*_ASLPP_FLAGS                  = DEF(GCC_ASLPP_FLAGS)
+*_GCCNOLTO_*_ASLCC_FLAGS                  = DEF(GCC_ASLCC_FLAGS)
+*_GCCNOLTO_*_VFRPP_FLAGS                  = DEF(GCC_VFRPP_FLAGS)
+*_GCCNOLTO_*_APP_FLAGS                    =
+*_GCCNOLTO_*_ASL_FLAGS                    = DEF(IASL_FLAGS)
+*_GCCNOLTO_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)
+*_GCCNOLTO_*_DEPS_FLAGS                   = DEF(GCC_DEPS_FLAGS)
+
+##################
+# GCCNOLTO IA32 definitions
+##################
+*_GCCNOLTO_IA32_OBJCOPY_PATH         = DEF(GCCNOLTO_IA32_PREFIX)objcopy
+*_GCCNOLTO_IA32_CC_PATH              = DEF(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_SLINK_PATH           = DEF(GCCNOLTO_IA32_PREFIX)ar
+*_GCCNOLTO_IA32_DLINK_PATH           = DEF(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_ASLDLINK_PATH        = DEF(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_ASM_PATH             = DEF(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_PP_PATH              = DEF(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_VFRPP_PATH           = DEF(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_ASLCC_PATH           = DEF(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_ASLPP_PATH           = DEF(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_RC_PATH              = DEF(GCCNOLTO_IA32_PREFIX)objcopy
+
+*_GCCNOLTO_IA32_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS) -m32
+*_GCCNOLTO_IA32_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386
+*_GCCNOLTO_IA32_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS) -m32 -march=i386
+*_GCCNOLTO_IA32_DLINK_FLAGS          = DEF(GCC49_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386
+*_GCCNOLTO_IA32_DLINK2_FLAGS         = DEF(GCC49_IA32_DLINK2_FLAGS)
+*_GCCNOLTO_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
+*_GCCNOLTO_IA32_OBJCOPY_FLAGS        =
+*_GCCNOLTO_IA32_NASM_FLAGS           = -f elf32
+
+  DEBUG_GCCNOLTO_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS)
+RELEASE_GCCNOLTO_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable
+  NOOPT_GCCNOLTO_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -O0
+
+##################
+# GCCNOLTO X64 definitions
+##################
+*_GCCNOLTO_X64_OBJCOPY_PATH         = DEF(GCCNOLTO_X64_PREFIX)objcopy
+*_GCCNOLTO_X64_CC_PATH              = DEF(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_SLINK_PATH           = DEF(GCCNOLTO_X64_PREFIX)ar
+*_GCCNOLTO_X64_DLINK_PATH           = DEF(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_ASLDLINK_PATH        = DEF(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_ASM_PATH             = DEF(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_PP_PATH              = DEF(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_VFRPP_PATH           = DEF(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_ASLCC_PATH           = DEF(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_ASLPP_PATH           = DEF(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_RC_PATH              = DEF(GCCNOLTO_X64_PREFIX)objcopy
+
+*_GCCNOLTO_X64_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS) -m64
+*_GCCNOLTO_X64_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
+*_GCCNOLTO_X64_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS) -m64
+*_GCCNOLTO_X64_DLINK_FLAGS          = DEF(GCC49_X64_DLINK_FLAGS)
+*_GCCNOLTO_X64_DLINK2_FLAGS         = DEF(GCC49_X64_DLINK2_FLAGS)
+*_GCCNOLTO_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
+*_GCCNOLTO_X64_OBJCOPY_FLAGS        =
+*_GCCNOLTO_X64_NASM_FLAGS           = -f elf64
+
+  DEBUG_GCCNOLTO_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS)
+RELEASE_GCCNOLTO_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable
+  NOOPT_GCCNOLTO_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS) -O0
+
+##################
+# GCCNOLTO ARM definitions
+##################
+*_GCCNOLTO_ARM_CC_PATH              = ENV(GCCNOLTO_ARM_PREFIX)gcc
+*_GCCNOLTO_ARM_SLINK_PATH           = ENV(GCCNOLTO_ARM_PREFIX)ar
+*_GCCNOLTO_ARM_DLINK_PATH           = ENV(GCCNOLTO_ARM_PREFIX)gcc
+*_GCCNOLTO_ARM_ASLDLINK_PATH        = ENV(GCCNOLTO_ARM_PREFIX)gcc
+*_GCCNOLTO_ARM_ASM_PATH             = ENV(GCCNOLTO_ARM_PREFIX)gcc
+*_GCCNOLTO_ARM_PP_PATH              = ENV(GCCNOLTO_ARM_PREFIX)gcc
+*_GCCNOLTO_ARM_VFRPP_PATH           = ENV(GCCNOLTO_ARM_PREFIX)gcc
+*_GCCNOLTO_ARM_ASLCC_PATH           = ENV(GCCNOLTO_ARM_PREFIX)gcc
+*_GCCNOLTO_ARM_ASLPP_PATH           = ENV(GCCNOLTO_ARM_PREFIX)gcc
+*_GCCNOLTO_ARM_RC_PATH              = ENV(GCCNOLTO_ARM_PREFIX)objcopy
+
+*_GCCNOLTO_ARM_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS)
+*_GCCNOLTO_ARM_ASLDLINK_FLAGS       = DEF(GCC49_ARM_ASLDLINK_FLAGS)
+*_GCCNOLTO_ARM_ASM_FLAGS            = DEF(GCC49_ARM_ASM_FLAGS)
+*_GCCNOLTO_ARM_DLINK_FLAGS          = DEF(GCC49_ARM_DLINK_FLAGS)
+*_GCCNOLTO_ARM_DLINK2_FLAGS         = DEF(GCC49_ARM_DLINK2_FLAGS)
+*_GCCNOLTO_ARM_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)
+*_GCCNOLTO_ARM_PLATFORM_FLAGS       = -march=armv7-a
+*_GCCNOLTO_ARM_PP_FLAGS             = $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
+*_GCCNOLTO_ARM_RC_FLAGS             = DEF(GCC_ARM_RC_FLAGS)
+*_GCCNOLTO_ARM_VFRPP_FLAGS          = $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
+*_GCCNOLTO_ARM_CC_XIPFLAGS          = DEF(GCC49_ARM_CC_XIPFLAGS)
+
+  DEBUG_GCCNOLTO_ARM_CC_FLAGS       = DEF(GCC49_ARM_CC_FLAGS) -O0
+RELEASE_GCCNOLTO_ARM_CC_FLAGS       = DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable
+  NOOPT_GCCNOLTO_ARM_CC_FLAGS       = DEF(GCC49_ARM_CC_FLAGS) -O0
+
+##################
+# GCCNOLTO AARCH64 definitions
+##################
+*_GCCNOLTO_AARCH64_CC_PATH          = ENV(GCCNOLTO_AARCH64_PREFIX)gcc
+*_GCCNOLTO_AARCH64_SLINK_PATH       = ENV(GCCNOLTO_AARCH64_PREFIX)ar
+*_GCCNOLTO_AARCH64_DLINK_PATH       = ENV(GCCNOLTO_AARCH64_PREFIX)gcc
+*_GCCNOLTO_AARCH64_ASLDLINK_PATH    = ENV(GCCNOLTO_AARCH64_PREFIX)gcc
+*_GCCNOLTO_AARCH64_ASM_PATH         = ENV(GCCNOLTO_AARCH64_PREFIX)gcc
+*_GCCNOLTO_AARCH64_PP_PATH          = ENV(GCCNOLTO_AARCH64_PREFIX)gcc
+*_GCCNOLTO_AARCH64_VFRPP_PATH       = ENV(GCCNOLTO_AARCH64_PREFIX)gcc
+*_GCCNOLTO_AARCH64_ASLCC_PATH       = ENV(GCCNOLTO_AARCH64_PREFIX)gcc
+*_GCCNOLTO_AARCH64_ASLPP_PATH       = ENV(GCCNOLTO_AARCH64_PREFIX)gcc
+*_GCCNOLTO_AARCH64_RC_PATH          = ENV(GCCNOLTO_AARCH64_PREFIX)objcopy
+
+*_GCCNOLTO_AARCH64_ASLCC_FLAGS      = DEF(GCC49_ASLCC_FLAGS)
+*_GCCNOLTO_AARCH64_ASLDLINK_FLAGS   = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)
+*_GCCNOLTO_AARCH64_ASM_FLAGS        = DEF(GCC49_AARCH64_ASM_FLAGS)
+*_GCCNOLTO_AARCH64_DLINK2_FLAGS     = DEF(GCC49_AARCH64_DLINK2_FLAGS)
+*_GCCNOLTO_AARCH64_DTCPP_FLAGS      = DEF(GCC_DTCPP_FLAGS)
+*_GCCNOLTO_AARCH64_PLATFORM_FLAGS   =
+*_GCCNOLTO_AARCH64_PP_FLAGS         = $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
+*_GCCNOLTO_AARCH64_RC_FLAGS         = DEF(GCC_AARCH64_RC_FLAGS)
+*_GCCNOLTO_AARCH64_VFRPP_FLAGS      = $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
+*_GCCNOLTO_AARCH64_CC_XIPFLAGS      = DEF(GCC49_AARCH64_CC_XIPFLAGS)
+
+  DEBUG_GCCNOLTO_AARCH64_CC_FLAGS     = DEF(GCC49_AARCH64_CC_FLAGS) -O0
+  DEBUG_GCCNOLTO_AARCH64_DLINK_FLAGS  = DEF(GCC49_AARCH64_DLINK_FLAGS)
+  DEBUG_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
+
+RELEASE_GCCNOLTO_AARCH64_CC_FLAGS     = DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable
+RELEASE_GCCNOLTO_AARCH64_DLINK_FLAGS  = DEF(GCC49_AARCH64_DLINK_FLAGS)
+RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
+
+  NOOPT_GCCNOLTO_AARCH64_CC_FLAGS     = DEF(GCC49_AARCH64_CC_FLAGS) -O0
+  NOOPT_GCCNOLTO_AARCH64_DLINK_FLAGS  = DEF(GCC49_AARCH64_DLINK_FLAGS) -O0
+  NOOPT_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 -O0
+
 ####################################################################################
 #
 # GCC 5 - This configuration is used to compile under Linux to produce
@@ -1345,6 +1494,223 @@ RELEASE_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
 DEBUG_GCC5_LOONGARCH64_CC_FLAGS         = DEF(GCC5_LOONGARCH64_CC_FLAGS)
 RELEASE_GCC5_LOONGARCH64_CC_FLAGS       = DEF(GCC5_LOONGARCH64_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-variable
 
+####################################################################################
+#
+# GCC - This configuration is used to compile under Linux to produce
+#       PE/COFF binaries using GCC 5 or newer
+#
+####################################################################################
+*_GCC_*_*_FAMILY                = GCC
+
+*_GCC_*_MAKE_PATH               = DEF(GCC_HOST_PREFIX)make
+*_GCC_*_*_DLL                   = ENV(GCC_DLL)
+*_GCC_*_ASL_PATH                = DEF(UNIX_IASL_BIN)
+
+*_GCC_*_PP_FLAGS                = DEF(GCC_PP_FLAGS)
+*_GCC_*_ASLPP_FLAGS             = DEF(GCC_ASLPP_FLAGS)
+*_GCC_*_ASLCC_FLAGS             = DEF(GCC_ASLCC_FLAGS)
+*_GCC_*_VFRPP_FLAGS             = DEF(GCC_VFRPP_FLAGS)
+*_GCC_*_APP_FLAGS               =
+*_GCC_*_ASL_FLAGS               = DEF(IASL_FLAGS)
+*_GCC_*_ASL_OUTFLAGS            = DEF(IASL_OUTFLAGS)
+*_GCC_*_DEPS_FLAGS                   = DEF(GCC_DEPS_FLAGS)
+
+##################
+# GCC IA32 definitions
+##################
+*_GCC_IA32_OBJCOPY_PATH         = DEF(GCC_IA32_PREFIX)objcopy
+*_GCC_IA32_CC_PATH              = DEF(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_SLINK_PATH           = DEF(GCC_IA32_PREFIX)gcc-ar
+*_GCC_IA32_DLINK_PATH           = DEF(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_ASLDLINK_PATH        = DEF(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_ASM_PATH             = DEF(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_PP_PATH              = DEF(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_VFRPP_PATH           = DEF(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_ASLCC_PATH           = DEF(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_ASLPP_PATH           = DEF(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_RC_PATH              = DEF(GCC_IA32_PREFIX)objcopy
+
+*_GCC_IA32_ASLCC_FLAGS          = DEF(GCC5_ASLCC_FLAGS) -m32
+*_GCC_IA32_ASLDLINK_FLAGS       = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -no-pie
+*_GCC_IA32_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m32 -march=i386
+*_GCC_IA32_DLINK2_FLAGS         = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie
+*_GCC_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
+*_GCC_IA32_OBJCOPY_FLAGS        =
+*_GCC_IA32_NASM_FLAGS           = -f elf32
+
+  DEBUG_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto
+  DEBUG_GCC_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386
+
+RELEASE_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
+RELEASE_GCC_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386
+
+  NOOPT_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -O0
+  NOOPT_GCC_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386 -O0
+
+##################
+# GCC X64 definitions
+##################
+*_GCC_X64_OBJCOPY_PATH          = DEF(GCC_X64_PREFIX)objcopy
+*_GCC_X64_CC_PATH               = DEF(GCC_X64_PREFIX)gcc
+*_GCC_X64_SLINK_PATH            = DEF(GCC_X64_PREFIX)gcc-ar
+*_GCC_X64_DLINK_PATH            = DEF(GCC_X64_PREFIX)gcc
+*_GCC_X64_ASLDLINK_PATH         = DEF(GCC_X64_PREFIX)gcc
+*_GCC_X64_ASM_PATH              = DEF(GCC_X64_PREFIX)gcc
+*_GCC_X64_PP_PATH               = DEF(GCC_X64_PREFIX)gcc
+*_GCC_X64_VFRPP_PATH            = DEF(GCC_X64_PREFIX)gcc
+*_GCC_X64_ASLCC_PATH            = DEF(GCC_X64_PREFIX)gcc
+*_GCC_X64_ASLPP_PATH            = DEF(GCC_X64_PREFIX)gcc
+*_GCC_X64_RC_PATH               = DEF(GCC_X64_PREFIX)objcopy
+
+*_GCC_X64_ASLCC_FLAGS           = DEF(GCC5_ASLCC_FLAGS) -m64
+*_GCC_X64_ASLDLINK_FLAGS        = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
+*_GCC_X64_ASM_FLAGS             = DEF(GCC5_ASM_FLAGS) -m64
+*_GCC_X64_DLINK2_FLAGS          = DEF(GCC5_X64_DLINK2_FLAGS)
+*_GCC_X64_RC_FLAGS              = DEF(GCC_X64_RC_FLAGS)
+*_GCC_X64_OBJCOPY_FLAGS         =
+*_GCC_X64_NASM_FLAGS            = -f elf64
+
+  DEBUG_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO
+  DEBUG_GCC_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os
+
+RELEASE_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Wno-unused-but-set-variable -Wno-unused-const-variable
+RELEASE_GCC_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os
+
+  NOOPT_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -O0
+  NOOPT_GCC_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -O0
+
+##################
+# GCC ARM definitions
+##################
+*_GCC_ARM_CC_PATH               = ENV(GCC_ARM_PREFIX)gcc
+*_GCC_ARM_SLINK_PATH            = ENV(GCC_ARM_PREFIX)gcc-ar
+*_GCC_ARM_DLINK_PATH            = ENV(GCC_ARM_PREFIX)gcc
+*_GCC_ARM_ASLDLINK_PATH         = ENV(GCC_ARM_PREFIX)gcc
+*_GCC_ARM_ASM_PATH              = ENV(GCC_ARM_PREFIX)gcc
+*_GCC_ARM_PP_PATH               = ENV(GCC_ARM_PREFIX)gcc
+*_GCC_ARM_VFRPP_PATH            = ENV(GCC_ARM_PREFIX)gcc
+*_GCC_ARM_ASLCC_PATH            = ENV(GCC_ARM_PREFIX)gcc
+*_GCC_ARM_ASLPP_PATH            = ENV(GCC_ARM_PREFIX)gcc
+*_GCC_ARM_RC_PATH               = ENV(GCC_ARM_PREFIX)objcopy
+
+*_GCC_ARM_ASLCC_FLAGS           = DEF(GCC5_ASLCC_FLAGS)
+*_GCC_ARM_ASLDLINK_FLAGS        = DEF(GCC5_ARM_ASLDLINK_FLAGS)
+*_GCC_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)
+*_GCC_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)
+*_GCC_ARM_DTCPP_FLAGS           = DEF(GCC_DTCPP_FLAGS)
+*_GCC_ARM_PLATFORM_FLAGS        = -march=armv7-a -mfloat-abi=soft
+*_GCC_ARM_PP_FLAGS              = $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
+*_GCC_ARM_RC_FLAGS              = DEF(GCC_ARM_RC_FLAGS)
+*_GCC_ARM_VFRPP_FLAGS           = $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
+*_GCC_ARM_CC_XIPFLAGS           = DEF(GCC5_ARM_CC_XIPFLAGS)
+
+  DEBUG_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
+  DEBUG_GCC_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm
+
+RELEASE_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
+RELEASE_GCC_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm
+
+  NOOPT_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS) -O0
+  NOOPT_GCC_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS) -O0
+
+##################
+# GCC AARCH64 definitions
+##################
+*_GCC_AARCH64_CC_PATH           = ENV(GCC_AARCH64_PREFIX)gcc
+*_GCC_AARCH64_SLINK_PATH        = ENV(GCC_AARCH64_PREFIX)gcc-ar
+*_GCC_AARCH64_DLINK_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
+*_GCC_AARCH64_ASLDLINK_PATH     = ENV(GCC_AARCH64_PREFIX)gcc
+*_GCC_AARCH64_ASM_PATH          = ENV(GCC_AARCH64_PREFIX)gcc
+*_GCC_AARCH64_PP_PATH           = ENV(GCC_AARCH64_PREFIX)gcc
+*_GCC_AARCH64_VFRPP_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
+*_GCC_AARCH64_ASLCC_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
+*_GCC_AARCH64_ASLPP_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
+*_GCC_AARCH64_RC_PATH           = ENV(GCC_AARCH64_PREFIX)objcopy
+
+*_GCC_AARCH64_ASLCC_FLAGS       = DEF(GCC5_ASLCC_FLAGS)
+*_GCC_AARCH64_ASLDLINK_FLAGS    = DEF(GCC5_AARCH64_ASLDLINK_FLAGS)
+*_GCC_AARCH64_ASM_FLAGS         = DEF(GCC5_AARCH64_ASM_FLAGS)
+*_GCC_AARCH64_DLINK2_FLAGS      = DEF(GCC5_AARCH64_DLINK2_FLAGS)
+*_GCC_AARCH64_DTCPP_FLAGS       = DEF(GCC_DTCPP_FLAGS)
+*_GCC_AARCH64_PLATFORM_FLAGS    =
+*_GCC_AARCH64_PP_FLAGS          = $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
+*_GCC_AARCH64_RC_FLAGS          = DEF(GCC_AARCH64_RC_FLAGS) DEF(GCC_AARCH64_RC_BTI_FLAGS)
+*_GCC_AARCH64_VFRPP_FLAGS       = $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
+*_GCC_AARCH64_CC_XIPFLAGS       = DEF(GCC5_AARCH64_CC_XIPFLAGS)
+
+  DEBUG_GCC_AARCH64_CC_FLAGS    = DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
+  DEBUG_GCC_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch
+  DEBUG_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
+
+RELEASE_GCC_AARCH64_CC_FLAGS    = DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
+RELEASE_GCC_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch
+RELEASE_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
+
+  NOOPT_GCC_AARCH64_CC_FLAGS    = DEF(GCC5_AARCH64_CC_FLAGS) -O0
+  NOOPT_GCC_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -O0
+  NOOPT_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 -O0
+
+####################################################################################
+#
+# GCC RISC-V This configuration is used to compile under Linux to produce
+#             PE/COFF binaries using GCC RISC-V tool chain
+#
+####################################################################################
+
+##################
+# GCC RISCV64 definitions
+##################
+*_GCC_RISCV64_OBJCOPY_PATH         = ENV(GCC_RISCV64_PREFIX)objcopy
+*_GCC_RISCV64_CC_PATH              = ENV(GCC_RISCV64_PREFIX)gcc
+*_GCC_RISCV64_SLINK_PATH           = ENV(GCC_RISCV64_PREFIX)gcc-ar
+*_GCC_RISCV64_DLINK_PATH           = ENV(GCC_RISCV64_PREFIX)gcc
+*_GCC_RISCV64_ASLDLINK_PATH        = ENV(GCC_RISCV64_PREFIX)gcc
+*_GCC_RISCV64_ASM_PATH             = ENV(GCC_RISCV64_PREFIX)gcc
+*_GCC_RISCV64_PP_PATH              = ENV(GCC_RISCV64_PREFIX)gcc
+*_GCC_RISCV64_VFRPP_PATH           = ENV(GCC_RISCV64_PREFIX)gcc
+*_GCC_RISCV64_ASLCC_PATH           = ENV(GCC_RISCV64_PREFIX)gcc
+*_GCC_RISCV64_ASLPP_PATH           = ENV(GCC_RISCV64_PREFIX)gcc
+*_GCC_RISCV64_RC_PATH              = ENV(GCC_RISCV64_PREFIX)objcopy
+
+*_GCC_RISCV64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)
+*_GCC_RISCV64_ASLDLINK_FLAGS       = DEF(GCC5_RISCV32_RISCV64_ASLDLINK_FLAGS)
+*_GCC_RISCV64_ASM_FLAGS            = DEF(GCC5_RISCV64_ASM_FLAGS)
+*_GCC_RISCV64_CC_FLAGS             = DEF(GCC5_RISCV64_CC_FLAGS) -save-temps
+*_GCC_RISCV64_DLINK_FLAGS          = DEF(GCC5_RISCV64_DLINK_FLAGS)
+*_GCC_RISCV64_DLINK2_FLAGS         = DEF(GCC5_RISCV64_DLINK2_FLAGS)
+*_GCC_RISCV64_RC_FLAGS             = DEF(GCC_RISCV64_RC_FLAGS)
+*_GCC_RISCV64_OBJCOPY_FLAGS        =
+*_GCC_RISCV64_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)
+*_GCC_RISCV64_PP_FLAGS             = DEF(GCC_PP_FLAGS) DEF(GCC5_RISCV_OPENSBI_TYPES)
+
+##################
+# GCC LOONGARCH64 definitions
+##################
+*_GCC_LOONGARCH64_OBJCOPY_PATH         = ENV(GCC_LOONGARCH64_PREFIX)objcopy
+*_GCC_LOONGARCH64_CC_PATH              = ENV(GCC_LOONGARCH64_PREFIX)gcc
+*_GCC_LOONGARCH64_SLINK_PATH           = ENV(GCC_LOONGARCH64_PREFIX)gcc-ar
+*_GCC_LOONGARCH64_DLINK_PATH           = ENV(GCC_LOONGARCH64_PREFIX)gcc
+*_GCC_LOONGARCH64_ASLDLINK_PATH        = ENV(GCC_LOONGARCH64_PREFIX)gcc
+*_GCC_LOONGARCH64_ASM_PATH             = ENV(GCC_LOONGARCH64_PREFIX)gcc
+*_GCC_LOONGARCH64_PP_PATH              = ENV(GCC_LOONGARCH64_PREFIX)gcc
+*_GCC_LOONGARCH64_VFRPP_PATH           = ENV(GCC_LOONGARCH64_PREFIX)gcc
+*_GCC_LOONGARCH64_ASLCC_PATH           = ENV(GCC_LOONGARCH64_PREFIX)gcc
+*_GCC_LOONGARCH64_ASLPP_PATH           = ENV(GCC_LOONGARCH64_PREFIX)gcc
+*_GCC_LOONGARCH64_RC_PATH              = ENV(GCC_LOONGARCH64_PREFIX)objcopy
+
+*_GCC_LOONGARCH64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)
+*_GCC_LOONGARCH64_ASLDLINK_FLAGS       = DEF(GCC5_LOONGARCH64_ASLDLINK_FLAGS)
+*_GCC_LOONGARCH64_ASM_FLAGS            = DEF(GCC5_LOONGARCH64_ASM_FLAGS)
+*_GCC_LOONGARCH64_DLINK_FLAGS          = DEF(GCC5_LOONGARCH64_DLINK_FLAGS)
+*_GCC_LOONGARCH64_DLINK2_FLAGS         = DEF(GCC5_LOONGARCH64_DLINK2_FLAGS)
+*_GCC_LOONGARCH64_RC_FLAGS             = DEF(GCC_LOONGARCH64_RC_FLAGS)
+*_GCC_LOONGARCH64_OBJCOPY_FLAGS        =
+*_GCC_LOONGARCH64_NASM_FLAGS           = -f elf32
+*_GCC_LOONGARCH64_PP_FLAGS             = DEF(GCC5_LOONGARCH64_PP_FLAGS)
+
+DEBUG_GCC_LOONGARCH64_CC_FLAGS         = DEF(GCC5_LOONGARCH64_CC_FLAGS)
+RELEASE_GCC_LOONGARCH64_CC_FLAGS       = DEF(GCC5_LOONGARCH64_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-variable
+
 ####################################################################################
 #
 # Clang - This configuration is used to compile under Linux to produce
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 10/13] BaseTools: Only call LoadConfiguration once in build.py
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (8 preceding siblings ...)
  2023-04-19 19:57 ` [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 11/13] BaseTools: Add a deprecation warning for GCC48,GCC49,GCC5 to build.py Rebecca Cran
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser

Avoid calling LoadConfiguration twice, in both InitPreBuild and
InitBuild. Since InitPreBuild is called first, delete the second call
from InitBuild.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
---
 BaseTools/Source/Python/build/build.py | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py
index 51fb1f433eb7..8681b98776a9 100755
--- a/BaseTools/Source/Python/build/build.py
+++ b/BaseTools/Source/Python/build/build.py
@@ -1002,9 +1002,6 @@ class Build():
     #   command line and target.txt, then get the final build configurations.
     #
     def InitBuild(self):
-        # parse target.txt, tools_def.txt, and platform file
-        self.LoadConfiguration()
-
         # Allow case-insensitive for those from command line or configuration file
         ErrorCode, ErrorInfo = self.PlatformFile.Validate(".dsc", False)
         if ErrorCode != 0:
@@ -1012,6 +1009,7 @@ class Build():
 
 
     def InitPreBuild(self):
+        # parse target.txt, tools_def.txt, and platform file
         self.LoadConfiguration()
         ErrorCode, ErrorInfo = self.PlatformFile.Validate(".dsc", False)
         if ErrorCode != 0:
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 11/13] BaseTools: Add a deprecation warning for GCC48,GCC49,GCC5 to build.py
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (9 preceding siblings ...)
  2023-04-19 19:57 ` [PATCH v4 10/13] BaseTools: Only call LoadConfiguration once in build.py Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 12/13] BaseTools/Conf/tools_def.template: Add section for deprecated toolchains Rebecca Cran
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser

The GCC48, GCC49 and GCC5 toolchains will be deleted in the coming
months. Inform users that they're deprecated and tell them what replaces
them.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
---
 BaseTools/Source/Python/build/build.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py
index 8681b98776a9..61f66e7b04d7 100755
--- a/BaseTools/Source/Python/build/build.py
+++ b/BaseTools/Source/Python/build/build.py
@@ -64,6 +64,8 @@ from AutoGen.IncludesAutoGen import IncludesAutoGen
 from GenFds.GenFds import resetFdsGlobalVariable
 from AutoGen.AutoGen import CalculatePriorityValue
 
+gDeprecatedToolChains = ['GCC48', 'GCC49', 'GCC5']
+
 ## standard targets of build command
 gSupportedTarget = ['all', 'genc', 'genmake', 'modules', 'libraries', 'fds', 'clean', 'cleanall', 'cleanlib', 'run']
 
@@ -898,6 +900,12 @@ class Build():
         for BuildTarget in self.BuildTargetList:
             GlobalData.gGlobalDefines['TARGET'] = BuildTarget
             for BuildToolChain in self.ToolChainList:
+                if BuildToolChain in gDeprecatedToolChains:
+                    EdkLogger.warn("build", "Toolchain " + BuildToolChain + \
+                        " is deprecated and will be removed before the edk2-stable202402 release. " \
+                        "You should use 'GCCNOLTO' instead of 'GCC49', and 'GCC' instead of 'GCC5'")
+                    time.sleep(2)
+
                 GlobalData.gGlobalDefines['TOOLCHAIN']      = BuildToolChain
                 GlobalData.gGlobalDefines['TOOL_CHAIN_TAG'] = BuildToolChain
                 for BuildArch in self.ArchList:
@@ -2768,6 +2776,12 @@ def Main():
         if not BuildError:
             MyBuild.BuildReport.GenerateReport(BuildDurationStr, LogBuildTime(MyBuild.AutoGenTime), LogBuildTime(MyBuild.MakeTime), LogBuildTime(MyBuild.GenFdsTime))
 
+    if any(tc in Option.ToolChain for tc in gDeprecatedToolChains):
+        EdkLogger.warn("build", "Toolchains " + str(gDeprecatedToolChains) + " are " \
+            "deprecated and will be removed before the edk2-stable202402 release. " \
+            "You should use 'GCCNOLTO' instead of 'GCC49', and 'GCC' instead of 'GCC5'.")
+        time.sleep(2)
+
     EdkLogger.SetLevel(EdkLogger.QUIET)
     EdkLogger.quiet("\n- %s -" % Conclusion)
     EdkLogger.quiet(time.strftime("Build end time: %H:%M:%S, %b.%d %Y", time.localtime()))
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 12/13] BaseTools/Conf/tools_def.template: Add section for deprecated toolchains
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (10 preceding siblings ...)
  2023-04-19 19:57 ` [PATCH v4 11/13] BaseTools: Add a deprecation warning for GCC48,GCC49,GCC5 to build.py Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-19 19:57 ` [PATCH v4 13/13] BaseTools/Conf/tools_def.template: Bump VERSION to 3.00 Rebecca Cran
  2023-04-21  2:35 ` 回复: [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF gaoliming
  13 siblings, 0 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser

In order to make it clear for anyone reading tools_def.template, add
a section for deprecated tool chains and move GCC48, GCC49 and GCC5
into it.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
---
 BaseTools/Conf/tools_def.template | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 36772b9fe34f..a2fb3fcd99f3 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -156,19 +156,13 @@ 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.
-#   GCC48       -Linux,Windows-  Requires:
-#                             GCC 4.8 targeting x86_64-linux-gnu, aarch64-linux-gnu, or arm-linux-gnueabi
-#                        Optional:
-#                             Required to build platforms or ACPI tables:
-#                               Intel(r) ACPI Compiler from
-#                               https://acpica.org/downloads
-#   GCC49       -Linux,Windows-  Requires:
+#   GCCNOLTO    -Linux,Windows-  Requires:
 #                             GCC 4.9 targeting x86_64-linux-gnu, aarch64-linux-gnu, or arm-linux-gnueabi
 #                        Optional:
 #                             Required to build platforms or ACPI tables:
 #                               Intel(r) ACPI Compiler from
 #                               https://acpica.org/downloads
-#   GCC5        -Linux,Windows-  Requires:
+#   GCC         -Linux,Windows-  Requires:
 #                             GCC 5 with LTO support, targeting x86_64-linux-gnu, aarch64-linux-gnu, arm-linux-gnueabi, riscv64-linux-gnu or loongarch64-linux-gnu
 #                        Optional:
 #                             Required to build platforms or ACPI tables:
@@ -196,6 +190,27 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #                               Intel(r) ACPI Compiler (iasl.exe) from
 #                               https://acpica.org/downloads
 #
+# Deprecated Tool Chains
+# ======================
+#   GCC48       -Linux,Windows-  Requires:
+#                             GCC 4.8 targeting x86_64-linux-gnu, aarch64-linux-gnu, or arm-linux-gnueabi
+#                        Optional:
+#                             Required to build platforms or ACPI tables:
+#                               Intel(r) ACPI Compiler from
+#                               https://acpica.org/downloads
+#   GCC49       -Linux,Windows-  Requires:
+#                             GCC 4.9 targeting x86_64-linux-gnu, aarch64-linux-gnu, or arm-linux-gnueabi
+#                        Optional:
+#                             Required to build platforms or ACPI tables:
+#                               Intel(r) ACPI Compiler from
+#                               https://acpica.org/downloads
+#   GCC5        -Linux,Windows-  Requires:
+#                             GCC 5 with LTO support, targeting x86_64-linux-gnu, aarch64-linux-gnu, arm-linux-gnueabi, riscv64-linux-gnu or loongarch64-linux-gnu
+#                        Optional:
+#                             Required to build platforms or ACPI tables:
+#                               Intel(r) ACPI Compiler from
+#                               https://acpica.org/downloads
+#
 ####################################################################################
 ####################################################################################
 #
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v4 13/13] BaseTools/Conf/tools_def.template: Bump VERSION to 3.00
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (11 preceding siblings ...)
  2023-04-19 19:57 ` [PATCH v4 12/13] BaseTools/Conf/tools_def.template: Add section for deprecated toolchains Rebecca Cran
@ 2023-04-19 19:57 ` Rebecca Cran
  2023-04-21  2:35 ` 回复: [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF gaoliming
  13 siblings, 0 replies; 19+ messages in thread
From: Rebecca Cran @ 2023-04-19 19:57 UTC (permalink / raw)
  To: devel, Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish
  Cc: Rebecca Cran, Ray Ni, Leif Lindholm, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser

Bump VERSION to 3.00 and explain the changes made to the toolchains.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
---
 BaseTools/Conf/tools_def.template | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index a2fb3fcd99f3..aeb84f9b38d8 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -15,8 +15,13 @@
 #
 # 2.00 - Initial version with changes for CI
 #      - Change RC path to use plugin
+# 3.00 - Update toolchains
+#      - Add support for ARM and AARCH64 to CLANGDWARF
+#      - Remove VS2008, VS2010, VS2012, VS2013, CLANG35, CLANG38, EBC
+#      - Add GCC and GCCNOLTO
+#      - Deprecate GCC48, GCC49 and GCC5.
 #
-#!VERSION=2.00
+#!VERSION=3.00
 
 IDENTIFIER = Default TOOL_CHAIN_CONF
 
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [edk2-devel] [PATCH v4 05/13] edksetup.bat: Remove VS2008-VS2013 remnants
  2023-04-19 19:57 ` [PATCH v4 05/13] edksetup.bat: " Rebecca Cran
@ 2023-04-20 17:34   ` Leif Lindholm
  0 siblings, 0 replies; 19+ messages in thread
From: Leif Lindholm @ 2023-04-20 17:34 UTC (permalink / raw)
  To: devel, rebecca
  Cc: Liming Gao, Bob Feng, Yuwei Chen, Michael D Kinney,
	Michael Kubacki, Sean Brogan, Chasel Chiu, Nate DeSimone,
	Star Zeng, Andrew Fish, Ray Ni, Zhiguang Liu, Jian J Wang,
	Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, Marvin Häuser, Oliver Smith-Denny

On Wed, Apr 19, 2023 at 13:57:38 -0600, Rebecca Cran wrote:
> Since Visual Studio versions older than VS2015 are no longer supported,
> remove mention of them from edksetup.bat.
> 
> Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
> Reviewed-by: Oliver Smith-Denny <osd@smith-denny.com>

Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com>

> ---
>  edksetup.bat | 6 +-----
>  1 file changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/edksetup.bat b/edksetup.bat
> index 7ad137bb3e9b..2fdf130e00e2 100755
> --- a/edksetup.bat
> +++ b/edksetup.bat
> @@ -148,19 +148,15 @@ if /I "%1"=="ForceRebuild" shift
>  if /I "%1"=="VS2019" shift
>  if /I "%1"=="VS2017" shift
>  if /I "%1"=="VS2015" shift
> -if /I "%1"=="VS2013" shift
> -if /I "%1"=="VS2012" shift
>  if "%1"=="" goto end
>  
>  :Usage
>    @echo.
> -  @echo  Usage: "%0 [-h | -help | --help | /h | /help | /?] [Reconfig] [Rebuild] [ForceRebuild] [VS2019] [VS2017] [VS2015] [VS2013] [VS2012]"
> +  @echo  Usage: "%0 [-h | -help | --help | /h | /help | /?] [Reconfig] [Rebuild] [ForceRebuild] [VS2019] [VS2017] [VS2015]"
>    @echo.
>    @echo         Reconfig       Reinstall target.txt, tools_def.txt and build_rule.txt.
>    @echo         Rebuild        Perform incremental rebuild of BaseTools binaries.
>    @echo         ForceRebuild   Force a full rebuild of BaseTools binaries.
> -  @echo         VS2012         Set the env for VS2012 build.
> -  @echo         VS2013         Set the env for VS2013 build.
>    @echo         VS2015         Set the env for VS2015 build.
>    @echo         VS2017         Set the env for VS2017 build.
>    @echo         VS2019         Set the env for VS2019 build.
> -- 
> 2.37.2
> 
> 
> 
> 
> 
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* 回复: [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains
  2023-04-19 19:57 ` [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains Rebecca Cran
@ 2023-04-21  2:32   ` gaoliming
  2023-04-21 17:16     ` Rebecca Cran
  0 siblings, 1 reply; 19+ messages in thread
From: gaoliming @ 2023-04-21  2:32 UTC (permalink / raw)
  To: 'Rebecca Cran', devel, 'Bob Feng',
	'Yuwei Chen', 'Michael D Kinney',
	'Michael Kubacki', 'Sean Brogan',
	'Chasel Chiu', 'Nate DeSimone',
	'Star Zeng', 'Andrew Fish'
  Cc: 'Ray Ni', 'Leif Lindholm', 'Zhiguang Liu',
	'Jian J Wang', 'Xiaoyu Lu',
	'Guomin Jiang', 'Gua Guo',
	'Ard Biesheuvel', 'Pedro Falcato',
	'Gerd Hoffmann', 'Marvin Häuser'

Rebecca:
  I add my comments below. 

> -----邮件原件-----
> 发件人: Rebecca Cran <rebecca@bsdio.com>
> 发送时间: 2023年4月20日 3:58
> 收件人: devel@edk2.groups.io; Liming Gao <gaoliming@byosoft.com.cn>;
> Bob Feng <bob.c.feng@intel.com>; Yuwei Chen <yuwei.chen@intel.com>;
> Michael D Kinney <michael.d.kinney@intel.com>; Michael Kubacki
> <mikuback@linux.microsoft.com>; Sean Brogan
> <sean.brogan@microsoft.com>; Chasel Chiu <chasel.chiu@intel.com>; Nate
> DeSimone <nathaniel.l.desimone@intel.com>; Star Zeng
> <star.zeng@intel.com>; Andrew Fish <afish@apple.com>
> 抄送: Rebecca Cran <rebecca@bsdio.com>; Ray Ni <ray.ni@intel.com>; Leif
> Lindholm <quic_llindhol@quicinc.com>; Zhiguang Liu
> <zhiguang.liu@intel.com>; Jian J Wang <jian.j.wang@intel.com>; Xiaoyu Lu
> <xiaoyu1.lu@intel.com>; Guomin Jiang <guomin.jiang@intel.com>; Gua Guo
> <gua.guo@intel.com>; Ard Biesheuvel <ardb@kernel.org>; Pedro Falcato
> <pedro.falcato@gmail.com>; Gerd Hoffmann <kraxel@redhat.com>; Marvin
> Häuser <mhaeuser@posteo.de>
> 主题: [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and
> GCCNOLTO toolchains
> 
> Add a 'GCC' toolchain that's a copy of the existing GCC5 definition.
> Add a 'GCCNOLTO' toolchain that's a copy of the existing GCC48
> toolchain.
> 

GCCNOLTO is the replacement of GCC49, not GCC48. 

And, CryptoPkg\Library\OpensslLib\OpensslLib.inf has GCC:*_GCC5_*_CC_FLAGS. New GCC:*_GCC_*_CC_FLAGS is required to be added. 

Thanks
Liming
> Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
> ---
>  UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc |   2 ++
>  IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc               |   9
> ++++++++-
>  EmulatorPkg/Unix/Host/Host.inf                        |   2 ++
>  BaseTools/Conf/tools_def.template                     | 366
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  4 files changed, 378 insertions(+), 1 deletion(-)
> 
> diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> index 7866c36e6693..b24ecdbf8661 100644
> --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> @@ -31,6 +31,8 @@ [BuildOptions]
>  !endif
>    GCC:*_GCC5_*_CC_FLAGS = --coverage
>    GCC:*_GCC5_*_DLINK_FLAGS = --coverage
> +  GCC:*_GCC_*_CC_FLAGS = --coverage
> +  GCC:*_GCC_*_DLINK_FLAGS = --coverage
>  [BuildOptions.common.EDKII.HOST_APPLICATION]
>    #
>    # MSFT
> diff --git a/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> b/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> index 31558121185d..2db3854274c8 100644
> --- a/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> +++ b/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> @@ -461,10 +461,17 @@ [Components.IA32]
> 
> ##############################################################
> #####################################
>  [BuildOptions]
>  # Append build options for EDK and EDKII drivers (= is Append, == is Replace)
> -  # Enable link-time optimization when building with GCC49
> +  # Enable link-time optimization when building with GCC49 or GCCNOLTO
>    *_GCC49_IA32_CC_FLAGS = -flto
>    *_GCC49_IA32_DLINK_FLAGS = -flto
> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto
>    *_GCC5_IA32_CC_FLAGS = -fno-pic
>    *_GCC5_IA32_DLINK_FLAGS = -no-pie
>    *_GCC5_IA32_ASLCC_FLAGS = -fno-pic
>    *_GCC5_IA32_ASLDLINK_FLAGS = -no-pie
> +  *_GCC_IA32_CC_FLAGS = -fno-pic
> +  *_GCC_IA32_DLINK_FLAGS = -no-pie
> +  *_GCC_IA32_ASLCC_FLAGS = -fno-pic
> +  *_GCC_IA32_ASLDLINK_FLAGS = -no-pie
> +
> diff --git a/EmulatorPkg/Unix/Host/Host.inf
> b/EmulatorPkg/Unix/Host/Host.inf
> index f5ebbed68344..90e8c36b6186 100644
> --- a/EmulatorPkg/Unix/Host/Host.inf
> +++ b/EmulatorPkg/Unix/Host/Host.inf
> @@ -123,7 +123,9 @@ [BuildOptions]
>     GCC:*_*_X64_CC_FLAGS == -m64 -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:*_GCC48_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
>     GCC:*_GCC49_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
> +   GCC:*_GCCNOLTO_X64_CC_FLAGS =
> "-DEFIAPI=__attribute__((ms_abi))"
>     GCC:*_GCC5_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))" -flto
> -DUSING_LTO -Os
> +   GCC:*_GCC_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))" -flto
> -DUSING_LTO -Os
>     GCC:*_*_X64_PP_FLAGS == -m64 -E -x assembler-with-cpp -include
> $(DEST_DIR_DEBUG)/AutoGen.h
>     GCC:*_*_X64_ASM_FLAGS == -m64 -c -x assembler -imacros
> $(DEST_DIR_DEBUG)/AutoGen.h
> 
> diff --git a/BaseTools/Conf/tools_def.template
> b/BaseTools/Conf/tools_def.template
> index 6fd03ee77ac6..36772b9fe34f 100755
> --- a/BaseTools/Conf/tools_def.template
> +++ b/BaseTools/Conf/tools_def.template
> @@ -77,8 +77,13 @@ DEFINE GCC48_X64_PREFIX        =
> ENV(GCC48_BIN)
>  DEFINE GCC49_IA32_PREFIX       = ENV(GCC49_BIN)
>  DEFINE GCC49_X64_PREFIX        = ENV(GCC49_BIN)
> 
> +DEFINE GCCNOLTO_IA32_PREFIX    = ENV(GCCNOLTO_BIN)
> +DEFINE GCCNOLTO_X64_PREFIX     = ENV(GCCNOLTO_BIN)
> +
>  DEFINE GCC5_IA32_PREFIX        = ENV(GCC5_BIN)
>  DEFINE GCC5_X64_PREFIX         = ENV(GCC5_BIN)
> +DEFINE GCC_IA32_PREFIX         = ENV(GCC_BIN)
> +DEFINE GCC_X64_PREFIX          = ENV(GCC_BIN)
>  DEFINE GCC_HOST_PREFIX         = ENV(GCC_HOST_BIN)
> 
>  DEFINE UNIX_IASL_BIN           = ENV(IASL_PREFIX)iasl
> @@ -1128,6 +1133,150 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS =
> -z common-page-size=0x20
>    NOOPT_GCC49_AARCH64_DLINK_FLAGS  =
> DEF(GCC49_AARCH64_DLINK_FLAGS) -O0
>    NOOPT_GCC49_AARCH64_DLINK_XIPFLAGS = -z
> common-page-size=0x20 -O0
> 
> +#############################################################
> #######################
> +#
> +# GCC NOLTO - This configuration is used to compile under Linux to produce
> +#             PE/COFF binaries using GCC without Link Time
> Optimization
> +#
> +#############################################################
> #######################
> +*_GCCNOLTO_*_*_FAMILY               = GCC
> +
> +*_GCCNOLTO_*_MAKE_PATH                    =
> DEF(GCC_HOST_PREFIX)make
> +*_GCCNOLTO_*_*_DLL                        =
> ENV(GCCNOLTO_DLL)
> +*_GCCNOLTO_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)
> +
> +*_GCCNOLTO_*_PP_FLAGS                     = DEF(GCC_PP_FLAGS)
> +*_GCCNOLTO_*_ASLPP_FLAGS                  =
> DEF(GCC_ASLPP_FLAGS)
> +*_GCCNOLTO_*_ASLCC_FLAGS                  =
> DEF(GCC_ASLCC_FLAGS)
> +*_GCCNOLTO_*_VFRPP_FLAGS                  =
> DEF(GCC_VFRPP_FLAGS)
> +*_GCCNOLTO_*_APP_FLAGS                    =
> +*_GCCNOLTO_*_ASL_FLAGS                    = DEF(IASL_FLAGS)
> +*_GCCNOLTO_*_ASL_OUTFLAGS                 =
> DEF(IASL_OUTFLAGS)
> +*_GCCNOLTO_*_DEPS_FLAGS                   =
> DEF(GCC_DEPS_FLAGS)
> +
> +##################
> +# GCCNOLTO IA32 definitions
> +##################
> +*_GCCNOLTO_IA32_OBJCOPY_PATH         =
> DEF(GCCNOLTO_IA32_PREFIX)objcopy
> +*_GCCNOLTO_IA32_CC_PATH              =
> DEF(GCCNOLTO_IA32_PREFIX)gcc
> +*_GCCNOLTO_IA32_SLINK_PATH           =
> DEF(GCCNOLTO_IA32_PREFIX)ar
> +*_GCCNOLTO_IA32_DLINK_PATH           =
> DEF(GCCNOLTO_IA32_PREFIX)gcc
> +*_GCCNOLTO_IA32_ASLDLINK_PATH        =
> DEF(GCCNOLTO_IA32_PREFIX)gcc
> +*_GCCNOLTO_IA32_ASM_PATH             =
> DEF(GCCNOLTO_IA32_PREFIX)gcc
> +*_GCCNOLTO_IA32_PP_PATH              =
> DEF(GCCNOLTO_IA32_PREFIX)gcc
> +*_GCCNOLTO_IA32_VFRPP_PATH           =
> DEF(GCCNOLTO_IA32_PREFIX)gcc
> +*_GCCNOLTO_IA32_ASLCC_PATH           =
> DEF(GCCNOLTO_IA32_PREFIX)gcc
> +*_GCCNOLTO_IA32_ASLPP_PATH           =
> DEF(GCCNOLTO_IA32_PREFIX)gcc
> +*_GCCNOLTO_IA32_RC_PATH              =
> DEF(GCCNOLTO_IA32_PREFIX)objcopy
> +
> +*_GCCNOLTO_IA32_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS)
> -m32
> +*_GCCNOLTO_IA32_ASLDLINK_FLAGS       =
> DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386
> +*_GCCNOLTO_IA32_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS)
> -m32 -march=i386
> +*_GCCNOLTO_IA32_DLINK_FLAGS          =
> DEF(GCC49_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386
> +*_GCCNOLTO_IA32_DLINK2_FLAGS         =
> DEF(GCC49_IA32_DLINK2_FLAGS)
> +*_GCCNOLTO_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
> +*_GCCNOLTO_IA32_OBJCOPY_FLAGS        =
> +*_GCCNOLTO_IA32_NASM_FLAGS           = -f elf32
> +
> +  DEBUG_GCCNOLTO_IA32_CC_FLAGS       =
> DEF(GCC49_IA32_CC_FLAGS)
> +RELEASE_GCCNOLTO_IA32_CC_FLAGS       =
> DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set-variable
> -Wno-unused-const-variable
> +  NOOPT_GCCNOLTO_IA32_CC_FLAGS       =
> DEF(GCC49_IA32_CC_FLAGS) -O0
> +
> +##################
> +# GCCNOLTO X64 definitions
> +##################
> +*_GCCNOLTO_X64_OBJCOPY_PATH         =
> DEF(GCCNOLTO_X64_PREFIX)objcopy
> +*_GCCNOLTO_X64_CC_PATH              =
> DEF(GCCNOLTO_X64_PREFIX)gcc
> +*_GCCNOLTO_X64_SLINK_PATH           =
> DEF(GCCNOLTO_X64_PREFIX)ar
> +*_GCCNOLTO_X64_DLINK_PATH           =
> DEF(GCCNOLTO_X64_PREFIX)gcc
> +*_GCCNOLTO_X64_ASLDLINK_PATH        =
> DEF(GCCNOLTO_X64_PREFIX)gcc
> +*_GCCNOLTO_X64_ASM_PATH             =
> DEF(GCCNOLTO_X64_PREFIX)gcc
> +*_GCCNOLTO_X64_PP_PATH              =
> DEF(GCCNOLTO_X64_PREFIX)gcc
> +*_GCCNOLTO_X64_VFRPP_PATH           =
> DEF(GCCNOLTO_X64_PREFIX)gcc
> +*_GCCNOLTO_X64_ASLCC_PATH           =
> DEF(GCCNOLTO_X64_PREFIX)gcc
> +*_GCCNOLTO_X64_ASLPP_PATH           =
> DEF(GCCNOLTO_X64_PREFIX)gcc
> +*_GCCNOLTO_X64_RC_PATH              =
> DEF(GCCNOLTO_X64_PREFIX)objcopy
> +
> +*_GCCNOLTO_X64_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS)
> -m64
> +*_GCCNOLTO_X64_ASLDLINK_FLAGS       =
> DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
> +*_GCCNOLTO_X64_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS)
> -m64
> +*_GCCNOLTO_X64_DLINK_FLAGS          =
> DEF(GCC49_X64_DLINK_FLAGS)
> +*_GCCNOLTO_X64_DLINK2_FLAGS         =
> DEF(GCC49_X64_DLINK2_FLAGS)
> +*_GCCNOLTO_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
> +*_GCCNOLTO_X64_OBJCOPY_FLAGS        =
> +*_GCCNOLTO_X64_NASM_FLAGS           = -f elf64
> +
> +  DEBUG_GCCNOLTO_X64_CC_FLAGS       =
> DEF(GCC49_X64_CC_FLAGS)
> +RELEASE_GCCNOLTO_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS)
> -Wno-unused-but-set-variable -Wno-unused-const-variable
> +  NOOPT_GCCNOLTO_X64_CC_FLAGS       =
> DEF(GCC49_X64_CC_FLAGS) -O0
> +
> +##################
> +# GCCNOLTO ARM definitions
> +##################
> +*_GCCNOLTO_ARM_CC_PATH              =
> ENV(GCCNOLTO_ARM_PREFIX)gcc
> +*_GCCNOLTO_ARM_SLINK_PATH           =
> ENV(GCCNOLTO_ARM_PREFIX)ar
> +*_GCCNOLTO_ARM_DLINK_PATH           =
> ENV(GCCNOLTO_ARM_PREFIX)gcc
> +*_GCCNOLTO_ARM_ASLDLINK_PATH        =
> ENV(GCCNOLTO_ARM_PREFIX)gcc
> +*_GCCNOLTO_ARM_ASM_PATH             =
> ENV(GCCNOLTO_ARM_PREFIX)gcc
> +*_GCCNOLTO_ARM_PP_PATH              =
> ENV(GCCNOLTO_ARM_PREFIX)gcc
> +*_GCCNOLTO_ARM_VFRPP_PATH           =
> ENV(GCCNOLTO_ARM_PREFIX)gcc
> +*_GCCNOLTO_ARM_ASLCC_PATH           =
> ENV(GCCNOLTO_ARM_PREFIX)gcc
> +*_GCCNOLTO_ARM_ASLPP_PATH           =
> ENV(GCCNOLTO_ARM_PREFIX)gcc
> +*_GCCNOLTO_ARM_RC_PATH              =
> ENV(GCCNOLTO_ARM_PREFIX)objcopy
> +
> +*_GCCNOLTO_ARM_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS)
> +*_GCCNOLTO_ARM_ASLDLINK_FLAGS       =
> DEF(GCC49_ARM_ASLDLINK_FLAGS)
> +*_GCCNOLTO_ARM_ASM_FLAGS            =
> DEF(GCC49_ARM_ASM_FLAGS)
> +*_GCCNOLTO_ARM_DLINK_FLAGS          =
> DEF(GCC49_ARM_DLINK_FLAGS)
> +*_GCCNOLTO_ARM_DLINK2_FLAGS         =
> DEF(GCC49_ARM_DLINK2_FLAGS)
> +*_GCCNOLTO_ARM_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)
> +*_GCCNOLTO_ARM_PLATFORM_FLAGS       = -march=armv7-a
> +*_GCCNOLTO_ARM_PP_FLAGS             = $(PLATFORM_FLAGS)
> DEF(GCC_PP_FLAGS)
> +*_GCCNOLTO_ARM_RC_FLAGS             = DEF(GCC_ARM_RC_FLAGS)
> +*_GCCNOLTO_ARM_VFRPP_FLAGS          = $(PLATFORM_FLAGS)
> DEF(GCC_VFRPP_FLAGS)
> +*_GCCNOLTO_ARM_CC_XIPFLAGS          =
> DEF(GCC49_ARM_CC_XIPFLAGS)
> +
> +  DEBUG_GCCNOLTO_ARM_CC_FLAGS       =
> DEF(GCC49_ARM_CC_FLAGS) -O0
> +RELEASE_GCCNOLTO_ARM_CC_FLAGS       =
> DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-variable
> -Wno-unused-const-variable
> +  NOOPT_GCCNOLTO_ARM_CC_FLAGS       =
> DEF(GCC49_ARM_CC_FLAGS) -O0
> +
> +##################
> +# GCCNOLTO AARCH64 definitions
> +##################
> +*_GCCNOLTO_AARCH64_CC_PATH          =
> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> +*_GCCNOLTO_AARCH64_SLINK_PATH       =
> ENV(GCCNOLTO_AARCH64_PREFIX)ar
> +*_GCCNOLTO_AARCH64_DLINK_PATH       =
> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> +*_GCCNOLTO_AARCH64_ASLDLINK_PATH    =
> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> +*_GCCNOLTO_AARCH64_ASM_PATH         =
> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> +*_GCCNOLTO_AARCH64_PP_PATH          =
> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> +*_GCCNOLTO_AARCH64_VFRPP_PATH       =
> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> +*_GCCNOLTO_AARCH64_ASLCC_PATH       =
> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> +*_GCCNOLTO_AARCH64_ASLPP_PATH       =
> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> +*_GCCNOLTO_AARCH64_RC_PATH          =
> ENV(GCCNOLTO_AARCH64_PREFIX)objcopy
> +
> +*_GCCNOLTO_AARCH64_ASLCC_FLAGS      = DEF(GCC49_ASLCC_FLAGS)
> +*_GCCNOLTO_AARCH64_ASLDLINK_FLAGS   =
> DEF(GCC49_AARCH64_ASLDLINK_FLAGS)
> +*_GCCNOLTO_AARCH64_ASM_FLAGS        =
> DEF(GCC49_AARCH64_ASM_FLAGS)
> +*_GCCNOLTO_AARCH64_DLINK2_FLAGS     =
> DEF(GCC49_AARCH64_DLINK2_FLAGS)
> +*_GCCNOLTO_AARCH64_DTCPP_FLAGS      = DEF(GCC_DTCPP_FLAGS)
> +*_GCCNOLTO_AARCH64_PLATFORM_FLAGS   =
> +*_GCCNOLTO_AARCH64_PP_FLAGS         = $(PLATFORM_FLAGS)
> DEF(GCC_PP_FLAGS)
> +*_GCCNOLTO_AARCH64_RC_FLAGS         =
> DEF(GCC_AARCH64_RC_FLAGS)
> +*_GCCNOLTO_AARCH64_VFRPP_FLAGS      = $(PLATFORM_FLAGS)
> DEF(GCC_VFRPP_FLAGS)
> +*_GCCNOLTO_AARCH64_CC_XIPFLAGS      =
> DEF(GCC49_AARCH64_CC_XIPFLAGS)
> +
> +  DEBUG_GCCNOLTO_AARCH64_CC_FLAGS     =
> DEF(GCC49_AARCH64_CC_FLAGS) -O0
> +  DEBUG_GCCNOLTO_AARCH64_DLINK_FLAGS  =
> DEF(GCC49_AARCH64_DLINK_FLAGS)
> +  DEBUG_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z
> common-page-size=0x20
> +
> +RELEASE_GCCNOLTO_AARCH64_CC_FLAGS     =
> DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable
> -Wno-unused-const-variable
> +RELEASE_GCCNOLTO_AARCH64_DLINK_FLAGS  =
> DEF(GCC49_AARCH64_DLINK_FLAGS)
> +RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z
> common-page-size=0x20
> +
> +  NOOPT_GCCNOLTO_AARCH64_CC_FLAGS     =
> DEF(GCC49_AARCH64_CC_FLAGS) -O0
> +  NOOPT_GCCNOLTO_AARCH64_DLINK_FLAGS  =
> DEF(GCC49_AARCH64_DLINK_FLAGS) -O0
> +  NOOPT_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z
> common-page-size=0x20 -O0
> +
> 
> ##############################################################
> ######################
>  #
>  # GCC 5 - This configuration is used to compile under Linux to produce
> @@ -1345,6 +1494,223 @@ RELEASE_GCC5_AARCH64_DLINK_XIPFLAGS =
> -z common-page-size=0x20
>  DEBUG_GCC5_LOONGARCH64_CC_FLAGS         =
> DEF(GCC5_LOONGARCH64_CC_FLAGS)
>  RELEASE_GCC5_LOONGARCH64_CC_FLAGS       =
> DEF(GCC5_LOONGARCH64_CC_FLAGS) -Wno-unused-but-set-variable
> -Wno-unused-variable
> 
> +#############################################################
> #######################
> +#
> +# GCC - This configuration is used to compile under Linux to produce
> +#       PE/COFF binaries using GCC 5 or newer
> +#
> +#############################################################
> #######################
> +*_GCC_*_*_FAMILY                = GCC
> +
> +*_GCC_*_MAKE_PATH               = DEF(GCC_HOST_PREFIX)make
> +*_GCC_*_*_DLL                   = ENV(GCC_DLL)
> +*_GCC_*_ASL_PATH                = DEF(UNIX_IASL_BIN)
> +
> +*_GCC_*_PP_FLAGS                = DEF(GCC_PP_FLAGS)
> +*_GCC_*_ASLPP_FLAGS             = DEF(GCC_ASLPP_FLAGS)
> +*_GCC_*_ASLCC_FLAGS             = DEF(GCC_ASLCC_FLAGS)
> +*_GCC_*_VFRPP_FLAGS             = DEF(GCC_VFRPP_FLAGS)
> +*_GCC_*_APP_FLAGS               =
> +*_GCC_*_ASL_FLAGS               = DEF(IASL_FLAGS)
> +*_GCC_*_ASL_OUTFLAGS            = DEF(IASL_OUTFLAGS)
> +*_GCC_*_DEPS_FLAGS                   = DEF(GCC_DEPS_FLAGS)
> +
> +##################
> +# GCC IA32 definitions
> +##################
> +*_GCC_IA32_OBJCOPY_PATH         = DEF(GCC_IA32_PREFIX)objcopy
> +*_GCC_IA32_CC_PATH              = DEF(GCC_IA32_PREFIX)gcc
> +*_GCC_IA32_SLINK_PATH           = DEF(GCC_IA32_PREFIX)gcc-ar
> +*_GCC_IA32_DLINK_PATH           = DEF(GCC_IA32_PREFIX)gcc
> +*_GCC_IA32_ASLDLINK_PATH        = DEF(GCC_IA32_PREFIX)gcc
> +*_GCC_IA32_ASM_PATH             = DEF(GCC_IA32_PREFIX)gcc
> +*_GCC_IA32_PP_PATH              = DEF(GCC_IA32_PREFIX)gcc
> +*_GCC_IA32_VFRPP_PATH           = DEF(GCC_IA32_PREFIX)gcc
> +*_GCC_IA32_ASLCC_PATH           = DEF(GCC_IA32_PREFIX)gcc
> +*_GCC_IA32_ASLPP_PATH           = DEF(GCC_IA32_PREFIX)gcc
> +*_GCC_IA32_RC_PATH              = DEF(GCC_IA32_PREFIX)objcopy
> +
> +*_GCC_IA32_ASLCC_FLAGS          = DEF(GCC5_ASLCC_FLAGS) -m32
> +*_GCC_IA32_ASLDLINK_FLAGS       =
> DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -no-pie
> +*_GCC_IA32_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m32
> -march=i386
> +*_GCC_IA32_DLINK2_FLAGS         = DEF(GCC5_IA32_DLINK2_FLAGS)
> -no-pie
> +*_GCC_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
> +*_GCC_IA32_OBJCOPY_FLAGS        =
> +*_GCC_IA32_NASM_FLAGS           = -f elf32
> +
> +  DEBUG_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto
> +  DEBUG_GCC_IA32_DLINK_FLAGS    =
> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os
> -Wl,-m,elf_i386,--oformat=elf32-i386
> +
> +RELEASE_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto
> -Wno-unused-but-set-variable -Wno-unused-const-variable
> +RELEASE_GCC_IA32_DLINK_FLAGS    =
> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os
> -Wl,-m,elf_i386,--oformat=elf32-i386
> +
> +  NOOPT_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -O0
> +  NOOPT_GCC_IA32_DLINK_FLAGS    =
> DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386
> -O0
> +
> +##################
> +# GCC X64 definitions
> +##################
> +*_GCC_X64_OBJCOPY_PATH          = DEF(GCC_X64_PREFIX)objcopy
> +*_GCC_X64_CC_PATH               = DEF(GCC_X64_PREFIX)gcc
> +*_GCC_X64_SLINK_PATH            = DEF(GCC_X64_PREFIX)gcc-ar
> +*_GCC_X64_DLINK_PATH            = DEF(GCC_X64_PREFIX)gcc
> +*_GCC_X64_ASLDLINK_PATH         = DEF(GCC_X64_PREFIX)gcc
> +*_GCC_X64_ASM_PATH              = DEF(GCC_X64_PREFIX)gcc
> +*_GCC_X64_PP_PATH               = DEF(GCC_X64_PREFIX)gcc
> +*_GCC_X64_VFRPP_PATH            = DEF(GCC_X64_PREFIX)gcc
> +*_GCC_X64_ASLCC_PATH            = DEF(GCC_X64_PREFIX)gcc
> +*_GCC_X64_ASLPP_PATH            = DEF(GCC_X64_PREFIX)gcc
> +*_GCC_X64_RC_PATH               = DEF(GCC_X64_PREFIX)objcopy
> +
> +*_GCC_X64_ASLCC_FLAGS           = DEF(GCC5_ASLCC_FLAGS) -m64
> +*_GCC_X64_ASLDLINK_FLAGS        =
> DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
> +*_GCC_X64_ASM_FLAGS             = DEF(GCC5_ASM_FLAGS) -m64
> +*_GCC_X64_DLINK2_FLAGS          = DEF(GCC5_X64_DLINK2_FLAGS)
> +*_GCC_X64_RC_FLAGS              = DEF(GCC_X64_RC_FLAGS)
> +*_GCC_X64_OBJCOPY_FLAGS         =
> +*_GCC_X64_NASM_FLAGS            = -f elf64
> +
> +  DEBUG_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -flto
> -DUSING_LTO
> +  DEBUG_GCC_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS)
> -flto -Os
> +
> +RELEASE_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -flto
> -DUSING_LTO -Wno-unused-but-set-variable -Wno-unused-const-variable
> +RELEASE_GCC_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS)
> -flto -Os
> +
> +  NOOPT_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -O0
> +  NOOPT_GCC_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS)
> -O0
> +
> +##################
> +# GCC ARM definitions
> +##################
> +*_GCC_ARM_CC_PATH               = ENV(GCC_ARM_PREFIX)gcc
> +*_GCC_ARM_SLINK_PATH            = ENV(GCC_ARM_PREFIX)gcc-ar
> +*_GCC_ARM_DLINK_PATH            = ENV(GCC_ARM_PREFIX)gcc
> +*_GCC_ARM_ASLDLINK_PATH         = ENV(GCC_ARM_PREFIX)gcc
> +*_GCC_ARM_ASM_PATH              = ENV(GCC_ARM_PREFIX)gcc
> +*_GCC_ARM_PP_PATH               = ENV(GCC_ARM_PREFIX)gcc
> +*_GCC_ARM_VFRPP_PATH            = ENV(GCC_ARM_PREFIX)gcc
> +*_GCC_ARM_ASLCC_PATH            = ENV(GCC_ARM_PREFIX)gcc
> +*_GCC_ARM_ASLPP_PATH            = ENV(GCC_ARM_PREFIX)gcc
> +*_GCC_ARM_RC_PATH               = ENV(GCC_ARM_PREFIX)objcopy
> +
> +*_GCC_ARM_ASLCC_FLAGS           = DEF(GCC5_ASLCC_FLAGS)
> +*_GCC_ARM_ASLDLINK_FLAGS        =
> DEF(GCC5_ARM_ASLDLINK_FLAGS)
> +*_GCC_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)
> +*_GCC_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)
> +*_GCC_ARM_DTCPP_FLAGS           = DEF(GCC_DTCPP_FLAGS)
> +*_GCC_ARM_PLATFORM_FLAGS        = -march=armv7-a
> -mfloat-abi=soft
> +*_GCC_ARM_PP_FLAGS              = $(PLATFORM_FLAGS)
> DEF(GCC_PP_FLAGS)
> +*_GCC_ARM_RC_FLAGS              = DEF(GCC_ARM_RC_FLAGS)
> +*_GCC_ARM_VFRPP_FLAGS           = $(PLATFORM_FLAGS)
> DEF(GCC_VFRPP_FLAGS)
> +*_GCC_ARM_CC_XIPFLAGS           = DEF(GCC5_ARM_CC_XIPFLAGS)
> +
> +  DEBUG_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS)
> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
> +  DEBUG_GCC_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS)
> -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm
> -Wl,-plugin-opt=-pass-through=-llto-arm
> +
> +RELEASE_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS)
> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
> +RELEASE_GCC_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS)
> -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm
> -Wl,-plugin-opt=-pass-through=-llto-arm
> +
> +  NOOPT_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS)
> -O0
> +  NOOPT_GCC_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS)
> -O0
> +
> +##################
> +# GCC AARCH64 definitions
> +##################
> +*_GCC_AARCH64_CC_PATH           = ENV(GCC_AARCH64_PREFIX)gcc
> +*_GCC_AARCH64_SLINK_PATH        =
> ENV(GCC_AARCH64_PREFIX)gcc-ar
> +*_GCC_AARCH64_DLINK_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
> +*_GCC_AARCH64_ASLDLINK_PATH     = ENV(GCC_AARCH64_PREFIX)gcc
> +*_GCC_AARCH64_ASM_PATH          = ENV(GCC_AARCH64_PREFIX)gcc
> +*_GCC_AARCH64_PP_PATH           = ENV(GCC_AARCH64_PREFIX)gcc
> +*_GCC_AARCH64_VFRPP_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
> +*_GCC_AARCH64_ASLCC_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
> +*_GCC_AARCH64_ASLPP_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
> +*_GCC_AARCH64_RC_PATH           =
> ENV(GCC_AARCH64_PREFIX)objcopy
> +
> +*_GCC_AARCH64_ASLCC_FLAGS       = DEF(GCC5_ASLCC_FLAGS)
> +*_GCC_AARCH64_ASLDLINK_FLAGS    =
> DEF(GCC5_AARCH64_ASLDLINK_FLAGS)
> +*_GCC_AARCH64_ASM_FLAGS         =
> DEF(GCC5_AARCH64_ASM_FLAGS)
> +*_GCC_AARCH64_DLINK2_FLAGS      =
> DEF(GCC5_AARCH64_DLINK2_FLAGS)
> +*_GCC_AARCH64_DTCPP_FLAGS       = DEF(GCC_DTCPP_FLAGS)
> +*_GCC_AARCH64_PLATFORM_FLAGS    =
> +*_GCC_AARCH64_PP_FLAGS          = $(PLATFORM_FLAGS)
> DEF(GCC_PP_FLAGS)
> +*_GCC_AARCH64_RC_FLAGS          = DEF(GCC_AARCH64_RC_FLAGS)
> DEF(GCC_AARCH64_RC_BTI_FLAGS)
> +*_GCC_AARCH64_VFRPP_FLAGS       = $(PLATFORM_FLAGS)
> DEF(GCC_VFRPP_FLAGS)
> +*_GCC_AARCH64_CC_XIPFLAGS       =
> DEF(GCC5_AARCH64_CC_XIPFLAGS)
> +
> +  DEBUG_GCC_AARCH64_CC_FLAGS    =
> DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable
> -Wno-unused-const-variable
> +  DEBUG_GCC_AARCH64_DLINK_FLAGS =
> DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os
> -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64
> -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch
> +  DEBUG_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
> +
> +RELEASE_GCC_AARCH64_CC_FLAGS    = DEF(GCC5_AARCH64_CC_FLAGS)
> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
> +RELEASE_GCC_AARCH64_DLINK_FLAGS =
> DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os
> -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64
> -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch
> +RELEASE_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
> +
> +  NOOPT_GCC_AARCH64_CC_FLAGS    =
> DEF(GCC5_AARCH64_CC_FLAGS) -O0
> +  NOOPT_GCC_AARCH64_DLINK_FLAGS =
> DEF(GCC5_AARCH64_DLINK_FLAGS) -O0
> +  NOOPT_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
> -O0
> +
> +#############################################################
> #######################
> +#
> +# GCC RISC-V This configuration is used to compile under Linux to produce
> +#             PE/COFF binaries using GCC RISC-V tool chain
> +#
> +#############################################################
> #######################
> +
> +##################
> +# GCC RISCV64 definitions
> +##################
> +*_GCC_RISCV64_OBJCOPY_PATH         =
> ENV(GCC_RISCV64_PREFIX)objcopy
> +*_GCC_RISCV64_CC_PATH              =
> ENV(GCC_RISCV64_PREFIX)gcc
> +*_GCC_RISCV64_SLINK_PATH           =
> ENV(GCC_RISCV64_PREFIX)gcc-ar
> +*_GCC_RISCV64_DLINK_PATH           =
> ENV(GCC_RISCV64_PREFIX)gcc
> +*_GCC_RISCV64_ASLDLINK_PATH        =
> ENV(GCC_RISCV64_PREFIX)gcc
> +*_GCC_RISCV64_ASM_PATH             =
> ENV(GCC_RISCV64_PREFIX)gcc
> +*_GCC_RISCV64_PP_PATH              =
> ENV(GCC_RISCV64_PREFIX)gcc
> +*_GCC_RISCV64_VFRPP_PATH           =
> ENV(GCC_RISCV64_PREFIX)gcc
> +*_GCC_RISCV64_ASLCC_PATH           =
> ENV(GCC_RISCV64_PREFIX)gcc
> +*_GCC_RISCV64_ASLPP_PATH           =
> ENV(GCC_RISCV64_PREFIX)gcc
> +*_GCC_RISCV64_RC_PATH              =
> ENV(GCC_RISCV64_PREFIX)objcopy
> +
> +*_GCC_RISCV64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)
> +*_GCC_RISCV64_ASLDLINK_FLAGS       =
> DEF(GCC5_RISCV32_RISCV64_ASLDLINK_FLAGS)
> +*_GCC_RISCV64_ASM_FLAGS            =
> DEF(GCC5_RISCV64_ASM_FLAGS)
> +*_GCC_RISCV64_CC_FLAGS             =
> DEF(GCC5_RISCV64_CC_FLAGS) -save-temps
> +*_GCC_RISCV64_DLINK_FLAGS          =
> DEF(GCC5_RISCV64_DLINK_FLAGS)
> +*_GCC_RISCV64_DLINK2_FLAGS         =
> DEF(GCC5_RISCV64_DLINK2_FLAGS)
> +*_GCC_RISCV64_RC_FLAGS             =
> DEF(GCC_RISCV64_RC_FLAGS)
> +*_GCC_RISCV64_OBJCOPY_FLAGS        =
> +*_GCC_RISCV64_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)
> +*_GCC_RISCV64_PP_FLAGS             = DEF(GCC_PP_FLAGS)
> DEF(GCC5_RISCV_OPENSBI_TYPES)
> +
> +##################
> +# GCC LOONGARCH64 definitions
> +##################
> +*_GCC_LOONGARCH64_OBJCOPY_PATH         =
> ENV(GCC_LOONGARCH64_PREFIX)objcopy
> +*_GCC_LOONGARCH64_CC_PATH              =
> ENV(GCC_LOONGARCH64_PREFIX)gcc
> +*_GCC_LOONGARCH64_SLINK_PATH           =
> ENV(GCC_LOONGARCH64_PREFIX)gcc-ar
> +*_GCC_LOONGARCH64_DLINK_PATH           =
> ENV(GCC_LOONGARCH64_PREFIX)gcc
> +*_GCC_LOONGARCH64_ASLDLINK_PATH        =
> ENV(GCC_LOONGARCH64_PREFIX)gcc
> +*_GCC_LOONGARCH64_ASM_PATH             =
> ENV(GCC_LOONGARCH64_PREFIX)gcc
> +*_GCC_LOONGARCH64_PP_PATH              =
> ENV(GCC_LOONGARCH64_PREFIX)gcc
> +*_GCC_LOONGARCH64_VFRPP_PATH           =
> ENV(GCC_LOONGARCH64_PREFIX)gcc
> +*_GCC_LOONGARCH64_ASLCC_PATH           =
> ENV(GCC_LOONGARCH64_PREFIX)gcc
> +*_GCC_LOONGARCH64_ASLPP_PATH           =
> ENV(GCC_LOONGARCH64_PREFIX)gcc
> +*_GCC_LOONGARCH64_RC_PATH              =
> ENV(GCC_LOONGARCH64_PREFIX)objcopy
> +
> +*_GCC_LOONGARCH64_ASLCC_FLAGS          =
> DEF(GCC_ASLCC_FLAGS)
> +*_GCC_LOONGARCH64_ASLDLINK_FLAGS       =
> DEF(GCC5_LOONGARCH64_ASLDLINK_FLAGS)
> +*_GCC_LOONGARCH64_ASM_FLAGS            =
> DEF(GCC5_LOONGARCH64_ASM_FLAGS)
> +*_GCC_LOONGARCH64_DLINK_FLAGS          =
> DEF(GCC5_LOONGARCH64_DLINK_FLAGS)
> +*_GCC_LOONGARCH64_DLINK2_FLAGS         =
> DEF(GCC5_LOONGARCH64_DLINK2_FLAGS)
> +*_GCC_LOONGARCH64_RC_FLAGS             =
> DEF(GCC_LOONGARCH64_RC_FLAGS)
> +*_GCC_LOONGARCH64_OBJCOPY_FLAGS        =
> +*_GCC_LOONGARCH64_NASM_FLAGS           = -f elf32
> +*_GCC_LOONGARCH64_PP_FLAGS             =
> DEF(GCC5_LOONGARCH64_PP_FLAGS)
> +
> +DEBUG_GCC_LOONGARCH64_CC_FLAGS         =
> DEF(GCC5_LOONGARCH64_CC_FLAGS)
> +RELEASE_GCC_LOONGARCH64_CC_FLAGS       =
> DEF(GCC5_LOONGARCH64_CC_FLAGS) -Wno-unused-but-set-variable
> -Wno-unused-variable
> +
> 
> ##############################################################
> ######################
>  #
>  # Clang - This configuration is used to compile under Linux to produce
> --
> 2.37.2




^ permalink raw reply	[flat|nested] 19+ messages in thread

* 回复: [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF
  2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (12 preceding siblings ...)
  2023-04-19 19:57 ` [PATCH v4 13/13] BaseTools/Conf/tools_def.template: Bump VERSION to 3.00 Rebecca Cran
@ 2023-04-21  2:35 ` gaoliming
  13 siblings, 0 replies; 19+ messages in thread
From: gaoliming @ 2023-04-21  2:35 UTC (permalink / raw)
  To: 'Rebecca Cran', devel, 'Bob Feng',
	'Yuwei Chen', 'Michael D Kinney',
	'Michael Kubacki', 'Sean Brogan',
	'Chasel Chiu', 'Nate DeSimone',
	'Star Zeng', 'Andrew Fish'
  Cc: 'Ray Ni', 'Leif Lindholm', 'Zhiguang Liu',
	'Jian J Wang', 'Xiaoyu Lu',
	'Guomin Jiang', 'Gua Guo',
	'Ard Biesheuvel', 'Pedro Falcato',
	'Gerd Hoffmann', 'Marvin Häuser'

Rebecca:
  For the whole patch set, I give the comments for 09/13. Others are good to me. Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>

Thanks
Liming
> -----邮件原件-----
> 发件人: Rebecca Cran <rebecca@bsdio.com>
> 发送时间: 2023年4月20日 3:58
> 收件人: devel@edk2.groups.io; Liming Gao <gaoliming@byosoft.com.cn>;
> Bob Feng <bob.c.feng@intel.com>; Yuwei Chen <yuwei.chen@intel.com>;
> Michael D Kinney <michael.d.kinney@intel.com>; Michael Kubacki
> <mikuback@linux.microsoft.com>; Sean Brogan
> <sean.brogan@microsoft.com>; Chasel Chiu <chasel.chiu@intel.com>; Nate
> DeSimone <nathaniel.l.desimone@intel.com>; Star Zeng
> <star.zeng@intel.com>; Andrew Fish <afish@apple.com>
> 抄送: Rebecca Cran <rebecca@bsdio.com>; Ray Ni <ray.ni@intel.com>; Leif
> Lindholm <quic_llindhol@quicinc.com>; Zhiguang Liu
> <zhiguang.liu@intel.com>; Jian J Wang <jian.j.wang@intel.com>; Xiaoyu Lu
> <xiaoyu1.lu@intel.com>; Guomin Jiang <guomin.jiang@intel.com>; Gua Guo
> <gua.guo@intel.com>; Ard Biesheuvel <ardb@kernel.org>; Pedro Falcato
> <pedro.falcato@gmail.com>; Gerd Hoffmann <kraxel@redhat.com>; Marvin
> Häuser <mhaeuser@posteo.de>
> 主题: [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others:
> Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5,
> add GCC and GCCNOLTO, update CLANGDWARF
> 
> Update the toolchain definitions:
> 
> - Delete the CLANG35 and CLANG38 toolchains, and replace CLANG38 with
>   CLANGDWARF, updating it to support ARM and AARCH64 in addition to X64
> and IA32.
> 
> - Mark GCC48, GCC49 and GCC5 as deprecated.
> 
> - Add GCC and GCCNOLTO toolchain definitions.
> 
> - Remove VS2008, VS2010, VS2012 and VS2013.
> 
> - Remove EBC compiler definitions. Full removal of EBC support from the
>   various packages etc. will be done in a follow-up patch series.
> 
> - Remove unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS
> definitions.
> 
> - Remove unused CYGWIN_ definitions.
> 
> Personal GitHub PR: https://github.com/tianocore/edk2/pull/4240
> GitHub branch: https://github.com/bcran/edk2/tree/clangdwarf
> 
> Note: CI is now passing.
> 
> Changes from v1 to v2
> =====================
> 
> - Added a commit to delete GCC48 and GCC49, rename GCC5 to GCC and
>   update the flags for other toolchains to work with the new GCC
>   definitions.
> 
> - Bumped VERSION from 2.00 to 3.00 to inform users that they should
>   update their Conf/tools_def.txt.
> 
> Changes from v2 to v3
> =====================
> 
> - Keep GCC48, GCC49 and GCC5 but mark them deprecated, including with
>   warnings at the start and end of running a build.
> 
> - Dropped the commit fixing the IA32 build of UefiPayloadPkg, because it
>   causes CI to fail due to building both IA32 and X64 at the same time:
> 
>   "Module built under multiple ARCHs [IA32, X64]. Not able to determine
> which output to put into flash for Module..."
> 
> - Added more information to the VERSION section in tools_def.template.
> 
> - Various fixes to the CLANGDWARF flags.
> 
> Changes from v3 to v4
> =====================
> 
> - Use lld for -a ARM -t CLANGDWARF.
> 
> Rebecca Cran (13):
>   BaseTools,CryptoPkg: Update CLANGDWARF, remove CLANG 35/38
> toolchains
>   BaseTools: Remove VS2008, 2010, 2012 and 2013 toolchain definitions
>   BaseTools: Remove VS2008-VS2013 remnants
>   MdePkg: Remove VS2008-VS2013 remnants
>   edksetup.bat: Remove VS2008-VS2013 remnants
>   BaseTools: Remove unused IPHONE_TOOLS and
> SOURCERY_CYGWIN_TOOLS defs
>   BaseTools: Remove EBC (EFI Byte Code) compiler definitions
>   BaseTools: Update VS toolchain descriptions in tools_def.txt.template
>   BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains
>   BaseTools: Only call LoadConfiguration once in build.py
>   BaseTools: Add a deprecation warning for GCC48,GCC49,GCC5 to build.py
>   BaseTools/Conf/tools_def.template: Add section for deprecated
>     toolchains
>   BaseTools/Conf/tools_def.template: Bump VERSION to 3.00
> 
>  UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc       |    2
> ++
>  IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc                     |    9
> ++++++++-
>  CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf             |    3
> +--
>  CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf              |    3 +--
>  CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf          |    3 +--
>  CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf              |    3 +--
>  CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf              |    3
> +--
>  CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf |    3 +--
>  CryptoPkg/Library/OpensslLib/OpensslLib.inf                 |    3
> +--
>  CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf            |    3 +--
>  CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf           |    3 +--
>  CryptoPkg/Library/OpensslLib/OpensslLibFull.inf             |    3 +--
>  CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf        |    3 +--
>  EmulatorPkg/Unix/Host/Host.inf                              |
> 2 ++
>  MdePkg/Include/Ia32/ProcessorBind.h                         |
> 8 ++------
>  MdePkg/Include/X64/ProcessorBind.h                          |
> 8 ++------
>  BaseTools/Conf/tools_def.template                           | 1993
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++---------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> -----------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------------------
> -----------------------------------------------------------
> ---------------
>  BaseTools/Scripts/SetVisualStudio.bat                       |   22
> +---------------------
>  BaseTools/Scripts/ShowEnvironment.bat                       |   44
> --------------------------------------------
>  BaseTools/Source/Python/build/build.py                      |   18
> +++++++++++++++---
>  BaseTools/get_vsvars.bat                                    |
> 13 -------------
>  BaseTools/set_vsprefix_envs.bat                             |   64
> ----------------------------------------------------------------
>  BaseTools/toolsetup.bat                                     |
> 24 +-----------------------
>  edksetup.bat                                                |
> 6 +-----
>  24 files changed, 627 insertions(+), 1619 deletions(-)
> 
> --
> 2.37.2




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: 回复: [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains
  2023-04-21  2:32   ` 回复: " gaoliming
@ 2023-04-21 17:16     ` Rebecca Cran
  2023-04-24  5:03       ` 回复: [edk2-devel] " gaoliming
  0 siblings, 1 reply; 19+ messages in thread
From: Rebecca Cran @ 2023-04-21 17:16 UTC (permalink / raw)
  To: gaoliming, devel, 'Bob Feng', 'Yuwei Chen',
	'Michael D Kinney', 'Michael Kubacki',
	'Sean Brogan', 'Chasel Chiu',
	'Nate DeSimone', 'Star Zeng',
	'Andrew Fish'
  Cc: 'Ray Ni', 'Leif Lindholm', 'Zhiguang Liu',
	'Jian J Wang', 'Xiaoyu Lu',
	'Guomin Jiang', 'Gua Guo',
	'Ard Biesheuvel', 'Pedro Falcato',
	'Gerd Hoffmann', 'Marvin Häuser'

Thanks, I've fixed the issues you noted and sent out a v5 series.

I kept your Reviewed-by on 01/13 despite making minor changes to fix the 
build on Windows: I hope that was okay.


-- 
Rebecca Cran


On 4/20/23 20:32, gaoliming wrote:
> Rebecca:
>    I add my comments below.
>
>> -----邮件原件-----
>> 发件人: Rebecca Cran <rebecca@bsdio.com>
>> 发送时间: 2023年4月20日 3:58
>> 收件人: devel@edk2.groups.io; Liming Gao <gaoliming@byosoft.com.cn>;
>> Bob Feng <bob.c.feng@intel.com>; Yuwei Chen <yuwei.chen@intel.com>;
>> Michael D Kinney <michael.d.kinney@intel.com>; Michael Kubacki
>> <mikuback@linux.microsoft.com>; Sean Brogan
>> <sean.brogan@microsoft.com>; Chasel Chiu <chasel.chiu@intel.com>; Nate
>> DeSimone <nathaniel.l.desimone@intel.com>; Star Zeng
>> <star.zeng@intel.com>; Andrew Fish <afish@apple.com>
>> 抄送: Rebecca Cran <rebecca@bsdio.com>; Ray Ni <ray.ni@intel.com>; Leif
>> Lindholm <quic_llindhol@quicinc.com>; Zhiguang Liu
>> <zhiguang.liu@intel.com>; Jian J Wang <jian.j.wang@intel.com>; Xiaoyu Lu
>> <xiaoyu1.lu@intel.com>; Guomin Jiang <guomin.jiang@intel.com>; Gua Guo
>> <gua.guo@intel.com>; Ard Biesheuvel <ardb@kernel.org>; Pedro Falcato
>> <pedro.falcato@gmail.com>; Gerd Hoffmann <kraxel@redhat.com>; Marvin
>> Häuser <mhaeuser@posteo.de>
>> 主题: [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and
>> GCCNOLTO toolchains
>>
>> Add a 'GCC' toolchain that's a copy of the existing GCC5 definition.
>> Add a 'GCCNOLTO' toolchain that's a copy of the existing GCC48
>> toolchain.
>>
> GCCNOLTO is the replacement of GCC49, not GCC48.
>
> And, CryptoPkg\Library\OpensslLib\OpensslLib.inf has GCC:*_GCC5_*_CC_FLAGS. New GCC:*_GCC_*_CC_FLAGS is required to be added.
>
> Thanks
> Liming
>> Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
>> ---
>>   UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc |   2 ++
>>   IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc               |   9
>> ++++++++-
>>   EmulatorPkg/Unix/Host/Host.inf                        |   2 ++
>>   BaseTools/Conf/tools_def.template                     | 366
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>   4 files changed, 378 insertions(+), 1 deletion(-)
>>
>> diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
>> b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
>> index 7866c36e6693..b24ecdbf8661 100644
>> --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
>> +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
>> @@ -31,6 +31,8 @@ [BuildOptions]
>>   !endif
>>     GCC:*_GCC5_*_CC_FLAGS = --coverage
>>     GCC:*_GCC5_*_DLINK_FLAGS = --coverage
>> +  GCC:*_GCC_*_CC_FLAGS = --coverage
>> +  GCC:*_GCC_*_DLINK_FLAGS = --coverage
>>   [BuildOptions.common.EDKII.HOST_APPLICATION]
>>     #
>>     # MSFT
>> diff --git a/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
>> b/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
>> index 31558121185d..2db3854274c8 100644
>> --- a/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
>> +++ b/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
>> @@ -461,10 +461,17 @@ [Components.IA32]
>>
>> ##############################################################
>> #####################################
>>   [BuildOptions]
>>   # Append build options for EDK and EDKII drivers (= is Append, == is Replace)
>> -  # Enable link-time optimization when building with GCC49
>> +  # Enable link-time optimization when building with GCC49 or GCCNOLTO
>>     *_GCC49_IA32_CC_FLAGS = -flto
>>     *_GCC49_IA32_DLINK_FLAGS = -flto
>> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
>> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto
>>     *_GCC5_IA32_CC_FLAGS = -fno-pic
>>     *_GCC5_IA32_DLINK_FLAGS = -no-pie
>>     *_GCC5_IA32_ASLCC_FLAGS = -fno-pic
>>     *_GCC5_IA32_ASLDLINK_FLAGS = -no-pie
>> +  *_GCC_IA32_CC_FLAGS = -fno-pic
>> +  *_GCC_IA32_DLINK_FLAGS = -no-pie
>> +  *_GCC_IA32_ASLCC_FLAGS = -fno-pic
>> +  *_GCC_IA32_ASLDLINK_FLAGS = -no-pie
>> +
>> diff --git a/EmulatorPkg/Unix/Host/Host.inf
>> b/EmulatorPkg/Unix/Host/Host.inf
>> index f5ebbed68344..90e8c36b6186 100644
>> --- a/EmulatorPkg/Unix/Host/Host.inf
>> +++ b/EmulatorPkg/Unix/Host/Host.inf
>> @@ -123,7 +123,9 @@ [BuildOptions]
>>      GCC:*_*_X64_CC_FLAGS == -m64 -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:*_GCC48_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
>>      GCC:*_GCC49_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
>> +   GCC:*_GCCNOLTO_X64_CC_FLAGS =
>> "-DEFIAPI=__attribute__((ms_abi))"
>>      GCC:*_GCC5_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))" -flto
>> -DUSING_LTO -Os
>> +   GCC:*_GCC_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))" -flto
>> -DUSING_LTO -Os
>>      GCC:*_*_X64_PP_FLAGS == -m64 -E -x assembler-with-cpp -include
>> $(DEST_DIR_DEBUG)/AutoGen.h
>>      GCC:*_*_X64_ASM_FLAGS == -m64 -c -x assembler -imacros
>> $(DEST_DIR_DEBUG)/AutoGen.h
>>
>> diff --git a/BaseTools/Conf/tools_def.template
>> b/BaseTools/Conf/tools_def.template
>> index 6fd03ee77ac6..36772b9fe34f 100755
>> --- a/BaseTools/Conf/tools_def.template
>> +++ b/BaseTools/Conf/tools_def.template
>> @@ -77,8 +77,13 @@ DEFINE GCC48_X64_PREFIX        =
>> ENV(GCC48_BIN)
>>   DEFINE GCC49_IA32_PREFIX       = ENV(GCC49_BIN)
>>   DEFINE GCC49_X64_PREFIX        = ENV(GCC49_BIN)
>>
>> +DEFINE GCCNOLTO_IA32_PREFIX    = ENV(GCCNOLTO_BIN)
>> +DEFINE GCCNOLTO_X64_PREFIX     = ENV(GCCNOLTO_BIN)
>> +
>>   DEFINE GCC5_IA32_PREFIX        = ENV(GCC5_BIN)
>>   DEFINE GCC5_X64_PREFIX         = ENV(GCC5_BIN)
>> +DEFINE GCC_IA32_PREFIX         = ENV(GCC_BIN)
>> +DEFINE GCC_X64_PREFIX          = ENV(GCC_BIN)
>>   DEFINE GCC_HOST_PREFIX         = ENV(GCC_HOST_BIN)
>>
>>   DEFINE UNIX_IASL_BIN           = ENV(IASL_PREFIX)iasl
>> @@ -1128,6 +1133,150 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS =
>> -z common-page-size=0x20
>>     NOOPT_GCC49_AARCH64_DLINK_FLAGS  =
>> DEF(GCC49_AARCH64_DLINK_FLAGS) -O0
>>     NOOPT_GCC49_AARCH64_DLINK_XIPFLAGS = -z
>> common-page-size=0x20 -O0
>>
>> +#############################################################
>> #######################
>> +#
>> +# GCC NOLTO - This configuration is used to compile under Linux to produce
>> +#             PE/COFF binaries using GCC without Link Time
>> Optimization
>> +#
>> +#############################################################
>> #######################
>> +*_GCCNOLTO_*_*_FAMILY               = GCC
>> +
>> +*_GCCNOLTO_*_MAKE_PATH                    =
>> DEF(GCC_HOST_PREFIX)make
>> +*_GCCNOLTO_*_*_DLL                        =
>> ENV(GCCNOLTO_DLL)
>> +*_GCCNOLTO_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)
>> +
>> +*_GCCNOLTO_*_PP_FLAGS                     = DEF(GCC_PP_FLAGS)
>> +*_GCCNOLTO_*_ASLPP_FLAGS                  =
>> DEF(GCC_ASLPP_FLAGS)
>> +*_GCCNOLTO_*_ASLCC_FLAGS                  =
>> DEF(GCC_ASLCC_FLAGS)
>> +*_GCCNOLTO_*_VFRPP_FLAGS                  =
>> DEF(GCC_VFRPP_FLAGS)
>> +*_GCCNOLTO_*_APP_FLAGS                    =
>> +*_GCCNOLTO_*_ASL_FLAGS                    = DEF(IASL_FLAGS)
>> +*_GCCNOLTO_*_ASL_OUTFLAGS                 =
>> DEF(IASL_OUTFLAGS)
>> +*_GCCNOLTO_*_DEPS_FLAGS                   =
>> DEF(GCC_DEPS_FLAGS)
>> +
>> +##################
>> +# GCCNOLTO IA32 definitions
>> +##################
>> +*_GCCNOLTO_IA32_OBJCOPY_PATH         =
>> DEF(GCCNOLTO_IA32_PREFIX)objcopy
>> +*_GCCNOLTO_IA32_CC_PATH              =
>> DEF(GCCNOLTO_IA32_PREFIX)gcc
>> +*_GCCNOLTO_IA32_SLINK_PATH           =
>> DEF(GCCNOLTO_IA32_PREFIX)ar
>> +*_GCCNOLTO_IA32_DLINK_PATH           =
>> DEF(GCCNOLTO_IA32_PREFIX)gcc
>> +*_GCCNOLTO_IA32_ASLDLINK_PATH        =
>> DEF(GCCNOLTO_IA32_PREFIX)gcc
>> +*_GCCNOLTO_IA32_ASM_PATH             =
>> DEF(GCCNOLTO_IA32_PREFIX)gcc
>> +*_GCCNOLTO_IA32_PP_PATH              =
>> DEF(GCCNOLTO_IA32_PREFIX)gcc
>> +*_GCCNOLTO_IA32_VFRPP_PATH           =
>> DEF(GCCNOLTO_IA32_PREFIX)gcc
>> +*_GCCNOLTO_IA32_ASLCC_PATH           =
>> DEF(GCCNOLTO_IA32_PREFIX)gcc
>> +*_GCCNOLTO_IA32_ASLPP_PATH           =
>> DEF(GCCNOLTO_IA32_PREFIX)gcc
>> +*_GCCNOLTO_IA32_RC_PATH              =
>> DEF(GCCNOLTO_IA32_PREFIX)objcopy
>> +
>> +*_GCCNOLTO_IA32_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS)
>> -m32
>> +*_GCCNOLTO_IA32_ASLDLINK_FLAGS       =
>> DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386
>> +*_GCCNOLTO_IA32_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS)
>> -m32 -march=i386
>> +*_GCCNOLTO_IA32_DLINK_FLAGS          =
>> DEF(GCC49_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386
>> +*_GCCNOLTO_IA32_DLINK2_FLAGS         =
>> DEF(GCC49_IA32_DLINK2_FLAGS)
>> +*_GCCNOLTO_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
>> +*_GCCNOLTO_IA32_OBJCOPY_FLAGS        =
>> +*_GCCNOLTO_IA32_NASM_FLAGS           = -f elf32
>> +
>> +  DEBUG_GCCNOLTO_IA32_CC_FLAGS       =
>> DEF(GCC49_IA32_CC_FLAGS)
>> +RELEASE_GCCNOLTO_IA32_CC_FLAGS       =
>> DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set-variable
>> -Wno-unused-const-variable
>> +  NOOPT_GCCNOLTO_IA32_CC_FLAGS       =
>> DEF(GCC49_IA32_CC_FLAGS) -O0
>> +
>> +##################
>> +# GCCNOLTO X64 definitions
>> +##################
>> +*_GCCNOLTO_X64_OBJCOPY_PATH         =
>> DEF(GCCNOLTO_X64_PREFIX)objcopy
>> +*_GCCNOLTO_X64_CC_PATH              =
>> DEF(GCCNOLTO_X64_PREFIX)gcc
>> +*_GCCNOLTO_X64_SLINK_PATH           =
>> DEF(GCCNOLTO_X64_PREFIX)ar
>> +*_GCCNOLTO_X64_DLINK_PATH           =
>> DEF(GCCNOLTO_X64_PREFIX)gcc
>> +*_GCCNOLTO_X64_ASLDLINK_PATH        =
>> DEF(GCCNOLTO_X64_PREFIX)gcc
>> +*_GCCNOLTO_X64_ASM_PATH             =
>> DEF(GCCNOLTO_X64_PREFIX)gcc
>> +*_GCCNOLTO_X64_PP_PATH              =
>> DEF(GCCNOLTO_X64_PREFIX)gcc
>> +*_GCCNOLTO_X64_VFRPP_PATH           =
>> DEF(GCCNOLTO_X64_PREFIX)gcc
>> +*_GCCNOLTO_X64_ASLCC_PATH           =
>> DEF(GCCNOLTO_X64_PREFIX)gcc
>> +*_GCCNOLTO_X64_ASLPP_PATH           =
>> DEF(GCCNOLTO_X64_PREFIX)gcc
>> +*_GCCNOLTO_X64_RC_PATH              =
>> DEF(GCCNOLTO_X64_PREFIX)objcopy
>> +
>> +*_GCCNOLTO_X64_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS)
>> -m64
>> +*_GCCNOLTO_X64_ASLDLINK_FLAGS       =
>> DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
>> +*_GCCNOLTO_X64_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS)
>> -m64
>> +*_GCCNOLTO_X64_DLINK_FLAGS          =
>> DEF(GCC49_X64_DLINK_FLAGS)
>> +*_GCCNOLTO_X64_DLINK2_FLAGS         =
>> DEF(GCC49_X64_DLINK2_FLAGS)
>> +*_GCCNOLTO_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
>> +*_GCCNOLTO_X64_OBJCOPY_FLAGS        =
>> +*_GCCNOLTO_X64_NASM_FLAGS           = -f elf64
>> +
>> +  DEBUG_GCCNOLTO_X64_CC_FLAGS       =
>> DEF(GCC49_X64_CC_FLAGS)
>> +RELEASE_GCCNOLTO_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS)
>> -Wno-unused-but-set-variable -Wno-unused-const-variable
>> +  NOOPT_GCCNOLTO_X64_CC_FLAGS       =
>> DEF(GCC49_X64_CC_FLAGS) -O0
>> +
>> +##################
>> +# GCCNOLTO ARM definitions
>> +##################
>> +*_GCCNOLTO_ARM_CC_PATH              =
>> ENV(GCCNOLTO_ARM_PREFIX)gcc
>> +*_GCCNOLTO_ARM_SLINK_PATH           =
>> ENV(GCCNOLTO_ARM_PREFIX)ar
>> +*_GCCNOLTO_ARM_DLINK_PATH           =
>> ENV(GCCNOLTO_ARM_PREFIX)gcc
>> +*_GCCNOLTO_ARM_ASLDLINK_PATH        =
>> ENV(GCCNOLTO_ARM_PREFIX)gcc
>> +*_GCCNOLTO_ARM_ASM_PATH             =
>> ENV(GCCNOLTO_ARM_PREFIX)gcc
>> +*_GCCNOLTO_ARM_PP_PATH              =
>> ENV(GCCNOLTO_ARM_PREFIX)gcc
>> +*_GCCNOLTO_ARM_VFRPP_PATH           =
>> ENV(GCCNOLTO_ARM_PREFIX)gcc
>> +*_GCCNOLTO_ARM_ASLCC_PATH           =
>> ENV(GCCNOLTO_ARM_PREFIX)gcc
>> +*_GCCNOLTO_ARM_ASLPP_PATH           =
>> ENV(GCCNOLTO_ARM_PREFIX)gcc
>> +*_GCCNOLTO_ARM_RC_PATH              =
>> ENV(GCCNOLTO_ARM_PREFIX)objcopy
>> +
>> +*_GCCNOLTO_ARM_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS)
>> +*_GCCNOLTO_ARM_ASLDLINK_FLAGS       =
>> DEF(GCC49_ARM_ASLDLINK_FLAGS)
>> +*_GCCNOLTO_ARM_ASM_FLAGS            =
>> DEF(GCC49_ARM_ASM_FLAGS)
>> +*_GCCNOLTO_ARM_DLINK_FLAGS          =
>> DEF(GCC49_ARM_DLINK_FLAGS)
>> +*_GCCNOLTO_ARM_DLINK2_FLAGS         =
>> DEF(GCC49_ARM_DLINK2_FLAGS)
>> +*_GCCNOLTO_ARM_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)
>> +*_GCCNOLTO_ARM_PLATFORM_FLAGS       = -march=armv7-a
>> +*_GCCNOLTO_ARM_PP_FLAGS             = $(PLATFORM_FLAGS)
>> DEF(GCC_PP_FLAGS)
>> +*_GCCNOLTO_ARM_RC_FLAGS             = DEF(GCC_ARM_RC_FLAGS)
>> +*_GCCNOLTO_ARM_VFRPP_FLAGS          = $(PLATFORM_FLAGS)
>> DEF(GCC_VFRPP_FLAGS)
>> +*_GCCNOLTO_ARM_CC_XIPFLAGS          =
>> DEF(GCC49_ARM_CC_XIPFLAGS)
>> +
>> +  DEBUG_GCCNOLTO_ARM_CC_FLAGS       =
>> DEF(GCC49_ARM_CC_FLAGS) -O0
>> +RELEASE_GCCNOLTO_ARM_CC_FLAGS       =
>> DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-variable
>> -Wno-unused-const-variable
>> +  NOOPT_GCCNOLTO_ARM_CC_FLAGS       =
>> DEF(GCC49_ARM_CC_FLAGS) -O0
>> +
>> +##################
>> +# GCCNOLTO AARCH64 definitions
>> +##################
>> +*_GCCNOLTO_AARCH64_CC_PATH          =
>> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
>> +*_GCCNOLTO_AARCH64_SLINK_PATH       =
>> ENV(GCCNOLTO_AARCH64_PREFIX)ar
>> +*_GCCNOLTO_AARCH64_DLINK_PATH       =
>> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
>> +*_GCCNOLTO_AARCH64_ASLDLINK_PATH    =
>> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
>> +*_GCCNOLTO_AARCH64_ASM_PATH         =
>> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
>> +*_GCCNOLTO_AARCH64_PP_PATH          =
>> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
>> +*_GCCNOLTO_AARCH64_VFRPP_PATH       =
>> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
>> +*_GCCNOLTO_AARCH64_ASLCC_PATH       =
>> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
>> +*_GCCNOLTO_AARCH64_ASLPP_PATH       =
>> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
>> +*_GCCNOLTO_AARCH64_RC_PATH          =
>> ENV(GCCNOLTO_AARCH64_PREFIX)objcopy
>> +
>> +*_GCCNOLTO_AARCH64_ASLCC_FLAGS      = DEF(GCC49_ASLCC_FLAGS)
>> +*_GCCNOLTO_AARCH64_ASLDLINK_FLAGS   =
>> DEF(GCC49_AARCH64_ASLDLINK_FLAGS)
>> +*_GCCNOLTO_AARCH64_ASM_FLAGS        =
>> DEF(GCC49_AARCH64_ASM_FLAGS)
>> +*_GCCNOLTO_AARCH64_DLINK2_FLAGS     =
>> DEF(GCC49_AARCH64_DLINK2_FLAGS)
>> +*_GCCNOLTO_AARCH64_DTCPP_FLAGS      = DEF(GCC_DTCPP_FLAGS)
>> +*_GCCNOLTO_AARCH64_PLATFORM_FLAGS   =
>> +*_GCCNOLTO_AARCH64_PP_FLAGS         = $(PLATFORM_FLAGS)
>> DEF(GCC_PP_FLAGS)
>> +*_GCCNOLTO_AARCH64_RC_FLAGS         =
>> DEF(GCC_AARCH64_RC_FLAGS)
>> +*_GCCNOLTO_AARCH64_VFRPP_FLAGS      = $(PLATFORM_FLAGS)
>> DEF(GCC_VFRPP_FLAGS)
>> +*_GCCNOLTO_AARCH64_CC_XIPFLAGS      =
>> DEF(GCC49_AARCH64_CC_XIPFLAGS)
>> +
>> +  DEBUG_GCCNOLTO_AARCH64_CC_FLAGS     =
>> DEF(GCC49_AARCH64_CC_FLAGS) -O0
>> +  DEBUG_GCCNOLTO_AARCH64_DLINK_FLAGS  =
>> DEF(GCC49_AARCH64_DLINK_FLAGS)
>> +  DEBUG_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z
>> common-page-size=0x20
>> +
>> +RELEASE_GCCNOLTO_AARCH64_CC_FLAGS     =
>> DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable
>> -Wno-unused-const-variable
>> +RELEASE_GCCNOLTO_AARCH64_DLINK_FLAGS  =
>> DEF(GCC49_AARCH64_DLINK_FLAGS)
>> +RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z
>> common-page-size=0x20
>> +
>> +  NOOPT_GCCNOLTO_AARCH64_CC_FLAGS     =
>> DEF(GCC49_AARCH64_CC_FLAGS) -O0
>> +  NOOPT_GCCNOLTO_AARCH64_DLINK_FLAGS  =
>> DEF(GCC49_AARCH64_DLINK_FLAGS) -O0
>> +  NOOPT_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z
>> common-page-size=0x20 -O0
>> +
>>
>> ##############################################################
>> ######################
>>   #
>>   # GCC 5 - This configuration is used to compile under Linux to produce
>> @@ -1345,6 +1494,223 @@ RELEASE_GCC5_AARCH64_DLINK_XIPFLAGS =
>> -z common-page-size=0x20
>>   DEBUG_GCC5_LOONGARCH64_CC_FLAGS         =
>> DEF(GCC5_LOONGARCH64_CC_FLAGS)
>>   RELEASE_GCC5_LOONGARCH64_CC_FLAGS       =
>> DEF(GCC5_LOONGARCH64_CC_FLAGS) -Wno-unused-but-set-variable
>> -Wno-unused-variable
>>
>> +#############################################################
>> #######################
>> +#
>> +# GCC - This configuration is used to compile under Linux to produce
>> +#       PE/COFF binaries using GCC 5 or newer
>> +#
>> +#############################################################
>> #######################
>> +*_GCC_*_*_FAMILY                = GCC
>> +
>> +*_GCC_*_MAKE_PATH               = DEF(GCC_HOST_PREFIX)make
>> +*_GCC_*_*_DLL                   = ENV(GCC_DLL)
>> +*_GCC_*_ASL_PATH                = DEF(UNIX_IASL_BIN)
>> +
>> +*_GCC_*_PP_FLAGS                = DEF(GCC_PP_FLAGS)
>> +*_GCC_*_ASLPP_FLAGS             = DEF(GCC_ASLPP_FLAGS)
>> +*_GCC_*_ASLCC_FLAGS             = DEF(GCC_ASLCC_FLAGS)
>> +*_GCC_*_VFRPP_FLAGS             = DEF(GCC_VFRPP_FLAGS)
>> +*_GCC_*_APP_FLAGS               =
>> +*_GCC_*_ASL_FLAGS               = DEF(IASL_FLAGS)
>> +*_GCC_*_ASL_OUTFLAGS            = DEF(IASL_OUTFLAGS)
>> +*_GCC_*_DEPS_FLAGS                   = DEF(GCC_DEPS_FLAGS)
>> +
>> +##################
>> +# GCC IA32 definitions
>> +##################
>> +*_GCC_IA32_OBJCOPY_PATH         = DEF(GCC_IA32_PREFIX)objcopy
>> +*_GCC_IA32_CC_PATH              = DEF(GCC_IA32_PREFIX)gcc
>> +*_GCC_IA32_SLINK_PATH           = DEF(GCC_IA32_PREFIX)gcc-ar
>> +*_GCC_IA32_DLINK_PATH           = DEF(GCC_IA32_PREFIX)gcc
>> +*_GCC_IA32_ASLDLINK_PATH        = DEF(GCC_IA32_PREFIX)gcc
>> +*_GCC_IA32_ASM_PATH             = DEF(GCC_IA32_PREFIX)gcc
>> +*_GCC_IA32_PP_PATH              = DEF(GCC_IA32_PREFIX)gcc
>> +*_GCC_IA32_VFRPP_PATH           = DEF(GCC_IA32_PREFIX)gcc
>> +*_GCC_IA32_ASLCC_PATH           = DEF(GCC_IA32_PREFIX)gcc
>> +*_GCC_IA32_ASLPP_PATH           = DEF(GCC_IA32_PREFIX)gcc
>> +*_GCC_IA32_RC_PATH              = DEF(GCC_IA32_PREFIX)objcopy
>> +
>> +*_GCC_IA32_ASLCC_FLAGS          = DEF(GCC5_ASLCC_FLAGS) -m32
>> +*_GCC_IA32_ASLDLINK_FLAGS       =
>> DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -no-pie
>> +*_GCC_IA32_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m32
>> -march=i386
>> +*_GCC_IA32_DLINK2_FLAGS         = DEF(GCC5_IA32_DLINK2_FLAGS)
>> -no-pie
>> +*_GCC_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
>> +*_GCC_IA32_OBJCOPY_FLAGS        =
>> +*_GCC_IA32_NASM_FLAGS           = -f elf32
>> +
>> +  DEBUG_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto
>> +  DEBUG_GCC_IA32_DLINK_FLAGS    =
>> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os
>> -Wl,-m,elf_i386,--oformat=elf32-i386
>> +
>> +RELEASE_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto
>> -Wno-unused-but-set-variable -Wno-unused-const-variable
>> +RELEASE_GCC_IA32_DLINK_FLAGS    =
>> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os
>> -Wl,-m,elf_i386,--oformat=elf32-i386
>> +
>> +  NOOPT_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -O0
>> +  NOOPT_GCC_IA32_DLINK_FLAGS    =
>> DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386
>> -O0
>> +
>> +##################
>> +# GCC X64 definitions
>> +##################
>> +*_GCC_X64_OBJCOPY_PATH          = DEF(GCC_X64_PREFIX)objcopy
>> +*_GCC_X64_CC_PATH               = DEF(GCC_X64_PREFIX)gcc
>> +*_GCC_X64_SLINK_PATH            = DEF(GCC_X64_PREFIX)gcc-ar
>> +*_GCC_X64_DLINK_PATH            = DEF(GCC_X64_PREFIX)gcc
>> +*_GCC_X64_ASLDLINK_PATH         = DEF(GCC_X64_PREFIX)gcc
>> +*_GCC_X64_ASM_PATH              = DEF(GCC_X64_PREFIX)gcc
>> +*_GCC_X64_PP_PATH               = DEF(GCC_X64_PREFIX)gcc
>> +*_GCC_X64_VFRPP_PATH            = DEF(GCC_X64_PREFIX)gcc
>> +*_GCC_X64_ASLCC_PATH            = DEF(GCC_X64_PREFIX)gcc
>> +*_GCC_X64_ASLPP_PATH            = DEF(GCC_X64_PREFIX)gcc
>> +*_GCC_X64_RC_PATH               = DEF(GCC_X64_PREFIX)objcopy
>> +
>> +*_GCC_X64_ASLCC_FLAGS           = DEF(GCC5_ASLCC_FLAGS) -m64
>> +*_GCC_X64_ASLDLINK_FLAGS        =
>> DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
>> +*_GCC_X64_ASM_FLAGS             = DEF(GCC5_ASM_FLAGS) -m64
>> +*_GCC_X64_DLINK2_FLAGS          = DEF(GCC5_X64_DLINK2_FLAGS)
>> +*_GCC_X64_RC_FLAGS              = DEF(GCC_X64_RC_FLAGS)
>> +*_GCC_X64_OBJCOPY_FLAGS         =
>> +*_GCC_X64_NASM_FLAGS            = -f elf64
>> +
>> +  DEBUG_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -flto
>> -DUSING_LTO
>> +  DEBUG_GCC_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS)
>> -flto -Os
>> +
>> +RELEASE_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -flto
>> -DUSING_LTO -Wno-unused-but-set-variable -Wno-unused-const-variable
>> +RELEASE_GCC_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS)
>> -flto -Os
>> +
>> +  NOOPT_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -O0
>> +  NOOPT_GCC_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS)
>> -O0
>> +
>> +##################
>> +# GCC ARM definitions
>> +##################
>> +*_GCC_ARM_CC_PATH               = ENV(GCC_ARM_PREFIX)gcc
>> +*_GCC_ARM_SLINK_PATH            = ENV(GCC_ARM_PREFIX)gcc-ar
>> +*_GCC_ARM_DLINK_PATH            = ENV(GCC_ARM_PREFIX)gcc
>> +*_GCC_ARM_ASLDLINK_PATH         = ENV(GCC_ARM_PREFIX)gcc
>> +*_GCC_ARM_ASM_PATH              = ENV(GCC_ARM_PREFIX)gcc
>> +*_GCC_ARM_PP_PATH               = ENV(GCC_ARM_PREFIX)gcc
>> +*_GCC_ARM_VFRPP_PATH            = ENV(GCC_ARM_PREFIX)gcc
>> +*_GCC_ARM_ASLCC_PATH            = ENV(GCC_ARM_PREFIX)gcc
>> +*_GCC_ARM_ASLPP_PATH            = ENV(GCC_ARM_PREFIX)gcc
>> +*_GCC_ARM_RC_PATH               = ENV(GCC_ARM_PREFIX)objcopy
>> +
>> +*_GCC_ARM_ASLCC_FLAGS           = DEF(GCC5_ASLCC_FLAGS)
>> +*_GCC_ARM_ASLDLINK_FLAGS        =
>> DEF(GCC5_ARM_ASLDLINK_FLAGS)
>> +*_GCC_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)
>> +*_GCC_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)
>> +*_GCC_ARM_DTCPP_FLAGS           = DEF(GCC_DTCPP_FLAGS)
>> +*_GCC_ARM_PLATFORM_FLAGS        = -march=armv7-a
>> -mfloat-abi=soft
>> +*_GCC_ARM_PP_FLAGS              = $(PLATFORM_FLAGS)
>> DEF(GCC_PP_FLAGS)
>> +*_GCC_ARM_RC_FLAGS              = DEF(GCC_ARM_RC_FLAGS)
>> +*_GCC_ARM_VFRPP_FLAGS           = $(PLATFORM_FLAGS)
>> DEF(GCC_VFRPP_FLAGS)
>> +*_GCC_ARM_CC_XIPFLAGS           = DEF(GCC5_ARM_CC_XIPFLAGS)
>> +
>> +  DEBUG_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS)
>> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
>> +  DEBUG_GCC_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS)
>> -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm
>> -Wl,-plugin-opt=-pass-through=-llto-arm
>> +
>> +RELEASE_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS)
>> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
>> +RELEASE_GCC_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS)
>> -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm
>> -Wl,-plugin-opt=-pass-through=-llto-arm
>> +
>> +  NOOPT_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS)
>> -O0
>> +  NOOPT_GCC_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS)
>> -O0
>> +
>> +##################
>> +# GCC AARCH64 definitions
>> +##################
>> +*_GCC_AARCH64_CC_PATH           = ENV(GCC_AARCH64_PREFIX)gcc
>> +*_GCC_AARCH64_SLINK_PATH        =
>> ENV(GCC_AARCH64_PREFIX)gcc-ar
>> +*_GCC_AARCH64_DLINK_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
>> +*_GCC_AARCH64_ASLDLINK_PATH     = ENV(GCC_AARCH64_PREFIX)gcc
>> +*_GCC_AARCH64_ASM_PATH          = ENV(GCC_AARCH64_PREFIX)gcc
>> +*_GCC_AARCH64_PP_PATH           = ENV(GCC_AARCH64_PREFIX)gcc
>> +*_GCC_AARCH64_VFRPP_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
>> +*_GCC_AARCH64_ASLCC_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
>> +*_GCC_AARCH64_ASLPP_PATH        = ENV(GCC_AARCH64_PREFIX)gcc
>> +*_GCC_AARCH64_RC_PATH           =
>> ENV(GCC_AARCH64_PREFIX)objcopy
>> +
>> +*_GCC_AARCH64_ASLCC_FLAGS       = DEF(GCC5_ASLCC_FLAGS)
>> +*_GCC_AARCH64_ASLDLINK_FLAGS    =
>> DEF(GCC5_AARCH64_ASLDLINK_FLAGS)
>> +*_GCC_AARCH64_ASM_FLAGS         =
>> DEF(GCC5_AARCH64_ASM_FLAGS)
>> +*_GCC_AARCH64_DLINK2_FLAGS      =
>> DEF(GCC5_AARCH64_DLINK2_FLAGS)
>> +*_GCC_AARCH64_DTCPP_FLAGS       = DEF(GCC_DTCPP_FLAGS)
>> +*_GCC_AARCH64_PLATFORM_FLAGS    =
>> +*_GCC_AARCH64_PP_FLAGS          = $(PLATFORM_FLAGS)
>> DEF(GCC_PP_FLAGS)
>> +*_GCC_AARCH64_RC_FLAGS          = DEF(GCC_AARCH64_RC_FLAGS)
>> DEF(GCC_AARCH64_RC_BTI_FLAGS)
>> +*_GCC_AARCH64_VFRPP_FLAGS       = $(PLATFORM_FLAGS)
>> DEF(GCC_VFRPP_FLAGS)
>> +*_GCC_AARCH64_CC_XIPFLAGS       =
>> DEF(GCC5_AARCH64_CC_XIPFLAGS)
>> +
>> +  DEBUG_GCC_AARCH64_CC_FLAGS    =
>> DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable
>> -Wno-unused-const-variable
>> +  DEBUG_GCC_AARCH64_DLINK_FLAGS =
>> DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os
>> -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64
>> -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch
>> +  DEBUG_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
>> +
>> +RELEASE_GCC_AARCH64_CC_FLAGS    = DEF(GCC5_AARCH64_CC_FLAGS)
>> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
>> +RELEASE_GCC_AARCH64_DLINK_FLAGS =
>> DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os
>> -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64
>> -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch
>> +RELEASE_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
>> +
>> +  NOOPT_GCC_AARCH64_CC_FLAGS    =
>> DEF(GCC5_AARCH64_CC_FLAGS) -O0
>> +  NOOPT_GCC_AARCH64_DLINK_FLAGS =
>> DEF(GCC5_AARCH64_DLINK_FLAGS) -O0
>> +  NOOPT_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
>> -O0
>> +
>> +#############################################################
>> #######################
>> +#
>> +# GCC RISC-V This configuration is used to compile under Linux to produce
>> +#             PE/COFF binaries using GCC RISC-V tool chain
>> +#
>> +#############################################################
>> #######################
>> +
>> +##################
>> +# GCC RISCV64 definitions
>> +##################
>> +*_GCC_RISCV64_OBJCOPY_PATH         =
>> ENV(GCC_RISCV64_PREFIX)objcopy
>> +*_GCC_RISCV64_CC_PATH              =
>> ENV(GCC_RISCV64_PREFIX)gcc
>> +*_GCC_RISCV64_SLINK_PATH           =
>> ENV(GCC_RISCV64_PREFIX)gcc-ar
>> +*_GCC_RISCV64_DLINK_PATH           =
>> ENV(GCC_RISCV64_PREFIX)gcc
>> +*_GCC_RISCV64_ASLDLINK_PATH        =
>> ENV(GCC_RISCV64_PREFIX)gcc
>> +*_GCC_RISCV64_ASM_PATH             =
>> ENV(GCC_RISCV64_PREFIX)gcc
>> +*_GCC_RISCV64_PP_PATH              =
>> ENV(GCC_RISCV64_PREFIX)gcc
>> +*_GCC_RISCV64_VFRPP_PATH           =
>> ENV(GCC_RISCV64_PREFIX)gcc
>> +*_GCC_RISCV64_ASLCC_PATH           =
>> ENV(GCC_RISCV64_PREFIX)gcc
>> +*_GCC_RISCV64_ASLPP_PATH           =
>> ENV(GCC_RISCV64_PREFIX)gcc
>> +*_GCC_RISCV64_RC_PATH              =
>> ENV(GCC_RISCV64_PREFIX)objcopy
>> +
>> +*_GCC_RISCV64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)
>> +*_GCC_RISCV64_ASLDLINK_FLAGS       =
>> DEF(GCC5_RISCV32_RISCV64_ASLDLINK_FLAGS)
>> +*_GCC_RISCV64_ASM_FLAGS            =
>> DEF(GCC5_RISCV64_ASM_FLAGS)
>> +*_GCC_RISCV64_CC_FLAGS             =
>> DEF(GCC5_RISCV64_CC_FLAGS) -save-temps
>> +*_GCC_RISCV64_DLINK_FLAGS          =
>> DEF(GCC5_RISCV64_DLINK_FLAGS)
>> +*_GCC_RISCV64_DLINK2_FLAGS         =
>> DEF(GCC5_RISCV64_DLINK2_FLAGS)
>> +*_GCC_RISCV64_RC_FLAGS             =
>> DEF(GCC_RISCV64_RC_FLAGS)
>> +*_GCC_RISCV64_OBJCOPY_FLAGS        =
>> +*_GCC_RISCV64_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)
>> +*_GCC_RISCV64_PP_FLAGS             = DEF(GCC_PP_FLAGS)
>> DEF(GCC5_RISCV_OPENSBI_TYPES)
>> +
>> +##################
>> +# GCC LOONGARCH64 definitions
>> +##################
>> +*_GCC_LOONGARCH64_OBJCOPY_PATH         =
>> ENV(GCC_LOONGARCH64_PREFIX)objcopy
>> +*_GCC_LOONGARCH64_CC_PATH              =
>> ENV(GCC_LOONGARCH64_PREFIX)gcc
>> +*_GCC_LOONGARCH64_SLINK_PATH           =
>> ENV(GCC_LOONGARCH64_PREFIX)gcc-ar
>> +*_GCC_LOONGARCH64_DLINK_PATH           =
>> ENV(GCC_LOONGARCH64_PREFIX)gcc
>> +*_GCC_LOONGARCH64_ASLDLINK_PATH        =
>> ENV(GCC_LOONGARCH64_PREFIX)gcc
>> +*_GCC_LOONGARCH64_ASM_PATH             =
>> ENV(GCC_LOONGARCH64_PREFIX)gcc
>> +*_GCC_LOONGARCH64_PP_PATH              =
>> ENV(GCC_LOONGARCH64_PREFIX)gcc
>> +*_GCC_LOONGARCH64_VFRPP_PATH           =
>> ENV(GCC_LOONGARCH64_PREFIX)gcc
>> +*_GCC_LOONGARCH64_ASLCC_PATH           =
>> ENV(GCC_LOONGARCH64_PREFIX)gcc
>> +*_GCC_LOONGARCH64_ASLPP_PATH           =
>> ENV(GCC_LOONGARCH64_PREFIX)gcc
>> +*_GCC_LOONGARCH64_RC_PATH              =
>> ENV(GCC_LOONGARCH64_PREFIX)objcopy
>> +
>> +*_GCC_LOONGARCH64_ASLCC_FLAGS          =
>> DEF(GCC_ASLCC_FLAGS)
>> +*_GCC_LOONGARCH64_ASLDLINK_FLAGS       =
>> DEF(GCC5_LOONGARCH64_ASLDLINK_FLAGS)
>> +*_GCC_LOONGARCH64_ASM_FLAGS            =
>> DEF(GCC5_LOONGARCH64_ASM_FLAGS)
>> +*_GCC_LOONGARCH64_DLINK_FLAGS          =
>> DEF(GCC5_LOONGARCH64_DLINK_FLAGS)
>> +*_GCC_LOONGARCH64_DLINK2_FLAGS         =
>> DEF(GCC5_LOONGARCH64_DLINK2_FLAGS)
>> +*_GCC_LOONGARCH64_RC_FLAGS             =
>> DEF(GCC_LOONGARCH64_RC_FLAGS)
>> +*_GCC_LOONGARCH64_OBJCOPY_FLAGS        =
>> +*_GCC_LOONGARCH64_NASM_FLAGS           = -f elf32
>> +*_GCC_LOONGARCH64_PP_FLAGS             =
>> DEF(GCC5_LOONGARCH64_PP_FLAGS)
>> +
>> +DEBUG_GCC_LOONGARCH64_CC_FLAGS         =
>> DEF(GCC5_LOONGARCH64_CC_FLAGS)
>> +RELEASE_GCC_LOONGARCH64_CC_FLAGS       =
>> DEF(GCC5_LOONGARCH64_CC_FLAGS) -Wno-unused-but-set-variable
>> -Wno-unused-variable
>> +
>>
>> ##############################################################
>> ######################
>>   #
>>   # Clang - This configuration is used to compile under Linux to produce
>> --
>> 2.37.2
>
>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* 回复: [edk2-devel] 回复: [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains
  2023-04-21 17:16     ` Rebecca Cran
@ 2023-04-24  5:03       ` gaoliming
  0 siblings, 0 replies; 19+ messages in thread
From: gaoliming @ 2023-04-24  5:03 UTC (permalink / raw)
  To: devel, rebecca, 'Bob Feng', 'Yuwei Chen',
	'Michael D Kinney', 'Michael Kubacki',
	'Sean Brogan', 'Chasel Chiu',
	'Nate DeSimone', 'Star Zeng',
	'Andrew Fish'
  Cc: 'Ray Ni', 'Leif Lindholm', 'Zhiguang Liu',
	'Jian J Wang', 'Xiaoyu Lu',
	'Guomin Jiang', 'Gua Guo',
	'Ard Biesheuvel', 'Pedro Falcato',
	'Gerd Hoffmann', 'Marvin Häuser'

Rebecca:
  Thanks for your fix. New version patch is OK to me. 

Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Rebecca Cran
> 发送时间: 2023年4月22日 1:16
> 收件人: gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io; 'Bob
> Feng' <bob.c.feng@intel.com>; 'Yuwei Chen' <yuwei.chen@intel.com>;
> 'Michael D Kinney' <michael.d.kinney@intel.com>; 'Michael Kubacki'
> <mikuback@linux.microsoft.com>; 'Sean Brogan'
> <sean.brogan@microsoft.com>; 'Chasel Chiu' <chasel.chiu@intel.com>; 'Nate
> DeSimone' <nathaniel.l.desimone@intel.com>; 'Star Zeng'
> <star.zeng@intel.com>; 'Andrew Fish' <afish@apple.com>
> 抄送: 'Ray Ni' <ray.ni@intel.com>; 'Leif Lindholm'
> <quic_llindhol@quicinc.com>; 'Zhiguang Liu' <zhiguang.liu@intel.com>; 'Jian J
> Wang' <jian.j.wang@intel.com>; 'Xiaoyu Lu' <xiaoyu1.lu@intel.com>;
> 'Guomin Jiang' <guomin.jiang@intel.com>; 'Gua Guo' <gua.guo@intel.com>;
> 'Ard Biesheuvel' <ardb@kernel.org>; 'Pedro Falcato'
> <pedro.falcato@gmail.com>; 'Gerd Hoffmann' <kraxel@redhat.com>; 'Marvin
> Häuser' <mhaeuser@posteo.de>
> 主题: Re: [edk2-devel] 回复: [PATCH v4 09/13]
> BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains
> 
> Thanks, I've fixed the issues you noted and sent out a v5 series.
> 
> I kept your Reviewed-by on 01/13 despite making minor changes to fix the
> build on Windows: I hope that was okay.
> 
> 
> --
> Rebecca Cran
> 
> 
> On 4/20/23 20:32, gaoliming wrote:
> > Rebecca:
> >    I add my comments below.
> >
> >> -----邮件原件-----
> >> 发件人: Rebecca Cran <rebecca@bsdio.com>
> >> 发送时间: 2023年4月20日 3:58
> >> 收件人: devel@edk2.groups.io; Liming Gao
> <gaoliming@byosoft.com.cn>;
> >> Bob Feng <bob.c.feng@intel.com>; Yuwei Chen <yuwei.chen@intel.com>;
> >> Michael D Kinney <michael.d.kinney@intel.com>; Michael Kubacki
> >> <mikuback@linux.microsoft.com>; Sean Brogan
> >> <sean.brogan@microsoft.com>; Chasel Chiu <chasel.chiu@intel.com>;
> Nate
> >> DeSimone <nathaniel.l.desimone@intel.com>; Star Zeng
> >> <star.zeng@intel.com>; Andrew Fish <afish@apple.com>
> >> 抄送: Rebecca Cran <rebecca@bsdio.com>; Ray Ni <ray.ni@intel.com>;
> Leif
> >> Lindholm <quic_llindhol@quicinc.com>; Zhiguang Liu
> >> <zhiguang.liu@intel.com>; Jian J Wang <jian.j.wang@intel.com>; Xiaoyu Lu
> >> <xiaoyu1.lu@intel.com>; Guomin Jiang <guomin.jiang@intel.com>; Gua
> Guo
> >> <gua.guo@intel.com>; Ard Biesheuvel <ardb@kernel.org>; Pedro Falcato
> >> <pedro.falcato@gmail.com>; Gerd Hoffmann <kraxel@redhat.com>;
> Marvin
> >> Häuser <mhaeuser@posteo.de>
> >> 主题: [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and
> >> GCCNOLTO toolchains
> >>
> >> Add a 'GCC' toolchain that's a copy of the existing GCC5 definition.
> >> Add a 'GCCNOLTO' toolchain that's a copy of the existing GCC48
> >> toolchain.
> >>
> > GCCNOLTO is the replacement of GCC49, not GCC48.
> >
> > And, CryptoPkg\Library\OpensslLib\OpensslLib.inf has
> GCC:*_GCC5_*_CC_FLAGS. New GCC:*_GCC_*_CC_FLAGS is required to be
> added.
> >
> > Thanks
> > Liming
> >> Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
> >> ---
> >>   UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc |   2 ++
> >>   IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc               |   9
> >> ++++++++-
> >>   EmulatorPkg/Unix/Host/Host.inf                        |   2 ++
> >>   BaseTools/Conf/tools_def.template                     | 366
> >>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >>   4 files changed, 378 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> >> b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> >> index 7866c36e6693..b24ecdbf8661 100644
> >> --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> >> +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> >> @@ -31,6 +31,8 @@ [BuildOptions]
> >>   !endif
> >>     GCC:*_GCC5_*_CC_FLAGS = --coverage
> >>     GCC:*_GCC5_*_DLINK_FLAGS = --coverage
> >> +  GCC:*_GCC_*_CC_FLAGS = --coverage
> >> +  GCC:*_GCC_*_DLINK_FLAGS = --coverage
> >>   [BuildOptions.common.EDKII.HOST_APPLICATION]
> >>     #
> >>     # MSFT
> >> diff --git a/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> >> b/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> >> index 31558121185d..2db3854274c8 100644
> >> --- a/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> >> +++ b/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> >> @@ -461,10 +461,17 @@ [Components.IA32]
> >>
> >>
> ##############################################################
> >> #####################################
> >>   [BuildOptions]
> >>   # Append build options for EDK and EDKII drivers (= is Append, == is
> Replace)
> >> -  # Enable link-time optimization when building with GCC49
> >> +  # Enable link-time optimization when building with GCC49 or
> GCCNOLTO
> >>     *_GCC49_IA32_CC_FLAGS = -flto
> >>     *_GCC49_IA32_DLINK_FLAGS = -flto
> >> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
> >> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto
> >>     *_GCC5_IA32_CC_FLAGS = -fno-pic
> >>     *_GCC5_IA32_DLINK_FLAGS = -no-pie
> >>     *_GCC5_IA32_ASLCC_FLAGS = -fno-pic
> >>     *_GCC5_IA32_ASLDLINK_FLAGS = -no-pie
> >> +  *_GCC_IA32_CC_FLAGS = -fno-pic
> >> +  *_GCC_IA32_DLINK_FLAGS = -no-pie
> >> +  *_GCC_IA32_ASLCC_FLAGS = -fno-pic
> >> +  *_GCC_IA32_ASLDLINK_FLAGS = -no-pie
> >> +
> >> diff --git a/EmulatorPkg/Unix/Host/Host.inf
> >> b/EmulatorPkg/Unix/Host/Host.inf
> >> index f5ebbed68344..90e8c36b6186 100644
> >> --- a/EmulatorPkg/Unix/Host/Host.inf
> >> +++ b/EmulatorPkg/Unix/Host/Host.inf
> >> @@ -123,7 +123,9 @@ [BuildOptions]
> >>      GCC:*_*_X64_CC_FLAGS == -m64 -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:*_GCC48_X64_CC_FLAGS =
> "-DEFIAPI=__attribute__((ms_abi))"
> >>      GCC:*_GCC49_X64_CC_FLAGS =
> "-DEFIAPI=__attribute__((ms_abi))"
> >> +   GCC:*_GCCNOLTO_X64_CC_FLAGS =
> >> "-DEFIAPI=__attribute__((ms_abi))"
> >>      GCC:*_GCC5_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
> -flto
> >> -DUSING_LTO -Os
> >> +   GCC:*_GCC_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
> -flto
> >> -DUSING_LTO -Os
> >>      GCC:*_*_X64_PP_FLAGS == -m64 -E -x assembler-with-cpp
> -include
> >> $(DEST_DIR_DEBUG)/AutoGen.h
> >>      GCC:*_*_X64_ASM_FLAGS == -m64 -c -x assembler -imacros
> >> $(DEST_DIR_DEBUG)/AutoGen.h
> >>
> >> diff --git a/BaseTools/Conf/tools_def.template
> >> b/BaseTools/Conf/tools_def.template
> >> index 6fd03ee77ac6..36772b9fe34f 100755
> >> --- a/BaseTools/Conf/tools_def.template
> >> +++ b/BaseTools/Conf/tools_def.template
> >> @@ -77,8 +77,13 @@ DEFINE GCC48_X64_PREFIX        =
> >> ENV(GCC48_BIN)
> >>   DEFINE GCC49_IA32_PREFIX       = ENV(GCC49_BIN)
> >>   DEFINE GCC49_X64_PREFIX        = ENV(GCC49_BIN)
> >>
> >> +DEFINE GCCNOLTO_IA32_PREFIX    = ENV(GCCNOLTO_BIN)
> >> +DEFINE GCCNOLTO_X64_PREFIX     = ENV(GCCNOLTO_BIN)
> >> +
> >>   DEFINE GCC5_IA32_PREFIX        = ENV(GCC5_BIN)
> >>   DEFINE GCC5_X64_PREFIX         = ENV(GCC5_BIN)
> >> +DEFINE GCC_IA32_PREFIX         = ENV(GCC_BIN)
> >> +DEFINE GCC_X64_PREFIX          = ENV(GCC_BIN)
> >>   DEFINE GCC_HOST_PREFIX         = ENV(GCC_HOST_BIN)
> >>
> >>   DEFINE UNIX_IASL_BIN           = ENV(IASL_PREFIX)iasl
> >> @@ -1128,6 +1133,150 @@
> RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS =
> >> -z common-page-size=0x20
> >>     NOOPT_GCC49_AARCH64_DLINK_FLAGS  =
> >> DEF(GCC49_AARCH64_DLINK_FLAGS) -O0
> >>     NOOPT_GCC49_AARCH64_DLINK_XIPFLAGS = -z
> >> common-page-size=0x20 -O0
> >>
> >>
> +#############################################################
> >> #######################
> >> +#
> >> +# GCC NOLTO - This configuration is used to compile under Linux to
> produce
> >> +#             PE/COFF binaries using GCC without Link Time
> >> Optimization
> >> +#
> >>
> +#############################################################
> >> #######################
> >> +*_GCCNOLTO_*_*_FAMILY               = GCC
> >> +
> >> +*_GCCNOLTO_*_MAKE_PATH                    =
> >> DEF(GCC_HOST_PREFIX)make
> >> +*_GCCNOLTO_*_*_DLL                        =
> >> ENV(GCCNOLTO_DLL)
> >> +*_GCCNOLTO_*_ASL_PATH                     =
> DEF(UNIX_IASL_BIN)
> >> +
> >> +*_GCCNOLTO_*_PP_FLAGS                     =
> DEF(GCC_PP_FLAGS)
> >> +*_GCCNOLTO_*_ASLPP_FLAGS                  =
> >> DEF(GCC_ASLPP_FLAGS)
> >> +*_GCCNOLTO_*_ASLCC_FLAGS                  =
> >> DEF(GCC_ASLCC_FLAGS)
> >> +*_GCCNOLTO_*_VFRPP_FLAGS                  =
> >> DEF(GCC_VFRPP_FLAGS)
> >> +*_GCCNOLTO_*_APP_FLAGS                    =
> >> +*_GCCNOLTO_*_ASL_FLAGS                    = DEF(IASL_FLAGS)
> >> +*_GCCNOLTO_*_ASL_OUTFLAGS                 =
> >> DEF(IASL_OUTFLAGS)
> >> +*_GCCNOLTO_*_DEPS_FLAGS                   =
> >> DEF(GCC_DEPS_FLAGS)
> >> +
> >> +##################
> >> +# GCCNOLTO IA32 definitions
> >> +##################
> >> +*_GCCNOLTO_IA32_OBJCOPY_PATH         =
> >> DEF(GCCNOLTO_IA32_PREFIX)objcopy
> >> +*_GCCNOLTO_IA32_CC_PATH              =
> >> DEF(GCCNOLTO_IA32_PREFIX)gcc
> >> +*_GCCNOLTO_IA32_SLINK_PATH           =
> >> DEF(GCCNOLTO_IA32_PREFIX)ar
> >> +*_GCCNOLTO_IA32_DLINK_PATH           =
> >> DEF(GCCNOLTO_IA32_PREFIX)gcc
> >> +*_GCCNOLTO_IA32_ASLDLINK_PATH        =
> >> DEF(GCCNOLTO_IA32_PREFIX)gcc
> >> +*_GCCNOLTO_IA32_ASM_PATH             =
> >> DEF(GCCNOLTO_IA32_PREFIX)gcc
> >> +*_GCCNOLTO_IA32_PP_PATH              =
> >> DEF(GCCNOLTO_IA32_PREFIX)gcc
> >> +*_GCCNOLTO_IA32_VFRPP_PATH           =
> >> DEF(GCCNOLTO_IA32_PREFIX)gcc
> >> +*_GCCNOLTO_IA32_ASLCC_PATH           =
> >> DEF(GCCNOLTO_IA32_PREFIX)gcc
> >> +*_GCCNOLTO_IA32_ASLPP_PATH           =
> >> DEF(GCCNOLTO_IA32_PREFIX)gcc
> >> +*_GCCNOLTO_IA32_RC_PATH              =
> >> DEF(GCCNOLTO_IA32_PREFIX)objcopy
> >> +
> >> +*_GCCNOLTO_IA32_ASLCC_FLAGS          =
> DEF(GCC49_ASLCC_FLAGS)
> >> -m32
> >> +*_GCCNOLTO_IA32_ASLDLINK_FLAGS       =
> >> DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386
> >> +*_GCCNOLTO_IA32_ASM_FLAGS            =
> DEF(GCC49_ASM_FLAGS)
> >> -m32 -march=i386
> >> +*_GCCNOLTO_IA32_DLINK_FLAGS          =
> >> DEF(GCC49_IA32_X64_DLINK_FLAGS)
> -Wl,-m,elf_i386,--oformat=elf32-i386
> >> +*_GCCNOLTO_IA32_DLINK2_FLAGS         =
> >> DEF(GCC49_IA32_DLINK2_FLAGS)
> >> +*_GCCNOLTO_IA32_RC_FLAGS             =
> DEF(GCC_IA32_RC_FLAGS)
> >> +*_GCCNOLTO_IA32_OBJCOPY_FLAGS        =
> >> +*_GCCNOLTO_IA32_NASM_FLAGS           = -f elf32
> >> +
> >> +  DEBUG_GCCNOLTO_IA32_CC_FLAGS       =
> >> DEF(GCC49_IA32_CC_FLAGS)
> >> +RELEASE_GCCNOLTO_IA32_CC_FLAGS       =
> >> DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set-variable
> >> -Wno-unused-const-variable
> >> +  NOOPT_GCCNOLTO_IA32_CC_FLAGS       =
> >> DEF(GCC49_IA32_CC_FLAGS) -O0
> >> +
> >> +##################
> >> +# GCCNOLTO X64 definitions
> >> +##################
> >> +*_GCCNOLTO_X64_OBJCOPY_PATH         =
> >> DEF(GCCNOLTO_X64_PREFIX)objcopy
> >> +*_GCCNOLTO_X64_CC_PATH              =
> >> DEF(GCCNOLTO_X64_PREFIX)gcc
> >> +*_GCCNOLTO_X64_SLINK_PATH           =
> >> DEF(GCCNOLTO_X64_PREFIX)ar
> >> +*_GCCNOLTO_X64_DLINK_PATH           =
> >> DEF(GCCNOLTO_X64_PREFIX)gcc
> >> +*_GCCNOLTO_X64_ASLDLINK_PATH        =
> >> DEF(GCCNOLTO_X64_PREFIX)gcc
> >> +*_GCCNOLTO_X64_ASM_PATH             =
> >> DEF(GCCNOLTO_X64_PREFIX)gcc
> >> +*_GCCNOLTO_X64_PP_PATH              =
> >> DEF(GCCNOLTO_X64_PREFIX)gcc
> >> +*_GCCNOLTO_X64_VFRPP_PATH           =
> >> DEF(GCCNOLTO_X64_PREFIX)gcc
> >> +*_GCCNOLTO_X64_ASLCC_PATH           =
> >> DEF(GCCNOLTO_X64_PREFIX)gcc
> >> +*_GCCNOLTO_X64_ASLPP_PATH           =
> >> DEF(GCCNOLTO_X64_PREFIX)gcc
> >> +*_GCCNOLTO_X64_RC_PATH              =
> >> DEF(GCCNOLTO_X64_PREFIX)objcopy
> >> +
> >> +*_GCCNOLTO_X64_ASLCC_FLAGS          =
> DEF(GCC49_ASLCC_FLAGS)
> >> -m64
> >> +*_GCCNOLTO_X64_ASLDLINK_FLAGS       =
> >> DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
> >> +*_GCCNOLTO_X64_ASM_FLAGS            =
> DEF(GCC49_ASM_FLAGS)
> >> -m64
> >> +*_GCCNOLTO_X64_DLINK_FLAGS          =
> >> DEF(GCC49_X64_DLINK_FLAGS)
> >> +*_GCCNOLTO_X64_DLINK2_FLAGS         =
> >> DEF(GCC49_X64_DLINK2_FLAGS)
> >> +*_GCCNOLTO_X64_RC_FLAGS             =
> DEF(GCC_X64_RC_FLAGS)
> >> +*_GCCNOLTO_X64_OBJCOPY_FLAGS        =
> >> +*_GCCNOLTO_X64_NASM_FLAGS           = -f elf64
> >> +
> >> +  DEBUG_GCCNOLTO_X64_CC_FLAGS       =
> >> DEF(GCC49_X64_CC_FLAGS)
> >> +RELEASE_GCCNOLTO_X64_CC_FLAGS       =
> DEF(GCC49_X64_CC_FLAGS)
> >> -Wno-unused-but-set-variable -Wno-unused-const-variable
> >> +  NOOPT_GCCNOLTO_X64_CC_FLAGS       =
> >> DEF(GCC49_X64_CC_FLAGS) -O0
> >> +
> >> +##################
> >> +# GCCNOLTO ARM definitions
> >> +##################
> >> +*_GCCNOLTO_ARM_CC_PATH              =
> >> ENV(GCCNOLTO_ARM_PREFIX)gcc
> >> +*_GCCNOLTO_ARM_SLINK_PATH           =
> >> ENV(GCCNOLTO_ARM_PREFIX)ar
> >> +*_GCCNOLTO_ARM_DLINK_PATH           =
> >> ENV(GCCNOLTO_ARM_PREFIX)gcc
> >> +*_GCCNOLTO_ARM_ASLDLINK_PATH        =
> >> ENV(GCCNOLTO_ARM_PREFIX)gcc
> >> +*_GCCNOLTO_ARM_ASM_PATH             =
> >> ENV(GCCNOLTO_ARM_PREFIX)gcc
> >> +*_GCCNOLTO_ARM_PP_PATH              =
> >> ENV(GCCNOLTO_ARM_PREFIX)gcc
> >> +*_GCCNOLTO_ARM_VFRPP_PATH           =
> >> ENV(GCCNOLTO_ARM_PREFIX)gcc
> >> +*_GCCNOLTO_ARM_ASLCC_PATH           =
> >> ENV(GCCNOLTO_ARM_PREFIX)gcc
> >> +*_GCCNOLTO_ARM_ASLPP_PATH           =
> >> ENV(GCCNOLTO_ARM_PREFIX)gcc
> >> +*_GCCNOLTO_ARM_RC_PATH              =
> >> ENV(GCCNOLTO_ARM_PREFIX)objcopy
> >> +
> >> +*_GCCNOLTO_ARM_ASLCC_FLAGS          =
> DEF(GCC49_ASLCC_FLAGS)
> >> +*_GCCNOLTO_ARM_ASLDLINK_FLAGS       =
> >> DEF(GCC49_ARM_ASLDLINK_FLAGS)
> >> +*_GCCNOLTO_ARM_ASM_FLAGS            =
> >> DEF(GCC49_ARM_ASM_FLAGS)
> >> +*_GCCNOLTO_ARM_DLINK_FLAGS          =
> >> DEF(GCC49_ARM_DLINK_FLAGS)
> >> +*_GCCNOLTO_ARM_DLINK2_FLAGS         =
> >> DEF(GCC49_ARM_DLINK2_FLAGS)
> >> +*_GCCNOLTO_ARM_DTCPP_FLAGS          =
> DEF(GCC_DTCPP_FLAGS)
> >> +*_GCCNOLTO_ARM_PLATFORM_FLAGS       = -march=armv7-a
> >> +*_GCCNOLTO_ARM_PP_FLAGS             = $(PLATFORM_FLAGS)
> >> DEF(GCC_PP_FLAGS)
> >> +*_GCCNOLTO_ARM_RC_FLAGS             =
> DEF(GCC_ARM_RC_FLAGS)
> >> +*_GCCNOLTO_ARM_VFRPP_FLAGS          = $(PLATFORM_FLAGS)
> >> DEF(GCC_VFRPP_FLAGS)
> >> +*_GCCNOLTO_ARM_CC_XIPFLAGS          =
> >> DEF(GCC49_ARM_CC_XIPFLAGS)
> >> +
> >> +  DEBUG_GCCNOLTO_ARM_CC_FLAGS       =
> >> DEF(GCC49_ARM_CC_FLAGS) -O0
> >> +RELEASE_GCCNOLTO_ARM_CC_FLAGS       =
> >> DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-variable
> >> -Wno-unused-const-variable
> >> +  NOOPT_GCCNOLTO_ARM_CC_FLAGS       =
> >> DEF(GCC49_ARM_CC_FLAGS) -O0
> >> +
> >> +##################
> >> +# GCCNOLTO AARCH64 definitions
> >> +##################
> >> +*_GCCNOLTO_AARCH64_CC_PATH          =
> >> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> >> +*_GCCNOLTO_AARCH64_SLINK_PATH       =
> >> ENV(GCCNOLTO_AARCH64_PREFIX)ar
> >> +*_GCCNOLTO_AARCH64_DLINK_PATH       =
> >> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> >> +*_GCCNOLTO_AARCH64_ASLDLINK_PATH    =
> >> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> >> +*_GCCNOLTO_AARCH64_ASM_PATH         =
> >> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> >> +*_GCCNOLTO_AARCH64_PP_PATH          =
> >> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> >> +*_GCCNOLTO_AARCH64_VFRPP_PATH       =
> >> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> >> +*_GCCNOLTO_AARCH64_ASLCC_PATH       =
> >> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> >> +*_GCCNOLTO_AARCH64_ASLPP_PATH       =
> >> ENV(GCCNOLTO_AARCH64_PREFIX)gcc
> >> +*_GCCNOLTO_AARCH64_RC_PATH          =
> >> ENV(GCCNOLTO_AARCH64_PREFIX)objcopy
> >> +
> >> +*_GCCNOLTO_AARCH64_ASLCC_FLAGS      =
> DEF(GCC49_ASLCC_FLAGS)
> >> +*_GCCNOLTO_AARCH64_ASLDLINK_FLAGS   =
> >> DEF(GCC49_AARCH64_ASLDLINK_FLAGS)
> >> +*_GCCNOLTO_AARCH64_ASM_FLAGS        =
> >> DEF(GCC49_AARCH64_ASM_FLAGS)
> >> +*_GCCNOLTO_AARCH64_DLINK2_FLAGS     =
> >> DEF(GCC49_AARCH64_DLINK2_FLAGS)
> >> +*_GCCNOLTO_AARCH64_DTCPP_FLAGS      =
> DEF(GCC_DTCPP_FLAGS)
> >> +*_GCCNOLTO_AARCH64_PLATFORM_FLAGS   =
> >> +*_GCCNOLTO_AARCH64_PP_FLAGS         = $(PLATFORM_FLAGS)
> >> DEF(GCC_PP_FLAGS)
> >> +*_GCCNOLTO_AARCH64_RC_FLAGS         =
> >> DEF(GCC_AARCH64_RC_FLAGS)
> >> +*_GCCNOLTO_AARCH64_VFRPP_FLAGS      = $(PLATFORM_FLAGS)
> >> DEF(GCC_VFRPP_FLAGS)
> >> +*_GCCNOLTO_AARCH64_CC_XIPFLAGS      =
> >> DEF(GCC49_AARCH64_CC_XIPFLAGS)
> >> +
> >> +  DEBUG_GCCNOLTO_AARCH64_CC_FLAGS     =
> >> DEF(GCC49_AARCH64_CC_FLAGS) -O0
> >> +  DEBUG_GCCNOLTO_AARCH64_DLINK_FLAGS  =
> >> DEF(GCC49_AARCH64_DLINK_FLAGS)
> >> +  DEBUG_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z
> >> common-page-size=0x20
> >> +
> >> +RELEASE_GCCNOLTO_AARCH64_CC_FLAGS     =
> >> DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable
> >> -Wno-unused-const-variable
> >> +RELEASE_GCCNOLTO_AARCH64_DLINK_FLAGS  =
> >> DEF(GCC49_AARCH64_DLINK_FLAGS)
> >> +RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z
> >> common-page-size=0x20
> >> +
> >> +  NOOPT_GCCNOLTO_AARCH64_CC_FLAGS     =
> >> DEF(GCC49_AARCH64_CC_FLAGS) -O0
> >> +  NOOPT_GCCNOLTO_AARCH64_DLINK_FLAGS  =
> >> DEF(GCC49_AARCH64_DLINK_FLAGS) -O0
> >> +  NOOPT_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z
> >> common-page-size=0x20 -O0
> >> +
> >>
> >>
> ##############################################################
> >> ######################
> >>   #
> >>   # GCC 5 - This configuration is used to compile under Linux to produce
> >> @@ -1345,6 +1494,223 @@ RELEASE_GCC5_AARCH64_DLINK_XIPFLAGS
> =
> >> -z common-page-size=0x20
> >>   DEBUG_GCC5_LOONGARCH64_CC_FLAGS         =
> >> DEF(GCC5_LOONGARCH64_CC_FLAGS)
> >>   RELEASE_GCC5_LOONGARCH64_CC_FLAGS       =
> >> DEF(GCC5_LOONGARCH64_CC_FLAGS) -Wno-unused-but-set-variable
> >> -Wno-unused-variable
> >>
> >>
> +#############################################################
> >> #######################
> >> +#
> >> +# GCC - This configuration is used to compile under Linux to produce
> >> +#       PE/COFF binaries using GCC 5 or newer
> >> +#
> >>
> +#############################################################
> >> #######################
> >> +*_GCC_*_*_FAMILY                = GCC
> >> +
> >> +*_GCC_*_MAKE_PATH               = DEF(GCC_HOST_PREFIX)make
> >> +*_GCC_*_*_DLL                   = ENV(GCC_DLL)
> >> +*_GCC_*_ASL_PATH                = DEF(UNIX_IASL_BIN)
> >> +
> >> +*_GCC_*_PP_FLAGS                = DEF(GCC_PP_FLAGS)
> >> +*_GCC_*_ASLPP_FLAGS             = DEF(GCC_ASLPP_FLAGS)
> >> +*_GCC_*_ASLCC_FLAGS             = DEF(GCC_ASLCC_FLAGS)
> >> +*_GCC_*_VFRPP_FLAGS             = DEF(GCC_VFRPP_FLAGS)
> >> +*_GCC_*_APP_FLAGS               =
> >> +*_GCC_*_ASL_FLAGS               = DEF(IASL_FLAGS)
> >> +*_GCC_*_ASL_OUTFLAGS            = DEF(IASL_OUTFLAGS)
> >> +*_GCC_*_DEPS_FLAGS                   = DEF(GCC_DEPS_FLAGS)
> >> +
> >> +##################
> >> +# GCC IA32 definitions
> >> +##################
> >> +*_GCC_IA32_OBJCOPY_PATH         =
> DEF(GCC_IA32_PREFIX)objcopy
> >> +*_GCC_IA32_CC_PATH              = DEF(GCC_IA32_PREFIX)gcc
> >> +*_GCC_IA32_SLINK_PATH           = DEF(GCC_IA32_PREFIX)gcc-ar
> >> +*_GCC_IA32_DLINK_PATH           = DEF(GCC_IA32_PREFIX)gcc
> >> +*_GCC_IA32_ASLDLINK_PATH        = DEF(GCC_IA32_PREFIX)gcc
> >> +*_GCC_IA32_ASM_PATH             = DEF(GCC_IA32_PREFIX)gcc
> >> +*_GCC_IA32_PP_PATH              = DEF(GCC_IA32_PREFIX)gcc
> >> +*_GCC_IA32_VFRPP_PATH           = DEF(GCC_IA32_PREFIX)gcc
> >> +*_GCC_IA32_ASLCC_PATH           = DEF(GCC_IA32_PREFIX)gcc
> >> +*_GCC_IA32_ASLPP_PATH           = DEF(GCC_IA32_PREFIX)gcc
> >> +*_GCC_IA32_RC_PATH              = DEF(GCC_IA32_PREFIX)objcopy
> >> +
> >> +*_GCC_IA32_ASLCC_FLAGS          = DEF(GCC5_ASLCC_FLAGS) -m32
> >> +*_GCC_IA32_ASLDLINK_FLAGS       =
> >> DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -no-pie
> >> +*_GCC_IA32_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m32
> >> -march=i386
> >> +*_GCC_IA32_DLINK2_FLAGS         =
> DEF(GCC5_IA32_DLINK2_FLAGS)
> >> -no-pie
> >> +*_GCC_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
> >> +*_GCC_IA32_OBJCOPY_FLAGS        =
> >> +*_GCC_IA32_NASM_FLAGS           = -f elf32
> >> +
> >> +  DEBUG_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS)
> -flto
> >> +  DEBUG_GCC_IA32_DLINK_FLAGS    =
> >> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os
> >> -Wl,-m,elf_i386,--oformat=elf32-i386
> >> +
> >> +RELEASE_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS)
> -flto
> >> -Wno-unused-but-set-variable -Wno-unused-const-variable
> >> +RELEASE_GCC_IA32_DLINK_FLAGS    =
> >> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os
> >> -Wl,-m,elf_i386,--oformat=elf32-i386
> >> +
> >> +  NOOPT_GCC_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS)
> -O0
> >> +  NOOPT_GCC_IA32_DLINK_FLAGS    =
> >> DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386
> >> -O0
> >> +
> >> +##################
> >> +# GCC X64 definitions
> >> +##################
> >> +*_GCC_X64_OBJCOPY_PATH          = DEF(GCC_X64_PREFIX)objcopy
> >> +*_GCC_X64_CC_PATH               = DEF(GCC_X64_PREFIX)gcc
> >> +*_GCC_X64_SLINK_PATH            = DEF(GCC_X64_PREFIX)gcc-ar
> >> +*_GCC_X64_DLINK_PATH            = DEF(GCC_X64_PREFIX)gcc
> >> +*_GCC_X64_ASLDLINK_PATH         = DEF(GCC_X64_PREFIX)gcc
> >> +*_GCC_X64_ASM_PATH              = DEF(GCC_X64_PREFIX)gcc
> >> +*_GCC_X64_PP_PATH               = DEF(GCC_X64_PREFIX)gcc
> >> +*_GCC_X64_VFRPP_PATH            = DEF(GCC_X64_PREFIX)gcc
> >> +*_GCC_X64_ASLCC_PATH            = DEF(GCC_X64_PREFIX)gcc
> >> +*_GCC_X64_ASLPP_PATH            = DEF(GCC_X64_PREFIX)gcc
> >> +*_GCC_X64_RC_PATH               = DEF(GCC_X64_PREFIX)objcopy
> >> +
> >> +*_GCC_X64_ASLCC_FLAGS           = DEF(GCC5_ASLCC_FLAGS)
> -m64
> >> +*_GCC_X64_ASLDLINK_FLAGS        =
> >> DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
> >> +*_GCC_X64_ASM_FLAGS             = DEF(GCC5_ASM_FLAGS) -m64
> >> +*_GCC_X64_DLINK2_FLAGS          =
> DEF(GCC5_X64_DLINK2_FLAGS)
> >> +*_GCC_X64_RC_FLAGS              = DEF(GCC_X64_RC_FLAGS)
> >> +*_GCC_X64_OBJCOPY_FLAGS         =
> >> +*_GCC_X64_NASM_FLAGS            = -f elf64
> >> +
> >> +  DEBUG_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS)
> -flto
> >> -DUSING_LTO
> >> +  DEBUG_GCC_X64_DLINK_FLAGS     =
> DEF(GCC5_X64_DLINK_FLAGS)
> >> -flto -Os
> >> +
> >> +RELEASE_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS)
> -flto
> >> -DUSING_LTO -Wno-unused-but-set-variable -Wno-unused-const-variable
> >> +RELEASE_GCC_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS)
> >> -flto -Os
> >> +
> >> +  NOOPT_GCC_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS)
> -O0
> >> +  NOOPT_GCC_X64_DLINK_FLAGS     =
> DEF(GCC5_X64_DLINK_FLAGS)
> >> -O0
> >> +
> >> +##################
> >> +# GCC ARM definitions
> >> +##################
> >> +*_GCC_ARM_CC_PATH               = ENV(GCC_ARM_PREFIX)gcc
> >> +*_GCC_ARM_SLINK_PATH            =
> ENV(GCC_ARM_PREFIX)gcc-ar
> >> +*_GCC_ARM_DLINK_PATH            = ENV(GCC_ARM_PREFIX)gcc
> >> +*_GCC_ARM_ASLDLINK_PATH         = ENV(GCC_ARM_PREFIX)gcc
> >> +*_GCC_ARM_ASM_PATH              = ENV(GCC_ARM_PREFIX)gcc
> >> +*_GCC_ARM_PP_PATH               = ENV(GCC_ARM_PREFIX)gcc
> >> +*_GCC_ARM_VFRPP_PATH            = ENV(GCC_ARM_PREFIX)gcc
> >> +*_GCC_ARM_ASLCC_PATH            = ENV(GCC_ARM_PREFIX)gcc
> >> +*_GCC_ARM_ASLPP_PATH            = ENV(GCC_ARM_PREFIX)gcc
> >> +*_GCC_ARM_RC_PATH               =
> ENV(GCC_ARM_PREFIX)objcopy
> >> +
> >> +*_GCC_ARM_ASLCC_FLAGS           = DEF(GCC5_ASLCC_FLAGS)
> >> +*_GCC_ARM_ASLDLINK_FLAGS        =
> >> DEF(GCC5_ARM_ASLDLINK_FLAGS)
> >> +*_GCC_ARM_ASM_FLAGS             =
> DEF(GCC5_ARM_ASM_FLAGS)
> >> +*_GCC_ARM_DLINK2_FLAGS          =
> DEF(GCC5_ARM_DLINK2_FLAGS)
> >> +*_GCC_ARM_DTCPP_FLAGS           = DEF(GCC_DTCPP_FLAGS)
> >> +*_GCC_ARM_PLATFORM_FLAGS        = -march=armv7-a
> >> -mfloat-abi=soft
> >> +*_GCC_ARM_PP_FLAGS              = $(PLATFORM_FLAGS)
> >> DEF(GCC_PP_FLAGS)
> >> +*_GCC_ARM_RC_FLAGS              = DEF(GCC_ARM_RC_FLAGS)
> >> +*_GCC_ARM_VFRPP_FLAGS           = $(PLATFORM_FLAGS)
> >> DEF(GCC_VFRPP_FLAGS)
> >> +*_GCC_ARM_CC_XIPFLAGS           =
> DEF(GCC5_ARM_CC_XIPFLAGS)
> >> +
> >> +  DEBUG_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS)
> >> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
> >> +  DEBUG_GCC_ARM_DLINK_FLAGS     =
> DEF(GCC5_ARM_DLINK_FLAGS)
> >> -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm
> >> -Wl,-plugin-opt=-pass-through=-llto-arm
> >> +
> >> +RELEASE_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS)
> >> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
> >> +RELEASE_GCC_ARM_DLINK_FLAGS     =
> DEF(GCC5_ARM_DLINK_FLAGS)
> >> -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm
> >> -Wl,-plugin-opt=-pass-through=-llto-arm
> >> +
> >> +  NOOPT_GCC_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS)
> >> -O0
> >> +  NOOPT_GCC_ARM_DLINK_FLAGS     =
> DEF(GCC5_ARM_DLINK_FLAGS)
> >> -O0
> >> +
> >> +##################
> >> +# GCC AARCH64 definitions
> >> +##################
> >> +*_GCC_AARCH64_CC_PATH           =
> ENV(GCC_AARCH64_PREFIX)gcc
> >> +*_GCC_AARCH64_SLINK_PATH        =
> >> ENV(GCC_AARCH64_PREFIX)gcc-ar
> >> +*_GCC_AARCH64_DLINK_PATH        =
> ENV(GCC_AARCH64_PREFIX)gcc
> >> +*_GCC_AARCH64_ASLDLINK_PATH     =
> ENV(GCC_AARCH64_PREFIX)gcc
> >> +*_GCC_AARCH64_ASM_PATH          =
> ENV(GCC_AARCH64_PREFIX)gcc
> >> +*_GCC_AARCH64_PP_PATH           =
> ENV(GCC_AARCH64_PREFIX)gcc
> >> +*_GCC_AARCH64_VFRPP_PATH        =
> ENV(GCC_AARCH64_PREFIX)gcc
> >> +*_GCC_AARCH64_ASLCC_PATH        =
> ENV(GCC_AARCH64_PREFIX)gcc
> >> +*_GCC_AARCH64_ASLPP_PATH        =
> ENV(GCC_AARCH64_PREFIX)gcc
> >> +*_GCC_AARCH64_RC_PATH           =
> >> ENV(GCC_AARCH64_PREFIX)objcopy
> >> +
> >> +*_GCC_AARCH64_ASLCC_FLAGS       = DEF(GCC5_ASLCC_FLAGS)
> >> +*_GCC_AARCH64_ASLDLINK_FLAGS    =
> >> DEF(GCC5_AARCH64_ASLDLINK_FLAGS)
> >> +*_GCC_AARCH64_ASM_FLAGS         =
> >> DEF(GCC5_AARCH64_ASM_FLAGS)
> >> +*_GCC_AARCH64_DLINK2_FLAGS      =
> >> DEF(GCC5_AARCH64_DLINK2_FLAGS)
> >> +*_GCC_AARCH64_DTCPP_FLAGS       = DEF(GCC_DTCPP_FLAGS)
> >> +*_GCC_AARCH64_PLATFORM_FLAGS    =
> >> +*_GCC_AARCH64_PP_FLAGS          = $(PLATFORM_FLAGS)
> >> DEF(GCC_PP_FLAGS)
> >> +*_GCC_AARCH64_RC_FLAGS          =
> DEF(GCC_AARCH64_RC_FLAGS)
> >> DEF(GCC_AARCH64_RC_BTI_FLAGS)
> >> +*_GCC_AARCH64_VFRPP_FLAGS       = $(PLATFORM_FLAGS)
> >> DEF(GCC_VFRPP_FLAGS)
> >> +*_GCC_AARCH64_CC_XIPFLAGS       =
> >> DEF(GCC5_AARCH64_CC_XIPFLAGS)
> >> +
> >> +  DEBUG_GCC_AARCH64_CC_FLAGS    =
> >> DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable
> >> -Wno-unused-const-variable
> >> +  DEBUG_GCC_AARCH64_DLINK_FLAGS =
> >> DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os
> >> -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64
> >> -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch
> >> +  DEBUG_GCC_AARCH64_DLINK_XIPFLAGS = -z
> common-page-size=0x20
> >> +
> >> +RELEASE_GCC_AARCH64_CC_FLAGS    =
> DEF(GCC5_AARCH64_CC_FLAGS)
> >> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable
> >> +RELEASE_GCC_AARCH64_DLINK_FLAGS =
> >> DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os
> >> -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64
> >> -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch
> >> +RELEASE_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
> >> +
> >> +  NOOPT_GCC_AARCH64_CC_FLAGS    =
> >> DEF(GCC5_AARCH64_CC_FLAGS) -O0
> >> +  NOOPT_GCC_AARCH64_DLINK_FLAGS =
> >> DEF(GCC5_AARCH64_DLINK_FLAGS) -O0
> >> +  NOOPT_GCC_AARCH64_DLINK_XIPFLAGS = -z
> common-page-size=0x20
> >> -O0
> >> +
> >>
> +#############################################################
> >> #######################
> >> +#
> >> +# GCC RISC-V This configuration is used to compile under Linux to produce
> >> +#             PE/COFF binaries using GCC RISC-V tool chain
> >> +#
> >>
> +#############################################################
> >> #######################
> >> +
> >> +##################
> >> +# GCC RISCV64 definitions
> >> +##################
> >> +*_GCC_RISCV64_OBJCOPY_PATH         =
> >> ENV(GCC_RISCV64_PREFIX)objcopy
> >> +*_GCC_RISCV64_CC_PATH              =
> >> ENV(GCC_RISCV64_PREFIX)gcc
> >> +*_GCC_RISCV64_SLINK_PATH           =
> >> ENV(GCC_RISCV64_PREFIX)gcc-ar
> >> +*_GCC_RISCV64_DLINK_PATH           =
> >> ENV(GCC_RISCV64_PREFIX)gcc
> >> +*_GCC_RISCV64_ASLDLINK_PATH        =
> >> ENV(GCC_RISCV64_PREFIX)gcc
> >> +*_GCC_RISCV64_ASM_PATH             =
> >> ENV(GCC_RISCV64_PREFIX)gcc
> >> +*_GCC_RISCV64_PP_PATH              =
> >> ENV(GCC_RISCV64_PREFIX)gcc
> >> +*_GCC_RISCV64_VFRPP_PATH           =
> >> ENV(GCC_RISCV64_PREFIX)gcc
> >> +*_GCC_RISCV64_ASLCC_PATH           =
> >> ENV(GCC_RISCV64_PREFIX)gcc
> >> +*_GCC_RISCV64_ASLPP_PATH           =
> >> ENV(GCC_RISCV64_PREFIX)gcc
> >> +*_GCC_RISCV64_RC_PATH              =
> >> ENV(GCC_RISCV64_PREFIX)objcopy
> >> +
> >> +*_GCC_RISCV64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)
> >> +*_GCC_RISCV64_ASLDLINK_FLAGS       =
> >> DEF(GCC5_RISCV32_RISCV64_ASLDLINK_FLAGS)
> >> +*_GCC_RISCV64_ASM_FLAGS            =
> >> DEF(GCC5_RISCV64_ASM_FLAGS)
> >> +*_GCC_RISCV64_CC_FLAGS             =
> >> DEF(GCC5_RISCV64_CC_FLAGS) -save-temps
> >> +*_GCC_RISCV64_DLINK_FLAGS          =
> >> DEF(GCC5_RISCV64_DLINK_FLAGS)
> >> +*_GCC_RISCV64_DLINK2_FLAGS         =
> >> DEF(GCC5_RISCV64_DLINK2_FLAGS)
> >> +*_GCC_RISCV64_RC_FLAGS             =
> >> DEF(GCC_RISCV64_RC_FLAGS)
> >> +*_GCC_RISCV64_OBJCOPY_FLAGS        =
> >> +*_GCC_RISCV64_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)
> >> +*_GCC_RISCV64_PP_FLAGS             = DEF(GCC_PP_FLAGS)
> >> DEF(GCC5_RISCV_OPENSBI_TYPES)
> >> +
> >> +##################
> >> +# GCC LOONGARCH64 definitions
> >> +##################
> >> +*_GCC_LOONGARCH64_OBJCOPY_PATH         =
> >> ENV(GCC_LOONGARCH64_PREFIX)objcopy
> >> +*_GCC_LOONGARCH64_CC_PATH              =
> >> ENV(GCC_LOONGARCH64_PREFIX)gcc
> >> +*_GCC_LOONGARCH64_SLINK_PATH           =
> >> ENV(GCC_LOONGARCH64_PREFIX)gcc-ar
> >> +*_GCC_LOONGARCH64_DLINK_PATH           =
> >> ENV(GCC_LOONGARCH64_PREFIX)gcc
> >> +*_GCC_LOONGARCH64_ASLDLINK_PATH        =
> >> ENV(GCC_LOONGARCH64_PREFIX)gcc
> >> +*_GCC_LOONGARCH64_ASM_PATH             =
> >> ENV(GCC_LOONGARCH64_PREFIX)gcc
> >> +*_GCC_LOONGARCH64_PP_PATH              =
> >> ENV(GCC_LOONGARCH64_PREFIX)gcc
> >> +*_GCC_LOONGARCH64_VFRPP_PATH           =
> >> ENV(GCC_LOONGARCH64_PREFIX)gcc
> >> +*_GCC_LOONGARCH64_ASLCC_PATH           =
> >> ENV(GCC_LOONGARCH64_PREFIX)gcc
> >> +*_GCC_LOONGARCH64_ASLPP_PATH           =
> >> ENV(GCC_LOONGARCH64_PREFIX)gcc
> >> +*_GCC_LOONGARCH64_RC_PATH              =
> >> ENV(GCC_LOONGARCH64_PREFIX)objcopy
> >> +
> >> +*_GCC_LOONGARCH64_ASLCC_FLAGS          =
> >> DEF(GCC_ASLCC_FLAGS)
> >> +*_GCC_LOONGARCH64_ASLDLINK_FLAGS       =
> >> DEF(GCC5_LOONGARCH64_ASLDLINK_FLAGS)
> >> +*_GCC_LOONGARCH64_ASM_FLAGS            =
> >> DEF(GCC5_LOONGARCH64_ASM_FLAGS)
> >> +*_GCC_LOONGARCH64_DLINK_FLAGS          =
> >> DEF(GCC5_LOONGARCH64_DLINK_FLAGS)
> >> +*_GCC_LOONGARCH64_DLINK2_FLAGS         =
> >> DEF(GCC5_LOONGARCH64_DLINK2_FLAGS)
> >> +*_GCC_LOONGARCH64_RC_FLAGS             =
> >> DEF(GCC_LOONGARCH64_RC_FLAGS)
> >> +*_GCC_LOONGARCH64_OBJCOPY_FLAGS        =
> >> +*_GCC_LOONGARCH64_NASM_FLAGS           = -f elf32
> >> +*_GCC_LOONGARCH64_PP_FLAGS             =
> >> DEF(GCC5_LOONGARCH64_PP_FLAGS)
> >> +
> >> +DEBUG_GCC_LOONGARCH64_CC_FLAGS         =
> >> DEF(GCC5_LOONGARCH64_CC_FLAGS)
> >> +RELEASE_GCC_LOONGARCH64_CC_FLAGS       =
> >> DEF(GCC5_LOONGARCH64_CC_FLAGS) -Wno-unused-but-set-variable
> >> -Wno-unused-variable
> >> +
> >>
> >>
> ##############################################################
> >> ######################
> >>   #
> >>   # Clang - This configuration is used to compile under Linux to produce
> >> --
> >> 2.37.2
> >
> >
> 
> 
> 
> 




^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2023-04-24  5:04 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-19 19:57 [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
2023-04-19 19:57 ` [PATCH v4 01/13] BaseTools,CryptoPkg: Update CLANGDWARF, remove CLANG 35/38 toolchains Rebecca Cran
2023-04-19 19:57 ` [PATCH v4 02/13] BaseTools: Remove VS2008, 2010, 2012 and 2013 toolchain definitions Rebecca Cran
2023-04-19 19:57 ` [PATCH v4 03/13] BaseTools: Remove VS2008-VS2013 remnants Rebecca Cran
2023-04-19 19:57 ` [PATCH v4 04/13] MdePkg: " Rebecca Cran
2023-04-19 19:57 ` [PATCH v4 05/13] edksetup.bat: " Rebecca Cran
2023-04-20 17:34   ` [edk2-devel] " Leif Lindholm
2023-04-19 19:57 ` [PATCH v4 06/13] BaseTools: Remove unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS defs Rebecca Cran
2023-04-19 19:57 ` [PATCH v4 07/13] BaseTools: Remove EBC (EFI Byte Code) compiler definitions Rebecca Cran
2023-04-19 19:57 ` [PATCH v4 08/13] BaseTools: Update VS toolchain descriptions in tools_def.txt.template Rebecca Cran
2023-04-19 19:57 ` [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains Rebecca Cran
2023-04-21  2:32   ` 回复: " gaoliming
2023-04-21 17:16     ` Rebecca Cran
2023-04-24  5:03       ` 回复: [edk2-devel] " gaoliming
2023-04-19 19:57 ` [PATCH v4 10/13] BaseTools: Only call LoadConfiguration once in build.py Rebecca Cran
2023-04-19 19:57 ` [PATCH v4 11/13] BaseTools: Add a deprecation warning for GCC48,GCC49,GCC5 to build.py Rebecca Cran
2023-04-19 19:57 ` [PATCH v4 12/13] BaseTools/Conf/tools_def.template: Add section for deprecated toolchains Rebecca Cran
2023-04-19 19:57 ` [PATCH v4 13/13] BaseTools/Conf/tools_def.template: Bump VERSION to 3.00 Rebecca Cran
2023-04-21  2:35 ` 回复: [PATCH v4 00/13] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF gaoliming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox