Re: broken JIT support on Fedora 40 - Mailing list pgsql-hackers

From Thomas Munro
Subject Re: broken JIT support on Fedora 40
Date
Msg-id CA+hUKGLW4JGt8_3m8kVq1gXMkfjc2-Kym=YKm3HngqCwzw=99A@mail.gmail.com
Whole thread Raw
In response to Re: broken JIT support on Fedora 40  (Thomas Munro <thomas.munro@gmail.com>)
Responses Re: broken JIT support on Fedora 40
List pgsql-hackers
For me it seems that the LLVMRunPasses() call, new in

commit 76200e5ee469e4a9db5f9514b9d0c6a31b496bff
Author: Thomas Munro <tmunro@postgresql.org>
Date:   Wed Oct 18 22:15:54 2023 +1300

    jit: Changes for LLVM 17.

is reaching code that segfaults inside libLLVM, specifically in
llvm::InlineFunction(llvm::CallBase&, llvm::InlineFunctionInfo&, bool,
llvm::AAResults*, bool, llvm::Function*).  First obvious question
would be: is that NULL argument still acceptable?  Perhaps it wants
our LLVMTargetMachineRef there:

       err = LLVMRunPasses(module, passes, NULL, options);

But then when we see what is does with that argument, it arrives at a
place that apparently accepts nullptr.


https://github.com/llvm/llvm-project/blob/6b2bab2839c7a379556a10287034bd55906d7094/llvm/lib/Passes/PassBuilderBindings.cpp#L56

https://github.com/llvm/llvm-project/blob/6b2bab2839c7a379556a10287034bd55906d7094/llvm/include/llvm/Passes/PassBuilder.h#L124

Hrmph.  Might need an assertion build to learn more.  I'll try to look
again next week or so.



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Support json_errdetail in FRONTEND builds
Next
From: Melanie Plageman
Date:
Subject: Re: Combine Prune and Freeze records emitted by vacuum