Hi Ray, > On 31. Mar 2023, at 12:09, Ni, Ray <ray...@intel.com> wrote: > > Ard, > What does "-read_only_relocs suppress" control?
It controls whether relocs that target read-only segments yield a build error or not. I think lld uses “-z notext”. > Linker doesn't produce relocation entries that modifies .text section silently > so the final .text just cannot run at all? Could you please rephrase? I’m not sure I understand, but I think it’s important everyone understands the issues at play to make a good judgment call. Best regards, Marvin > > Thanks, > Ray > >> -----Original Message----- >> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ard >> Biesheuvel >> Sent: Friday, March 31, 2023 5:15 PM >> To: devel@edk2.groups.io >> Cc: Ard Biesheuvel <a...@kernel.org>; Ni, Ray <ray...@intel.com>; Andrew >> Fish <af...@apple.com>; Kinney, Michael D <michael.d.kin...@intel.com>; >> Liu, Zhiguang <zhiguang....@intel.com>; Rebecca Cran >> <rebe...@bsdio.com>; Tom Lendacky <thomas.lenda...@amd.com>; >> Marvin Häuser <mhaeu...@posteo.de> >> Subject: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify >> CpuExceptionHandlerLib >> >> We have a special version of CpuExceptionHandlerLib for XCODE5, whose >> >> linker (LLD) does not permit absolute symbol references in read-only >> >> sections. >> >> >> >> Instead of fixing this up at runtime for all toolchains (which is done >> >> by writing the fixed up values to the .text section, which we'd prefer >> >> to avoid), tweak the SEC/PEI version so it does not need this, and >> >> update the remaining versions to only incorporate this logic when using >> >> the XCODE toolchain. >> >> >> >> Changes since v3: >> >> - As Marvin points out, using '-read_only_relocs suppress' with the X64 >> >> XCODE linker is a terrible idea, as it corrupts the resulting PE >> >> binaries, so instead, let's do the following: >> >> . tweak the SEC/PEI version of the library so the relocs are emitted >> >> into .data when using XCODE; >> >> . tweak the other versions so the runtime fixups are only done when >> >> using XCODE >> >> - add acks from Jiewen and Ray >> >> >> >> Changes since v2: >> >> - pass linker switches to permit absolute relocations in read-only >> >> regions, and keep all code in .text >> >> >> >> Cc: "Ni, Ray" <ray...@intel.com> >> >> Cc: Andrew Fish <af...@apple.com> >> >> Cc: "Kinney, Michael D" <michael.d.kin...@intel.com> >> >> Cc: "Liu, Zhiguang" <zhiguang....@intel.com> >> >> Cc: Rebecca Cran <rebe...@bsdio.com> >> >> Cc: Tom Lendacky <thomas.lenda...@amd.com> >> >> Cc: Marvin Häuser <mhaeu...@posteo.de> >> >> >> >> Ard Biesheuvel (5): >> >> BaseTools/tools_def CLANGDWARF: Permit text relocations >> >> UefiCpuPkg/CpuExceptionHandlerLib: Use single SEC/PEI version >> >> UefiCpuPkg/CpuExceptionHandlerLib: Make runtime fixups XCODE-only >> >> OvmfPkg: Drop special Xcode5 version of exception handler library >> >> UefiCpuPkg/CpuExceptionHandlerLib: Drop special XCODE5 version >> >> >> >> BaseTools/Conf/tools_def.template >> | 2 +- >> >> OvmfPkg/AmdSev/AmdSevX64.dsc >> | 4 - >> >> OvmfPkg/CloudHv/CloudHvX64.dsc >> | 4 - >> >> OvmfPkg/IntelTdx/IntelTdxX64.dsc >> | >> 4 - >> >> OvmfPkg/Microvm/MicrovmX64.dsc >> | 4 - >> >> OvmfPkg/OvmfPkgIa32.dsc >> | 4 >> - >> >> OvmfPkg/OvmfPkgIa32X64.dsc >> | >> 4 - >> >> OvmfPkg/OvmfPkgX64.dsc >> | 4 >> - >> >> OvmfPkg/OvmfXen.dsc >> | 4 - >> >> >> UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.in >> f | 5 +- >> >> >> UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf >> | 4 +- >> >> >> UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib >> .inf | 4 +- >> >> >> UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.i >> nf | 4 +- >> >> >> UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nas >> m | 116 +++++++++++++++++--- >> >> >> UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{Xcode5ExceptionHandler >> Asm.nasm => SecPeiExceptionHandlerAsm.nasm} | 108 +++--------------- >> >> >> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa >> ndlerLib.inf | 65 ----------- >> >> >> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa >> ndlerLib.uni | 18 --- >> >> UefiCpuPkg/UefiCpuPkg.dsc >> | 7 >> -- >> >> 18 files changed, 133 insertions(+), 232 deletions(-) >> >> rename >> UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{Xcode5ExceptionHandler >> Asm.nasm => SecPeiExceptionHandlerAsm.nasm} (70%) >> >> delete mode 100644 >> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa >> ndlerLib.inf >> >> delete mode 100644 >> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa >> ndlerLib.uni >> >> >> >> -- >> >> 2.39.2 >> >> >> >> >> >> -=-=-=-=-=-= >> Groups.io Links: You receive all messages sent to this group. >> View/Reply Online (#102255): >> https://edk2.groups.io/g/devel/message/102255 >> Mute This Topic: https://groups.io/mt/97969646/1712937 >> Group Owner: devel+ow...@edk2.groups.io >> Unsubscribe: https://edk2.groups.io/g/devel/unsub [ray...@intel.com] >> -=-=-=-=-=-= >> > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102293): https://edk2.groups.io/g/devel/message/102293 Mute This Topic: https://groups.io/mt/97969646/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-