From: | Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | pgsql-hackers(at)postgresql(dot)org, Pierre Ducroquet <p(dot)psql(at)pinaraf(dot)info> |
Subject: | Re: JIT compiling with LLVM v11 |
Date: | 2018-03-03 14:37:35 |
Message-ID: | 30d68bbd-a274-c5c9-35bf-b6347e1dab8e@2ndquadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 3/2/18 19:29, Andres Freund wrote:
>> Using my standard set of CC=gcc-7 and CXX=g++-7, the build fails with
>>
>> g++-7: error: unrecognized command line option '-stdlib=libc++'
> It's actually already filtered, I just added -std*, because of selecting
> the c++ standard, I guess I need to filter more aggressively. This is
> fairly fairly annoying.
I see you already filter llvm-config --cflags by picking only -I and -D.
Why not do the same for --cxxflags? Any other options that we need
like -f* should be discovered using the normal
does-the-compiler-support-this-option tests.
>> It seems that it was intended that way anyway, since llvmjit.h contains
>> its own provisions for extern C.
>
> Hrmpf, yea, I broke that the third time now. I'm actually inclined to
> add an appropriate #ifdef ... #error so it's not repeated, what do you
> think?
Not sure. Why not just move the line and not move it again? ;-)
> Does putting an
> override COMPILER = $(CXX) $(CFLAGS)
>
> into src/backend/jit/llvm/Makefile work? It does force the use of CXX
> for all important platforms if I see it correctly. Verified that it
> works on linux.
Your latest HEAD builds out of the box for me now using the system compiler.
>> configure didn't find any of the LLVMOrc* symbols it was looking for.
>> Is that a problem? They seem to be for some debugging support.
>
> That's not a problem, except that the symbols won't be registered with
> the debugger, which is a bit annoying for backtraces. I tried to have
> configure throw errors in cases llvm is too old or such.
Where does one get those then? I have LLVM 5.0.1. Is there something
even newer?
> Hm, I'll switch them on in the development branch. Independent of the
> final decision that's definitely the right thing for now. The "full
> capability" of the patchset is used if you turn on these three GUCs:
>
> -c jit_expressions=1
> -c jit_tuple_deforming=1
> -c jit_perform_inlining=1
The last one doesn't seem to exist anymore.
If I turn on either of the first two, then make installcheck fails. See
attached diff.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Attachment | Content-Type | Size |
---|---|---|
regression.diffs | text/plain | 164.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2018-03-03 14:46:11 | Re: TAP test module - PostgresClient |
Previous Message | Pavel Stehule | 2018-03-03 14:30:02 | Re: [HACKERS] GSOC'17 project introduction: Parallel COPY execution with errors handling |