* [PATCH] BaseTools: Add -ffat-lto-objects option in GCC5 tool chain @ 2021-05-19 2:27 gaoliming 2021-05-19 2:35 ` [edk2-devel] " Yao, Jiewen 2021-05-19 7:23 ` Laszlo Ersek 0 siblings, 2 replies; 7+ messages in thread From: gaoliming @ 2021-05-19 2:27 UTC (permalink / raw) To: devel; +Cc: Sergei Dmitrouk, Bob Feng, Ard Biesheuvel BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3403 This option can trig the uninitialized warning when lto is enabled. The image size data is also collected for OVMF. There is no impact. Cc: Sergei Dmitrouk <sergei@posteo.net> Cc: Bob Feng <bob.c.feng@intel.com> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Signed-off-by: Liming Gao <gaoliming@byosoft.com.cn> --- BaseTools/Conf/tools_def.template | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 498696e583..aad5297385 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -2315,10 +2315,10 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 *_GCC5_IA32_OBJCOPY_FLAGS = *_GCC5_IA32_NASM_FLAGS = -f elf32 - DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os + DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -ffat-lto-objects -flto -Os DEBUG_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 -RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os -Wno-unused-but-set-variable -Wno-unused-const-variable +RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -ffat-lto-objects -flto -Os -Wno-unused-but-set-variable -Wno-unused-const-variable RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 NOOPT_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -O0 @@ -2347,10 +2347,10 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, *_GCC5_X64_OBJCOPY_FLAGS = *_GCC5_X64_NASM_FLAGS = -f elf64 - DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os + DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -ffat-lto-objects -flto -DUSING_LTO -Os DEBUG_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os -RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os -Wno-unused-but-set-variable -Wno-unused-const-variable +RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -ffat-lto-objects -flto -DUSING_LTO -Os -Wno-unused-but-set-variable -Wno-unused-const-variable RELEASE_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os NOOPT_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -O0 @@ -2382,10 +2382,10 @@ RELEASE_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os *_GCC5_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) *_GCC5_ARM_CC_XIPFLAGS = DEF(GCC5_ARM_CC_XIPFLAGS) - DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable + DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -ffat-lto-objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable DEBUG_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable +RELEASE_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -ffat-lto-objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable RELEASE_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -O0 @@ -2416,11 +2416,11 @@ RELEASE_GCC5_ARM_DLINK_FLAGS = DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKS *_GCC5_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) *_GCC5_AARCH64_CC_XIPFLAGS = DEF(GCC5_AARCH64_CC_XIPFLAGS) - DEBUG_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable + DEBUG_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -ffat-lto-objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable DEBUG_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 -RELEASE_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable +RELEASE_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -ffat-lto-objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable RELEASE_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 -- 2.27.0.windows.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in GCC5 tool chain 2021-05-19 2:27 [PATCH] BaseTools: Add -ffat-lto-objects option in GCC5 tool chain gaoliming @ 2021-05-19 2:35 ` Yao, Jiewen 2021-05-19 2:51 ` 回复: " gaoliming 2021-05-19 7:23 ` Laszlo Ersek 1 sibling, 1 reply; 7+ messages in thread From: Yao, Jiewen @ 2021-05-19 2:35 UTC (permalink / raw) To: devel@edk2.groups.io, gaoliming@byosoft.com.cn Cc: Sergei Dmitrouk, Feng, Bob C, Ard Biesheuvel Thanks Liming. Acked-by: Jiewen Yao <Jiewen.yao@intel.com> Just want to make sure, that this toolchain is covered in the existing CI build process, right? Thank you Yao Jiewen > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of gaoliming > Sent: Wednesday, May 19, 2021 10:27 AM > To: devel@edk2.groups.io > Cc: Sergei Dmitrouk <sergei@posteo.net>; Feng, Bob C <bob.c.feng@intel.com>; > Ard Biesheuvel <ardb+tianocore@kernel.org> > Subject: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in GCC5 > tool chain > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3403 > > This option can trig the uninitialized warning when lto is enabled. > The image size data is also collected for OVMF. There is no impact. > > Cc: Sergei Dmitrouk <sergei@posteo.net> > Cc: Bob Feng <bob.c.feng@intel.com> > Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> > Signed-off-by: Liming Gao <gaoliming@byosoft.com.cn> > --- > BaseTools/Conf/tools_def.template | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > index 498696e583..aad5297385 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -2315,10 +2315,10 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z > common-page-size=0x20 > *_GCC5_IA32_OBJCOPY_FLAGS = > *_GCC5_IA32_NASM_FLAGS = -f elf32 > > - DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os > + DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -ffat-lto- > objects -flto -Os > DEBUG_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) - > flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 > > -RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os - > Wno-unused-but-set-variable -Wno-unused-const-variable > +RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -ffat-lto- > objects -flto -Os -Wno-unused-but-set-variable -Wno-unused-const-variable > RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) - > flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 > > NOOPT_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -O0 > @@ -2347,10 +2347,10 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = > DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, > *_GCC5_X64_OBJCOPY_FLAGS = > *_GCC5_X64_NASM_FLAGS = -f elf64 > > - DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto - > DUSING_LTO -Os > + DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -ffat-lto- > objects -flto -DUSING_LTO -Os > DEBUG_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > > -RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto - > DUSING_LTO -Os -Wno-unused-but-set-variable -Wno-unused-const-variable > +RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -ffat-lto- > objects -flto -DUSING_LTO -Os -Wno-unused-but-set-variable -Wno-unused- > const-variable > RELEASE_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > > NOOPT_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -O0 > @@ -2382,10 +2382,10 @@ RELEASE_GCC5_X64_DLINK_FLAGS = > DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > *_GCC5_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) > DEF(GCC_VFRPP_FLAGS) > *_GCC5_ARM_CC_XIPFLAGS = DEF(GCC5_ARM_CC_XIPFLAGS) > > - DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -flto -Wno- > unused-but-set-variable -Wno-unused-const-variable > + DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -ffat-lto- > objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > DEBUG_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -flto -Wno- > unused-but-set-variable -Wno-unused-const-variable > +RELEASE_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -ffat-lto- > objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > RELEASE_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -O0 > @@ -2416,11 +2416,11 @@ RELEASE_GCC5_ARM_DLINK_FLAGS = > DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKS > *_GCC5_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) > DEF(GCC_VFRPP_FLAGS) > *_GCC5_AARCH64_CC_XIPFLAGS = DEF(GCC5_AARCH64_CC_XIPFLAGS) > > - DEBUG_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -flto > -Wno-unused-but-set-variable -Wno-unused-const-variable > + DEBUG_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) - > ffat-lto-objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > DEBUG_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 > > -RELEASE_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -flto > -Wno-unused-but-set-variable -Wno-unused-const-variable > +RELEASE_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) - > ffat-lto-objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > RELEASE_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 > > -- > 2.27.0.windows.1 > > > > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* 回复: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in GCC5 tool chain 2021-05-19 2:35 ` [edk2-devel] " Yao, Jiewen @ 2021-05-19 2:51 ` gaoliming 0 siblings, 0 replies; 7+ messages in thread From: gaoliming @ 2021-05-19 2:51 UTC (permalink / raw) To: 'Yao, Jiewen', devel Cc: 'Sergei Dmitrouk', 'Feng, Bob C', 'Ard Biesheuvel' Yes. GCC5 DEBUG/RELEASE/NOOPT is in current CI build. Thanks Liming > -----邮件原件----- > 发件人: Yao, Jiewen <jiewen.yao@intel.com> > 发送时间: 2021年5月19日 10:36 > 收件人: devel@edk2.groups.io; gaoliming@byosoft.com.cn > 抄送: Sergei Dmitrouk <sergei@posteo.net>; Feng, Bob C > <bob.c.feng@intel.com>; Ard Biesheuvel <ardb+tianocore@kernel.org> > 主题: RE: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in > GCC5 tool chain > > Thanks Liming. > Acked-by: Jiewen Yao <Jiewen.yao@intel.com> > > Just want to make sure, that this toolchain is covered in the existing CI build > process, right? > > Thank you > Yao Jiewen > > > -----Original Message----- > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of > gaoliming > > Sent: Wednesday, May 19, 2021 10:27 AM > > To: devel@edk2.groups.io > > Cc: Sergei Dmitrouk <sergei@posteo.net>; Feng, Bob C > <bob.c.feng@intel.com>; > > Ard Biesheuvel <ardb+tianocore@kernel.org> > > Subject: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in > GCC5 > > tool chain > > > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3403 > > > > This option can trig the uninitialized warning when lto is enabled. > > The image size data is also collected for OVMF. There is no impact. > > > > Cc: Sergei Dmitrouk <sergei@posteo.net> > > Cc: Bob Feng <bob.c.feng@intel.com> > > Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> > > Signed-off-by: Liming Gao <gaoliming@byosoft.com.cn> > > --- > > BaseTools/Conf/tools_def.template | 16 ++++++++-------- > > 1 file changed, 8 insertions(+), 8 deletions(-) > > > > diff --git a/BaseTools/Conf/tools_def.template > > b/BaseTools/Conf/tools_def.template > > index 498696e583..aad5297385 100755 > > --- a/BaseTools/Conf/tools_def.template > > +++ b/BaseTools/Conf/tools_def.template > > @@ -2315,10 +2315,10 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS > = -z > > common-page-size=0x20 > > *_GCC5_IA32_OBJCOPY_FLAGS = > > *_GCC5_IA32_NASM_FLAGS = -f elf32 > > > > - DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > -flto -Os > > + DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > -ffat-lto- > > objects -flto -Os > > DEBUG_GCC5_IA32_DLINK_FLAGS = > DEF(GCC5_IA32_X64_DLINK_FLAGS) - > > flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 > > > > -RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > -flto -Os - > > Wno-unused-but-set-variable -Wno-unused-const-variable > > +RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > -ffat-lto- > > objects -flto -Os -Wno-unused-but-set-variable -Wno-unused-const-variable > > RELEASE_GCC5_IA32_DLINK_FLAGS = > DEF(GCC5_IA32_X64_DLINK_FLAGS) - > > flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 > > > > NOOPT_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > -O0 > > @@ -2347,10 +2347,10 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = > > DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, > > *_GCC5_X64_OBJCOPY_FLAGS = > > *_GCC5_X64_NASM_FLAGS = -f elf64 > > > > - DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > -flto - > > DUSING_LTO -Os > > + DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > -ffat-lto- > > objects -flto -DUSING_LTO -Os > > DEBUG_GCC5_X64_DLINK_FLAGS = > DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > > > > -RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > -flto - > > DUSING_LTO -Os -Wno-unused-but-set-variable > -Wno-unused-const-variable > > +RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > -ffat-lto- > > objects -flto -DUSING_LTO -Os -Wno-unused-but-set-variable > -Wno-unused- > > const-variable > > RELEASE_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) > -flto -Os > > > > NOOPT_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > -O0 > > @@ -2382,10 +2382,10 @@ RELEASE_GCC5_X64_DLINK_FLAGS = > > DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > > *_GCC5_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) > $(PLATFORM_FLAGS) > > DEF(GCC_VFRPP_FLAGS) > > *_GCC5_ARM_CC_XIPFLAGS = > DEF(GCC5_ARM_CC_XIPFLAGS) > > > > - DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) > -flto -Wno- > > unused-but-set-variable -Wno-unused-const-variable > > + DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) > -ffat-lto- > > objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > > DEBUG_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) > -flto -Wno- > > unused-but-set-variable -Wno-unused-const-variable > > +RELEASE_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) > -ffat-lto- > > objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > > RELEASE_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) > -O0 > > @@ -2416,11 +2416,11 @@ RELEASE_GCC5_ARM_DLINK_FLAGS = > > DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKS > > *_GCC5_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) > $(PLATFORM_FLAGS) > > DEF(GCC_VFRPP_FLAGS) > > *_GCC5_AARCH64_CC_XIPFLAGS = > DEF(GCC5_AARCH64_CC_XIPFLAGS) > > > > - DEBUG_GCC5_AARCH64_CC_FLAGS = > DEF(GCC5_AARCH64_CC_FLAGS) -flto > > -Wno-unused-but-set-variable -Wno-unused-const-variable > > + DEBUG_GCC5_AARCH64_CC_FLAGS = > DEF(GCC5_AARCH64_CC_FLAGS) - > > ffat-lto-objects -flto -Wno-unused-but-set-variable > -Wno-unused-const-variable > > DEBUG_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z > common-page-size=0x20 > > > > -RELEASE_GCC5_AARCH64_CC_FLAGS = > DEF(GCC5_AARCH64_CC_FLAGS) -flto > > -Wno-unused-but-set-variable -Wno-unused-const-variable > > +RELEASE_GCC5_AARCH64_CC_FLAGS = > DEF(GCC5_AARCH64_CC_FLAGS) - > > ffat-lto-objects -flto -Wno-unused-but-set-variable > -Wno-unused-const-variable > > RELEASE_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z > common-page-size=0x20 > > > > -- > > 2.27.0.windows.1 > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in GCC5 tool chain 2021-05-19 2:27 [PATCH] BaseTools: Add -ffat-lto-objects option in GCC5 tool chain gaoliming 2021-05-19 2:35 ` [edk2-devel] " Yao, Jiewen @ 2021-05-19 7:23 ` Laszlo Ersek 2021-05-20 2:37 ` 回复: " gaoliming 1 sibling, 1 reply; 7+ messages in thread From: Laszlo Ersek @ 2021-05-19 7:23 UTC (permalink / raw) To: devel, gaoliming; +Cc: Sergei Dmitrouk, Bob Feng, Ard Biesheuvel Hi Liming, On 05/19/21 04:27, gaoliming wrote: > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3403 > > This option can trig the uninitialized warning when lto is enabled. > The image size data is also collected for OVMF. There is no impact. > > Cc: Sergei Dmitrouk <sergei@posteo.net> > Cc: Bob Feng <bob.c.feng@intel.com> > Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> > Signed-off-by: Liming Gao <gaoliming@byosoft.com.cn> > --- > BaseTools/Conf/tools_def.template | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) I've now read the documentation on "-ffat-lto-objects", and I agree that it should not affect the final module executable sizes. However, I don't understand how this option *helps*. You mention "uninitialized warning". I find nothing related to that in the documentation. According to the documentation, "fat" LTO objects include both object code and intermediate language (GIMPLE) bytecode. Such objects can then be linked with, or without, link-time (= interprocedural) optimization. As I understand the documentation, "fat" LTO objects only make a difference if there are parts of the toolchain that are themselves unaware of LTO, and so need the GIMPLE bytecode to be present in the object files. I *guess* that this is the situation that we have in edk2 -- is there perhaps something in our toolchain(s) that does not "notice" LTO without "fat" LTO objects, and therefore we fail to emit a warning? Because, without LTO, we don't notice that an initialization is missing? This is too speculative. The commit message should please include more details. I'd like to understand what code in edk2 is affected, what the specific warning is, what the problematic component in the toolchain is (i.e., what tool requires GIMPLE bytecode to be present in the object file). Thanks, Laszlo > > diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template > index 498696e583..aad5297385 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -2315,10 +2315,10 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 > *_GCC5_IA32_OBJCOPY_FLAGS = > *_GCC5_IA32_NASM_FLAGS = -f elf32 > > - DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os > + DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -ffat-lto-objects -flto -Os > DEBUG_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 > > -RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os -Wno-unused-but-set-variable -Wno-unused-const-variable > +RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -ffat-lto-objects -flto -Os -Wno-unused-but-set-variable -Wno-unused-const-variable > RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 > > NOOPT_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -O0 > @@ -2347,10 +2347,10 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, > *_GCC5_X64_OBJCOPY_FLAGS = > *_GCC5_X64_NASM_FLAGS = -f elf64 > > - DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os > + DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -ffat-lto-objects -flto -DUSING_LTO -Os > DEBUG_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > > -RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os -Wno-unused-but-set-variable -Wno-unused-const-variable > +RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -ffat-lto-objects -flto -DUSING_LTO -Os -Wno-unused-but-set-variable -Wno-unused-const-variable > RELEASE_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > > NOOPT_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -O0 > @@ -2382,10 +2382,10 @@ RELEASE_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > *_GCC5_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) > *_GCC5_ARM_CC_XIPFLAGS = DEF(GCC5_ARM_CC_XIPFLAGS) > > - DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > + DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -ffat-lto-objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > DEBUG_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > +RELEASE_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -ffat-lto-objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > RELEASE_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -O0 > @@ -2416,11 +2416,11 @@ RELEASE_GCC5_ARM_DLINK_FLAGS = DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKS > *_GCC5_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) > *_GCC5_AARCH64_CC_XIPFLAGS = DEF(GCC5_AARCH64_CC_XIPFLAGS) > > - DEBUG_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > + DEBUG_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -ffat-lto-objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > DEBUG_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 > > -RELEASE_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > +RELEASE_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -ffat-lto-objects -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > RELEASE_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* 回复: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in GCC5 tool chain 2021-05-19 7:23 ` Laszlo Ersek @ 2021-05-20 2:37 ` gaoliming 2021-05-20 7:27 ` Laszlo Ersek 0 siblings, 1 reply; 7+ messages in thread From: gaoliming @ 2021-05-20 2:37 UTC (permalink / raw) To: 'Laszlo Ersek', devel Cc: 'Sergei Dmitrouk', 'Bob Feng', 'Ard Biesheuvel' Laszlo: Here is the discussion https://edk2.groups.io/g/devel/message/75299. Now, some uninitialized warning can't be detected on GCC5 tool chain, but can be detected on GCC49 tool chain. Edk2 CI only covers GCC5 tool chain. So, the merged code may impact GCC49 build. I add this option to expose such uninitialized warning in GCC5 tool chain and increase GCC5 tool chain coverage. And, this is gcc issue https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90844 Yes. This change will expose some existing issues. I will include more detail in the commit message for this change. Thanks Liming > -----邮件原件----- > 发件人: Laszlo Ersek <lersek@redhat.com> > 发送时间: 2021年5月19日 15:23 > 收件人: devel@edk2.groups.io; gaoliming@byosoft.com.cn > 抄送: Sergei Dmitrouk <sergei@posteo.net>; Bob Feng > <bob.c.feng@intel.com>; Ard Biesheuvel <ardb+tianocore@kernel.org> > 主题: Re: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in > GCC5 tool chain > > Hi Liming, > > On 05/19/21 04:27, gaoliming wrote: > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3403 > > > > This option can trig the uninitialized warning when lto is enabled. > > The image size data is also collected for OVMF. There is no impact. > > > > Cc: Sergei Dmitrouk <sergei@posteo.net> > > Cc: Bob Feng <bob.c.feng@intel.com> > > Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> > > Signed-off-by: Liming Gao <gaoliming@byosoft.com.cn> > > --- > > BaseTools/Conf/tools_def.template | 16 ++++++++-------- > > 1 file changed, 8 insertions(+), 8 deletions(-) > > I've now read the documentation on "-ffat-lto-objects", and I agree that > it should not affect the final module executable sizes. > > However, I don't understand how this option *helps*. You mention > "uninitialized warning". I find nothing related to that in the > documentation. > > According to the documentation, "fat" LTO objects include both object > code and intermediate language (GIMPLE) bytecode. Such objects can then > be linked with, or without, link-time (= interprocedural) optimization. > As I understand the documentation, "fat" LTO objects only make a > difference if there are parts of the toolchain that are themselves > unaware of LTO, and so need the GIMPLE bytecode to be present in the > object files. > > I *guess* that this is the situation that we have in edk2 -- is there > perhaps something in our toolchain(s) that does not "notice" LTO without > "fat" LTO objects, and therefore we fail to emit a warning? Because, > without LTO, we don't notice that an initialization is missing? > > This is too speculative. The commit message should please include more > details. I'd like to understand what code in edk2 is affected, what the > specific warning is, what the problematic component in the toolchain is > (i.e., what tool requires GIMPLE bytecode to be present in the object file). > > Thanks, > Laszlo > > > > > > > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > > index 498696e583..aad5297385 100755 > > --- a/BaseTools/Conf/tools_def.template > > +++ b/BaseTools/Conf/tools_def.template > > @@ -2315,10 +2315,10 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS > = -z common-page-size=0x20 > > *_GCC5_IA32_OBJCOPY_FLAGS = > > *_GCC5_IA32_NASM_FLAGS = -f elf32 > > > > - DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > -flto -Os > > + DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > -ffat-lto-objects -flto -Os > > DEBUG_GCC5_IA32_DLINK_FLAGS = > DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os > -Wl,-m,elf_i386,--oformat=elf32-i386 > > > > -RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > -flto -Os -Wno-unused-but-set-variable -Wno-unused-const-variable > > +RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > -ffat-lto-objects -flto -Os -Wno-unused-but-set-variable > -Wno-unused-const-variable > > RELEASE_GCC5_IA32_DLINK_FLAGS = > DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os > -Wl,-m,elf_i386,--oformat=elf32-i386 > > > > NOOPT_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > -O0 > > @@ -2347,10 +2347,10 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = > DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, > > *_GCC5_X64_OBJCOPY_FLAGS = > > *_GCC5_X64_NASM_FLAGS = -f elf64 > > > > - DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > -flto -DUSING_LTO -Os > > + DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > -ffat-lto-objects -flto -DUSING_LTO -Os > > DEBUG_GCC5_X64_DLINK_FLAGS = > DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > > > > -RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > -flto -DUSING_LTO -Os -Wno-unused-but-set-variable > -Wno-unused-const-variable > > +RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > -ffat-lto-objects -flto -DUSING_LTO -Os -Wno-unused-but-set-variable > -Wno-unused-const-variable > > RELEASE_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) > -flto -Os > > > > NOOPT_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > -O0 > > @@ -2382,10 +2382,10 @@ RELEASE_GCC5_X64_DLINK_FLAGS = > DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > > *_GCC5_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) > $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) > > *_GCC5_ARM_CC_XIPFLAGS = > DEF(GCC5_ARM_CC_XIPFLAGS) > > > > - DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) > -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > > + DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) > -ffat-lto-objects -flto -Wno-unused-but-set-variable > -Wno-unused-const-variable > > DEBUG_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) > -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > > +RELEASE_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) > -ffat-lto-objects -flto -Wno-unused-but-set-variable > -Wno-unused-const-variable > > RELEASE_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) > -O0 > > @@ -2416,11 +2416,11 @@ RELEASE_GCC5_ARM_DLINK_FLAGS = > DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKS > > *_GCC5_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) > $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) > > *_GCC5_AARCH64_CC_XIPFLAGS = > DEF(GCC5_AARCH64_CC_XIPFLAGS) > > > > - DEBUG_GCC5_AARCH64_CC_FLAGS = > DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable > -Wno-unused-const-variable > > + DEBUG_GCC5_AARCH64_CC_FLAGS = > DEF(GCC5_AARCH64_CC_FLAGS) -ffat-lto-objects -flto > -Wno-unused-but-set-variable -Wno-unused-const-variable > > DEBUG_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z > common-page-size=0x20 > > > > -RELEASE_GCC5_AARCH64_CC_FLAGS = > DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable > -Wno-unused-const-variable > > +RELEASE_GCC5_AARCH64_CC_FLAGS = > DEF(GCC5_AARCH64_CC_FLAGS) -ffat-lto-objects -flto > -Wno-unused-but-set-variable -Wno-unused-const-variable > > RELEASE_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z > common-page-size=0x20 > > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 回复: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in GCC5 tool chain 2021-05-20 2:37 ` 回复: " gaoliming @ 2021-05-20 7:27 ` Laszlo Ersek 2021-05-21 5:07 ` 回复: " gaoliming 0 siblings, 1 reply; 7+ messages in thread From: Laszlo Ersek @ 2021-05-20 7:27 UTC (permalink / raw) To: gaoliming, devel Cc: 'Sergei Dmitrouk', 'Bob Feng', 'Ard Biesheuvel' On 05/20/21 04:37, gaoliming wrote: > Laszlo: > Here is the discussion https://edk2.groups.io/g/devel/message/75299. > Now, some uninitialized warning can't be detected on GCC5 tool chain, but can be detected on GCC49 tool chain. > Edk2 CI only covers GCC5 tool chain. So, the merged code may impact GCC49 build. > I add this option to expose such uninitialized warning in GCC5 tool chain and increase GCC5 tool chain coverage. > > And, this is gcc issue https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90844 > > Yes. This change will expose some existing issues. I will include more detail in the commit message for this change. Great, thanks for the info. Can you please include the reference https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90844 in the commit message? Acked-by: Laszlo Ersek <lersek@redhat.com> Thanks! Laszlo > > Thanks > Liming >> -----邮件原件----- >> 发件人: Laszlo Ersek <lersek@redhat.com> >> 发送时间: 2021年5月19日 15:23 >> 收件人: devel@edk2.groups.io; gaoliming@byosoft.com.cn >> 抄送: Sergei Dmitrouk <sergei@posteo.net>; Bob Feng >> <bob.c.feng@intel.com>; Ard Biesheuvel <ardb+tianocore@kernel.org> >> 主题: Re: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in >> GCC5 tool chain >> >> Hi Liming, >> >> On 05/19/21 04:27, gaoliming wrote: >>> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3403 >>> >>> This option can trig the uninitialized warning when lto is enabled. >>> The image size data is also collected for OVMF. There is no impact. >>> >>> Cc: Sergei Dmitrouk <sergei@posteo.net> >>> Cc: Bob Feng <bob.c.feng@intel.com> >>> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> >>> Signed-off-by: Liming Gao <gaoliming@byosoft.com.cn> >>> --- >>> BaseTools/Conf/tools_def.template | 16 ++++++++-------- >>> 1 file changed, 8 insertions(+), 8 deletions(-) >> >> I've now read the documentation on "-ffat-lto-objects", and I agree that >> it should not affect the final module executable sizes. >> >> However, I don't understand how this option *helps*. You mention >> "uninitialized warning". I find nothing related to that in the >> documentation. >> >> According to the documentation, "fat" LTO objects include both object >> code and intermediate language (GIMPLE) bytecode. Such objects can then >> be linked with, or without, link-time (= interprocedural) optimization. >> As I understand the documentation, "fat" LTO objects only make a >> difference if there are parts of the toolchain that are themselves >> unaware of LTO, and so need the GIMPLE bytecode to be present in the >> object files. >> >> I *guess* that this is the situation that we have in edk2 -- is there >> perhaps something in our toolchain(s) that does not "notice" LTO without >> "fat" LTO objects, and therefore we fail to emit a warning? Because, >> without LTO, we don't notice that an initialization is missing? >> >> This is too speculative. The commit message should please include more >> details. I'd like to understand what code in edk2 is affected, what the >> specific warning is, what the problematic component in the toolchain is >> (i.e., what tool requires GIMPLE bytecode to be present in the object file). >> >> Thanks, >> Laszlo >> >> >> >>> >>> diff --git a/BaseTools/Conf/tools_def.template >> b/BaseTools/Conf/tools_def.template >>> index 498696e583..aad5297385 100755 >>> --- a/BaseTools/Conf/tools_def.template >>> +++ b/BaseTools/Conf/tools_def.template >>> @@ -2315,10 +2315,10 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS >> = -z common-page-size=0x20 >>> *_GCC5_IA32_OBJCOPY_FLAGS = >>> *_GCC5_IA32_NASM_FLAGS = -f elf32 >>> >>> - DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) >> -flto -Os >>> + DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) >> -ffat-lto-objects -flto -Os >>> DEBUG_GCC5_IA32_DLINK_FLAGS = >> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os >> -Wl,-m,elf_i386,--oformat=elf32-i386 >>> >>> -RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) >> -flto -Os -Wno-unused-but-set-variable -Wno-unused-const-variable >>> +RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) >> -ffat-lto-objects -flto -Os -Wno-unused-but-set-variable >> -Wno-unused-const-variable >>> RELEASE_GCC5_IA32_DLINK_FLAGS = >> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os >> -Wl,-m,elf_i386,--oformat=elf32-i386 >>> >>> NOOPT_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) >> -O0 >>> @@ -2347,10 +2347,10 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = >> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, >>> *_GCC5_X64_OBJCOPY_FLAGS = >>> *_GCC5_X64_NASM_FLAGS = -f elf64 >>> >>> - DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) >> -flto -DUSING_LTO -Os >>> + DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) >> -ffat-lto-objects -flto -DUSING_LTO -Os >>> DEBUG_GCC5_X64_DLINK_FLAGS = >> DEF(GCC5_X64_DLINK_FLAGS) -flto -Os >>> >>> -RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) >> -flto -DUSING_LTO -Os -Wno-unused-but-set-variable >> -Wno-unused-const-variable >>> +RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) >> -ffat-lto-objects -flto -DUSING_LTO -Os -Wno-unused-but-set-variable >> -Wno-unused-const-variable >>> RELEASE_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) >> -flto -Os >>> >>> NOOPT_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) >> -O0 >>> @@ -2382,10 +2382,10 @@ RELEASE_GCC5_X64_DLINK_FLAGS = >> DEF(GCC5_X64_DLINK_FLAGS) -flto -Os >>> *_GCC5_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) >> $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) >>> *_GCC5_ARM_CC_XIPFLAGS = >> DEF(GCC5_ARM_CC_XIPFLAGS) >>> >>> - DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) >> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable >>> + DEBUG_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) >> -ffat-lto-objects -flto -Wno-unused-but-set-variable >> -Wno-unused-const-variable >>> DEBUG_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) >> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable >>> +RELEASE_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) >> -ffat-lto-objects -flto -Wno-unused-but-set-variable >> -Wno-unused-const-variable >>> RELEASE_GCC5_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_GCC5_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) >> -O0 >>> @@ -2416,11 +2416,11 @@ RELEASE_GCC5_ARM_DLINK_FLAGS = >> DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKS >>> *_GCC5_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) >> $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) >>> *_GCC5_AARCH64_CC_XIPFLAGS = >> DEF(GCC5_AARCH64_CC_XIPFLAGS) >>> >>> - DEBUG_GCC5_AARCH64_CC_FLAGS = >> DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable >> -Wno-unused-const-variable >>> + DEBUG_GCC5_AARCH64_CC_FLAGS = >> DEF(GCC5_AARCH64_CC_FLAGS) -ffat-lto-objects -flto >> -Wno-unused-but-set-variable -Wno-unused-const-variable >>> DEBUG_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z >> common-page-size=0x20 >>> >>> -RELEASE_GCC5_AARCH64_CC_FLAGS = >> DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable >> -Wno-unused-const-variable >>> +RELEASE_GCC5_AARCH64_CC_FLAGS = >> DEF(GCC5_AARCH64_CC_FLAGS) -ffat-lto-objects -flto >> -Wno-unused-but-set-variable -Wno-unused-const-variable >>> RELEASE_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z >> common-page-size=0x20 >>> >>> > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* 回复: 回复: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in GCC5 tool chain 2021-05-20 7:27 ` Laszlo Ersek @ 2021-05-21 5:07 ` gaoliming 0 siblings, 0 replies; 7+ messages in thread From: gaoliming @ 2021-05-21 5:07 UTC (permalink / raw) To: devel, lersek Cc: 'Sergei Dmitrouk', 'Bob Feng', 'Ard Biesheuvel' Laszlo: Sure. I will include gcc issue link in the commit message. I will send V2 patch. Thanks Liming > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Laszlo Ersek > 发送时间: 2021年5月20日 15:27 > 收件人: gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io > 抄送: 'Sergei Dmitrouk' <sergei@posteo.net>; 'Bob Feng' > <bob.c.feng@intel.com>; 'Ard Biesheuvel' <ardb+tianocore@kernel.org> > 主题: Re: 回复: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option > in GCC5 tool chain > > On 05/20/21 04:37, gaoliming wrote: > > Laszlo: > > Here is the discussion https://edk2.groups.io/g/devel/message/75299. > > Now, some uninitialized warning can't be detected on GCC5 tool chain, > but can be detected on GCC49 tool chain. > > Edk2 CI only covers GCC5 tool chain. So, the merged code may impact > GCC49 build. > > I add this option to expose such uninitialized warning in GCC5 tool chain > and increase GCC5 tool chain coverage. > > > > And, this is gcc issue > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90844 > > > > Yes. This change will expose some existing issues. I will include more > detail in the commit message for this change. > > Great, thanks for the info. > > Can you please include the reference > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90844 > > in the commit message? > > Acked-by: Laszlo Ersek <lersek@redhat.com> > > Thanks! > Laszlo > > > > > Thanks > > Liming > >> -----邮件原件----- > >> 发件人: Laszlo Ersek <lersek@redhat.com> > >> 发送时间: 2021年5月19日 15:23 > >> 收件人: devel@edk2.groups.io; gaoliming@byosoft.com.cn > >> 抄送: Sergei Dmitrouk <sergei@posteo.net>; Bob Feng > >> <bob.c.feng@intel.com>; Ard Biesheuvel <ardb+tianocore@kernel.org> > >> 主题: Re: [edk2-devel] [PATCH] BaseTools: Add -ffat-lto-objects option in > >> GCC5 tool chain > >> > >> Hi Liming, > >> > >> On 05/19/21 04:27, gaoliming wrote: > >>> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3403 > >>> > >>> This option can trig the uninitialized warning when lto is enabled. > >>> The image size data is also collected for OVMF. There is no impact. > >>> > >>> Cc: Sergei Dmitrouk <sergei@posteo.net> > >>> Cc: Bob Feng <bob.c.feng@intel.com> > >>> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> > >>> Signed-off-by: Liming Gao <gaoliming@byosoft.com.cn> > >>> --- > >>> BaseTools/Conf/tools_def.template | 16 ++++++++-------- > >>> 1 file changed, 8 insertions(+), 8 deletions(-) > >> > >> I've now read the documentation on "-ffat-lto-objects", and I agree that > >> it should not affect the final module executable sizes. > >> > >> However, I don't understand how this option *helps*. You mention > >> "uninitialized warning". I find nothing related to that in the > >> documentation. > >> > >> According to the documentation, "fat" LTO objects include both object > >> code and intermediate language (GIMPLE) bytecode. Such objects can then > >> be linked with, or without, link-time (= interprocedural) optimization. > >> As I understand the documentation, "fat" LTO objects only make a > >> difference if there are parts of the toolchain that are themselves > >> unaware of LTO, and so need the GIMPLE bytecode to be present in the > >> object files. > >> > >> I *guess* that this is the situation that we have in edk2 -- is there > >> perhaps something in our toolchain(s) that does not "notice" LTO without > >> "fat" LTO objects, and therefore we fail to emit a warning? Because, > >> without LTO, we don't notice that an initialization is missing? > >> > >> This is too speculative. The commit message should please include more > >> details. I'd like to understand what code in edk2 is affected, what the > >> specific warning is, what the problematic component in the toolchain is > >> (i.e., what tool requires GIMPLE bytecode to be present in the object file). > >> > >> Thanks, > >> Laszlo > >> > >> > >> > >>> > >>> diff --git a/BaseTools/Conf/tools_def.template > >> b/BaseTools/Conf/tools_def.template > >>> index 498696e583..aad5297385 100755 > >>> --- a/BaseTools/Conf/tools_def.template > >>> +++ b/BaseTools/Conf/tools_def.template > >>> @@ -2315,10 +2315,10 @@ > RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS > >> = -z common-page-size=0x20 > >>> *_GCC5_IA32_OBJCOPY_FLAGS = > >>> *_GCC5_IA32_NASM_FLAGS = -f elf32 > >>> > >>> - DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > >> -flto -Os > >>> + DEBUG_GCC5_IA32_CC_FLAGS = > DEF(GCC5_IA32_CC_FLAGS) > >> -ffat-lto-objects -flto -Os > >>> DEBUG_GCC5_IA32_DLINK_FLAGS = > >> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os > >> -Wl,-m,elf_i386,--oformat=elf32-i386 > >>> > >>> -RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > >> -flto -Os -Wno-unused-but-set-variable -Wno-unused-const-variable > >>> +RELEASE_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) > >> -ffat-lto-objects -flto -Os -Wno-unused-but-set-variable > >> -Wno-unused-const-variable > >>> RELEASE_GCC5_IA32_DLINK_FLAGS = > >> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os > >> -Wl,-m,elf_i386,--oformat=elf32-i386 > >>> > >>> NOOPT_GCC5_IA32_CC_FLAGS = > DEF(GCC5_IA32_CC_FLAGS) > >> -O0 > >>> @@ -2347,10 +2347,10 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = > >> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, > >>> *_GCC5_X64_OBJCOPY_FLAGS = > >>> *_GCC5_X64_NASM_FLAGS = -f elf64 > >>> > >>> - DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > >> -flto -DUSING_LTO -Os > >>> + DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > >> -ffat-lto-objects -flto -DUSING_LTO -Os > >>> DEBUG_GCC5_X64_DLINK_FLAGS = > >> DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > >>> > >>> -RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > >> -flto -DUSING_LTO -Os -Wno-unused-but-set-variable > >> -Wno-unused-const-variable > >>> +RELEASE_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) > >> -ffat-lto-objects -flto -DUSING_LTO -Os -Wno-unused-but-set-variable > >> -Wno-unused-const-variable > >>> RELEASE_GCC5_X64_DLINK_FLAGS = > DEF(GCC5_X64_DLINK_FLAGS) > >> -flto -Os > >>> > >>> NOOPT_GCC5_X64_CC_FLAGS = > DEF(GCC5_X64_CC_FLAGS) > >> -O0 > >>> @@ -2382,10 +2382,10 @@ RELEASE_GCC5_X64_DLINK_FLAGS = > >> DEF(GCC5_X64_DLINK_FLAGS) -flto -Os > >>> *_GCC5_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) > >> $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) > >>> *_GCC5_ARM_CC_XIPFLAGS = > >> DEF(GCC5_ARM_CC_XIPFLAGS) > >>> > >>> - DEBUG_GCC5_ARM_CC_FLAGS = > DEF(GCC5_ARM_CC_FLAGS) > >> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > >>> + DEBUG_GCC5_ARM_CC_FLAGS = > DEF(GCC5_ARM_CC_FLAGS) > >> -ffat-lto-objects -flto -Wno-unused-but-set-variable > >> -Wno-unused-const-variable > >>> DEBUG_GCC5_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_GCC5_ARM_CC_FLAGS = > DEF(GCC5_ARM_CC_FLAGS) > >> -flto -Wno-unused-but-set-variable -Wno-unused-const-variable > >>> +RELEASE_GCC5_ARM_CC_FLAGS = > DEF(GCC5_ARM_CC_FLAGS) > >> -ffat-lto-objects -flto -Wno-unused-but-set-variable > >> -Wno-unused-const-variable > >>> RELEASE_GCC5_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_GCC5_ARM_CC_FLAGS = > DEF(GCC5_ARM_CC_FLAGS) > >> -O0 > >>> @@ -2416,11 +2416,11 @@ RELEASE_GCC5_ARM_DLINK_FLAGS = > >> DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKS > >>> *_GCC5_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) > >> $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) > >>> *_GCC5_AARCH64_CC_XIPFLAGS = > >> DEF(GCC5_AARCH64_CC_XIPFLAGS) > >>> > >>> - DEBUG_GCC5_AARCH64_CC_FLAGS = > >> DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable > >> -Wno-unused-const-variable > >>> + DEBUG_GCC5_AARCH64_CC_FLAGS = > >> DEF(GCC5_AARCH64_CC_FLAGS) -ffat-lto-objects -flto > >> -Wno-unused-but-set-variable -Wno-unused-const-variable > >>> DEBUG_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z > >> common-page-size=0x20 > >>> > >>> -RELEASE_GCC5_AARCH64_CC_FLAGS = > >> DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable > >> -Wno-unused-const-variable > >>> +RELEASE_GCC5_AARCH64_CC_FLAGS = > >> DEF(GCC5_AARCH64_CC_FLAGS) -ffat-lto-objects -flto > >> -Wno-unused-but-set-variable -Wno-unused-const-variable > >>> RELEASE_GCC5_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_GCC5_AARCH64_DLINK_XIPFLAGS = -z > >> common-page-size=0x20 > >>> > >>> > > > > > > > > > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-05-21 5:07 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-05-19 2:27 [PATCH] BaseTools: Add -ffat-lto-objects option in GCC5 tool chain gaoliming 2021-05-19 2:35 ` [edk2-devel] " Yao, Jiewen 2021-05-19 2:51 ` 回复: " gaoliming 2021-05-19 7:23 ` Laszlo Ersek 2021-05-20 2:37 ` 回复: " gaoliming 2021-05-20 7:27 ` Laszlo Ersek 2021-05-21 5:07 ` 回复: " gaoliming
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox