Re: [edk2-devel] 回复: [PATCH v4 09/13] BaseTools/Conf/tools_def.template: Add GCC and GCCNOLTO toolchains
Rebecca Cran
rebecca at bsdio.com
Fri Apr 21 17:16:25 UTC 2023
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 at bsdio.com>
>> 发送时间: 2023年4月20日 3:58
>> 收件人: devel at edk2.groups.io; Liming Gao <gaoliming at byosoft.com.cn>;
>> Bob Feng <bob.c.feng at intel.com>; Yuwei Chen <yuwei.chen at intel.com>;
>> Michael D Kinney <michael.d.kinney at intel.com>; Michael Kubacki
>> <mikuback at linux.microsoft.com>; Sean Brogan
>> <sean.brogan at microsoft.com>; Chasel Chiu <chasel.chiu at intel.com>; Nate
>> DeSimone <nathaniel.l.desimone at intel.com>; Star Zeng
>> <star.zeng at intel.com>; Andrew Fish <afish at apple.com>
>> 抄送: Rebecca Cran <rebecca at bsdio.com>; Ray Ni <ray.ni at intel.com>; Leif
>> Lindholm <quic_llindhol at quicinc.com>; Zhiguang Liu
>> <zhiguang.liu at intel.com>; Jian J Wang <jian.j.wang at intel.com>; Xiaoyu Lu
>> <xiaoyu1.lu at intel.com>; Guomin Jiang <guomin.jiang at intel.com>; Gua Guo
>> <gua.guo at intel.com>; Ard Biesheuvel <ardb at kernel.org>; Pedro Falcato
>> <pedro.falcato at gmail.com>; Gerd Hoffmann <kraxel at redhat.com>; Marvin
>> Häuser <mhaeuser at 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 at 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/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list