Re: JIT compiling with LLVM v11

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: JIT compiling with LLVM v11
Дата
Msg-id 30d68bbd-a274-c5c9-35bf-b6347e1dab8e@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: JIT compiling with LLVM v11  (Andres Freund <andres@anarazel.de>)
Ответы Re: JIT compiling with LLVM v11  (Andres Freund <andres@anarazel.de>)
Список 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

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: Re: [HACKERS] GSOC'17 project introduction: Parallel COPY executionwith errors handling
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: TAP test module - PostgresClient