diff options
Diffstat (limited to 'user/llvm14/dyld-elf-ppc32.patch')
-rw-r--r-- | user/llvm14/dyld-elf-ppc32.patch | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/user/llvm14/dyld-elf-ppc32.patch b/user/llvm14/dyld-elf-ppc32.patch deleted file mode 100644 index badea265f..000000000 --- a/user/llvm14/dyld-elf-ppc32.patch +++ /dev/null @@ -1,24 +0,0 @@ -Author: A. Wilcox <awilfox@adelielinux.org> -Upstream-Status: Pending - -This implements the R_PPC_REL32 relocation type, which is needed for the -OrcJIT to work properly on 32-bit PowerPC. - -Needs more tests before submitting upstream, but seems to DTRT. - ---- llvm-14.0.6.src/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp.old 2022-06-22 16:46:24.000000000 +0000 -+++ llvm-14.0.6.src/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp 2022-11-28 06:33:12.239921624 +0000 -@@ -818,6 +818,13 @@ - case ELF::R_PPC_ADDR16_HA: - writeInt16BE(LocalAddress, applyPPCha(Value + Addend)); - break; -+ case ELF::R_PPC_REL32: -+ uint32_t FinalAddress = Section.getLoadAddressWithOffset(Offset); -+ int64_t delta = static_cast<int64_t>(Value - FinalAddress + Addend); -+ if (SignExtend64<32>(delta) != delta) -+ llvm_unreachable("Relocation R_PPC_REL32 overflow"); -+ writeInt32BE(LocalAddress, delta); -+ break; - } - } - |