From 6de7406d54057d6eb9600fdafea5f57d7f2ef448 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Fri, 13 Mar 2020 15:54:50 +0100 Subject: [PATCH] pkgconf: always retain -I and -L flags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The pkgconf fork filters -I and -L flag values from .pc files which match pkgconf's builtin system directory value. During configure, pkgconf derives the default system include and library search path values from exec_prefix, which is set to staging_dir/host in the host tool build phase. Due to that, pkgconf will drop all -I and -L flags pointing to staging_dir/host/include or staging_dir/host/lib, unless invoked with --keep-system-cflags and --keep-system-libs respectively, breaking our kernel libelf discovery / stack validation workarounds. In order to inhibit the filtering, add --keep-system-cflags and --keep-system-libs to our pkg-config shell wrapper. Fixes: GH#2832 Fixes: 867298cf47 ("tools/pkg-config: Replace with pkgconf") Ref: https://lists.infradead.org/pipermail/openwrt-devel/2020-March/022182.html Ref: https://git.openwrt.org/fe43969336201f2cc7d103b68fd6e65989bee184 Signed-off-by: Jo-Philipp Wich Acked-by: Petr Štetiar --- tools/pkgconf/files/pkg-config | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/pkgconf/files/pkg-config b/tools/pkgconf/files/pkg-config index fa1faccc6c..2c6fd08b4a 100755 --- a/tools/pkgconf/files/pkg-config +++ b/tools/pkgconf/files/pkg-config @@ -1,6 +1,8 @@ #!/bin/sh pkg-config.real \ +--keep-system-cflags \ +--keep-system-libs \ --define-variable=prefix="${STAGING_PREFIX}" \ --define-variable=exec_prefix="${STAGING_PREFIX}" \ --define-variable=bindir="${STAGING_PREFIX}/bin" "$@"