On Thu, 1 Jun 2023 at 10:01, gaoliming via groups.io
<gaoliming=byosoft.com...@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 <kra...@redhat.com>
> > 发送时间: 2023年5月24日 22:06
> > 收件人: devel@edk2.groups.io
> > 抄送: Daniel Schaefer <g...@danielschaefer.me>; Marvin Häuser
> > <mhaeu...@posteo.de>; Rebecca Cran <rebe...@bsdio.com>; Oliver Steffen
> > <ostef...@redhat.com>; Liming Gao <gaolim...@byosoft.com.cn>; Pawel
> > Polawski <ppola...@redhat.com>; Chao Li <lic...@loongson.cn>; Ard
> > Biesheuvel <ardb+tianoc...@kernel.org>; Bob Feng <bob.c.f...@intel.com>;
> > Sunil V L <suni...@ventanamicro.com>; Michael D Kinney
> > <michael.d.kin...@intel.com>; Leif Lindholm <quic_llind...@quicinc.com>;
> > Dongyan Qian <qiandong...@loongson.cn>; Yuwei Chen
> > <yuwei.c...@intel.com>; Baoqi Zhang <zhangba...@loongson.cn>; Zhiguang
> > Liu <zhiguang....@intel.com>; Gerd Hoffmann <kra...@redhat.com>; Ard
> > Biesheuvel <a...@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 <kra...@redhat.com>
> > Reviewed-by: Ard Biesheuvel <a...@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 (#105542): https://edk2.groups.io/g/devel/message/105542
Mute This Topic: https://groups.io/mt/99259531/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to