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