postgres.git / summary / log / commit / refs

commit    7a0aa99e51c7a3263e6ee45f19f270ddae430a92
Author:   Peter Eisentraut <peter@eisentraut.org>
Date:     Sat Sep 12 13:50:08 2026 +0000

    Revert "Use -isystem for LLVM include directories"
    
    This reverts commit 704ef84ef232e02e241071b2faf0541d155c6b62.
    
    The configure solution in that commit doesn't work if llvm-config
    returns a system directory such as /usr/include.  The resulting
    -isystem /usr/include puts the C headers before the C++ headers in the
    include file order, which is not supposed to be done and causes
    failures.  (Using -I /usr/include doesn't have that problem because it
    is handled specially by the compiler.)  Per buildfarm members
    hippopotamus and jay.
    
    The meson solution does work because it specifically filters out
    system includes.  This logic could theoretically be ported to
    configure, but that would be a separate undertaking.


config/llvm.m4 | 7 ++----- configure | 7 ++----- meson.build | 5 +---- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/config/llvm.m4 b/config/llvm.m4 index 496fd8f72a4..5d4f14cb900 100644 --- a/config/llvm.m4 +++ b/config/llvm.m4 @@ -46,13 +46,10 @@ AC_DEFUN([PGAC_LLVM_SUPPORT], # clear what the minimum version is. # Collect compiler flags necessary to build the LLVM dependent - # shared library. The include directories are added with -isystem - # rather than -I, so that warnings from LLVM's own headers are not - # reported under the warning options we select for our own code. + # shared library. for pgac_option in `$LLVM_CONFIG --cppflags`; do case $pgac_option in - -I*) LLVM_CPPFLAGS="-isystem ${pgac_option#-I} $LLVM_CPPFLAGS";; - -D*) LLVM_CPPFLAGS="$pgac_option $LLVM_CPPFLAGS";; + -I*|-D*) LLVM_CPPFLAGS="$pgac_option $LLVM_CPPFLAGS";; esac done diff --git a/configure b/configure index 002e31bf695..d42a7a794ff 100755 --- a/configure +++ b/configure @@ -5105,13 +5105,10 @@ fi # clear what the minimum version is. # Collect compiler flags necessary to build the LLVM dependent - # shared library. The include directories are added with -isystem - # rather than -I, so that warnings from LLVM's own headers are not - # reported under the warning options we select for our own code. + # shared library. for pgac_option in `$LLVM_CONFIG --cppflags`; do case $pgac_option in - -I*) LLVM_CPPFLAGS="-isystem ${pgac_option#-I} $LLVM_CPPFLAGS";; - -D*) LLVM_CPPFLAGS="$pgac_option $LLVM_CPPFLAGS";; + -I*|-D*) LLVM_CPPFLAGS="$pgac_option $LLVM_CPPFLAGS";; esac done diff --git a/meson.build b/meson.build index 52d6bc37dd9..f4cde249242 100644 --- a/meson.build +++ b/meson.build @@ -924,10 +924,7 @@ endif llvmopt = get_option('llvm') llvm = not_found_dep if have_cxx - # Use include_type 'system' so that warnings from LLVM's own headers are - # not reported under the warning options we select for our own code. - llvm = dependency('llvm', version: '>=14', method: 'config-tool', - include_type: 'system', required: llvmopt) + llvm = dependency('llvm', version: '>=14', method: 'config-tool', required: llvmopt) if llvm.found()