Ard, What does "-read_only_relocs suppress" control? Linker doesn't produce relocation entries that modifies .text section silently so the final .text just cannot run at all?
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 (#102281): https://edk2.groups.io/g/devel/message/102281 Mute This Topic: https://groups.io/mt/97969646/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-