回复: [edk2-devel] 回复: [PATCH v6 02/11] BaseTools: add -fdirect-access-external-data to clang pie builds

gaoliming via groups.io gaoliming=byosoft.com.cn at groups.io
Thu Jun 1 08:59:41 UTC 2023


Ard:
  Thanks for your clarification.  Acked-by: Liming Gao <gaoliming at byosoft.com.cn>

  I create PR https://github.com/tianocore/edk2/pull/4462 to merge this patch set. 

Thanks
Liming
> -----邮件原件-----
> 发件人: devel at edk2.groups.io <devel at edk2.groups.io> 代表 Ard
> Biesheuvel
> 发送时间: 2023年6月1日 16:38
> 收件人: devel at edk2.groups.io; gaoliming at byosoft.com.cn
> 抄送: Gerd Hoffmann <kraxel at redhat.com>; Daniel Schaefer
> <git at danielschaefer.me>; Marvin Häuser <mhaeuser at posteo.de>; Rebecca
> Cran <rebecca at bsdio.com>; Oliver Steffen <osteffen at redhat.com>; Pawel
> Polawski <ppolawsk at redhat.com>; Chao Li <lichao at loongson.cn>; Ard
> Biesheuvel <ardb+tianocore at kernel.org>; Bob Feng <bob.c.feng at intel.com>;
> Sunil V L <sunilvl at ventanamicro.com>; Michael D Kinney
> <michael.d.kinney at intel.com>; Leif Lindholm <quic_llindhol at quicinc.com>;
> Dongyan Qian <qiandongyan at loongson.cn>; Yuwei Chen
> <yuwei.chen at intel.com>; Baoqi Zhang <zhangbaoqi at loongson.cn>; Zhiguang
> Liu <zhiguang.liu at intel.com>
> 主题: Re: [edk2-devel] 回复: [PATCH v6 02/11] BaseTools: add
> -fdirect-access-external-data to clang pie builds
> 
> On Thu, 1 Jun 2023 at 10:01, gaoliming via groups.io
> <gaoliming=byosoft.com.cn at groups.io> wrote:
> >
> > Gerd and Ard:
> >   I want to confirm whether this option should also be added into
> CLANGPDB_X64_CC_FLAGS.
> >
> 
> As far as I know, PE based toolchains assume that external accesses
> are local unless the variable declaration is decorated with
> __dllimport.
> 
> Also, the reason we need this is not that the codegen is incorrect,
> but that it complicates ELF to PE/COFF conversion.
> 
> So I don't think this is needed for CLANGPDB
> 
> 
> 
> > > -----邮件原件-----
> > > 发件人: Gerd Hoffmann <kraxel at redhat.com>
> > > 发送时间: 2023年5月24日 22:06
> > > 收件人: devel at edk2.groups.io
> > > 抄送: Daniel Schaefer <git at danielschaefer.me>; Marvin Häuser
> > > <mhaeuser at posteo.de>; Rebecca Cran <rebecca at bsdio.com>; Oliver
> Steffen
> > > <osteffen at redhat.com>; Liming Gao <gaoliming at byosoft.com.cn>; Pawel
> > > Polawski <ppolawsk at redhat.com>; Chao Li <lichao at loongson.cn>; Ard
> > > Biesheuvel <ardb+tianocore at kernel.org>; Bob Feng
> <bob.c.feng at intel.com>;
> > > Sunil V L <sunilvl at ventanamicro.com>; Michael D Kinney
> > > <michael.d.kinney at intel.com>; Leif Lindholm
> <quic_llindhol at quicinc.com>;
> > > Dongyan Qian <qiandongyan at loongson.cn>; Yuwei Chen
> > > <yuwei.chen at intel.com>; Baoqi Zhang <zhangbaoqi at loongson.cn>;
> Zhiguang
> > > Liu <zhiguang.liu at intel.com>; Gerd Hoffmann <kraxel at redhat.com>; Ard
> > > Biesheuvel <ardb at kernel.org>
> > > 主题: [PATCH v6 02/11] BaseTools: add -fdirect-access-external-data to
> clang
> > > pie builds
> > >
> > > Tell clang to not use external (via got) references for data access.
> > >
> > > Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
> > > Reviewed-by: Ard Biesheuvel <ardb at kernel.org>
> > > ---
> > >  BaseTools/Conf/tools_def.template | 6 +++---
> > >  1 file changed, 3 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/BaseTools/Conf/tools_def.template
> > > b/BaseTools/Conf/tools_def.template
> > > index 503a6687c1f0..92421e3d0118 100755
> > > --- a/BaseTools/Conf/tools_def.template
> > > +++ b/BaseTools/Conf/tools_def.template
> > > @@ -1921,15 +1921,15 @@
> NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS
> > > = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -
> > >  *_CLANGDWARF_X64_ASLPP_FLAGS          =
> DEF(GCC_ASLPP_FLAGS)
> > > DEF(CLANGDWARF_X64_TARGET)
> > >  *_CLANGDWARF_X64_VFRPP_FLAGS          =
> DEF(GCC_VFRPP_FLAGS)
> > > DEF(CLANGDWARF_X64_TARGET)
> > >
> > > -DEBUG_CLANGDWARF_X64_CC_FLAGS         =
> > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m64
> > > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie
> -Oz
> > > -flto DEF(CLANGDWARF_X64_TARGET) -g
> > > +DEBUG_CLANGDWARF_X64_CC_FLAGS         =
> > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m64
> > > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie
> > > -fdirect-access-external-data -Oz -flto DEF(CLANGDWARF_X64_TARGET)
> -g
> > >  DEBUG_CLANGDWARF_X64_DLINK_FLAGS      =
> > > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3
> -Wl,-melf_x86_64
> > > -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=small
> > > -Wl,--apply-dynamic-relocs
> > >  DEBUG_CLANGDWARF_X64_DLINK2_FLAGS     =
> > > DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O3 -fuse-ld=lld
> > >
> > > -RELEASE_CLANGDWARF_X64_CC_FLAGS       =
> > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m64
> > > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie
> -Oz
> > > -flto DEF(CLANGDWARF_X64_TARGET)
> > > +RELEASE_CLANGDWARF_X64_CC_FLAGS       =
> > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m64
> > > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie
> > > -fdirect-access-external-data -Oz -flto DEF(CLANGDWARF_X64_TARGET)
> > >  RELEASE_CLANGDWARF_X64_DLINK_FLAGS    =
> > > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3
> -Wl,-melf_x86_64
> > > -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=small
> > > -Wl,--apply-dynamic-relocs
> > >  RELEASE_CLANGDWARF_X64_DLINK2_FLAGS   =
> > > DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O3 -fuse-ld=lld
> > >
> > > -NOOPT_CLANGDWARF_X64_CC_FLAGS         =
> > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m64
> > > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie
> -O0
> > > DEF(CLANGDWARF_X64_TARGET) -g
> > > +NOOPT_CLANGDWARF_X64_CC_FLAGS         =
> > > DEF(CLANGDWARF_ALL_CC_FLAGS) -m64
> > > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie
> > > -fdirect-access-external-data -O0 DEF(CLANGDWARF_X64_TARGET) -g
> > >  NOOPT_CLANGDWARF_X64_DLINK_FLAGS      =
> > > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_x86_64
> > > -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=small
> > > -Wl,--apply-dynamic-relocs
> > >  NOOPT_CLANGDWARF_X64_DLINK2_FLAGS     =
> > > DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O0 -fuse-ld=lld
> > >
> > > --
> > > 2.40.1
> >
> >
> >
> >
> >
> >
> >
> >
> >
> 
> 
> 
> 
> 






-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#105543): https://edk2.groups.io/g/devel/message/105543
Mute This Topic: https://groups.io/mt/99260000/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