jit: Adjust AArch64-only code for LLVM 21.
authorThomas Munro <tmunro@postgresql.org>
Sat, 22 Nov 2025 07:51:16 +0000 (20:51 +1300)
committerThomas Munro <tmunro@postgresql.org>
Sat, 22 Nov 2025 08:21:11 +0000 (21:21 +1300)
LLVM 21 changed the arguments of RTDyldObjectLinkingLayer's
constructor, breaking compilation with the backported
SectionMemoryManager from commit 9044fc1d.

https://github.com/llvm/llvm-project/commit/cd585864c0bbbd74ed2a2b1ccc191eed4d1c8f90

Backpatch-through: 14
Author: Holger Hoffstätte <holger@applied-asynchrony.com>
Reviewed-by: Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com>
Discussion: https://postgr.es/m/d25e6e4a-d1b4-84d3-2f8a-6c45b975f53d%40applied-asynchrony.com

src/backend/jit/llvm/llvmjit_wrap.cpp

index da850d67ab647b042a747c23a41fa47b0cfaa94e..c31a57b8563e882dff18fdc825a65e9333486c8a 100644 (file)
@@ -53,7 +53,14 @@ DEFINE_SIMPLE_CONVERSION_FUNCTIONS(llvm::orc::ObjectLayer, LLVMOrcObjectLayerRef
 LLVMOrcObjectLayerRef
 LLVMOrcCreateRTDyldObjectLinkingLayerWithSafeSectionMemoryManager(LLVMOrcExecutionSessionRef ES)
 {
+#if LLVM_VERSION_MAJOR >= 21
+   return wrap(new llvm::orc::RTDyldObjectLinkingLayer(
+       *unwrap(ES), [](const llvm::MemoryBuffer&) {
+           return std::make_unique<llvm::backport::SectionMemoryManager>(nullptr, true);
+       }));
+#else
    return wrap(new llvm::orc::RTDyldObjectLinkingLayer(
        *unwrap(ES), [] { return std::make_unique<llvm::backport::SectionMemoryManager>(nullptr, true); }));
+#endif
 }
 #endif