[Buildroot] [RFC PATCH 1/7] pkg-meson: new infrastructure
Eric Le Bihan
eric.le.bihan.dev at free.fr
Wed May 9 22:41:28 UTC 2018
On 18-05-08 23:00:23, Arnout Vandecappelle wrote:
> >> OK. Did you test the host variant of the meson-package infrastructure ?
> > Good advice! Testing the host variant of a custom library+executable
> > project brought out that Meson does not automically sets RPATH ,
> > which makes support/scripts/check-host-rpath unhappy, and that it
> If that is the case, it means you don't properly pass HOST_LDFLAGS, which is A
> Bad Thing (tm).
> Indeed, looking at your patch, I see none of the host options are passed. You
> certainly need to pass HOST_MAKE_ENV in the environment to make pkg-config is
> used correctly. And then you should also make sure that HOSTCC etc. are passed
> correctly - remember that it's possible to use a different host compiler by
> passing HOSTCC in the environment (and I'm actually using that feature!).
I added $$(HOST_CONFIGURE_OPTS), CFLAGS="$$(HOST_CFLAGS)" and
LDFLAGS="$$(HOST_LDFLAGS)" before invoking Meson (as done in
pkg-autotools.mk) and now it politely informs me that it will take these
flags into account:
Appending CFLAGS from environment: '-O2 -I/home/eric/build/test-meson-package/qemu/arm/vexpress/host/include'
Appending LDFLAGS from environment: '-L/home/eric/build/test-meson-package/qemu/arm/vexpress/host/lib -Wl,-rpath,/home/eric/build/test-meson-package/qemu/arm/vexpress/host/lib'
Appending CPPFLAGS from environment: '-I/home/eric/build/test-meson-package/qemu/arm/vexpress/host/include'
But as stated in issue 1411 , Meson *does strip* RPATH  when
installing the executable of a library+executable project  in
$ readelf -a /home/eric/build/test-meson-package/qemu/arm/vexpress/build/host-hello-meson-custom/build/tools/hello-meson-tool | grep -e PATH
0x000000000000000f (RPATH) Library rpath: [/home/eric/build/test-meson-package/qemu/arm/vexpress/host/lib:$ORIGIN/../hello-meson]
$ readelf -a /home/eric/build/test-meson-package/qemu/arm/vexpress/host/bin/hello-meson-tool | grep -e PATH
The recommended workaround is to define install_rpath  in for the
executable target, but this requires patching the sources of the
Meson-based package when building its host variant, which does not sound
So it looks like the workaround used in NixOS , i.e. patching the
host variant of Meson itself to remove the RPATH strip step, is
preferable until upstream Meson settles on this topic. I'll send another
patch for the meson package where this step is done in a post-extract
hook of the host variant.
More information about the buildroot