From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [RFC PATCH 1/7] pkg-meson: new infrastructure
Date: Thu, 10 May 2018 00:41:28 +0200 [thread overview]
Message-ID: <20180509224128.GA11938@ned> (raw)
In-Reply-To: <c0524a93-eaad-3e61-f8bc-f9b17271d468@mind.be>
Hi!
On 18-05-08 23:00:23, Arnout Vandecappelle wrote:
[snip]
> >> 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 [1],
> > 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 [1], Meson *does strip* RPATH [2] when
installing the executable of a library+executable project [3] in
$(HOST_DIR)/bin:
```
$ 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 [4] 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
very sensible.
So it looks like the workaround used in NixOS [5], 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.
[1] https://github.com/mesonbuild/meson/issues/1411
[2] https://github.com/mesonbuild/meson/blob/dc91aad42009f739f9e6d73221efc071626c28a3/mesonbuild/scripts/meson_install.py#L396
[3] https://github.com/mesonbuild/meson/issues/314#issuecomment-157658562
[4] https://github.com/mesonbuild/meson/issues/314#issuecomment-326909424
[5] https://github.com/NixOS/nixpkgs/pull/28444#issuecomment-324033323
Regards,
--
ELB
next prev parent reply other threads:[~2018-05-09 22:41 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-07 10:57 [Buildroot] [RFC PATCH 0/7] Add pkg-meson infrastructure Eric Le Bihan
2018-05-07 10:57 ` [Buildroot] [RFC PATCH 1/7] pkg-meson: new infrastructure Eric Le Bihan
2018-05-07 15:02 ` Thomas Petazzoni
2018-05-07 19:38 ` Eric Le Bihan
2018-05-07 19:43 ` Thomas Petazzoni
2018-05-07 22:12 ` Eric Le Bihan
2018-05-08 21:00 ` Arnout Vandecappelle
2018-05-09 22:41 ` Eric Le Bihan [this message]
2018-05-10 8:40 ` Thomas Petazzoni
2018-05-07 10:57 ` [Buildroot] [RFC PATCH 2/7] docs/manual: document pkg-meson infra Eric Le Bihan
2018-05-07 15:08 ` Thomas Petazzoni
2018-05-07 19:58 ` Eric Le Bihan
2018-05-07 10:57 ` [Buildroot] [RFC PATCH 3/7] libmpdclient: convert to " Eric Le Bihan
2018-05-07 10:57 ` [Buildroot] [RFC PATCH 4/7] systemd: " Eric Le Bihan
2018-05-07 10:57 ` [Buildroot] [RFC PATCH 5/7] ncmpc: " Eric Le Bihan
2018-05-07 10:57 ` [Buildroot] [RFC PATCH 6/7] mpd-mpc: " Eric Le Bihan
2018-05-07 10:57 ` [Buildroot] [RFC PATCH 7/7] enlightenment: " Eric Le Bihan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180509224128.GA11938@ned \
--to=eric.le.bihan.dev@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox