From: | Andreas Karlsson <andreas(at)proxel(dot)se> |
---|---|
To: | Pierre Ducroquet <p(dot)psql(at)pinaraf(dot)info>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Cc: | Pierre Ducroquet <pierre(dot)ducroquet(at)people-doc(dot)com>, Andres Freund <andres(at)anarazel(dot)de> |
Subject: | Re: JIT compiling with LLVM v9.1 |
Date: | 2018-02-15 11:54:34 |
Message-ID: | 3bfd9660-756d-a1e2-f8d7-aef498c4c412@proxel.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 02/05/2018 10:44 PM, Pierre Ducroquet wrote:
>> psqlscanslash.l: In function ‘psql_scan_slash_option’:
>> psqlscanslash.l:550:8: warning: variable ‘lexresult’ set but not used
>> [-Wunused-but-set-variable]
>> int final_state;
>> ^~~~~~~~~
>
> I'm not sure Andres's patches have anything to do with psql, it's surprising.
I managed to track down the bug and apparently when building with
--with-llvm the -DNDEBUG option is added to CPPFLAGS, but I am not
entirely sure what the code in config/llvm.m4 is trying to do in the
first place.
The two issues I see with what the code does are:
1) Why does config/llvm.m4 modify CPPFLAGS? That affects the building of
the binaries too which may be done with gcc like in my case. Shouldn't
it use a LLVM_CPPFLAGS or something?
2) When I build with --with-cassert I expect the assertions to be there,
both in the binaries and the bitcode. Is that just a bug or is there any
thought behind this?
Below is the diff in src/Makefile.global between when I run configure
with --with-llvm or not.
diff src/Makefile.global-nollvm src/Makefile.global-llvm
78c78
< configure_args = '--prefix=/home/andreas/dev/postgresql-inst'
'--enable-tap-tests' '--enable-cassert' '--enable-debug'
---
> configure_args = '--prefix=/home/andreas/dev/postgresql-inst'
'--enable-tap-tests' '--enable-cassert' '--enable-debug' '--with-llvm'
190c190
< with_llvm = no
---
> with_llvm = yes
227,229c227,229
< LLVM_CONFIG =
< LLVM_BINPATH =
< CLANG =
---
> LLVM_CONFIG = /usr/bin/llvm-config
> LLVM_BINPATH = /usr/lib/llvm-4.0/bin
> CLANG = /usr/bin/clang
238c238
< CPPFLAGS = -D_GNU_SOURCE
---
> CPPFLAGS = -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS
-D__STDC_CONSTANT_MACROS -D_GNU_SOURCE -DNDEBUG
-I/usr/lib/llvm-4.0/include -D_GNU_SOURCE
261c261
< LLVM_CXXFLAGS =
---
> LLVM_CXXFLAGS = -std=c++0x -std=c++11 -fno-exceptions
283c283
< LLVM_LIBS=
---
> LLVM_LIBS= -lLLVM-4.0
297c297
< LDFLAGS += -Wl,--as-needed
---
> LDFLAGS += -L/usr/lib/llvm-4.0/lib -Wl,--as-needed
From | Date | Subject | |
---|---|---|---|
Next Message | Etsuro Fujita | 2018-02-15 12:10:41 | Re: non-bulk inserts and tuple routing |
Previous Message | Pavan Deolasee | 2018-02-15 11:19:46 | Re: [HACKERS] MERGE SQL Statement for PG11 |