public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF
@ 2023-05-01 16:08 Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 01/16] BaseTools: Remove VS2008, 2010, 2012 and 2013 toolchain definitions Rebecca Cran
                   ` (17 more replies)
  0 siblings, 18 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran

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.

Changes from v4 to v5
=====================

- Fixed CLANGDWARF on Windows when llvm is installed with the llvm.org
  installer and isn't installed in Visual Studio: use llvm-objcopy and the
  tools prefix.

- Added flags for GCCNOLTO to UnitTestFrameworkPkgHost.dsc.inc

- Added GCC flags to CryptoPkg/Library/OpensslLib/*.inf

Changes from v5 to v6
=====================

- Reworked CLANGDWARF toolchain definitions. I made mistakes when updating
  them and accidentally changed the IA32 and X64 definitions.

- Dropped the changes to build.py. The edk2-BaseTools repo should be
  updated first, and _then_ the edk2 BaseTools can be changed.

- Split the updates to CryptoPkg build flags into separate commits,
  copying the CLANGPDB flags to CLANGDWARF.

- Fixed non-ASCII character in 5/16 commit message.

- Removed trailing whitespace in tools_def.template.

Rebecca Cran (16):
  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
  Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
  BaseTools/Conf/tools_def.template: Add section for deprecated
    toolchains
  BaseTools: Add ARM and AARCH64 CLANGDWARF support in
    tools_def.template
  BaseTools: As with CLANGDWARF IA32 and X64, use lld for ARM and
    AARCH64
  BaseTools: Remove CLANG35 toolchain from tools_def.template
  BaseTools: Delete CLANG38 from tools_def.template
  BaseTools/Conf/tools_def.template: Bump VERSION to 3.00
  CryptoPkg: Delete CLANG35 and CLANG38 build flags
  CryptoPkg: Copy CLANGPDB build flags to CLANGDWARF

 UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc       |    4 +
 IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc                     |    8 +-
 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                 |    4 +-
 CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf            |    4 +-
 CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf           |    4 +-
 CryptoPkg/Library/OpensslLib/OpensslLibFull.inf             |    4 +-
 CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf        |    5 +-
 EmulatorPkg/Unix/Host/Host.inf                              |    2 +
 MdePkg/Include/Ia32/ProcessorBind.h                         |    8 +-
 MdePkg/Include/X64/ProcessorBind.h                          |    8 +-
 BaseTools/Conf/tools_def.template                           | 1909 +++++---------------
 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 +-
 edksetup.bat                                                |    6 +-
 23 files changed, 530 insertions(+), 1621 deletions(-)

-- 
2.39.2


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

* [PATCH v6 01/16] BaseTools: Remove VS2008, 2010, 2012 and 2013 toolchain definitions
  2023-05-01 16:08 [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 02/16] BaseTools: Remove VS2008-VS2013 remnants Rebecca Cran
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran, 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>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
---
 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 9a5c11f6a385..92ea4265143f 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
@@ -299,34 +222,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
@@ -390,906 +285,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.39.2


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

* [PATCH v6 02/16] BaseTools: Remove VS2008-VS2013 remnants
  2023-05-01 16:08 [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 01/16] BaseTools: Remove VS2008, 2010, 2012 and 2013 toolchain definitions Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 03/16] MdePkg: " Rebecca Cran
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran, 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>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
---
 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 92ea4265143f..3b8aa38a5c0f 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.39.2


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

* [PATCH v6 03/16] MdePkg: Remove VS2008-VS2013 remnants
  2023-05-01 16:08 [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 01/16] BaseTools: Remove VS2008, 2010, 2012 and 2013 toolchain definitions Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 02/16] BaseTools: Remove VS2008-VS2013 remnants Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 04/16] edksetup.bat: " Rebecca Cran
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran, 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>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
---
 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.39.2


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

* [PATCH v6 04/16] edksetup.bat: Remove VS2008-VS2013 remnants
  2023-05-01 16:08 [PATCH v6 00/16] 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-05-01 16:08 ` [PATCH v6 03/16] MdePkg: " Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 05/16] BaseTools: Remove unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS defs Rebecca Cran
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran, 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>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
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.39.2


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

* [PATCH v6 05/16] BaseTools: Remove unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS defs
  2023-05-01 16:08 [PATCH v6 00/16] 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-05-01 16:08 ` [PATCH v6 04/16] edksetup.bat: " Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 06/16] BaseTools: Remove EBC (EFI Byte Code) compiler definitions Rebecca Cran
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran, 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>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
---
 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 3b8aa38a5c0f..79038c3784eb 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.39.2


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

* [PATCH v6 06/16] BaseTools: Remove EBC (EFI Byte Code) compiler definitions
  2023-05-01 16:08 [PATCH v6 00/16] 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-05-01 16:08 ` [PATCH v6 05/16] BaseTools: Remove unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS defs Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 07/16] BaseTools: Update VS toolchain descriptions in tools_def.txt.template Rebecca Cran
                   ` (11 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran, 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>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
---
 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 79038c3784eb..167829e8260d 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
@@ -235,22 +225,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)
 #
 ####################################################################################
@@ -365,25 +339,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)
@@ -477,25 +432,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)
@@ -637,23 +573,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)
@@ -795,23 +714,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.39.2


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

* [PATCH v6 07/16] BaseTools: Update VS toolchain descriptions in tools_def.txt.template
  2023-05-01 16:08 [PATCH v6 00/16] 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-05-01 16:08 ` [PATCH v6 06/16] BaseTools: Remove EBC (EFI Byte Code) compiler definitions Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages Rebecca Cran
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran

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>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
---
 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 167829e8260d..d0fa158552df 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
@@ -197,13 +196,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.39.2


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

* [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
  2023-05-01 16:08 [PATCH v6 00/16] 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-05-01 16:08 ` [PATCH v6 07/16] BaseTools: Update VS toolchain descriptions in tools_def.txt.template Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-02  0:06   ` Rebecca Cran
       [not found]   ` <175B2AD2536192C7.26969@groups.io>
  2023-05-01 16:08 ` [PATCH v6 09/16] BaseTools/Conf/tools_def.template: Add section for deprecated toolchains Rebecca Cran
                   ` (9 subsequent siblings)
  17 siblings, 2 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran

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

Update build flags in CryptoPkg, EmulatorPkg, IntelFsp2Pkg and
UnitTestFrameworkPkg to add flags for the new toolchains.

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

diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
index 7866c36e6693..9bdbbf3a222c 100644
--- a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
+++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
@@ -31,6 +31,10 @@ [BuildOptions]
 !endif
   GCC:*_GCC5_*_CC_FLAGS = --coverage
   GCC:*_GCC5_*_DLINK_FLAGS = --coverage
+  GCC:*_GCCNOLTO_*_CC_FLAGS = --coverage
+  GCC:*_GCCNOLTO_*_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..34409f8b80d5 100644
--- a/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
+++ b/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
@@ -461,10 +461,16 @@ [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/CryptoPkg/Library/OpensslLib/OpensslLib.inf b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
index 86a00b1c4b2a..0669f3035b85 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
@@ -644,6 +644,7 @@ [BuildOptions]
   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
+  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
 
   # suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
   # 1295: Deprecated declaration <entity> - give arg types
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
index 2e4f95909b51..45fd4799d748 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
@@ -692,6 +692,7 @@ [BuildOptions]
   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
+  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
 
   # suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
   # 1295: Deprecated declaration <entity> - give arg types
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
index 637d4769e8ca..44292f589b6c 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
@@ -594,6 +594,7 @@ [BuildOptions]
   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
+  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
 
   # suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
   # 1295: Deprecated declaration <entity> - give arg types
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
index c5f90221fc66..7c07521dcf1e 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
@@ -699,6 +699,7 @@ [BuildOptions]
   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
+  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
 
   # suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
   # 1295: Deprecated declaration <entity> - give arg types
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
index 076295244a2a..62846e37a456 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
@@ -747,6 +747,8 @@ [BuildOptions]
   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
+  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
+
 
   # suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
   # 1295: Deprecated declaration <entity> - give arg types
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 d0fa158552df..f85120244267 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
@@ -1139,6 +1144,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
@@ -1356,6 +1505,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
+
 ####################################################################################
 #
 # CLANG35   - This configuration is used to compile under Linux to produce
-- 
2.39.2


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

* [PATCH v6 09/16] BaseTools/Conf/tools_def.template: Add section for deprecated toolchains
  2023-05-01 16:08 [PATCH v6 00/16] 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-05-01 16:08 ` [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 10/16] BaseTools: Add ARM and AARCH64 CLANGDWARF support in tools_def.template Rebecca Cran
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran

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>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
---
 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 f85120244267..c32c64f5ced6 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:
@@ -207,6 +201,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.39.2


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

* [PATCH v6 10/16] BaseTools: Add ARM and AARCH64 CLANGDWARF support in tools_def.template
  2023-05-01 16:08 [PATCH v6 00/16] 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-05-01 16:08 ` [PATCH v6 09/16] BaseTools/Conf/tools_def.template: Add section for deprecated toolchains Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 11/16] BaseTools: As with CLANGDWARF IA32 and X64, use lld for ARM and AARCH64 Rebecca Cran
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran

Add ARM and AARCH64 support to CLANGDWARF in tools_def.template, copying
the CLANG38 definitions.

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

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index c32c64f5ced6..7f44e10a429a 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -2205,6 +2205,96 @@ NOOPT_CLANGDWARF_X64_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI
 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
 
+##################
+# CLANGDWARF ARM definitions
+##################
+DEFINE CLANGDWARF_ARM_TARGET        = -target arm-linux-gnueabi
+DEFINE CLANGDWARF_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) 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 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm
+  NOOPT_CLANGDWARF_ARM_CC_FLAGS     = DEF(CLANGDWARF_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -O0
+  NOOPT_CLANGDWARF_ARM_DLINK_FLAGS  = DEF(CLANGDWARF_ARM_DLINK_FLAGS)
+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 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm
+
+##################
+# CLANGDWARF AARCH64 definitions
+##################
+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 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64
+  NOOPT_CLANGDWARF_AARCH64_CC_FLAGS    = DEF(CLANGDWARF_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -O0
+  NOOPT_CLANGDWARF_AARCH64_DLINK_FLAGS = DEF(CLANGDWARF_AARCH64_DLINK_FLAGS)
+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 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64
+
 #
 #
 # XCODE5 support
-- 
2.39.2


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

* [PATCH v6 11/16] BaseTools: As with CLANGDWARF IA32 and X64, use lld for ARM and AARCH64
  2023-05-01 16:08 [PATCH v6 00/16] 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-05-01 16:08 ` [PATCH v6 10/16] BaseTools: Add ARM and AARCH64 CLANGDWARF support in tools_def.template Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 12/16] BaseTools: Remove CLANG35 toolchain from tools_def.template Rebecca Cran
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran

As with the IA32 and X64 CLANGDWARF toolchain definitions, use ld.lld
for ARM and AARCH64.

Add -Wl,--no-pie,--no-relax to the command line to fix linking when
using lld.

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

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 7f44e10a429a..9013ecc7cc66 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -2243,11 +2243,11 @@ DEFINE CLANGDWARF_ARM_DLINK_FLAGS   = DEF(CLANGDWARF_ARM_TARGET) DEF(GCC_ARM_DLI
 *_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 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm
+  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)
+  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 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm
+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
 
 ##################
 # CLANGDWARF AARCH64 definitions
@@ -2289,11 +2289,11 @@ DEFINE CLANGDWARF_AARCH64_DLINK_FLAGS  = DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_
 *_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 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64
+  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)
+  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 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64
+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
 
 #
 #
-- 
2.39.2


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

