(please cc: me on replies) Hello!
I tried building against LLVM-21 and noticed that a function for symbol lookup was renamed (without semantic changes), breaking the LLVM JIT. The following patch fixes this by adding a version guard. It applies equally to both master and 17.6. Passes the test suite and verified on 17.6 with the jit example from the documentation. cheers, Holger
>From 932b8f540f157ce9bcbae9ff618d507e9229778e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Hoffst=C3=A4tte?= <hol...@applied-asynchrony.com> Date: Mon, 8 Sep 2025 14:57:32 +0200 Subject: [PATCH] jit: fix build with LLVM-21 LLVM-21 renamed llvm::GlobalValue::getGUID() to getGUIDAssumingExternalLinkage(), so add a version guard. --- src/backend/jit/llvm/llvmjit_inline.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/jit/llvm/llvmjit_inline.cpp b/src/backend/jit/llvm/llvmjit_inline.cpp index 2764c3bbe2f..39a19ec6a46 100644 --- a/src/backend/jit/llvm/llvmjit_inline.cpp +++ b/src/backend/jit/llvm/llvmjit_inline.cpp @@ -238,7 +238,11 @@ llvm_build_inline_plan(LLVMContextRef lc, llvm::Module *mod) llvm_split_symbol_name(symbolName.data(), &cmodname, &cfuncname); +#if LLVM_VERSION_MAJOR < 21 funcGUID = llvm::GlobalValue::getGUID(cfuncname); +#else + funcGUID = llvm::GlobalValue::getGUIDAssumingExternalLinkage(cfuncname); +#endif /* already processed */ if (inlineState.processed) -- 2.51.0