summaryrefslogtreecommitdiff
path: root/user/llvm18/dyld-elf-ppc32.patch
diff options
context:
space:
mode:
Diffstat (limited to 'user/llvm18/dyld-elf-ppc32.patch')
-rw-r--r--user/llvm18/dyld-elf-ppc32.patch8
1 files changed, 3 insertions, 5 deletions
diff --git a/user/llvm18/dyld-elf-ppc32.patch b/user/llvm18/dyld-elf-ppc32.patch
index 7fb744169..77ff8c644 100644
--- a/user/llvm18/dyld-elf-ppc32.patch
+++ b/user/llvm18/dyld-elf-ppc32.patch
@@ -8,17 +8,15 @@ 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
-@@ -830,6 +830,13 @@
+@@ -830,6 +830,11 @@
case ELF::R_PPC_ADDR16_HA:
writeInt16BE(LocalAddress, applyPPCha(Value + Addend));
break;
-+ case ELF::R_PPC_REL32:
++ 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;
++ } break;
}
}