Message ID | 20200313145450.1962201-1-jo@mein.io |
---|---|
State | Accepted |
Headers | show |
Series | [OpenWrt-Devel] pkgconf: always retain -I and -L flags | expand |
On Fri, Mar 13, 2020 at 7:55 AM Jo-Philipp Wich <jo@mein.io> wrote: > > 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 <jo@mein.io> > --- > 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 \ Any way to make these only used for host builds? I imagine these options could impact target builds. > --define-variable=prefix="${STAGING_PREFIX}" \ > --define-variable=exec_prefix="${STAGING_PREFIX}" \ > --define-variable=bindir="${STAGING_PREFIX}/bin" "$@" > -- > 2.25.1 > > > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Jo-Philipp Wich <jo@mein.io> [2020-03-13 15:54:50]: > 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 <jo@mein.io> Thanks for tracking it down! Acked-by: Petr Štetiar <ynezz@true.cz>
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" "$@"
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 <jo@mein.io> --- tools/pkgconf/files/pkg-config | 2 ++ 1 file changed, 2 insertions(+)