Re: [PATCH] jit: fix build with LLVM-21
Holger Hoffstätte <holger@applied-asynchrony.com>
From: Holger Hoffstätte <holger@applied-asynchrony.com>
To: Peter Eisentraut <peter@eisentraut.org>, pgsql-hackers@postgresql.org
Date: 2025-09-12T12:47:34Z
Lists: pgsql-hackers
On 2025-09-12 09:47, Holger Hoffstätte wrote:
> On 2025-09-12 08:36, Peter Eisentraut wrote:
>> In my testing with LLVM 21, I'm getting an additional error:
>>
>> ../src/backend/jit/llvm/llvmjit_wrap.cpp:56:18: error: no matching constructor for initialization of 'llvm::orc::RTDyldObjectLinkingLayer'
>> 56 | return wrap(new llvm::orc::RTDyldObjectLinkingLayer(
>> | ^
>> 57 | *unwrap(ES), [] { return std::make_unique<llvm::backport::SectionMemoryManager>(nullptr, true); }));
>> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> /opt/homebrew/Cellar/llvm/21.1.0/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h:58:3: note: candidate constructor not viable: no known conversion from '(lambda at ../src/backend/jit/llvm/llvmjit_wrap.cpp:57:16)' to 'GetMemoryManagerFunction' (aka 'unique_function<std::unique_ptr<RuntimeDyld::MemoryManager> (const MemoryBuffer &)>') for 2nd argument
>> 58 | RTDyldObjectLinkingLayer(ExecutionSession &ES,
>> | ^
>> 59 | GetMemoryManagerFunction GetMemoryManager);
>> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> /opt/homebrew/Cellar/llvm/21.1.0/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h:37:16: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
>> 37 | class LLVM_ABI RTDyldObjectLinkingLayer
>> | ^~~~~~~~~~~~~~~~~~~~~~~~
>>
>> I gather you're not seeing that?
I temporarily removed the __arch64__ guard and can reproduce the above error,
using either gcc-15 or clang-21. It seems this llvm monkey patch backport thing
is affected by the following commit in llvm-21:
https://github.com/llvm/llvm-project/commit/cd585864c0bbbd74ed2a2b1ccc191eed4d1c8f90
Trying to figure out how to adapt the code..
chers
Holger
Commits
-
jit: Adjust AArch64-only code for LLVM 21.
- 55164852d3cd 15.16 landed
- 600acd34b09a 16.12 landed
- 60215eae7c42 17.8 landed
- 912cfa3146ce 18.2 landed
- 0dceba21d74f 19 (unreleased) landed
- 035a1f5aca4e 14.21 landed
-
jit: fix build with LLVM-21
- 59d6e843e9a8 13.23 landed
- fbfc36e9471b 14.20 landed
- 72a24bebc38f 15.15 landed
- 2670881afd91 16.11 landed
- 755f01ad743c 17.7 landed
- c11ac811a30d 18.0 landed
- 282d0bdee619 19 (unreleased) landed
-
Monkey-patch LLVM code to fix ARM relocation bug.
- 9044fc1d45a0 18.0 cited