| Summary: | meson: update to 0.46.0 breaks systemd on qemuppc | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Randy MacLeod <randy.macleod> |
| Component: | devtools / tool chain | Assignee: | Randy MacLeod <randy.macleod> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium+ | CC: | meta.mr.watcher, meta.watcher, randy.macleod, ross.burton |
| Version: | 2.6 | ||
| Target Milestone: | 2.6 M3 | ||
| Hardware: | x86 | ||
| OS: | ppc | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | Don't know | |
I've heard that Ross is working on updating meson to 0.47.1. I can test as needed once there is a commit on the email list. Resolved in master by: commit 1520f5a345fd03d46f33f0efaf76191e96344bec Author: Khem Raj <raj.khem@gmail.com> Date: Sun Aug 19 10:23:34 2018 -0700 powerpc: Remove pie flags from compiler cmdline Original approach to add -no-<pie> flags cause link time behavior changes where packages start to lose the -fPIC -DPIC in compiler cmdline and this list keeps growing as we build more and more packages, Instead lets just remove the options we dont need from SECURITY_CFLAGS this makes it more robust and less intrusive This also means we do not need to re-add pic options as we started to do for affected packages Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> meta/conf/distro/include/security_flags.inc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) |
The meson update to 0.46.0 broke systemd on qemuppc for poky-lsb. The libsystemd-shared.so size increased by 18% despite the build flags being the same but using a different order. You can work-around the problem by setting: SECURITY_CFLAGS_pn-systemd_powerpc = "${SECURITY_NO_PIE_CFLAGS}" in: meta/conf/distro/include/security_flags.inc I recently started testing qemuppc by booting core-image-minimal with systemd as init. It fails with: /sbin/init: error while loading shared libraries: /lib/systemd/libsystemd-shared-237.so: R_PPC_REL24 relocation at 0x0054574c for symbol `strlen' out of range or in some cases: systemd[1]: \ unhandled signal 11 at b804b784 nip 0070d184 lr 008ee1ac code 1 Kernel panic - not syncing: \ Attempted to kill init! exitcode=0x0000000b when running: runqemu slirp nographic qemuppc ext4 The error only appears when using the distro poky-lsb or a security template in the WR builds. Adding: meta/conf/distro/include/security_flags.inc +SECURITY_CFLAGS_pn-systemd_powerpc = "${SECURITY_NO_PIE_CFLAGS}" the systemd configure flags changed from: -no-pie -fno-PIE to: -Wformat -Wformat-security -Werror=format-security and the problem went away. Being a sucker for punishment and having a nice builder on hand, I decided to bisect the error anyway, assuming that I'd end up at a systemd or toolchain uprev. Instead, I ended up at this meson update being the culprit. Here are the poky commits with the final stages of a git bisect status appended: 53dfa673d7 musl: Upgrade to latest - bad ... several bad results ... 96d783fa39 ifupdown: correct the repository location - bad a6b62ef9ae meson: update to 0.46.0 - BAD 26fba81701 webkitgtk: update to 2.20.1 - good 4c52e22689 procps: update to 3.3.14 - untested 23320a2c9a libwebp: update to 1.0.0 - good ... some good or unbuildable results ... More info on the email thread: http://lists.openembedded.org/pipermail/openembedded-core/2018-June/thread.html#152120