No, it's not that. Even if you pass PKG_CONFIG_SYSROOT_DIR to pkg-config directly, it will apply that only to --cflags and similar, but not to generic --variable. Try this: alex@alex-lx-laptop:~$ PKG_CONFIG_SYSROOT_DIR=/aaaa pkg-config libdrm --cflags -I/aaaa/usr/include/libdrm alex@alex-lx-laptop:~$ PKG_CONFIG_SYSROOT_DIR=/aaaa pkg-config libdrm --variable=includedir /usr/include So a wrapper will not solve the 'includedir prefix' problem, and neither the wrapper, nor pkg-config or meson can possibly know which variable is a path, and which isn't - the only place where that is known is the component that obtains the variable. And so that's where it has to be prefixed. Alex On Tue, 30 Nov 2021 at 23:38, Joel Winarske wrote: > Based on my testing, if PKG_CONFIG_SYSROOT_DIR is set or not makes zero > difference on the outcome. I suspect this is related to how pkg-config is > launched by meson. > > Looking at the meson source tree, in all ci/test cross compile scenarios > they reference a pkg-config wrapper. No cross compile scenario I see > referencing the 'pkgconfig' key uses a bare pkg-config. > > cross/armclang-linux.txt:#pkgconfig = > '/usr/bin/arm-linux-gnueabihf-pkg-config' > cross/linux-mingw-w64-32bit.txt:pkgconfig = > '/usr/bin/i686-w64-mingw32-pkg-config' > cross/linux-mingw-w64-64bit.txt:pkgconfig = > '/usr/bin/x86_64-w64-mingw32-pkg-config' > cross/ubuntu-armhf.txt:pkgconfig = > '/usr/bin/arm-linux-gnueabihf-pkg-config' > test cases/unit/33 cross file overrides always > args/ubuntu-armhf-overrides.txt:pkgconfig = > '/usr/bin/arm-linux-gnueabihf-pkg-config' > test cases/unit/36 exe_wrapper behaviour/broken-cross.txt:pkgconfig = > '/usr/bin/x86_64-w64-mingw32-pkg-config' > > I think adding a wrapper makes sense. > > 5.2 Tool Calling Conventions - > https://autotools.io/pkgconfig/cross-compiling.html > > On Tue, Nov 30, 2021 at 12:13 PM Alexander Kanavin > wrote: > >> On Tue, 30 Nov 2021 at 21:00, Joel Winarske >> wrote: >> >>> Yes, if the sys_root key value in meson.cross is present >>> PKG_CONFIG_SYSROOT_DIR gets set. Honister patch I confirmed with: >>> >>> https://github.com/jwinarske/manifests/blob/honister/rpi64/0001-Add-sys_root-to-properties-section.patch >>> >>> The issue is that meson doesn't pass PKG_CONFIG_SYSROOT_DIR to the shell >>> environment that runs pkg-config, as with the pkg-config sandbox test it >>> does work. >>> >> >> Both meson source code and its documentation indicate otherwise - if you >> set sys_root property, it will get passed to pkg-config via environment as >> PKG_CONFIG_SYSROOT_DIR: >> >> https://github.com/mesonbuild/meson/blob/master/mesonbuild/dependencies/pkgconfig.py#L121 >> >> Alex >> >>