* [PATCH v6 12/16] BaseTools: Remove CLANG35 toolchain from tools_def.template
  2023-05-01 16:08 [PATCH v6 00/16] 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-05-01 16:08 ` [PATCH v6 11/16] BaseTools: As with CLANGDWARF IA32 and X64, use lld for ARM and AARCH64 Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 13/16] BaseTools: Delete CLANG38 " Rebecca Cran
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran

Clang 3.5 is a very old release and is no longer relevant. Remove the
CLANG35 toolchain from tools_def.template.

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

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 9013ecc7cc66..6f4a4c2096eb 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -169,12 +169,6 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #                               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
@@ -1737,88 +1731,6 @@ RELEASE_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
 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
 
-####################################################################################
-#
-# 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
-#
-####################################################################################
-*_CLANG35_*_*_FAMILY             = GCC
-
-*_CLANG35_*_MAKE_PATH            = make
-*_CLANG35_*_*_DLL                = ENV(CLANG35_DLL)
-*_CLANG35_*_ASL_PATH             = DEF(UNIX_IASL_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)
-
-*_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
-- 
2.39.2


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

* [PATCH v6 13/16] BaseTools: Delete CLANG38 from tools_def.template
  2023-05-01 16:08 [PATCH v6 00/16] 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-05-01 16:08 ` [PATCH v6 12/16] BaseTools: Remove CLANG35 toolchain from tools_def.template Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 14/16] BaseTools/Conf/tools_def.template: Bump VERSION to 3.00 Rebecca Cran
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran

Clang 3.8 is a very old release and is no longer relevant. Delete the
CLANG38 toolchain from tools_def.template.

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

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 6f4a4c2096eb..cde5d14513c1 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -169,13 +169,6 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #                               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
-#                        Optional:
-#                             Required to build platforms or ACPI tables:
-#                               Intel(r) ACPI Compiler from
-#                               https://acpica.org/downloads
 #   CLANGPDB -Linux, Windows, Mac-  Requires:
 #                             Clang 9 or above from http://releases.llvm.org/
 #                        Optional:
@@ -1731,194 +1724,6 @@ RELEASE_GCC_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
 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 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
-
-###########################
-# CLANG38 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
-
-##########################
-# CLANG38 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
-
-##################
-# CLANG38 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
-
-##################
-# CLANG38 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
-
 ####################################################################################
 #
 # CLANGPDB - This configuration is used to compile under Windows/Linux/Mac to produce
@@ -2045,6 +1850,12 @@ DEFINE CLANGDWARF_IA32_X64_DLINK_FLAGS    = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON
 DEFINE CLANGDWARF_IA32_DLINK2_FLAGS       = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON)
 DEFINE CLANGDWARF_X64_DLINK2_FLAGS        = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON)
 
+DEFINE CLANGDWARF_IA32_TARGET             = -target i686-pc-linux-gnu
+DEFINE CLANGDWARF_X64_TARGET              = -target x86_64-pc-linux-gnu
+
+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
+
 ###########################
 # CLANGDWARF IA32 definitions
 ###########################
@@ -2059,25 +1870,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
 
@@ -2095,25 +1906,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.39.2


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

