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 <rebe...@bsdio.com> 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 <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=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] -=-=-=-=-=-=-=-=-=-=-=-