Use -isystem for LLVM include directories

LLVM's headers produce warnings under some of the warning options we
might like to use.  For example, -Wshadow=local reports several
warnings from LLVM's headers when compiling llvmjit_inline.cpp.  To
work around that, add the include directories reported by llvm-config
with -isystem rather than -I, which makes the compiler treat them as
system headers and not report warnings from them.  In meson, this is a
built-in facility of the dependency() function, in configure we
implement it ourselves.

An alternative solution would have been to use "#pragma GCC
system_header", as is already done elsewhere in the tree.  But that
seems less elegant here.  Either, we would have to potentially create
a separate wrapper for each LLVM header, or we would have to route all
LLVM includes through a common header, which would break modularity.

Reviewed-by: Peter Geoghegan <[email protected]>
Reviewed-by: Chao Li <[email protected]>
Discussion: 
https://www.postgresql.org/message-id/flat/84b6f128-91f5-480e-8a9e-7d0e8f538cea%40eisentraut.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/704ef84ef232e02e241071b2faf0541d155c6b62

Modified Files
--------------
config/llvm.m4 | 7 +++++--
configure      | 7 +++++--
meson.build    | 5 ++++-
3 files changed, 14 insertions(+), 5 deletions(-)

Reply via email to