* [PATCH v6 14/16] BaseTools/Conf/tools_def.template: Bump VERSION to 3.00
  2023-05-01 16:08 [PATCH v6 00/16] 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-05-01 16:08 ` [PATCH v6 13/16] BaseTools: Delete CLANG38 " Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 15/16] CryptoPkg: Delete CLANG35 and CLANG38 build flags Rebecca Cran
                   ` (3 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran

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

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
---
 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 cde5d14513c1..1b3a9e7a540a 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.39.2


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

* [PATCH v6 15/16] CryptoPkg: Delete CLANG35 and CLANG38 build flags
  2023-05-01 16:08 [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (13 preceding siblings ...)
  2023-05-01 16:08 ` [PATCH v6 14/16] BaseTools/Conf/tools_def.template: Bump VERSION to 3.00 Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 16:08 ` [PATCH v6 16/16] CryptoPkg: Copy CLANGPDB build flags to CLANGDWARF Rebecca Cran
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran

Since CLANG35 and CLANG38 toolchains have been deleted, remove build
flags for them from CryptoPkg.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
---
 CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf             | 2 --
 CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf              | 2 --
 CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf          | 2 --
 CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf              | 2 --
 CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf              | 2 --
 CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf | 2 --
 CryptoPkg/Library/OpensslLib/OpensslLib.inf                 | 2 --
 CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf            | 2 --
 CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf           | 2 --
 CryptoPkg/Library/OpensslLib/OpensslLibFull.inf             | 2 --
 CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf        | 2 --
 11 files changed, 22 deletions(-)

diff --git a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
index 5be1724f0852..910f5a4a2a7a 100644
--- a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
@@ -110,8 +110,6 @@ [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:*_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..3ac52b479d58 100644
--- a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
@@ -97,8 +97,6 @@ [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:*_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..97840df5aa73 100644
--- a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
@@ -106,8 +106,6 @@ [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:*_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..83f9709851df 100644
--- a/CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf
@@ -81,8 +81,6 @@ [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:*_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..e9b65aee37bf 100644
--- a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
@@ -105,6 +105,4 @@ [BuildOptions]
 
   XCODE:*_*_*_CC_FLAGS = -mmmx -msse -std=c99
 
-  GCC:*_CLANG35_*_CC_FLAGS = -std=c99
-  GCC:*_CLANG38_*_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..be717a49d636 100644
--- a/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf
@@ -78,8 +78,6 @@ [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:*_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 0669f3035b85..1a469c8e6968 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
@@ -639,8 +639,6 @@ [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:*_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 45fd4799d748..fbd568e47a3d 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
@@ -687,8 +687,6 @@ [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:*_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 44292f589b6c..f80461980dc9 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
@@ -589,8 +589,6 @@ [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:*_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 7c07521dcf1e..aabb74dbf921 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
@@ -694,8 +694,6 @@ [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:*_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 62846e37a456..3e9de32639f2 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
@@ -742,8 +742,6 @@ [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:*_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
-- 
2.39.2


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

* [PATCH v6 16/16] CryptoPkg: Copy CLANGPDB build flags to CLANGDWARF
  2023-05-01 16:08 [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (14 preceding siblings ...)
  2023-05-01 16:08 ` [PATCH v6 15/16] CryptoPkg: Delete CLANG35 and CLANG38 build flags Rebecca Cran
@ 2023-05-01 16:08 ` Rebecca Cran
  2023-05-01 18:36 ` [edk2-devel] [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Michael D Kinney
  2023-05-04 12:42 ` Rebecca Cran
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-01 16:08 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser
  Cc: Rebecca Cran

The CLANGDWARF toolchain was broken due to missing build flags in
CryptoPkg. Update the various inf files to copy the flags used for
CLANGPDB to CLANGDWARF.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
---
 CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf             | 1 +
 CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf              | 1 +
 CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf          | 1 +
 CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf              | 1 +
 CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf              | 1 +
 CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf | 1 +
 CryptoPkg/Library/OpensslLib/OpensslLib.inf                 | 1 +
 CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf            | 1 +
 CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf           | 1 +
 CryptoPkg/Library/OpensslLib/OpensslLibFull.inf             | 1 +
 CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf        | 1 +
 11 files changed, 11 insertions(+)

diff --git a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
index 910f5a4a2a7a..515dc7983d07 100644
--- a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
@@ -111,5 +111,6 @@ [BuildOptions]
   # suppress the following warnings so we do not break the build with warnings-as-errors:
   #
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
+  GCC:*_CLANGDWARF_*_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 3ac52b479d58..0ad58a0c843d 100644
--- a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
@@ -98,5 +98,6 @@ [BuildOptions]
   # suppress the following warnings so we do not break the build with warnings-as-errors:
   #
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
+  GCC:*_CLANGDWARF_*_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 97840df5aa73..fedf8fc45b34 100644
--- a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
@@ -107,5 +107,6 @@ [BuildOptions]
   # suppress the following warnings so we do not break the build with warnings-as-errors:
   #
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
+  GCC:*_CLANGDWARF_*_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 83f9709851df..cd85e1db23a6 100644
--- a/CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf
@@ -82,5 +82,6 @@ [BuildOptions]
   # suppress the following warnings so we do not break the build with warnings-as-errors:
   #
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
+  GCC:*_CLANGDWARF_*_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 e9b65aee37bf..f8389a362059 100644
--- a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
@@ -106,3 +106,4 @@ [BuildOptions]
   XCODE:*_*_*_CC_FLAGS = -mmmx -msse -std=c99
 
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
+  GCC:*_CLANGDWARF_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
diff --git a/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf
index be717a49d636..b4217236bb9f 100644
--- a/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf
@@ -79,5 +79,6 @@ [BuildOptions]
   # suppress the following warnings so we do not break the build with warnings-as-errors:
   #
   GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
+  GCC:*_CLANGDWARF_*_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 1a469c8e6968..beada1ebaf56 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
@@ -640,6 +640,7 @@ [BuildOptions]
   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:*_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
+  GCC:*_CLANGDWARF_*_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
   GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
index fbd568e47a3d..8cb51fb67da2 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
@@ -688,6 +688,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:*_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
+  GCC:*_CLANGDWARF_*_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
   GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
index f80461980dc9..ef70d9ba99a2 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
@@ -590,6 +590,7 @@ [BuildOptions]
   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:*_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
+  GCC:*_CLANGDWARF_*_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
   GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
index aabb74dbf921..cd0813cf3f55 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
@@ -695,6 +695,7 @@ [BuildOptions]
   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:*_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
+  GCC:*_CLANGDWARF_*_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
   GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
index 3e9de32639f2..8208bb9101f2 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
@@ -743,6 +743,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:*_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
+  GCC:*_CLANGDWARF_*_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
   GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
-- 
2.39.2


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

* Re: [edk2-devel] [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF
  2023-05-01 16:08 [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (15 preceding siblings ...)
  2023-05-01 16:08 ` [PATCH v6 16/16] CryptoPkg: Copy CLANGPDB build flags to CLANGDWARF Rebecca Cran
@ 2023-05-01 18:36 ` Michael D Kinney
  2023-05-04 12:42 ` Rebecca Cran
  17 siblings, 0 replies; 29+ messages in thread
From: Michael D Kinney @ 2023-05-01 18:36 UTC (permalink / raw)
  To: devel@edk2.groups.io, rebecca@bsdio.com, Gao, Liming, Feng, Bob C,
	Chen, Christine, Michael Kubacki, Sean Brogan, Chiu, Chasel,
	Desimone, Nathaniel L, Zeng, Star, Andrew Fish, Ni, Ray,
	Leif Lindholm, Liu, Zhiguang, Wang, Jian J, Lu, Xiaoyu1,
	Jiang, Guomin, Guo, Gua, Ard Biesheuvel, Pedro Falcato,
	Gerd Hoffmann, mhaeuser@posteo.de
  Cc: Kinney, Michael D

Hi Rebecca,

Thank you for all the updates.

Series Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Series Tested-by: Michael D Kinney <michael.d.kinney@intel.com>

Mike

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca
> Cran
> Sent: Monday, May 1, 2023 9:08 AM
> To: devel@edk2.groups.io; Gao, Liming <gaoliming@byosoft.com.cn>; Feng,
> Bob C <bob.c.feng@intel.com>; Chen, Christine <yuwei.chen@intel.com>;
> Kinney, Michael D <michael.d.kinney@intel.com>; Michael Kubacki
> <mikuback@linux.microsoft.com>; Sean Brogan
> <sean.brogan@microsoft.com>; Chiu, Chasel <chasel.chiu@intel.com>;
> Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Zeng, Star
> <star.zeng@intel.com>; Andrew Fish <afish@apple.com>; Ni, Ray
> <ray.ni@intel.com>; Leif Lindholm <quic_llindhol@quicinc.com>; Liu,
> Zhiguang <zhiguang.liu@intel.com>; Wang, Jian J <jian.j.wang@intel.com>;
> Lu, Xiaoyu1 <xiaoyu1.lu@intel.com>; Jiang, Guomin
> <guomin.jiang@intel.com>; Guo, Gua <gua.guo@intel.com>; Ard Biesheuvel
> <ardb@kernel.org>; Pedro Falcato <pedro.falcato@gmail.com>; Gerd
> Hoffmann <kraxel@redhat.com>; mhaeuser@posteo.de
> Cc: Rebecca Cran <rebecca@bsdio.com>
> Subject: [edk2-devel] [PATCH v6 00/16]
> 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.
> 
> Changes from v4 to v5
> =====================
> 
> - Fixed CLANGDWARF on Windows when llvm is installed with the llvm.org
>   installer and isn't installed in Visual Studio: use llvm-objcopy and the
>   tools prefix.
> 
> - Added flags for GCCNOLTO to UnitTestFrameworkPkgHost.dsc.inc
> 
> - Added GCC flags to CryptoPkg/Library/OpensslLib/*.inf
> 
> Changes from v5 to v6
> =====================
> 
> - Reworked CLANGDWARF toolchain definitions. I made mistakes when
> updating
>   them and accidentally changed the IA32 and X64 definitions.
> 
> - Dropped the changes to build.py. The edk2-BaseTools repo should be
>   updated first, and _then_ the edk2 BaseTools can be changed.
> 
> - Split the updates to CryptoPkg build flags into separate commits,
>   copying the CLANGPDB flags to CLANGDWARF.
> 
> - Fixed non-ASCII character in 5/16 commit message.
> 
> - Removed trailing whitespace in tools_def.template.
> 
> Rebecca Cran (16):
>   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
>   Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
>   BaseTools/Conf/tools_def.template: Add section for deprecated
>     toolchains
>   BaseTools: Add ARM and AARCH64 CLANGDWARF support in
>     tools_def.template
>   BaseTools: As with CLANGDWARF IA32 and X64, use lld for ARM and
>     AARCH64
>   BaseTools: Remove CLANG35 toolchain from tools_def.template
>   BaseTools: Delete CLANG38 from tools_def.template
>   BaseTools/Conf/tools_def.template: Bump VERSION to 3.00
>   CryptoPkg: Delete CLANG35 and CLANG38 build flags
>   CryptoPkg: Copy CLANGPDB build flags to CLANGDWARF
> 
>  UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc       |    4 +
>  IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc                     |    8 +-
>  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                 |    4 +-
>  CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf            |    4 +-
>  CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf           |    4 +-
>  CryptoPkg/Library/OpensslLib/OpensslLibFull.inf             |    4 +-
>  CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf        |    5 +-
>  EmulatorPkg/Unix/Host/Host.inf                              |    2 +
>  MdePkg/Include/Ia32/ProcessorBind.h                         |    8 +-
>  MdePkg/Include/X64/ProcessorBind.h                          |    8 +-
>  BaseTools/Conf/tools_def.template                           | 1909 +++++---------------
>  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 +-
>  edksetup.bat                                                |    6 +-
>  23 files changed, 530 insertions(+), 1621 deletions(-)
> 
> --
> 2.39.2
> 
> 
> 
> 
> 


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

* Re: [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
  2023-05-01 16:08 ` [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages Rebecca Cran
@ 2023-05-02  0:06   ` Rebecca Cran
  2023-05-02  6:35     ` [edk2-devel] " Yao, Jiewen
       [not found]   ` <175B2AD2536192C7.26969@groups.io>
  1 sibling, 1 reply; 29+ messages in thread
From: Rebecca Cran @ 2023-05-02  0:06 UTC (permalink / raw)
  To: Jiewen Yao, Jian J Wang, Xiaoyu Lu, Guomin Jiang, Andrew Fish,
	Ray Ni, Chasel Chiu, Nate DeSimone, Star Zeng
  Cc: devel@edk2.groups.io

Jiewen Yao, Jian J Wang, Xiaoyu Lu, Guomin Jiang: Could one of you add a 
Reviewed-by tag for the CryptoPkg changes please?


Andrew Fish, Ray Ni: Could one of you add a Reviewed-by tag for the 
EmulatorPkg changes please?


Chasel Chiu, Nate DeSimone, Star Zeng: Could one of you add a 
Reviewed-by tag for the IntelFsp2Pkg changes please?


-- 
Rebecca Cran


On 5/1/23 10:08, Rebecca Cran wrote:
> Add a 'GCC' toolchain that's a copy of the existing GCC5 definition.
> Add a 'GCCNOLTO' toolchain that's a copy of the existing GCC49
> toolchain.q
>
> Update build flags in CryptoPkg, EmulatorPkg, IntelFsp2Pkg and
> UnitTestFrameworkPkg to add flags for the new toolchains.
>
> Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
> ---
>   UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc |   4 +
>   IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc               |   8 +-
>   CryptoPkg/Library/OpensslLib/OpensslLib.inf           |   1 +
>   CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf      |   1 +
>   CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf     |   1 +
>   CryptoPkg/Library/OpensslLib/OpensslLibFull.inf       |   1 +
>   CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf  |   2 +
>   EmulatorPkg/Unix/Host/Host.inf                        |   2 +
>   BaseTools/Conf/tools_def.template                     | 366 ++++++++++++++++++++
>   9 files changed, 385 insertions(+), 1 deletion(-)
>
> diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> index 7866c36e6693..9bdbbf3a222c 100644
> --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> @@ -31,6 +31,10 @@ [BuildOptions]
>   !endif
>     GCC:*_GCC5_*_CC_FLAGS = --coverage
>     GCC:*_GCC5_*_DLINK_FLAGS = --coverage
> +  GCC:*_GCCNOLTO_*_CC_FLAGS = --coverage
> +  GCC:*_GCCNOLTO_*_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..34409f8b80d5 100644
> --- a/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> +++ b/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> @@ -461,10 +461,16 @@ [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/CryptoPkg/Library/OpensslLib/OpensslLib.inf b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
> index 86a00b1c4b2a..0669f3035b85 100644
> --- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
> +++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
> @@ -644,6 +644,7 @@ [BuildOptions]
>     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
> +  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
>   
>     # suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
>     # 1295: Deprecated declaration <entity> - give arg types
> diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
> index 2e4f95909b51..45fd4799d748 100644
> --- a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
> +++ b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
> @@ -692,6 +692,7 @@ [BuildOptions]
>     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
> +  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
>   
>     # suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
>     # 1295: Deprecated declaration <entity> - give arg types
> diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
> index 637d4769e8ca..44292f589b6c 100644
> --- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
> +++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
> @@ -594,6 +594,7 @@ [BuildOptions]
>     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
> +  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
>   
>     # suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
>     # 1295: Deprecated declaration <entity> - give arg types
> diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
> index c5f90221fc66..7c07521dcf1e 100644
> --- a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
> +++ b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
> @@ -699,6 +699,7 @@ [BuildOptions]
>     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
> +  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
>   
>     # suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
>     # 1295: Deprecated declaration <entity> - give arg types
> diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
> index 076295244a2a..62846e37a456 100644
> --- a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
> +++ b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
> @@ -747,6 +747,8 @@ [BuildOptions]
>     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
> +  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
> +
>   
>     # suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
>     # 1295: Deprecated declaration <entity> - give arg types
> 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 d0fa158552df..f85120244267 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
> @@ -1139,6 +1144,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
> @@ -1356,6 +1505,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
> +
>   ####################################################################################
>   #
>   # CLANG35   - This configuration is used to compile under Linux to produce

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

* Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
       [not found]   ` <175B2AD2536192C7.26969@groups.io>
@ 2023-05-02  0:08     ` Rebecca Cran
  0 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-02  0:08 UTC (permalink / raw)
  To: Jiewen Yao, Jian J Wang, Xiaoyu Lu, Guomin Jiang, Andrew Fish,
	Ray Ni, Chasel Chiu, Nate DeSimone, Star Zeng
  Cc: devel@edk2.groups.io

I should add that I need reviews from CryptoPkg maintainers/reviewers on 
three patches: 8/16, 15/16, 16/16.


Thanks!

Rebecca Cran


On 5/1/23 18:06, Rebecca Cran wrote:
> Jiewen Yao, Jian J Wang, Xiaoyu Lu, Guomin Jiang: Could one of you add 
> a Reviewed-by tag for the CryptoPkg changes please?
>
>
> Andrew Fish, Ray Ni: Could one of you add a Reviewed-by tag for the 
> EmulatorPkg changes please?
>
>
> Chasel Chiu, Nate DeSimone, Star Zeng: Could one of you add a 
> Reviewed-by tag for the IntelFsp2Pkg changes please?
>
>

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

* Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
  2023-05-02  0:06   ` Rebecca Cran
@ 2023-05-02  6:35     ` Yao, Jiewen
  2023-05-02 14:23       ` Rebecca Cran
  0 siblings, 1 reply; 29+ messages in thread
From: Yao, Jiewen @ 2023-05-02  6:35 UTC (permalink / raw)
  To: devel@edk2.groups.io, rebecca@bsdio.com, Wang, Jian J,
	Lu, Xiaoyu1, Jiang, Guomin, Andrew Fish, Ni, Ray, Chiu, Chasel,
	Desimone, Nathaniel L, Zeng, Star

Hi
Have you evaluated size impact with this new compiler option? Especially crypto library.
Bigger? Smaller?

Why we add "-flto" for "NOLTO" ?
> > +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
> > +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto



> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca
> Cran
> Sent: Tuesday, May 2, 2023 8:06 AM
> To: Yao, Jiewen <jiewen.yao@intel.com>; Wang, Jian J
> <jian.j.wang@intel.com>; Lu, Xiaoyu1 <xiaoyu1.lu@intel.com>; Jiang,
> Guomin <guomin.jiang@intel.com>; Andrew Fish <afish@apple.com>; Ni,
> Ray <ray.ni@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Desimone,
> Nathaniel L <nathaniel.l.desimone@intel.com>; Zeng, Star
> <star.zeng@intel.com>
> Cc: devel@edk2.groups.io
> Subject: Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO
> toolchains to tools_def.txt and update packages
> 
> Jiewen Yao, Jian J Wang, Xiaoyu Lu, Guomin Jiang: Could one of you add a
> Reviewed-by tag for the CryptoPkg changes please?
> 
> 
> Andrew Fish, Ray Ni: Could one of you add a Reviewed-by tag for the
> EmulatorPkg changes please?
> 
> 
> Chasel Chiu, Nate DeSimone, Star Zeng: Could one of you add a
> Reviewed-by tag for the IntelFsp2Pkg changes please?
> 
> 
> --
> Rebecca Cran
> 
> 
> On 5/1/23 10:08, Rebecca Cran wrote:
> > Add a 'GCC' toolchain that's a copy of the existing GCC5 definition.
> > Add a 'GCCNOLTO' toolchain that's a copy of the existing GCC49
> > toolchain.q
> >
> > Update build flags in CryptoPkg, EmulatorPkg, IntelFsp2Pkg and
> > UnitTestFrameworkPkg to add flags for the new toolchains.
> >
> > Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
> > ---
> >   UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc |   4 +
> >   IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc               |   8 +-
> >   CryptoPkg/Library/OpensslLib/OpensslLib.inf           |   1 +
> >   CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf      |   1 +
> >   CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf     |   1 +
> >   CryptoPkg/Library/OpensslLib/OpensslLibFull.inf       |   1 +
> >   CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf  |   2 +
> >   EmulatorPkg/Unix/Host/Host.inf                        |   2 +
> >   BaseTools/Conf/tools_def.template                     | 366
> ++++++++++++++++++++
> >   9 files changed, 385 insertions(+), 1 deletion(-)
> >
> > diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> > index 7866c36e6693..9bdbbf3a222c 100644
> > --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> > +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> > @@ -31,6 +31,10 @@ [BuildOptions]
> >   !endif
> >     GCC:*_GCC5_*_CC_FLAGS = --coverage
> >     GCC:*_GCC5_*_DLINK_FLAGS = --coverage
> > +  GCC:*_GCCNOLTO_*_CC_FLAGS = --coverage
> > +  GCC:*_GCCNOLTO_*_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..34409f8b80d5 100644
> > --- a/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> > +++ b/IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc
> > @@ -461,10 +461,16 @@ [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/CryptoPkg/Library/OpensslLib/OpensslLib.inf
> b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
> > index 86a00b1c4b2a..0669f3035b85 100644
> > --- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
> > +++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
> > @@ -644,6 +644,7 @@ [BuildOptions]
> >     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
> > +  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
> >
> >     # suppress the following warnings in openssl so we don't break the build
> with warnings-as-errors:
> >     # 1295: Deprecated declaration <entity> - give arg types
> > diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
> b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
> > index 2e4f95909b51..45fd4799d748 100644
> > --- a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
> > +++ b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
> > @@ -692,6 +692,7 @@ [BuildOptions]
> >     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
> > +  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
> >
> >     # suppress the following warnings in openssl so we don't break the build
> with warnings-as-errors:
> >     # 1295: Deprecated declaration <entity> - give arg types
> > diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
> b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
> > index 637d4769e8ca..44292f589b6c 100644
> > --- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
> > +++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
> > @@ -594,6 +594,7 @@ [BuildOptions]
> >     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
> > +  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
> >
> >     # suppress the following warnings in openssl so we don't break the build
> with warnings-as-errors:
> >     # 1295: Deprecated declaration <entity> - give arg types
> > diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
> b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
> > index c5f90221fc66..7c07521dcf1e 100644
> > --- a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
> > +++ b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
> > @@ -699,6 +699,7 @@ [BuildOptions]
> >     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
> > +  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
> >
> >     # suppress the following warnings in openssl so we don't break the build
> with warnings-as-errors:
> >     # 1295: Deprecated declaration <entity> - give arg types
> > diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
> b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
> > index 076295244a2a..62846e37a456 100644
> > --- a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
> > +++ b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
> > @@ -747,6 +747,8 @@ [BuildOptions]
> >     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
> > +  GCC:*_GCC_*_CC_FLAGS     = -Wno-unused-but-set-variable
> > +
> >
> >     # suppress the following warnings in openssl so we don't break the build
> with warnings-as-errors:
> >     # 1295: Deprecated declaration <entity> - give arg types
> > 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 d0fa158552df..f85120244267 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
> > @@ -1139,6 +1144,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
> > @@ -1356,6 +1505,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
> > +
> >
> ##############################################################
> ######################
> >   #
> >   # CLANG35   - This configuration is used to compile under Linux to
> produce
> 
> 
> 
> 


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

* Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
  2023-05-02  6:35     ` [edk2-devel] " Yao, Jiewen
@ 2023-05-02 14:23       ` Rebecca Cran
  2023-05-05  2:00         ` 回复: " gaoliming
  0 siblings, 1 reply; 29+ messages in thread
From: Rebecca Cran @ 2023-05-02 14:23 UTC (permalink / raw)
  To: Yao, Jiewen, devel@edk2.groups.io, Wang, Jian J, Lu, Xiaoyu1,
	Jiang, Guomin, Andrew Fish, Ni, Ray, Chiu, Chasel,
	Desimone, Nathaniel L, Zeng, Star

On 5/2/23 00:35, Yao, Jiewen wrote:
> Have you evaluated size impact with this new compiler option? Especially crypto library.
> Bigger? Smaller?

The increase in size when we disable LTO doesn't seem too bad:

With LTO:

-rwxrwxr-x 1 bcran bcran   13M May  2 08:11 
CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
-rwxrwxr-x 1 bcran bcran   13M May  2 08:11 
CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
-rwxrwxr-x 1 bcran bcran   11M May  2 08:11 
CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
-rwxrwxr-x 1 bcran bcran   11M May  2 08:11 
CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
-rwxrwxr-x 1 bcran bcran  8.5M May  2 08:11 
CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
-rwxrwxr-x 1 bcran bcran  8.3M May  2 08:11 
CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
-rwxrwxr-x 1 bcran bcran  8.0M May  2 08:11 
CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
-rwxrwxr-x 1 bcran bcran  7.8M May  2 08:11 
CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
-rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11 BaseCryptLibUnitTestShell.debug
-rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11 
CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
-rwxrwxr-x 1 bcran bcran  6.9M May  2 08:11 
CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
-rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11 
CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
-rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11 
CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
-rwxrwxr-x 1 bcran bcran  6.5M May  2 08:11 
CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
-rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11 
CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
-rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11 
CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
-rw-rw-r-- 1 bcran bcran 1005K May  2 08:11 
CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
-rw-rw-r-- 1 bcran bcran  903K May  2 08:11 
CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
-rw-rw-r-- 1 bcran bcran  811K May  2 08:11 
CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
-rw-rw-r-- 1 bcran bcran  755K May  2 08:11 
CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
-rw-rw-r-- 1 bcran bcran  724K May  2 08:11 
CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
-rw-rw-r-- 1 bcran bcran  710K May  2 08:11 
CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
-rw-rw-r-- 1 bcran bcran  654K May  2 08:11 
CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
-rw-rw-r-- 1 bcran bcran  623K May  2 08:11 
CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
-rw-rw-r-- 1 bcran bcran  585K May  2 08:11 
CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
-rw-rw-r-- 1 bcran bcran  560K May  2 08:11 BaseCryptLibUnitTestShell.efi
-rw-rw-r-- 1 bcran bcran  555K May  2 08:11 
CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
-rw-rw-r-- 1 bcran bcran  500K May  2 08:11 
CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
-rw-rw-r-- 1 bcran bcran  485K May  2 08:11 
CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
-rw-rw-r-- 1 bcran bcran  485K May  2 08:11 
CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
-rw-rw-r-- 1 bcran bcran  454K May  2 08:11 
CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
-rw-rw-r-- 1 bcran bcran  454K May  2 08:11 
CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi

Without LTO:
-rwxrwxr-x 1 bcran bcran   14M May  2 08:13 
CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
-rwxrwxr-x 1 bcran bcran   14M May  2 08:13 
CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
-rwxrwxr-x 1 bcran bcran   12M May  2 08:13 
CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
-rwxrwxr-x 1 bcran bcran   12M May  2 08:13 
CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
-rwxrwxr-x 1 bcran bcran  9.5M May  2 08:13 
CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
-rwxrwxr-x 1 bcran bcran  9.2M May  2 08:13 
CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
-rwxrwxr-x 1 bcran bcran  8.9M May  2 08:13 
CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
-rwxrwxr-x 1 bcran bcran  8.7M May  2 08:13 
CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
-rwxrwxr-x 1 bcran bcran  8.0M May  2 08:13 
CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
-rwxrwxr-x 1 bcran bcran  7.9M May  2 08:13 BaseCryptLibUnitTestShell.debug
-rwxrwxr-x 1 bcran bcran  7.9M May  2 08:12 
CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
-rwxrwxr-x 1 bcran bcran  7.7M May  2 08:12 
CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
-rwxrwxr-x 1 bcran bcran  7.7M May  2 08:13 
CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
-rwxrwxr-x 1 bcran bcran  7.4M May  2 08:13 
CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
-rwxrwxr-x 1 bcran bcran  7.2M May  2 08:12 
CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
-rwxrwxr-x 1 bcran bcran  7.2M May  2 08:13 
CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
-rw-rw-r-- 1 bcran bcran  1.1M May  2 08:13 
CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
-rw-rw-r-- 1 bcran bcran 1011K May  2 08:13 
CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
-rw-rw-r-- 1 bcran bcran  914K May  2 08:13 
CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
-rw-rw-r-- 1 bcran bcran  823K May  2 08:13 
CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
-rw-rw-r-- 1 bcran bcran  813K May  2 08:13 
CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
-rw-rw-r-- 1 bcran bcran  789K May  2 08:13 
CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
-rw-rw-r-- 1 bcran bcran  722K May  2 08:13 
CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
-rw-rw-r-- 1 bcran bcran  687K May  2 08:13 
CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
-rw-rw-r-- 1 bcran bcran  644K May  2 08:13 
CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
-rw-rw-r-- 1 bcran bcran  632K May  2 08:13 BaseCryptLibUnitTestShell.efi
-rw-rw-r-- 1 bcran bcran  610K May  2 08:13 
CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
-rw-rw-r-- 1 bcran bcran  567K May  2 08:12 
CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
-rw-rw-r-- 1 bcran bcran  543K May  2 08:12 
CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
-rw-rw-r-- 1 bcran bcran  543K May  2 08:13 
CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
-rw-rw-r-- 1 bcran bcran  508K May  2 08:12 
CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
-rw-rw-r-- 1 bcran bcran  508K May  2 08:13 
CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi

>
> Why we add "-flto" for "NOLTO" ?
>>> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
>>> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto

I don't know why -flto was added for the GCC49 flags, but when I created 
the GCCNOLTO flags I copied it because I presume there's a reason this 
specific test package requires it.


-- 

Rebecca Cran


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

* Re: [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF
  2023-05-01 16:08 [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
                   ` (16 preceding siblings ...)
  2023-05-01 18:36 ` [edk2-devel] [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Michael D Kinney
@ 2023-05-04 12:42 ` Rebecca Cran
  17 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-04 12:42 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, Ray Ni, Leif Lindholm, Zhiguang Liu,
	Jian J Wang, Xiaoyu Lu, Guomin Jiang, Gua Guo, Ard Biesheuvel,
	Pedro Falcato, Gerd Hoffmann, mhaeuser

I'd really like to get this merged: we're running out of time for the 
upcoming stable tag.

I'm still waiting on reviews for the CryptoPkg, EmulatorPkg and 
IntelFsp2Pkg changes.


-- 
Rebecca Cran


On 5/1/23 10:08, Rebecca Cran wrote:
> 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.
>
> Changes from v4 to v5
> =====================
>
> - Fixed CLANGDWARF on Windows when llvm is installed with the llvm.org
>    installer and isn't installed in Visual Studio: use llvm-objcopy and the
>    tools prefix.
>
> - Added flags for GCCNOLTO to UnitTestFrameworkPkgHost.dsc.inc
>
> - Added GCC flags to CryptoPkg/Library/OpensslLib/*.inf
>
> Changes from v5 to v6
> =====================
>
> - Reworked CLANGDWARF toolchain definitions. I made mistakes when updating
>    them and accidentally changed the IA32 and X64 definitions.
>
> - Dropped the changes to build.py. The edk2-BaseTools repo should be
>    updated first, and _then_ the edk2 BaseTools can be changed.
>
> - Split the updates to CryptoPkg build flags into separate commits,
>    copying the CLANGPDB flags to CLANGDWARF.
>
> - Fixed non-ASCII character in 5/16 commit message.
>
> - Removed trailing whitespace in tools_def.template.
>
> Rebecca Cran (16):
>    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
>    Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
>    BaseTools/Conf/tools_def.template: Add section for deprecated
>      toolchains
>    BaseTools: Add ARM and AARCH64 CLANGDWARF support in
>      tools_def.template
>    BaseTools: As with CLANGDWARF IA32 and X64, use lld for ARM and
>      AARCH64
>    BaseTools: Remove CLANG35 toolchain from tools_def.template
>    BaseTools: Delete CLANG38 from tools_def.template
>    BaseTools/Conf/tools_def.template: Bump VERSION to 3.00
>    CryptoPkg: Delete CLANG35 and CLANG38 build flags
>    CryptoPkg: Copy CLANGPDB build flags to CLANGDWARF
>
>   UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc       |    4 +
>   IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc                     |    8 +-
>   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                 |    4 +-
>   CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf            |    4 +-
>   CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf           |    4 +-
>   CryptoPkg/Library/OpensslLib/OpensslLibFull.inf             |    4 +-
>   CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf        |    5 +-
>   EmulatorPkg/Unix/Host/Host.inf                              |    2 +
>   MdePkg/Include/Ia32/ProcessorBind.h                         |    8 +-
>   MdePkg/Include/X64/ProcessorBind.h                          |    8 +-
>   BaseTools/Conf/tools_def.template                           | 1909 +++++---------------
>   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 +-
>   edksetup.bat                                                |    6 +-
>   23 files changed, 530 insertions(+), 1621 deletions(-)
>

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

* 回复: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
  2023-05-02 14:23       ` Rebecca Cran
@ 2023-05-05  2:00         ` gaoliming
  2023-05-05  2:02           ` Yao, Jiewen
  2023-05-05  2:05           ` 回复: " Rebecca Cran
  0 siblings, 2 replies; 29+ messages in thread
From: gaoliming @ 2023-05-05  2:00 UTC (permalink / raw)
  To: devel, rebecca, 'Yao, Jiewen', 'Wang, Jian J',
	'Lu, Xiaoyu1', 'Jiang, Guomin',
	'Andrew Fish', 'Ni, Ray', 'Chiu, Chasel',
	'Desimone, Nathaniel L', 'Zeng, Star'

Rebecca:
  I understand this change is to add GCC and GCCNOLTO toolchain. GCC is same to GCC5, GCCNOLTO is same to GCC49. So, new tool chain copies the same changes from origin one. Right?

Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Rebecca Cran
> 发送时间: 2023年5月2日 22:23
> 收件人: Yao, Jiewen <jiewen.yao@intel.com>; devel@edk2.groups.io; Wang,
> Jian J <jian.j.wang@intel.com>; Lu, Xiaoyu1 <xiaoyu1.lu@intel.com>; Jiang,
> Guomin <guomin.jiang@intel.com>; Andrew Fish <afish@apple.com>; Ni, Ray
> <ray.ni@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Desimone,
> Nathaniel L <nathaniel.l.desimone@intel.com>; Zeng, Star
> <star.zeng@intel.com>
> 主题: Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains
> to tools_def.txt and update packages
> 
> On 5/2/23 00:35, Yao, Jiewen wrote:
> > Have you evaluated size impact with this new compiler option? Especially
> crypto library.
> > Bigger? Smaller?
> 
> The increase in size when we disable LTO doesn't seem too bad:
> 
> With LTO:
> 
> -rwxrwxr-x 1 bcran bcran   13M May  2 08:11
> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
> -rwxrwxr-x 1 bcran bcran   13M May  2 08:11
> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
> -rwxrwxr-x 1 bcran bcran   11M May  2 08:11
> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
> -rwxrwxr-x 1 bcran bcran   11M May  2 08:11
> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
> -rwxrwxr-x 1 bcran bcran  8.5M May  2 08:11
> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
> -rwxrwxr-x 1 bcran bcran  8.3M May  2 08:11
> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
> -rwxrwxr-x 1 bcran bcran  8.0M May  2 08:11
> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
> -rwxrwxr-x 1 bcran bcran  7.8M May  2 08:11
> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
> -rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11
> BaseCryptLibUnitTestShell.debug
> -rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11
> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
> -rwxrwxr-x 1 bcran bcran  6.9M May  2 08:11
> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
> -rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11
> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
> -rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11
> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
> -rwxrwxr-x 1 bcran bcran  6.5M May  2 08:11
> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
> -rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11
> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
> -rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11
> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
> -rw-rw-r-- 1 bcran bcran 1005K May  2 08:11
> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
> -rw-rw-r-- 1 bcran bcran  903K May  2 08:11
> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
> -rw-rw-r-- 1 bcran bcran  811K May  2 08:11
> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
> -rw-rw-r-- 1 bcran bcran  755K May  2 08:11
> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
> -rw-rw-r-- 1 bcran bcran  724K May  2 08:11
> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
> -rw-rw-r-- 1 bcran bcran  710K May  2 08:11
> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
> -rw-rw-r-- 1 bcran bcran  654K May  2 08:11
> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
> -rw-rw-r-- 1 bcran bcran  623K May  2 08:11
> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
> -rw-rw-r-- 1 bcran bcran  585K May  2 08:11
> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
> -rw-rw-r-- 1 bcran bcran  560K May  2 08:11 BaseCryptLibUnitTestShell.efi
> -rw-rw-r-- 1 bcran bcran  555K May  2 08:11
> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
> -rw-rw-r-- 1 bcran bcran  500K May  2 08:11
> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
> -rw-rw-r-- 1 bcran bcran  485K May  2 08:11
> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
> -rw-rw-r-- 1 bcran bcran  485K May  2 08:11
> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
> -rw-rw-r-- 1 bcran bcran  454K May  2 08:11
> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
> -rw-rw-r-- 1 bcran bcran  454K May  2 08:11
> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi
> 
> Without LTO:
> -rwxrwxr-x 1 bcran bcran   14M May  2 08:13
> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
> -rwxrwxr-x 1 bcran bcran   14M May  2 08:13
> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
> -rwxrwxr-x 1 bcran bcran   12M May  2 08:13
> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
> -rwxrwxr-x 1 bcran bcran   12M May  2 08:13
> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
> -rwxrwxr-x 1 bcran bcran  9.5M May  2 08:13
> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
> -rwxrwxr-x 1 bcran bcran  9.2M May  2 08:13
> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
> -rwxrwxr-x 1 bcran bcran  8.9M May  2 08:13
> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
> -rwxrwxr-x 1 bcran bcran  8.7M May  2 08:13
> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
> -rwxrwxr-x 1 bcran bcran  8.0M May  2 08:13
> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
> -rwxrwxr-x 1 bcran bcran  7.9M May  2 08:13
> BaseCryptLibUnitTestShell.debug
> -rwxrwxr-x 1 bcran bcran  7.9M May  2 08:12
> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
> -rwxrwxr-x 1 bcran bcran  7.7M May  2 08:12
> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
> -rwxrwxr-x 1 bcran bcran  7.7M May  2 08:13
> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
> -rwxrwxr-x 1 bcran bcran  7.4M May  2 08:13
> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
> -rwxrwxr-x 1 bcran bcran  7.2M May  2 08:12
> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
> -rwxrwxr-x 1 bcran bcran  7.2M May  2 08:13
> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
> -rw-rw-r-- 1 bcran bcran  1.1M May  2 08:13
> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
> -rw-rw-r-- 1 bcran bcran 1011K May  2 08:13
> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
> -rw-rw-r-- 1 bcran bcran  914K May  2 08:13
> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
> -rw-rw-r-- 1 bcran bcran  823K May  2 08:13
> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
> -rw-rw-r-- 1 bcran bcran  813K May  2 08:13
> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
> -rw-rw-r-- 1 bcran bcran  789K May  2 08:13
> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
> -rw-rw-r-- 1 bcran bcran  722K May  2 08:13
> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
> -rw-rw-r-- 1 bcran bcran  687K May  2 08:13
> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
> -rw-rw-r-- 1 bcran bcran  644K May  2 08:13
> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
> -rw-rw-r-- 1 bcran bcran  632K May  2 08:13 BaseCryptLibUnitTestShell.efi
> -rw-rw-r-- 1 bcran bcran  610K May  2 08:13
> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
> -rw-rw-r-- 1 bcran bcran  567K May  2 08:12
> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
> -rw-rw-r-- 1 bcran bcran  543K May  2 08:12
> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
> -rw-rw-r-- 1 bcran bcran  543K May  2 08:13
> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
> -rw-rw-r-- 1 bcran bcran  508K May  2 08:12
> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
> -rw-rw-r-- 1 bcran bcran  508K May  2 08:13
> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi
> 
> >
> > Why we add "-flto" for "NOLTO" ?
> >>> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
> >>> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto
> 
> I don't know why -flto was added for the GCC49 flags, but when I created
> the GCCNOLTO flags I copied it because I presume there's a reason this
> specific test package requires it.
> 
> 
> --
> 
> Rebecca Cran
> 
> 
> 
> 
> 




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

* Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
  2023-05-05  2:00         ` 回复: " gaoliming
@ 2023-05-05  2:02           ` Yao, Jiewen
  2023-05-05  2:11             ` Rebecca Cran
  2023-05-05  2:05           ` 回复: " Rebecca Cran
  1 sibling, 1 reply; 29+ messages in thread
From: Yao, Jiewen @ 2023-05-05  2:02 UTC (permalink / raw)
  To: Gao, Liming, devel@edk2.groups.io, rebecca@bsdio.com,
	Wang, Jian J, Lu, Xiaoyu1, Jiang, Guomin, 'Andrew Fish',
	Ni, Ray, Chiu, Chasel, Desimone, Nathaniel L, Zeng, Star

Thanks Liming.

I am not sure below change is expected or not. Please feedback if possible. Thank you!

> Why we add "-flto" for "NOLTO" ?
>>> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
>>> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto


> -----Original Message-----
> From: gaoliming <gaoliming@byosoft.com.cn>
> Sent: Friday, May 5, 2023 10:00 AM
> To: devel@edk2.groups.io; rebecca@bsdio.com; Yao, Jiewen
> <jiewen.yao@intel.com>; Wang, Jian J <jian.j.wang@intel.com>; Lu, Xiaoyu1
> <xiaoyu1.lu@intel.com>; Jiang, Guomin <guomin.jiang@intel.com>; 'Andrew
> Fish' <afish@apple.com>; Ni, Ray <ray.ni@intel.com>; Chiu, Chasel
> <chasel.chiu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Zeng, Star <star.zeng@intel.com>
> Subject: 回复: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO
> toolchains to tools_def.txt and update packages
> 
> Rebecca:
>   I understand this change is to add GCC and GCCNOLTO toolchain. GCC is
> same to GCC5, GCCNOLTO is same to GCC49. So, new tool chain copies the
> same changes from origin one. Right?
> 
> Thanks
> Liming
> > -----邮件原件-----
> > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Rebecca
> Cran
> > 发送时间: 2023年5月2日 22:23
> > 收件人: Yao, Jiewen <jiewen.yao@intel.com>; devel@edk2.groups.io;
> Wang,
> > Jian J <jian.j.wang@intel.com>; Lu, Xiaoyu1 <xiaoyu1.lu@intel.com>; Jiang,
> > Guomin <guomin.jiang@intel.com>; Andrew Fish <afish@apple.com>; Ni,
> Ray
> > <ray.ni@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Desimone,
> > Nathaniel L <nathaniel.l.desimone@intel.com>; Zeng, Star
> > <star.zeng@intel.com>
> > 主题: Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO
> toolchains
> > to tools_def.txt and update packages
> >
> > On 5/2/23 00:35, Yao, Jiewen wrote:
> > > Have you evaluated size impact with this new compiler option? Especially
> > crypto library.
> > > Bigger? Smaller?
> >
> > The increase in size when we disable LTO doesn't seem too bad:
> >
> > With LTO:
> >
> > -rwxrwxr-x 1 bcran bcran   13M May  2 08:11
> > CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
> > -rwxrwxr-x 1 bcran bcran   13M May  2 08:11
> > CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
> > -rwxrwxr-x 1 bcran bcran   11M May  2 08:11
> > CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
> > -rwxrwxr-x 1 bcran bcran   11M May  2 08:11
> > CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
> > -rwxrwxr-x 1 bcran bcran  8.5M May  2 08:11
> > CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
> > -rwxrwxr-x 1 bcran bcran  8.3M May  2 08:11
> > CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
> > -rwxrwxr-x 1 bcran bcran  8.0M May  2 08:11
> > CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
> > -rwxrwxr-x 1 bcran bcran  7.8M May  2 08:11
> > CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
> > -rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11
> > BaseCryptLibUnitTestShell.debug
> > -rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11
> > CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
> > -rwxrwxr-x 1 bcran bcran  6.9M May  2 08:11
> > CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
> > -rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11
> > CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
> > -rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11
> > CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
> > -rwxrwxr-x 1 bcran bcran  6.5M May  2 08:11
> > CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
> > -rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11
> > CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
> > -rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11
> > CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
> > -rw-rw-r-- 1 bcran bcran 1005K May  2 08:11
> > CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
> > -rw-rw-r-- 1 bcran bcran  903K May  2 08:11
> > CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
> > -rw-rw-r-- 1 bcran bcran  811K May  2 08:11
> > CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
> > -rw-rw-r-- 1 bcran bcran  755K May  2 08:11
> > CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
> > -rw-rw-r-- 1 bcran bcran  724K May  2 08:11
> > CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
> > -rw-rw-r-- 1 bcran bcran  710K May  2 08:11
> > CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
> > -rw-rw-r-- 1 bcran bcran  654K May  2 08:11
> > CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
> > -rw-rw-r-- 1 bcran bcran  623K May  2 08:11
> > CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
> > -rw-rw-r-- 1 bcran bcran  585K May  2 08:11
> > CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
> > -rw-rw-r-- 1 bcran bcran  560K May  2 08:11 BaseCryptLibUnitTestShell.efi
> > -rw-rw-r-- 1 bcran bcran  555K May  2 08:11
> > CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
> > -rw-rw-r-- 1 bcran bcran  500K May  2 08:11
> > CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
> > -rw-rw-r-- 1 bcran bcran  485K May  2 08:11
> > CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
> > -rw-rw-r-- 1 bcran bcran  485K May  2 08:11
> > CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
> > -rw-rw-r-- 1 bcran bcran  454K May  2 08:11
> > CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
> > -rw-rw-r-- 1 bcran bcran  454K May  2 08:11
> > CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi
> >
> > Without LTO:
> > -rwxrwxr-x 1 bcran bcran   14M May  2 08:13
> > CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
> > -rwxrwxr-x 1 bcran bcran   14M May  2 08:13
> > CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
> > -rwxrwxr-x 1 bcran bcran   12M May  2 08:13
> > CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
> > -rwxrwxr-x 1 bcran bcran   12M May  2 08:13
> > CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
> > -rwxrwxr-x 1 bcran bcran  9.5M May  2 08:13
> > CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
> > -rwxrwxr-x 1 bcran bcran  9.2M May  2 08:13
> > CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
> > -rwxrwxr-x 1 bcran bcran  8.9M May  2 08:13
> > CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
> > -rwxrwxr-x 1 bcran bcran  8.7M May  2 08:13
> > CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
> > -rwxrwxr-x 1 bcran bcran  8.0M May  2 08:13
> > CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
> > -rwxrwxr-x 1 bcran bcran  7.9M May  2 08:13
> > BaseCryptLibUnitTestShell.debug
> > -rwxrwxr-x 1 bcran bcran  7.9M May  2 08:12
> > CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
> > -rwxrwxr-x 1 bcran bcran  7.7M May  2 08:12
> > CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
> > -rwxrwxr-x 1 bcran bcran  7.7M May  2 08:13
> > CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
> > -rwxrwxr-x 1 bcran bcran  7.4M May  2 08:13
> > CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
> > -rwxrwxr-x 1 bcran bcran  7.2M May  2 08:12
> > CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
> > -rwxrwxr-x 1 bcran bcran  7.2M May  2 08:13
> > CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
> > -rw-rw-r-- 1 bcran bcran  1.1M May  2 08:13
> > CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
> > -rw-rw-r-- 1 bcran bcran 1011K May  2 08:13
> > CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
> > -rw-rw-r-- 1 bcran bcran  914K May  2 08:13
> > CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
> > -rw-rw-r-- 1 bcran bcran  823K May  2 08:13
> > CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
> > -rw-rw-r-- 1 bcran bcran  813K May  2 08:13
> > CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
> > -rw-rw-r-- 1 bcran bcran  789K May  2 08:13
> > CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
> > -rw-rw-r-- 1 bcran bcran  722K May  2 08:13
> > CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
> > -rw-rw-r-- 1 bcran bcran  687K May  2 08:13
> > CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
> > -rw-rw-r-- 1 bcran bcran  644K May  2 08:13
> > CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
> > -rw-rw-r-- 1 bcran bcran  632K May  2 08:13 BaseCryptLibUnitTestShell.efi
> > -rw-rw-r-- 1 bcran bcran  610K May  2 08:13
> > CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
> > -rw-rw-r-- 1 bcran bcran  567K May  2 08:12
> > CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
> > -rw-rw-r-- 1 bcran bcran  543K May  2 08:12
> > CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
> > -rw-rw-r-- 1 bcran bcran  543K May  2 08:13
> > CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
> > -rw-rw-r-- 1 bcran bcran  508K May  2 08:12
> > CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
> > -rw-rw-r-- 1 bcran bcran  508K May  2 08:13
> > CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi
> >
> > >
> > > Why we add "-flto" for "NOLTO" ?
> > >>> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
> > >>> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto
> >
> > I don't know why -flto was added for the GCC49 flags, but when I created
> > the GCCNOLTO flags I copied it because I presume there's a reason this
> > specific test package requires it.
> >
> >
> > --
> >
> > Rebecca Cran
> >
> >
> >
> > 
> >
> 
> 


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

* Re: 回复: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
  2023-05-05  2:00         ` 回复: " gaoliming
  2023-05-05  2:02           ` Yao, Jiewen
@ 2023-05-05  2:05           ` Rebecca Cran
  1 sibling, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-05  2:05 UTC (permalink / raw)
  To: gaoliming, devel, 'Yao, Jiewen', 'Wang, Jian J',
	'Lu, Xiaoyu1', 'Jiang, Guomin',
	'Andrew Fish', 'Ni, Ray', 'Chiu, Chasel',
	'Desimone, Nathaniel L', 'Zeng, Star'

Yes, that's correct.


On 5/4/23 20:00, gaoliming wrote:
> Rebecca:
>    I understand this change is to add GCC and GCCNOLTO toolchain. GCC is same to GCC5, GCCNOLTO is same to GCC49. So, new tool chain copies the same changes from origin one. Right?
>
> Thanks
> Liming
>> -----邮件原件-----
>> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Rebecca Cran
>> 发送时间: 2023年5月2日 22:23
>> 收件人: Yao, Jiewen <jiewen.yao@intel.com>; devel@edk2.groups.io; Wang,
>> Jian J <jian.j.wang@intel.com>; Lu, Xiaoyu1 <xiaoyu1.lu@intel.com>; Jiang,
>> Guomin <guomin.jiang@intel.com>; Andrew Fish <afish@apple.com>; Ni, Ray
>> <ray.ni@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Desimone,
>> Nathaniel L <nathaniel.l.desimone@intel.com>; Zeng, Star
>> <star.zeng@intel.com>
>> 主题: Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains
>> to tools_def.txt and update packages
>>
>> On 5/2/23 00:35, Yao, Jiewen wrote:
>>> Have you evaluated size impact with this new compiler option? Especially
>> crypto library.
>>> Bigger? Smaller?
>> The increase in size when we disable LTO doesn't seem too bad:
>>
>> With LTO:
>>
>> -rwxrwxr-x 1 bcran bcran   13M May  2 08:11
>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
>> -rwxrwxr-x 1 bcran bcran   13M May  2 08:11
>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
>> -rwxrwxr-x 1 bcran bcran   11M May  2 08:11
>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
>> -rwxrwxr-x 1 bcran bcran   11M May  2 08:11
>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
>> -rwxrwxr-x 1 bcran bcran  8.5M May  2 08:11
>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
>> -rwxrwxr-x 1 bcran bcran  8.3M May  2 08:11
>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
>> -rwxrwxr-x 1 bcran bcran  8.0M May  2 08:11
>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
>> -rwxrwxr-x 1 bcran bcran  7.8M May  2 08:11
>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
>> -rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11
>> BaseCryptLibUnitTestShell.debug
>> -rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11
>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
>> -rwxrwxr-x 1 bcran bcran  6.9M May  2 08:11
>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
>> -rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11
>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
>> -rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11
>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
>> -rwxrwxr-x 1 bcran bcran  6.5M May  2 08:11
>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
>> -rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11
>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
>> -rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11
>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
>> -rw-rw-r-- 1 bcran bcran 1005K May  2 08:11
>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
>> -rw-rw-r-- 1 bcran bcran  903K May  2 08:11
>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
>> -rw-rw-r-- 1 bcran bcran  811K May  2 08:11
>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
>> -rw-rw-r-- 1 bcran bcran  755K May  2 08:11
>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
>> -rw-rw-r-- 1 bcran bcran  724K May  2 08:11
>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
>> -rw-rw-r-- 1 bcran bcran  710K May  2 08:11
>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
>> -rw-rw-r-- 1 bcran bcran  654K May  2 08:11
>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
>> -rw-rw-r-- 1 bcran bcran  623K May  2 08:11
>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
>> -rw-rw-r-- 1 bcran bcran  585K May  2 08:11
>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
>> -rw-rw-r-- 1 bcran bcran  560K May  2 08:11 BaseCryptLibUnitTestShell.efi
>> -rw-rw-r-- 1 bcran bcran  555K May  2 08:11
>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
>> -rw-rw-r-- 1 bcran bcran  500K May  2 08:11
>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
>> -rw-rw-r-- 1 bcran bcran  485K May  2 08:11
>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
>> -rw-rw-r-- 1 bcran bcran  485K May  2 08:11
>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
>> -rw-rw-r-- 1 bcran bcran  454K May  2 08:11
>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
>> -rw-rw-r-- 1 bcran bcran  454K May  2 08:11
>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi
>>
>> Without LTO:
>> -rwxrwxr-x 1 bcran bcran   14M May  2 08:13
>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
>> -rwxrwxr-x 1 bcran bcran   14M May  2 08:13
>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
>> -rwxrwxr-x 1 bcran bcran   12M May  2 08:13
>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
>> -rwxrwxr-x 1 bcran bcran   12M May  2 08:13
>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
>> -rwxrwxr-x 1 bcran bcran  9.5M May  2 08:13
>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
>> -rwxrwxr-x 1 bcran bcran  9.2M May  2 08:13
>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
>> -rwxrwxr-x 1 bcran bcran  8.9M May  2 08:13
>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
>> -rwxrwxr-x 1 bcran bcran  8.7M May  2 08:13
>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
>> -rwxrwxr-x 1 bcran bcran  8.0M May  2 08:13
>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
>> -rwxrwxr-x 1 bcran bcran  7.9M May  2 08:13
>> BaseCryptLibUnitTestShell.debug
>> -rwxrwxr-x 1 bcran bcran  7.9M May  2 08:12
>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
>> -rwxrwxr-x 1 bcran bcran  7.7M May  2 08:12
>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
>> -rwxrwxr-x 1 bcran bcran  7.7M May  2 08:13
>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
>> -rwxrwxr-x 1 bcran bcran  7.4M May  2 08:13
>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
>> -rwxrwxr-x 1 bcran bcran  7.2M May  2 08:12
>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
>> -rwxrwxr-x 1 bcran bcran  7.2M May  2 08:13
>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
>> -rw-rw-r-- 1 bcran bcran  1.1M May  2 08:13
>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
>> -rw-rw-r-- 1 bcran bcran 1011K May  2 08:13
>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
>> -rw-rw-r-- 1 bcran bcran  914K May  2 08:13
>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
>> -rw-rw-r-- 1 bcran bcran  823K May  2 08:13
>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
>> -rw-rw-r-- 1 bcran bcran  813K May  2 08:13
>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
>> -rw-rw-r-- 1 bcran bcran  789K May  2 08:13
>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
>> -rw-rw-r-- 1 bcran bcran  722K May  2 08:13
>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
>> -rw-rw-r-- 1 bcran bcran  687K May  2 08:13
>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
>> -rw-rw-r-- 1 bcran bcran  644K May  2 08:13
>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
>> -rw-rw-r-- 1 bcran bcran  632K May  2 08:13 BaseCryptLibUnitTestShell.efi
>> -rw-rw-r-- 1 bcran bcran  610K May  2 08:13
>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
>> -rw-rw-r-- 1 bcran bcran  567K May  2 08:12
>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
>> -rw-rw-r-- 1 bcran bcran  543K May  2 08:12
>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
>> -rw-rw-r-- 1 bcran bcran  543K May  2 08:13
>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
>> -rw-rw-r-- 1 bcran bcran  508K May  2 08:12
>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
>> -rw-rw-r-- 1 bcran bcran  508K May  2 08:13
>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi
>>
>>> Why we add "-flto" for "NOLTO" ?
>>>>> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
>>>>> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto
>> I don't know why -flto was added for the GCC49 flags, but when I created
>> the GCCNOLTO flags I copied it because I presume there's a reason this
>> specific test package requires it.
>>
>>
>> --
>>
>> Rebecca Cran
>>
>>
>>
>> 
>>
>
>

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

* Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
  2023-05-05  2:02           ` Yao, Jiewen
@ 2023-05-05  2:11             ` Rebecca Cran
  2023-05-05  7:41               ` 回复: " gaoliming
  0 siblings, 1 reply; 29+ messages in thread
From: Rebecca Cran @ 2023-05-05  2:11 UTC (permalink / raw)
  To: Yao, Jiewen, Gao, Liming, devel@edk2.groups.io, Wang, Jian J,
	Lu, Xiaoyu1, Jiang, Guomin, 'Andrew Fish', Ni, Ray,
	Chiu, Chasel, Desimone, Nathaniel L, Zeng, Star

If you look at the entire block, GCC49 also has -flto, so since GCCNOLTO 
is a copy of GCC49, that's why it has -flto:


# Append build options for EDK and EDKII drivers (= is Append, == is 
Replace)
   # 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

Hopefully we can remove the flag in future, but since it's in 
IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc and not a main .dsc file I'm not 
sure it's very important.


-- 

Rebecca Cran


On 5/4/23 20:02, Yao, Jiewen wrote:
> Thanks Liming.
>
> I am not sure below change is expected or not. Please feedback if possible. Thank you!
>
>> Why we add "-flto" for "NOLTO" ?
>>>> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
>>>> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto
>
>> -----Original Message-----
>> From: gaoliming <gaoliming@byosoft.com.cn>
>> Sent: Friday, May 5, 2023 10:00 AM
>> To: devel@edk2.groups.io; rebecca@bsdio.com; Yao, Jiewen
>> <jiewen.yao@intel.com>; Wang, Jian J <jian.j.wang@intel.com>; Lu, Xiaoyu1
>> <xiaoyu1.lu@intel.com>; Jiang, Guomin <guomin.jiang@intel.com>; 'Andrew
>> Fish' <afish@apple.com>; Ni, Ray <ray.ni@intel.com>; Chiu, Chasel
>> <chasel.chiu@intel.com>; Desimone, Nathaniel L
>> <nathaniel.l.desimone@intel.com>; Zeng, Star <star.zeng@intel.com>
>> Subject: 回复: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO
>> toolchains to tools_def.txt and update packages
>>
>> Rebecca:
>>    I understand this change is to add GCC and GCCNOLTO toolchain. GCC is
>> same to GCC5, GCCNOLTO is same to GCC49. So, new tool chain copies the
>> same changes from origin one. Right?
>>
>> Thanks
>> Liming
>>> -----邮件原件-----
>>> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Rebecca
>> Cran
>>> 发送时间: 2023年5月2日 22:23
>>> 收件人: Yao, Jiewen <jiewen.yao@intel.com>; devel@edk2.groups.io;
>> Wang,
>>> Jian J <jian.j.wang@intel.com>; Lu, Xiaoyu1 <xiaoyu1.lu@intel.com>; Jiang,
>>> Guomin <guomin.jiang@intel.com>; Andrew Fish <afish@apple.com>; Ni,
>> Ray
>>> <ray.ni@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Desimone,
>>> Nathaniel L <nathaniel.l.desimone@intel.com>; Zeng, Star
>>> <star.zeng@intel.com>
>>> 主题: Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO
>> toolchains
>>> to tools_def.txt and update packages
>>>
>>> On 5/2/23 00:35, Yao, Jiewen wrote:
>>>> Have you evaluated size impact with this new compiler option? Especially
>>> crypto library.
>>>> Bigger? Smaller?
>>> The increase in size when we disable LTO doesn't seem too bad:
>>>
>>> With LTO:
>>>
>>> -rwxrwxr-x 1 bcran bcran   13M May  2 08:11
>>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
>>> -rwxrwxr-x 1 bcran bcran   13M May  2 08:11
>>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
>>> -rwxrwxr-x 1 bcran bcran   11M May  2 08:11
>>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
>>> -rwxrwxr-x 1 bcran bcran   11M May  2 08:11
>>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
>>> -rwxrwxr-x 1 bcran bcran  8.5M May  2 08:11
>>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
>>> -rwxrwxr-x 1 bcran bcran  8.3M May  2 08:11
>>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
>>> -rwxrwxr-x 1 bcran bcran  8.0M May  2 08:11
>>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
>>> -rwxrwxr-x 1 bcran bcran  7.8M May  2 08:11
>>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
>>> -rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11
>>> BaseCryptLibUnitTestShell.debug
>>> -rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11
>>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
>>> -rwxrwxr-x 1 bcran bcran  6.9M May  2 08:11
>>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
>>> -rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11
>>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
>>> -rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11
>>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
>>> -rwxrwxr-x 1 bcran bcran  6.5M May  2 08:11
>>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
>>> -rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11
>>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
>>> -rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11
>>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
>>> -rw-rw-r-- 1 bcran bcran 1005K May  2 08:11
>>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
>>> -rw-rw-r-- 1 bcran bcran  903K May  2 08:11
>>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
>>> -rw-rw-r-- 1 bcran bcran  811K May  2 08:11
>>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
>>> -rw-rw-r-- 1 bcran bcran  755K May  2 08:11
>>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
>>> -rw-rw-r-- 1 bcran bcran  724K May  2 08:11
>>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
>>> -rw-rw-r-- 1 bcran bcran  710K May  2 08:11
>>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
>>> -rw-rw-r-- 1 bcran bcran  654K May  2 08:11
>>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
>>> -rw-rw-r-- 1 bcran bcran  623K May  2 08:11
>>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
>>> -rw-rw-r-- 1 bcran bcran  585K May  2 08:11
>>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
>>> -rw-rw-r-- 1 bcran bcran  560K May  2 08:11 BaseCryptLibUnitTestShell.efi
>>> -rw-rw-r-- 1 bcran bcran  555K May  2 08:11
>>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
>>> -rw-rw-r-- 1 bcran bcran  500K May  2 08:11
>>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
>>> -rw-rw-r-- 1 bcran bcran  485K May  2 08:11
>>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
>>> -rw-rw-r-- 1 bcran bcran  485K May  2 08:11
>>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
>>> -rw-rw-r-- 1 bcran bcran  454K May  2 08:11
>>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
>>> -rw-rw-r-- 1 bcran bcran  454K May  2 08:11
>>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi
>>>
>>> Without LTO:
>>> -rwxrwxr-x 1 bcran bcran   14M May  2 08:13
>>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
>>> -rwxrwxr-x 1 bcran bcran   14M May  2 08:13
>>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
>>> -rwxrwxr-x 1 bcran bcran   12M May  2 08:13
>>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
>>> -rwxrwxr-x 1 bcran bcran   12M May  2 08:13
>>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
>>> -rwxrwxr-x 1 bcran bcran  9.5M May  2 08:13
>>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
>>> -rwxrwxr-x 1 bcran bcran  9.2M May  2 08:13
>>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
>>> -rwxrwxr-x 1 bcran bcran  8.9M May  2 08:13
>>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
>>> -rwxrwxr-x 1 bcran bcran  8.7M May  2 08:13
>>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
>>> -rwxrwxr-x 1 bcran bcran  8.0M May  2 08:13
>>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
>>> -rwxrwxr-x 1 bcran bcran  7.9M May  2 08:13
>>> BaseCryptLibUnitTestShell.debug
>>> -rwxrwxr-x 1 bcran bcran  7.9M May  2 08:12
>>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
>>> -rwxrwxr-x 1 bcran bcran  7.7M May  2 08:12
>>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
>>> -rwxrwxr-x 1 bcran bcran  7.7M May  2 08:13
>>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
>>> -rwxrwxr-x 1 bcran bcran  7.4M May  2 08:13
>>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
>>> -rwxrwxr-x 1 bcran bcran  7.2M May  2 08:12
>>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
>>> -rwxrwxr-x 1 bcran bcran  7.2M May  2 08:13
>>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
>>> -rw-rw-r-- 1 bcran bcran  1.1M May  2 08:13
>>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
>>> -rw-rw-r-- 1 bcran bcran 1011K May  2 08:13
>>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
>>> -rw-rw-r-- 1 bcran bcran  914K May  2 08:13
>>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
>>> -rw-rw-r-- 1 bcran bcran  823K May  2 08:13
>>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
>>> -rw-rw-r-- 1 bcran bcran  813K May  2 08:13
>>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
>>> -rw-rw-r-- 1 bcran bcran  789K May  2 08:13
>>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
>>> -rw-rw-r-- 1 bcran bcran  722K May  2 08:13
>>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
>>> -rw-rw-r-- 1 bcran bcran  687K May  2 08:13
>>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
>>> -rw-rw-r-- 1 bcran bcran  644K May  2 08:13
>>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
>>> -rw-rw-r-- 1 bcran bcran  632K May  2 08:13 BaseCryptLibUnitTestShell.efi
>>> -rw-rw-r-- 1 bcran bcran  610K May  2 08:13
>>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
>>> -rw-rw-r-- 1 bcran bcran  567K May  2 08:12
>>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
>>> -rw-rw-r-- 1 bcran bcran  543K May  2 08:12
>>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
>>> -rw-rw-r-- 1 bcran bcran  543K May  2 08:13
>>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
>>> -rw-rw-r-- 1 bcran bcran  508K May  2 08:12
>>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
>>> -rw-rw-r-- 1 bcran bcran  508K May  2 08:13
>>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi
>>>
>>>> Why we add "-flto" for "NOLTO" ?
>>>>>> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
>>>>>> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto
>>> I don't know why -flto was added for the GCC49 flags, but when I created
>>> the GCCNOLTO flags I copied it because I presume there's a reason this
>>> specific test package requires it.
>>>
>>>
>>> --
>>>
>>> Rebecca Cran
>>>
>>>
>>>
>>> 
>>>
>>

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

* 回复: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
  2023-05-05  2:11             ` Rebecca Cran
@ 2023-05-05  7:41               ` gaoliming
  2023-05-05  9:14                 ` Rebecca Cran
  0 siblings, 1 reply; 29+ messages in thread
From: gaoliming @ 2023-05-05  7:41 UTC (permalink / raw)
  To: devel, rebecca, 'Yao, Jiewen', 'Wang, Jian J',
	'Lu, Xiaoyu1', 'Jiang, Guomin',
	'Andrew Fish', 'Ni, Ray', 'Chiu, Chasel',
	'Desimone, Nathaniel L', 'Zeng, Star'

Jiewen:
  As Rebecca describes, IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc GCC49 tool chain adds -flto option to enable link-time optimization. 
  So, new GCCNOLTO also copies this option. QemuFspPkg.dsc is in IntelFsp2Pkg. Fsp2Pkg maintainer may give the answer why adds -flto option for GCC49.

Rebecca:
  This patch makes the changes cross the different packages. So, it may bring the confuse to the different package maintainers. Can these changes be separated for the different packages?

Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Rebecca Cran
> 发送时间: 2023年5月5日 10:12
> 收件人: Yao, Jiewen <jiewen.yao@intel.com>; Gao, Liming
> <gaoliming@byosoft.com.cn>; devel@edk2.groups.io; Wang, Jian J
> <jian.j.wang@intel.com>; Lu, Xiaoyu1 <xiaoyu1.lu@intel.com>; Jiang, Guomin
> <guomin.jiang@intel.com>; 'Andrew Fish' <afish@apple.com>; Ni, Ray
> <ray.ni@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Desimone,
> Nathaniel L <nathaniel.l.desimone@intel.com>; Zeng, Star
> <star.zeng@intel.com>
> 主题: Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains
> to tools_def.txt and update packages
> 
> If you look at the entire block, GCC49 also has -flto, so since GCCNOLTO
> is a copy of GCC49, that's why it has -flto:
> 
> 
> # Append build options for EDK and EDKII drivers (= is Append, == is
> Replace)
>    # 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
> 
> Hopefully we can remove the flag in future, but since it's in
> IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc and not a main .dsc file I'm not
> sure it's very important.
> 
> 
> --
> 
> Rebecca Cran
> 
> 
> On 5/4/23 20:02, Yao, Jiewen wrote:
> > Thanks Liming.
> >
> > I am not sure below change is expected or not. Please feedback if possible.
> Thank you!
> >
> >> Why we add "-flto" for "NOLTO" ?
> >>>> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
> >>>> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto
> >
> >> -----Original Message-----
> >> From: gaoliming <gaoliming@byosoft.com.cn>
> >> Sent: Friday, May 5, 2023 10:00 AM
> >> To: devel@edk2.groups.io; rebecca@bsdio.com; Yao, Jiewen
> >> <jiewen.yao@intel.com>; Wang, Jian J <jian.j.wang@intel.com>; Lu,
> Xiaoyu1
> >> <xiaoyu1.lu@intel.com>; Jiang, Guomin <guomin.jiang@intel.com>;
> 'Andrew
> >> Fish' <afish@apple.com>; Ni, Ray <ray.ni@intel.com>; Chiu, Chasel
> >> <chasel.chiu@intel.com>; Desimone, Nathaniel L
> >> <nathaniel.l.desimone@intel.com>; Zeng, Star <star.zeng@intel.com>
> >> Subject: 回复: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO
> >> toolchains to tools_def.txt and update packages
> >>
> >> Rebecca:
> >>    I understand this change is to add GCC and GCCNOLTO toolchain. GCC
> is
> >> same to GCC5, GCCNOLTO is same to GCC49. So, new tool chain copies the
> >> same changes from origin one. Right?
> >>
> >> Thanks
> >> Liming
> >>> -----邮件原件-----
> >>> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Rebecca
> >> Cran
> >>> 发送时间: 2023年5月2日 22:23
> >>> 收件人: Yao, Jiewen <jiewen.yao@intel.com>; devel@edk2.groups.io;
> >> Wang,
> >>> Jian J <jian.j.wang@intel.com>; Lu, Xiaoyu1 <xiaoyu1.lu@intel.com>;
> Jiang,
> >>> Guomin <guomin.jiang@intel.com>; Andrew Fish <afish@apple.com>; Ni,
> >> Ray
> >>> <ray.ni@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Desimone,
> >>> Nathaniel L <nathaniel.l.desimone@intel.com>; Zeng, Star
> >>> <star.zeng@intel.com>
> >>> 主题: Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO
> >> toolchains
> >>> to tools_def.txt and update packages
> >>>
> >>> On 5/2/23 00:35, Yao, Jiewen wrote:
> >>>> Have you evaluated size impact with this new compiler option?
> Especially
> >>> crypto library.
> >>>> Bigger? Smaller?
> >>> The increase in size when we disable LTO doesn't seem too bad:
> >>>
> >>> With LTO:
> >>>
> >>> -rwxrwxr-x 1 bcran bcran   13M May  2 08:11
> >>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
> >>> -rwxrwxr-x 1 bcran bcran   13M May  2 08:11
> >>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
> >>> -rwxrwxr-x 1 bcran bcran   11M May  2 08:11
> >>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
> >>> -rwxrwxr-x 1 bcran bcran   11M May  2 08:11
> >>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
> >>> -rwxrwxr-x 1 bcran bcran  8.5M May  2 08:11
> >>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
> >>> -rwxrwxr-x 1 bcran bcran  8.3M May  2 08:11
> >>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
> >>> -rwxrwxr-x 1 bcran bcran  8.0M May  2 08:11
> >>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
> >>> -rwxrwxr-x 1 bcran bcran  7.8M May  2 08:11
> >>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
> >>> -rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11
> >>> BaseCryptLibUnitTestShell.debug
> >>> -rwxrwxr-x 1 bcran bcran  7.0M May  2 08:11
> >>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
> >>> -rwxrwxr-x 1 bcran bcran  6.9M May  2 08:11
> >>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
> >>> -rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11
> >>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
> >>> -rwxrwxr-x 1 bcran bcran  6.7M May  2 08:11
> >>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
> >>> -rwxrwxr-x 1 bcran bcran  6.5M May  2 08:11
> >>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
> >>> -rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11
> >>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
> >>> -rwxrwxr-x 1 bcran bcran  6.2M May  2 08:11
> >>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
> >>> -rw-rw-r-- 1 bcran bcran 1005K May  2 08:11
> >>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
> >>> -rw-rw-r-- 1 bcran bcran  903K May  2 08:11
> >>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
> >>> -rw-rw-r-- 1 bcran bcran  811K May  2 08:11
> >>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
> >>> -rw-rw-r-- 1 bcran bcran  755K May  2 08:11
> >>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
> >>> -rw-rw-r-- 1 bcran bcran  724K May  2 08:11
> >>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
> >>> -rw-rw-r-- 1 bcran bcran  710K May  2 08:11
> >>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
> >>> -rw-rw-r-- 1 bcran bcran  654K May  2 08:11
> >>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
> >>> -rw-rw-r-- 1 bcran bcran  623K May  2 08:11
> >>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
> >>> -rw-rw-r-- 1 bcran bcran  585K May  2 08:11
> >>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
> >>> -rw-rw-r-- 1 bcran bcran  560K May  2 08:11
> BaseCryptLibUnitTestShell.efi
> >>> -rw-rw-r-- 1 bcran bcran  555K May  2 08:11
> >>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
> >>> -rw-rw-r-- 1 bcran bcran  500K May  2 08:11
> >>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
> >>> -rw-rw-r-- 1 bcran bcran  485K May  2 08:11
> >>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
> >>> -rw-rw-r-- 1 bcran bcran  485K May  2 08:11
> >>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
> >>> -rw-rw-r-- 1 bcran bcran  454K May  2 08:11
> >>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
> >>> -rw-rw-r-- 1 bcran bcran  454K May  2 08:11
> >>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi
> >>>
> >>> Without LTO:
> >>> -rwxrwxr-x 1 bcran bcran   14M May  2 08:13
> >>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.debug
> >>> -rwxrwxr-x 1 bcran bcran   14M May  2 08:13
> >>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.debug
> >>> -rwxrwxr-x 1 bcran bcran   12M May  2 08:13
> >>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.debug
> >>> -rwxrwxr-x 1 bcran bcran   12M May  2 08:13
> >>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.debug
> >>> -rwxrwxr-x 1 bcran bcran  9.5M May  2 08:13
> >>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.debug
> >>> -rwxrwxr-x 1 bcran bcran  9.2M May  2 08:13
> >>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.debug
> >>> -rwxrwxr-x 1 bcran bcran  8.9M May  2 08:13
> >>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.debug
> >>> -rwxrwxr-x 1 bcran bcran  8.7M May  2 08:13
> >>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.debug
> >>> -rwxrwxr-x 1 bcran bcran  8.0M May  2 08:13
> >>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.debug
> >>> -rwxrwxr-x 1 bcran bcran  7.9M May  2 08:13
> >>> BaseCryptLibUnitTestShell.debug
> >>> -rwxrwxr-x 1 bcran bcran  7.9M May  2 08:12
> >>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.debug
> >>> -rwxrwxr-x 1 bcran bcran  7.7M May  2 08:12
> >>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.debug
> >>> -rwxrwxr-x 1 bcran bcran  7.7M May  2 08:13
> >>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.debug
> >>> -rwxrwxr-x 1 bcran bcran  7.4M May  2 08:13
> >>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.debug
> >>> -rwxrwxr-x 1 bcran bcran  7.2M May  2 08:12
> >>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.debug
> >>> -rwxrwxr-x 1 bcran bcran  7.2M May  2 08:13
> >>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.debug
> >>> -rw-rw-r-- 1 bcran bcran  1.1M May  2 08:13
> >>> CryptoDxe_41A491D1-A972-468B-A299-DABF415A43B7.efi
> >>> -rw-rw-r-- 1 bcran bcran 1011K May  2 08:13
> >>> CryptoDxe_AA83B296-F6EA-447F-B013-E80E98629CF8.efi
> >>> -rw-rw-r-- 1 bcran bcran  914K May  2 08:13
> >>> CryptoDxe_9FBDAD27-910C-4229-9EFF-A93BB5FE18C6.efi
> >>> -rw-rw-r-- 1 bcran bcran  823K May  2 08:13
> >>> CryptoSmm_C1760694-AB3A-4532-8C6D-52D8F86EB1AA.efi
> >>> -rw-rw-r-- 1 bcran bcran  813K May  2 08:13
> >>> CryptoDxe_ADD6D05A-52A2-437B-98E7-DBFDA89352CD.efi
> >>> -rw-rw-r-- 1 bcran bcran  789K May  2 08:13
> >>> CryptoPei_A10827AD-7598-4955-B661-52EE2B62B057.efi
> >>> -rw-rw-r-- 1 bcran bcran  722K May  2 08:13
> >>> CryptoSmm_1930CE7E-6598-48ED-8AB1-EBE7E85EC254.efi
> >>> -rw-rw-r-- 1 bcran bcran  687K May  2 08:13
> >>> CryptoPei_D51FCE59-6860-49C0-9B35-984470735D17.efi
> >>> -rw-rw-r-- 1 bcran bcran  644K May  2 08:13
> >>> CryptoSmm_828959D3-CEA6-4B79-B1FC-5AFA0D7F2144.efi
> >>> -rw-rw-r-- 1 bcran bcran  632K May  2 08:13
> BaseCryptLibUnitTestShell.efi
> >>> -rw-rw-r-- 1 bcran bcran  610K May  2 08:13
> >>> CryptoPei_DCC9CB49-7BE2-47C6-864E-6DCC932360F9.efi
> >>> -rw-rw-r-- 1 bcran bcran  567K May  2 08:12
> >>> CryptoDxe_31C17C54-325D-47D5-8622-888098F10E44.efi
> >>> -rw-rw-r-- 1 bcran bcran  543K May  2 08:12
> >>> CryptoSmm_1A1C9E13-5722-4636-AB73-31328EDE8BAF.efi
> >>> -rw-rw-r-- 1 bcran bcran  543K May  2 08:13
> >>> CryptoSmm_E4D7D1E3-E886-4412-A442-EFD6F2502DD3.efi
> >>> -rw-rw-r-- 1 bcran bcran  508K May  2 08:12
> >>> CryptoPei_C693A250-6B36-49B9-B7F3-7283F8136A72.efi
> >>> -rw-rw-r-- 1 bcran bcran  508K May  2 08:13
> >>> CryptoPei_EBD49F5C-6D8B-40D1-A56D-9AFA485A8661.efi
> >>>
> >>>> Why we add "-flto" for "NOLTO" ?
> >>>>>> +  *_GCCNOLTO_IA32_CC_FLAGS = -flto
> >>>>>> +  *_GCCNOLTO_IA32_DLINK_FLAGS = -flto
> >>> I don't know why -flto was added for the GCC49 flags, but when I created
> >>> the GCCNOLTO flags I copied it because I presume there's a reason this
> >>> specific test package requires it.
> >>>
> >>>
> >>> --
> >>>
> >>> Rebecca Cran
> >>>
> >>>
> >>>
> >>>
> >>>
> >>
> 
> 
> 
> 




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

* Re: [edk2-devel] [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages
  2023-05-05  7:41               ` 回复: " gaoliming
@ 2023-05-05  9:14                 ` Rebecca Cran
  0 siblings, 0 replies; 29+ messages in thread
From: Rebecca Cran @ 2023-05-05  9:14 UTC (permalink / raw)
  To: devel, gaoliming, Jiewen Yao, 'Wang, Jian J',
	'Lu, Xiaoyu1', 'Jiang, Guomin', Andrew Fish,
	'Ni, Ray', 'Chiu, Chasel',
	'Desimone, Nathaniel L', 'Zeng, Star'

On Fri, May 5, 2023, at 1:41 AM, gaoliming via groups.io wrote:
> Rebecca:
>   This patch makes the changes cross the different packages. So, it may 
> bring the confuse to the different package maintainers. Can these 
> changes be separated for the different packages?
>

Yes, I can send the changes that haven’t had reviews yet as new separate patches.

And to avoid further delay and reduce confusion, I can merge the patches which have already been reviewed.

Rebecca

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

end of thread, other threads:[~2023-05-05  9:14 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-01 16:08 [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 01/16] BaseTools: Remove VS2008, 2010, 2012 and 2013 toolchain definitions Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 02/16] BaseTools: Remove VS2008-VS2013 remnants Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 03/16] MdePkg: " Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 04/16] edksetup.bat: " Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 05/16] BaseTools: Remove unused IPHONE_TOOLS and SOURCERY_CYGWIN_TOOLS defs Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 06/16] BaseTools: Remove EBC (EFI Byte Code) compiler definitions Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 07/16] BaseTools: Update VS toolchain descriptions in tools_def.txt.template Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 08/16] Add GCC and GCCNOLTO toolchains to tools_def.txt and update packages Rebecca Cran
2023-05-02  0:06   ` Rebecca Cran
2023-05-02  6:35     ` [edk2-devel] " Yao, Jiewen
2023-05-02 14:23       ` Rebecca Cran
2023-05-05  2:00         ` 回复: " gaoliming
2023-05-05  2:02           ` Yao, Jiewen
2023-05-05  2:11             ` Rebecca Cran
2023-05-05  7:41               ` 回复: " gaoliming
2023-05-05  9:14                 ` Rebecca Cran
2023-05-05  2:05           ` 回复: " Rebecca Cran
     [not found]   ` <175B2AD2536192C7.26969@groups.io>
2023-05-02  0:08     ` Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 09/16] BaseTools/Conf/tools_def.template: Add section for deprecated toolchains Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 10/16] BaseTools: Add ARM and AARCH64 CLANGDWARF support in tools_def.template Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 11/16] BaseTools: As with CLANGDWARF IA32 and X64, use lld for ARM and AARCH64 Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 12/16] BaseTools: Remove CLANG35 toolchain from tools_def.template Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 13/16] BaseTools: Delete CLANG38 " Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 14/16] BaseTools/Conf/tools_def.template: Bump VERSION to 3.00 Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 15/16] CryptoPkg: Delete CLANG35 and CLANG38 build flags Rebecca Cran
2023-05-01 16:08 ` [PATCH v6 16/16] CryptoPkg: Copy CLANGPDB build flags to CLANGDWARF Rebecca Cran
2023-05-01 18:36 ` [edk2-devel] [PATCH v6 00/16] BaseTools,CryptoPkg,EmulatorPkg,MdePkg,others: Delete CLANG35,CLANG38,VS2008-2013,EBC, deprecate GCC48,GCC49,GCC5, add GCC and GCCNOLTO, update CLANGDWARF Michael D Kinney
2023-05-04 12:42 ` Rebecca Cran

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