Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
Hi, Can anyone help to look into this? Thanks. On Tue, 4 Apr 2023 at 14:46, Lean Sheng Tan wrote: > > Hi Rebecca/ Marvin, > Patrick has filed it as a separate patch email here > https://edk2.groups.io/g/devel/message/102168 > However the email still group them together. > It is because he could not reproduce any issue anymore that was seen on > 2nd patch (could be that Rebecca already fixed it). > Could you help to review and get this merged? > > Thanks, > Sheng > > > On Thu, 30 Mar 2023 at 10:05, Marvin Häuser wrote: > >> Hi Lean, >> >> I don’t think individual patches from a series are merged generally. Your >> 2/3 has open concerns from both Liming and myself. >> >> Best regards, >> Marvin >> >> On 30. Mar 2023, at 09:31, Lean Sheng Tan >> wrote: >> >> >> HI Liming, >> If no further concern, would you mind to help get this patch merged? >> Thanks! >> >> Best Regards, >> *Lean Sheng Tan* >> >> >> On Tue, 28 Mar 2023 at 07:42, gaoliming via groups.io > byosoft.com...@groups.io> wrote: >> >>> Reviewed-by: Liming Gao >>> >>> > -邮件原件- >>> > 发件人: devel@edk2.groups.io 代表 Patrick >>> > Rudolph >>> > 发送时间: 2023年3月17日 22:06 >>> > 抄送: devel@edk2.groups.io; guo.d...@intel.com; gua@intel.com; >>> > james...@intel.com; ray...@intel.com; mhaeu...@posteo.de; >>> > a...@kernel.org >>> > 主题: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking >>> using >>> > CLANGDWARF_IA32 >>> > >>> > The clang toolchain might default to fPIE/fPIC, which prevents >>> > lld from linking the objects into a binary. >>> > >>> > Specify -fno-pie -fno-pic as done on GCC to fix linking. >>> > >>> > Test: >>> > Building the Universal Payload using the command >>> > 'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' actually >>> > works. >>> > >>> > Signed-off-by: Patrick Rudolph >>> > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4356 >>> > --- >>> > BaseTools/Conf/tools_def.template | 14 +++--- >>> > 1 file changed, 7 insertions(+), 7 deletions(-) >>> > >>> > diff --git a/BaseTools/Conf/tools_def.template >>> > b/BaseTools/Conf/tools_def.template >>> > index 471eb67c0c..9b59bd75c3 100755 >>> > --- a/BaseTools/Conf/tools_def.template >>> > +++ b/BaseTools/Conf/tools_def.template >>> > @@ -2888,7 +2888,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS >>> > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 >>> > *_CLANGDWARF_IA32_RC_PATH = >>> > DEF(CLANGDWARF_IA32_PREFIX)llvm-rc >>> > >>> > >>> > >>> > *_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) >>> > -m32 -fno-lto DEF(CLANG38_IA32_TARGET) >>> > >>> > -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = >>> > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld >>> > >>> > +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = >>> > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld >>> > -no-pie >>> > >>> > *_CLANGDWARF_IA32_ASM_FLAGS= DEF(GCC5_ASM_FLAGS) >>> > -m32 -march=i386 DEF(CLANG38_IA32_TARGET) >>> > >>> > *_CLANGDWARF_IA32_RC_FLAGS = >>> > DEF(GCC_IA32_RC_FLAGS) >>> > >>> > *_CLANGDWARF_IA32_OBJCOPY_FLAGS= >>> > >>> > @@ -2897,17 +2897,17 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS >>> > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 >>> > *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) >>> > DEF(CLANG38_IA32_TARGET) >>> > >>> > *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) >>> > DEF(CLANG38_IA32_TARGET) >>> > >>> > >>> > >>> > -DEBUG_CLANGDWARF_IA32_CC_FLAGS = >>> > DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 >>> > DEF(CLANG38_IA32_TARGET) -g -malign-double >>> > >>> > +DEBUG_CLANGDWARF_IA32_CC_FLAGS = >>> > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 >>> > DEF(CLANG38_IA32_TARGET) -g -malign-double >>> > >>> > DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = >>> > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto
Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
Hi Rebecca/ Marvin, Patrick has filed it as a separate patch email here https://edk2.groups.io/g/devel/message/102168 However the email still group them together. It is because he could not reproduce any issue anymore that was seen on 2nd patch (could be that Rebecca already fixed it). Could you help to review and get this merged? Thanks, Sheng On Thu, 30 Mar 2023 at 10:05, Marvin Häuser wrote: > Hi Lean, > > I don’t think individual patches from a series are merged generally. Your > 2/3 has open concerns from both Liming and myself. > > Best regards, > Marvin > > On 30. Mar 2023, at 09:31, Lean Sheng Tan wrote: > > > HI Liming, > If no further concern, would you mind to help get this patch merged? > Thanks! > > Best Regards, > *Lean Sheng Tan* > > > On Tue, 28 Mar 2023 at 07:42, gaoliming via groups.io byosoft.com...@groups.io> wrote: > >> Reviewed-by: Liming Gao >> >> > -邮件原件- >> > 发件人: devel@edk2.groups.io 代表 Patrick >> > Rudolph >> > 发送时间: 2023年3月17日 22:06 >> > 抄送: devel@edk2.groups.io; guo.d...@intel.com; gua@intel.com; >> > james...@intel.com; ray...@intel.com; mhaeu...@posteo.de; >> > a...@kernel.org >> > 主题: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using >> > CLANGDWARF_IA32 >> > >> > The clang toolchain might default to fPIE/fPIC, which prevents >> > lld from linking the objects into a binary. >> > >> > Specify -fno-pie -fno-pic as done on GCC to fix linking. >> > >> > Test: >> > Building the Universal Payload using the command >> > 'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' actually >> > works. >> > >> > Signed-off-by: Patrick Rudolph >> > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4356 >> > --- >> > BaseTools/Conf/tools_def.template | 14 +++--- >> > 1 file changed, 7 insertions(+), 7 deletions(-) >> > >> > diff --git a/BaseTools/Conf/tools_def.template >> > b/BaseTools/Conf/tools_def.template >> > index 471eb67c0c..9b59bd75c3 100755 >> > --- a/BaseTools/Conf/tools_def.template >> > +++ b/BaseTools/Conf/tools_def.template >> > @@ -2888,7 +2888,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS >> > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 >> > *_CLANGDWARF_IA32_RC_PATH = >> > DEF(CLANGDWARF_IA32_PREFIX)llvm-rc >> > >> > >> > >> > *_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) >> > -m32 -fno-lto DEF(CLANG38_IA32_TARGET) >> > >> > -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = >> > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld >> > >> > +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = >> > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld >> > -no-pie >> > >> > *_CLANGDWARF_IA32_ASM_FLAGS= DEF(GCC5_ASM_FLAGS) >> > -m32 -march=i386 DEF(CLANG38_IA32_TARGET) >> > >> > *_CLANGDWARF_IA32_RC_FLAGS = >> > DEF(GCC_IA32_RC_FLAGS) >> > >> > *_CLANGDWARF_IA32_OBJCOPY_FLAGS= >> > >> > @@ -2897,17 +2897,17 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS >> > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 >> > *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) >> > DEF(CLANG38_IA32_TARGET) >> > >> > *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) >> > DEF(CLANG38_IA32_TARGET) >> > >> > >> > >> > -DEBUG_CLANGDWARF_IA32_CC_FLAGS = >> > DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 >> > DEF(CLANG38_IA32_TARGET) -g -malign-double >> > >> > +DEBUG_CLANGDWARF_IA32_CC_FLAGS = >> > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 >> > DEF(CLANG38_IA32_TARGET) -g -malign-double >> > >> > DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = >> > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 >> > -Wl,--oformat,elf32-i386 >> > >> > -DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = >> > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld >> > >> > +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = >> > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie >> > >> > >> > >> > -RELEASE_CLANGDWARF_IA32_CC_FLAGS = >> > DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 >> > DEF(CLANG38_IA32_TARGET) -malign-double &g
Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
Hi Marvin, will send out a new patch series. Regards, Patrick Rudolph On Thu, Mar 30, 2023 at 10:05 AM Marvin Häuser wrote: > > Hi Lean, > > I don’t think individual patches from a series are merged generally. Your 2/3 > has open concerns from both Liming and myself. > > Best regards, > Marvin > > On 30. Mar 2023, at 09:31, Lean Sheng Tan wrote: > > > HI Liming, > If no further concern, would you mind to help get this patch merged? > Thanks! > > Best Regards, > Lean Sheng Tan > > > On Tue, 28 Mar 2023 at 07:42, gaoliming via groups.io > wrote: >> >> Reviewed-by: Liming Gao >> >> > -邮件原件- >> > 发件人: devel@edk2.groups.io 代表 Patrick >> > Rudolph >> > 发送时间: 2023年3月17日 22:06 >> > 抄送: devel@edk2.groups.io; guo.d...@intel.com; gua....@intel.com; >> > james...@intel.com; ray...@intel.com; mhaeu...@posteo.de; >> > a...@kernel.org >> > 主题: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using >> > CLANGDWARF_IA32 >> > >> > The clang toolchain might default to fPIE/fPIC, which prevents >> > lld from linking the objects into a binary. >> > >> > Specify -fno-pie -fno-pic as done on GCC to fix linking. >> > >> > Test: >> > Building the Universal Payload using the command >> > 'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' actually >> > works. >> > >> > Signed-off-by: Patrick Rudolph >> > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4356 >> > --- >> > BaseTools/Conf/tools_def.template | 14 +++--- >> > 1 file changed, 7 insertions(+), 7 deletions(-) >> > >> > diff --git a/BaseTools/Conf/tools_def.template >> > b/BaseTools/Conf/tools_def.template >> > index 471eb67c0c..9b59bd75c3 100755 >> > --- a/BaseTools/Conf/tools_def.template >> > +++ b/BaseTools/Conf/tools_def.template >> > @@ -2888,7 +2888,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS >> > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 >> > *_CLANGDWARF_IA32_RC_PATH = >> > DEF(CLANGDWARF_IA32_PREFIX)llvm-rc >> > >> > >> > >> > *_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) >> > -m32 -fno-lto DEF(CLANG38_IA32_TARGET) >> > >> > -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = >> > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld >> > >> > +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = >> > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld >> > -no-pie >> > >> > *_CLANGDWARF_IA32_ASM_FLAGS= DEF(GCC5_ASM_FLAGS) >> > -m32 -march=i386 DEF(CLANG38_IA32_TARGET) >> > >> > *_CLANGDWARF_IA32_RC_FLAGS = >> > DEF(GCC_IA32_RC_FLAGS) >> > >> > *_CLANGDWARF_IA32_OBJCOPY_FLAGS= >> > >> > @@ -2897,17 +2897,17 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS >> > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 >> > *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) >> > DEF(CLANG38_IA32_TARGET) >> > >> > *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) >> > DEF(CLANG38_IA32_TARGET) >> > >> > >> > >> > -DEBUG_CLANGDWARF_IA32_CC_FLAGS = >> > DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 >> > DEF(CLANG38_IA32_TARGET) -g -malign-double >> > >> > +DEBUG_CLANGDWARF_IA32_CC_FLAGS = >> > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 >> > DEF(CLANG38_IA32_TARGET) -g -malign-double >> > >> > DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = >> > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 >> > -Wl,--oformat,elf32-i386 >> > >> > -DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = >> > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld >> > >> > +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = >> > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie >> > >> > >> > >> > -RELEASE_CLANGDWARF_IA32_CC_FLAGS = >> > DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 >> > DEF(CLANG38_IA32_TARGET) -malign-double >> > >> > +RELEASE_CLANGDWARF_IA32_CC_FLAGS = >> > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 >> > DEF(CLANG38_IA32_TARGET) -malign-double >> > >> > RELEASE_CLANGDWARF_IA32_DLINK_FLAGS= >> > DEF(CLANGDWARF_IA32
Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
Hi Lean,I don’t think individual patches from a series are merged generally. Your 2/3 has open concerns from both Liming and myself.Best regards,MarvinOn 30. Mar 2023, at 09:31, Lean Sheng Tan wrote:HI Liming,If no further concern, would you mind to help get this patch merged?Thanks!Best Regards,Lean Sheng TanOn Tue, 28 Mar 2023 at 07:42, gaoliming via groups.io byosoft.com...@groups.io> wrote:Reviewed-by: Liming Gao <gaolim...@byosoft.com.cn> > -邮件原件- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Patrick > Rudolph > 发送时间: 2023年3月17日 22:06 > 抄送: devel@edk2.groups.io; guo.d...@intel.com; gua@intel.com; > james...@intel.com; ray...@intel.com; mhaeu...@posteo.de; > a...@kernel.org > 主题: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using > CLANGDWARF_IA32 > > The clang toolchain might default to fPIE/fPIC, which prevents > lld from linking the objects into a binary. > > Specify -fno-pie -fno-pic as done on GCC to fix linking. > > Test: > Building the Universal Payload using the command > 'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' actually > works. > > Signed-off-by: Patrick Rudolph <patrick.rudo...@9elements.com> > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4356 > --- > BaseTools/Conf/tools_def.template | 14 +++--- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > index 471eb67c0c..9b59bd75c3 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -2888,7 +2888,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 > *_CLANGDWARF_IA32_RC_PATH = > DEF(CLANGDWARF_IA32_PREFIX)llvm-rc > > > > *_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) > -m32 -fno-lto DEF(CLANG38_IA32_TARGET) > > -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld > > +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld > -no-pie > > *_CLANGDWARF_IA32_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) > -m32 -march=i386 DEF(CLANG38_IA32_TARGET) > > *_CLANGDWARF_IA32_RC_FLAGS = > DEF(GCC_IA32_RC_FLAGS) > > *_CLANGDWARF_IA32_OBJCOPY_FLAGS = > > @@ -2897,17 +2897,17 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 > *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > > *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > > > > -DEBUG_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 > DEF(CLANG38_IA32_TARGET) -g -malign-double > > +DEBUG_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 > DEF(CLANG38_IA32_TARGET) -g -malign-double > > DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 > -Wl,--oformat,elf32-i386 > > -DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld > > +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie > > > > -RELEASE_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 > DEF(CLANG38_IA32_TARGET) -malign-double > > +RELEASE_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 > DEF(CLANG38_IA32_TARGET) -malign-double > > RELEASE_CLANGDWARF_IA32_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 > -Wl,--oformat,elf32-i386 > > -RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld > > +RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie > > > > -NOOPT_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 -march=i586 > DEF(CLANG38_IA32_TARGET) -g -malign-double > > +NOOPT_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -O0 -march=i586 > DEF(CLANG38_IA32_TARGET) -g -malign-double > > NOOPT_CLANGDWARF_IA32_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 > -Wl,--oformat,elf32-i386 > > -NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=lld > > +NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld
Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
HI Liming, If no further concern, would you mind to help get this patch merged? Thanks! Best Regards, *Lean Sheng Tan* On Tue, 28 Mar 2023 at 07:42, gaoliming via groups.io wrote: > Reviewed-by: Liming Gao > > > -邮件原件- > > 发件人: devel@edk2.groups.io 代表 Patrick > > Rudolph > > 发送时间: 2023年3月17日 22:06 > > 抄送: devel@edk2.groups.io; guo.d...@intel.com; gua@intel.com; > > james...@intel.com; ray...@intel.com; mhaeu...@posteo.de; > > a...@kernel.org > > 主题: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using > > CLANGDWARF_IA32 > > > > The clang toolchain might default to fPIE/fPIC, which prevents > > lld from linking the objects into a binary. > > > > Specify -fno-pie -fno-pic as done on GCC to fix linking. > > > > Test: > > Building the Universal Payload using the command > > 'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' actually > > works. > > > > Signed-off-by: Patrick Rudolph > > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4356 > > --- > > BaseTools/Conf/tools_def.template | 14 +++--- > > 1 file changed, 7 insertions(+), 7 deletions(-) > > > > diff --git a/BaseTools/Conf/tools_def.template > > b/BaseTools/Conf/tools_def.template > > index 471eb67c0c..9b59bd75c3 100755 > > --- a/BaseTools/Conf/tools_def.template > > +++ b/BaseTools/Conf/tools_def.template > > @@ -2888,7 +2888,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS > > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 > > *_CLANGDWARF_IA32_RC_PATH = > > DEF(CLANGDWARF_IA32_PREFIX)llvm-rc > > > > > > > > *_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) > > -m32 -fno-lto DEF(CLANG38_IA32_TARGET) > > > > -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = > > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld > > > > +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = > > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld > > -no-pie > > > > *_CLANGDWARF_IA32_ASM_FLAGS= DEF(GCC5_ASM_FLAGS) > > -m32 -march=i386 DEF(CLANG38_IA32_TARGET) > > > > *_CLANGDWARF_IA32_RC_FLAGS = > > DEF(GCC_IA32_RC_FLAGS) > > > > *_CLANGDWARF_IA32_OBJCOPY_FLAGS= > > > > @@ -2897,17 +2897,17 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS > > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 > > *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > > DEF(CLANG38_IA32_TARGET) > > > > *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > > DEF(CLANG38_IA32_TARGET) > > > > > > > > -DEBUG_CLANGDWARF_IA32_CC_FLAGS = > > DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 > > DEF(CLANG38_IA32_TARGET) -g -malign-double > > > > +DEBUG_CLANGDWARF_IA32_CC_FLAGS = > > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 > > DEF(CLANG38_IA32_TARGET) -g -malign-double > > > > DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = > > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 > > -Wl,--oformat,elf32-i386 > > > > -DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = > > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld > > > > +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = > > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie > > > > > > > > -RELEASE_CLANGDWARF_IA32_CC_FLAGS = > > DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 > > DEF(CLANG38_IA32_TARGET) -malign-double > > > > +RELEASE_CLANGDWARF_IA32_CC_FLAGS = > > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 > > DEF(CLANG38_IA32_TARGET) -malign-double > > > > RELEASE_CLANGDWARF_IA32_DLINK_FLAGS= > > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 > > -Wl,--oformat,elf32-i386 > > > > -RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = > > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld > > > > +RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = > > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie > > > > > > > > -NOOPT_CLANGDWARF_IA32_CC_FLAGS = > > DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 -march=i586 > > DEF(CLANG38_IA32_TARGET) -g -malign-double > > > > +NOOPT_CLANGDWARF_IA32_CC_FLAGS = > > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -O0 -march=i586 > > DEF(CLANG38_IA32_TARGET) -g -malign-double > > > > NOOPT_CLANGDWARF_IA32_DLINK_FLAGS = > > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_
回复: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
Reviewed-by: Liming Gao > -邮件原件- > 发件人: devel@edk2.groups.io 代表 Patrick > Rudolph > 发送时间: 2023年3月17日 22:06 > 抄送: devel@edk2.groups.io; guo.d...@intel.com; gua@intel.com; > james...@intel.com; ray...@intel.com; mhaeu...@posteo.de; > a...@kernel.org > 主题: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using > CLANGDWARF_IA32 > > The clang toolchain might default to fPIE/fPIC, which prevents > lld from linking the objects into a binary. > > Specify -fno-pie -fno-pic as done on GCC to fix linking. > > Test: > Building the Universal Payload using the command > 'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' actually > works. > > Signed-off-by: Patrick Rudolph > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4356 > --- > BaseTools/Conf/tools_def.template | 14 +++--- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > index 471eb67c0c..9b59bd75c3 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -2888,7 +2888,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 > *_CLANGDWARF_IA32_RC_PATH = > DEF(CLANGDWARF_IA32_PREFIX)llvm-rc > > > > *_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) > -m32 -fno-lto DEF(CLANG38_IA32_TARGET) > > -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld > > +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld > -no-pie > > *_CLANGDWARF_IA32_ASM_FLAGS= DEF(GCC5_ASM_FLAGS) > -m32 -march=i386 DEF(CLANG38_IA32_TARGET) > > *_CLANGDWARF_IA32_RC_FLAGS = > DEF(GCC_IA32_RC_FLAGS) > > *_CLANGDWARF_IA32_OBJCOPY_FLAGS= > > @@ -2897,17 +2897,17 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS > = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 > *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > > *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > > > > -DEBUG_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 > DEF(CLANG38_IA32_TARGET) -g -malign-double > > +DEBUG_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 > DEF(CLANG38_IA32_TARGET) -g -malign-double > > DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 > -Wl,--oformat,elf32-i386 > > -DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld > > +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie > > > > -RELEASE_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 > DEF(CLANG38_IA32_TARGET) -malign-double > > +RELEASE_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 > DEF(CLANG38_IA32_TARGET) -malign-double > > RELEASE_CLANGDWARF_IA32_DLINK_FLAGS= > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 > -Wl,--oformat,elf32-i386 > > -RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld > > +RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie > > > > -NOOPT_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 -march=i586 > DEF(CLANG38_IA32_TARGET) -g -malign-double > > +NOOPT_CLANGDWARF_IA32_CC_FLAGS = > DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -O0 -march=i586 > DEF(CLANG38_IA32_TARGET) -g -malign-double > > NOOPT_CLANGDWARF_IA32_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 > -Wl,--oformat,elf32-i386 > > -NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=lld > > +NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = > DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=lld -no-pie > > > > ## > > # CLANGDWARF X64 definitions > > -- > 2.39.1 > > > > -=-=-=-=-=-= > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#101340): > https://edk2.groups.io/g/devel/message/101340 > Mute This Topic: https://groups.io/mt/97673648/4905953 > Group Owner: devel+ow...@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub > [gaolim...@byosoft.com.cn] > -=-=-=-=-=-= > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102005): https://edk2.groups.io/g/devel/message/102005 Mute This Topic: https://groups.io/mt/97899716/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
Would anyone mind to spare some time to review this patch? Thanks. -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#101904): https://edk2.groups.io/g/devel/message/101904 Mute This Topic: https://groups.io/mt/97673648/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
Added the right reviewers @Gao, Liming @Feng, Bob C @yuwei.c...@intel.com -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#101695): https://edk2.groups.io/g/devel/message/101695 Mute This Topic: https://groups.io/mt/97673648/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
The linker problems I was seeing were unrelated to those Patrick's patch fixed. I just applied Patrick's changes on top of my CLANGDWARF patches and OvmfPkgIa32.dsc builds fine. -- Rebecca Cran On 3/17/23 2:35 PM, Rebecca Cran wrote: Building with "build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t CLANGDWARF -b RELEASE" on FreeBSD causes the following errors: ld.lld: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC >>> defined in /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib(ExceptionHandlerAsm.obj) >>> referenced by /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/X64/ExceptionHandlerAsm.iii >>> ExceptionHandlerAsm.obj:(.text+0x5) in archive /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib ld.lld: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC >>> defined in /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib(ExceptionHandlerAsm.obj) >>> referenced by /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/X64/ExceptionHandlerAsm.iii >>> ExceptionHandlerAsm.obj:(.text+0x14) in archive /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib ld.lld: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC >>> defined in /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib(ExceptionHandlerAsm.obj) >>> referenced by /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/X64/ExceptionHandlerAsm.iii >>> ExceptionHandlerAsm.obj:(.text+0x23) in archive /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib Thinking about it, it might actually be a problem with the FreeBSD system toolchain. On Linux, I get a different set of errors about redefining uint64_t etc. -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#101693): https://edk2.groups.io/g/devel/message/101693 Mute This Topic: https://groups.io/mt/97673648/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
Building with "build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t CLANGDWARF -b RELEASE" on FreeBSD causes the following errors: ld.lld: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC >>> defined in /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib(ExceptionHandlerAsm.obj) >>> referenced by /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/X64/ExceptionHandlerAsm.iii >>> ExceptionHandlerAsm.obj:(.text+0x5) in archive /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib ld.lld: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC >>> defined in /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib(ExceptionHandlerAsm.obj) >>> referenced by /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/X64/ExceptionHandlerAsm.iii >>> ExceptionHandlerAsm.obj:(.text+0x14) in archive /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib ld.lld: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC >>> defined in /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib(ExceptionHandlerAsm.obj) >>> referenced by /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/X64/ExceptionHandlerAsm.iii >>> ExceptionHandlerAsm.obj:(.text+0x23) in archive /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib Thinking about it, it might actually be a problem with the FreeBSD system toolchain. On Linux, I get a different set of errors about redefining uint64_t etc. -- Rebecca Cran On 3/17/23 11:44 AM, Marvin Häuser wrote: Which error precisely? X64 PIE *must not* be disabled, as it’s used to enforce RIP-relative addressing where possible and has been for many years. Meanwhile the issues with IA32 is PIE was disabled by default for most toolchains, but some enable it nowadays (and thus it must be disabled explicitly). Best regards, Marvin On 17. Mar 2023, at 18:30, Rebecca Cran wrote: I've also seen that error building X64 firmware. Could you update those flags too, please? -- Rebecca Cran On 3/17/23 8:06 AM, Patrick Rudolph wrote: The clang toolchain might default to fPIE/fPIC, which prevents lld from linking the objects into a binary. Specify -fno-pie -fno-pic as done on GCC to fix linking. Test: Building the Universal Payload using the command 'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' actually works. Signed-off-by: Patrick Rudolph Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4356 --- BaseTools/Conf/tools_def.template | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 471eb67c0c..9b59bd75c3 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -2888,7 +2888,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS= -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 *_CLANGDWARF_IA32_RC_PATH = DEF(CLANGDWARF_IA32_PREFIX)llvm-rc *_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto DEF(CLANG38_IA32_TARGET) -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld -no-pie *_CLANGDWARF_IA32_ASM_FLAGS= DEF(GCC5_ASM_FLAGS) -m32 -march=i386 DEF(CLANG38_IA32_TARGET) *_CLANGDWARF_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) *_CLANGDWARF_IA32_OBJCOPY_FLAGS= @@ -2897,17 +2897,17 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS= -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_IA32_TARGET) *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_IA32_TARGET) -DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double
Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
Which error precisely? X64 PIE *must not* be disabled, as it’s used to enforce RIP-relative addressing where possible and has been for many years. Meanwhile the issues with IA32 is PIE was disabled by default for most toolchains, but some enable it nowadays (and thus it must be disabled explicitly). Best regards, Marvin > On 17. Mar 2023, at 18:30, Rebecca Cran wrote: > > I've also seen that error building X64 firmware. > > Could you update those flags too, please? > > > -- > > Rebecca Cran > > >> On 3/17/23 8:06 AM, Patrick Rudolph wrote: >> The clang toolchain might default to fPIE/fPIC, which prevents >> lld from linking the objects into a binary. >> >> Specify -fno-pie -fno-pic as done on GCC to fix linking. >> >> Test: >> Building the Universal Payload using the command >> 'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' actually >> works. >> >> Signed-off-by: Patrick Rudolph >> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4356 >> --- >> BaseTools/Conf/tools_def.template | 14 +++--- >> 1 file changed, 7 insertions(+), 7 deletions(-) >> >> diff --git a/BaseTools/Conf/tools_def.template >> b/BaseTools/Conf/tools_def.template >> index 471eb67c0c..9b59bd75c3 100755 >> --- a/BaseTools/Conf/tools_def.template >> +++ b/BaseTools/Conf/tools_def.template >> @@ -2888,7 +2888,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS= >> -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 >> *_CLANGDWARF_IA32_RC_PATH = DEF(CLANGDWARF_IA32_PREFIX)llvm-rc >>*_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 >> -fno-lto DEF(CLANG38_IA32_TARGET) >> -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = >> DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld >> +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = >> DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld -no-pie >> *_CLANGDWARF_IA32_ASM_FLAGS= DEF(GCC5_ASM_FLAGS) -m32 >> -march=i386 DEF(CLANG38_IA32_TARGET) >> *_CLANGDWARF_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) >> *_CLANGDWARF_IA32_OBJCOPY_FLAGS= >> @@ -2897,17 +2897,17 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS= >> -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 >> *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) >> DEF(CLANG38_IA32_TARGET) >> *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) >> DEF(CLANG38_IA32_TARGET) >> -DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 >> -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double >> +DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic >> -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g >> -malign-double >> DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = >> DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 >> -Wl,--oformat,elf32-i386 >> -DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) >> -O3 -fuse-ld=lld >> +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) >> -O3 -fuse-ld=lld -no-pie >> -RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 >> -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double >> +RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic >> -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double >> RELEASE_CLANGDWARF_IA32_DLINK_FLAGS= >> DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 >> -Wl,--oformat,elf32-i386 >> -RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) >> -O3 -fuse-ld=lld >> +RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) >> -O3 -fuse-ld=lld -no-pie >> -NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 >> -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double >> +NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic >> -fno-pie -m32 -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double >> NOOPT_CLANGDWARF_IA32_DLINK_FLAGS = >> DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 >> -Wl,--oformat,elf32-i386 >> -NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) >> -O0 -fuse-ld=lld >> +NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) >> -O0 -fuse-ld=lld -no-pie >>## >> # CLANGDWARF X64 definitions -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#101358): https://edk2.groups.io/g/devel/message/101358 Mute This Topic: https://groups.io/mt/97673648/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
I've also seen that error building X64 firmware. Could you update those flags too, please? -- Rebecca Cran On 3/17/23 8:06 AM, Patrick Rudolph wrote: The clang toolchain might default to fPIE/fPIC, which prevents lld from linking the objects into a binary. Specify -fno-pie -fno-pic as done on GCC to fix linking. Test: Building the Universal Payload using the command 'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' actually works. Signed-off-by: Patrick Rudolph Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4356 --- BaseTools/Conf/tools_def.template | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 471eb67c0c..9b59bd75c3 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -2888,7 +2888,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS= -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 *_CLANGDWARF_IA32_RC_PATH = DEF(CLANGDWARF_IA32_PREFIX)llvm-rc *_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto DEF(CLANG38_IA32_TARGET) -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld -no-pie *_CLANGDWARF_IA32_ASM_FLAGS= DEF(GCC5_ASM_FLAGS) -m32 -march=i386 DEF(CLANG38_IA32_TARGET) *_CLANGDWARF_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) *_CLANGDWARF_IA32_OBJCOPY_FLAGS= @@ -2897,17 +2897,17 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS= -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_IA32_TARGET) *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_IA32_TARGET) -DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double +DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 -DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie -RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double +RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double RELEASE_CLANGDWARF_IA32_DLINK_FLAGS= DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 -RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld +RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie -NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double +NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double NOOPT_CLANGDWARF_IA32_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 -NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=lld +NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=lld -no-pie ## # CLANGDWARF X64 definitions -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#101357): https://edk2.groups.io/g/devel/message/101357 Mute This Topic: https://groups.io/mt/97673648/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32
The clang toolchain might default to fPIE/fPIC, which prevents lld from linking the objects into a binary. Specify -fno-pie -fno-pic as done on GCC to fix linking. Test: Building the Universal Payload using the command 'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' actually works. Signed-off-by: Patrick Rudolph Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4356 --- BaseTools/Conf/tools_def.template | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 471eb67c0c..9b59bd75c3 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -2888,7 +2888,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS= -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 *_CLANGDWARF_IA32_RC_PATH = DEF(CLANGDWARF_IA32_PREFIX)llvm-rc *_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto DEF(CLANG38_IA32_TARGET) -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld -no-pie *_CLANGDWARF_IA32_ASM_FLAGS= DEF(GCC5_ASM_FLAGS) -m32 -march=i386 DEF(CLANG38_IA32_TARGET) *_CLANGDWARF_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) *_CLANGDWARF_IA32_OBJCOPY_FLAGS= @@ -2897,17 +2897,17 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS= -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_IA32_TARGET) *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_IA32_TARGET) -DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double +DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 -DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie -RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double +RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double RELEASE_CLANGDWARF_IA32_DLINK_FLAGS= DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 -RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld +RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie -NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double +NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double NOOPT_CLANGDWARF_IA32_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 -NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=lld +NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=lld -no-pie ## # CLANGDWARF X64 definitions -- 2.39.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#101340): https://edk2.groups.io/g/devel/message/101340 Mute This Topic: https://groups.io/mt/97673648/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-