Tell clang to not use external (via got) references for data access.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Ard Biesheuvel <ardb@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 (#105255): https://edk2.groups.io/g/devel/message/105255
Mute This Topic: https://groups.io/mt/99109300/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Since I didn't find any previous record of the fact, I'm replying here to say that this change breaks the build with clang11 as packaged in Debian "bullseye" (old stable). If anyone could reply with which version of clang this flag was added in, that would be ideal. Since no one else reported it, I don't see a need to change anything. / Leif On 2023-05-24 15:05, Gerd Hoffmann wrote: > Tell clang to not use external (via got) references for data access. > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > Reviewed-by: Ard Biesheuvel <ardb@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 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#107977): https://edk2.groups.io/g/devel/message/107977 Mute This Topic: https://groups.io/mt/99109300/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/3901457/1787277/102458076/xyzzy [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
On Wed, 23 Aug 2023 at 13:09, Leif Lindholm <quic_llindhol@quicinc.com> wrote: > > Since I didn't find any previous record of the fact, I'm replying here > to say that this change breaks the build with clang11 as packaged in > Debian "bullseye" (old stable). > > If anyone could reply with which version of clang this flag was added > in, that would be ideal. > Added here https://reviews.llvm.org/D92633 Present in branches main, release/12.x, release/13.x, release/14.x, release/15.x, release/16.x, release/17.x > Since no one else reported it, I don't see a need to change anything. > OK. > On 2023-05-24 15:05, Gerd Hoffmann wrote: > > Tell clang to not use external (via got) references for data access. > > > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > > Reviewed-by: Ard Biesheuvel <ardb@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 > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#107979): https://edk2.groups.io/g/devel/message/107979 Mute This Topic: https://groups.io/mt/99109300/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Gerd and Ard: I want to confirm whether this option should also be added into CLANGPDB_X64_CC_FLAGS. Thanks Liming > -----邮件原件----- > 发件人: Gerd Hoffmann <kraxel@redhat.com> > 发送时间: 2023年5月24日 22:06 > 收件人: devel@edk2.groups.io > 抄送: Daniel Schaefer <git@danielschaefer.me>; Marvin Häuser > <mhaeuser@posteo.de>; Rebecca Cran <rebecca@bsdio.com>; Oliver Steffen > <osteffen@redhat.com>; Liming Gao <gaoliming@byosoft.com.cn>; Pawel > Polawski <ppolawsk@redhat.com>; Chao Li <lichao@loongson.cn>; Ard > Biesheuvel <ardb+tianocore@kernel.org>; Bob Feng <bob.c.feng@intel.com>; > Sunil V L <sunilvl@ventanamicro.com>; Michael D Kinney > <michael.d.kinney@intel.com>; Leif Lindholm <quic_llindhol@quicinc.com>; > Dongyan Qian <qiandongyan@loongson.cn>; Yuwei Chen > <yuwei.chen@intel.com>; Baoqi Zhang <zhangbaoqi@loongson.cn>; Zhiguang > Liu <zhiguang.liu@intel.com>; Gerd Hoffmann <kraxel@redhat.com>; Ard > Biesheuvel <ardb@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@redhat.com> > Reviewed-by: Ard Biesheuvel <ardb@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 (#105537): https://edk2.groups.io/g/devel/message/105537 Mute This Topic: https://groups.io/mt/99259531/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
On Thu, 1 Jun 2023 at 10:01, gaoliming via groups.io <gaoliming=byosoft.com.cn@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@redhat.com> > > 发送时间: 2023年5月24日 22:06 > > 收件人: devel@edk2.groups.io > > 抄送: Daniel Schaefer <git@danielschaefer.me>; Marvin Häuser > > <mhaeuser@posteo.de>; Rebecca Cran <rebecca@bsdio.com>; Oliver Steffen > > <osteffen@redhat.com>; Liming Gao <gaoliming@byosoft.com.cn>; Pawel > > Polawski <ppolawsk@redhat.com>; Chao Li <lichao@loongson.cn>; Ard > > Biesheuvel <ardb+tianocore@kernel.org>; Bob Feng <bob.c.feng@intel.com>; > > Sunil V L <sunilvl@ventanamicro.com>; Michael D Kinney > > <michael.d.kinney@intel.com>; Leif Lindholm <quic_llindhol@quicinc.com>; > > Dongyan Qian <qiandongyan@loongson.cn>; Yuwei Chen > > <yuwei.chen@intel.com>; Baoqi Zhang <zhangbaoqi@loongson.cn>; Zhiguang > > Liu <zhiguang.liu@intel.com>; Gerd Hoffmann <kraxel@redhat.com>; Ard > > Biesheuvel <ardb@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@redhat.com> > > Reviewed-by: Ard Biesheuvel <ardb@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/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Ard: Thanks for your clarification. Acked-by: Liming Gao <gaoliming@byosoft.com.cn> I create PR https://github.com/tianocore/edk2/pull/4462 to merge this patch set. Thanks Liming > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Ard > Biesheuvel > 发送时间: 2023年6月1日 16:38 > 收件人: devel@edk2.groups.io; gaoliming@byosoft.com.cn > 抄送: Gerd Hoffmann <kraxel@redhat.com>; Daniel Schaefer > <git@danielschaefer.me>; Marvin Häuser <mhaeuser@posteo.de>; Rebecca > Cran <rebecca@bsdio.com>; Oliver Steffen <osteffen@redhat.com>; Pawel > Polawski <ppolawsk@redhat.com>; Chao Li <lichao@loongson.cn>; Ard > Biesheuvel <ardb+tianocore@kernel.org>; Bob Feng <bob.c.feng@intel.com>; > Sunil V L <sunilvl@ventanamicro.com>; Michael D Kinney > <michael.d.kinney@intel.com>; Leif Lindholm <quic_llindhol@quicinc.com>; > Dongyan Qian <qiandongyan@loongson.cn>; Yuwei Chen > <yuwei.chen@intel.com>; Baoqi Zhang <zhangbaoqi@loongson.cn>; Zhiguang > Liu <zhiguang.liu@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@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@redhat.com> > > > 发送时间: 2023年5月24日 22:06 > > > 收件人: devel@edk2.groups.io > > > 抄送: Daniel Schaefer <git@danielschaefer.me>; Marvin Häuser > > > <mhaeuser@posteo.de>; Rebecca Cran <rebecca@bsdio.com>; Oliver > Steffen > > > <osteffen@redhat.com>; Liming Gao <gaoliming@byosoft.com.cn>; Pawel > > > Polawski <ppolawsk@redhat.com>; Chao Li <lichao@loongson.cn>; Ard > > > Biesheuvel <ardb+tianocore@kernel.org>; Bob Feng > <bob.c.feng@intel.com>; > > > Sunil V L <sunilvl@ventanamicro.com>; Michael D Kinney > > > <michael.d.kinney@intel.com>; Leif Lindholm > <quic_llindhol@quicinc.com>; > > > Dongyan Qian <qiandongyan@loongson.cn>; Yuwei Chen > > > <yuwei.chen@intel.com>; Baoqi Zhang <zhangbaoqi@loongson.cn>; > Zhiguang > > > Liu <zhiguang.liu@intel.com>; Gerd Hoffmann <kraxel@redhat.com>; Ard > > > Biesheuvel <ardb@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@redhat.com> > > > Reviewed-by: Ard Biesheuvel <ardb@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/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2023 Red Hat, Inc.