From 7a0aa99e51c7a3263e6ee45f19f270ddae430a92 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sat, 12 Sep 2026 15:50:08 +0200 Subject: [PATCH] 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()