Skip to contentSkip to conversation

fix do_compile failed in parallel builds with system's make 3.28

PATCH NAK Hongxu Jia 2 participants 4 messages Apr 25, 2013 – Apr 26, 2013

lore
Share & tools
lore

Hongxu Jia

author
#0 lore raw

cover fix do_compile failed in parallel builds with system's make 3.28

The following changes since commit 90b98764555945a186562ca8d501a9585ce2b23f:

build-appliance: Update revision to dylan release (2013-04-18 00:39:52 +0100)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib hongxu/fix-systemd
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=hongxu/fix-systemd

Hongxu Jia (1):
systemd: fix do_compile failed in parallel builds with system's make

    3.28
 meta/recipes-core/systemd/systemd_199.bb |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Signature · 1 line
1.7.10.4
author
#1 lore raw

PATCH 1/1 systemd: fix do_compile failed in parallel builds with system's make 3.28

The error log:
...

./x86_64-poky-linux-libtool --mode=execute x86_64-poky-linux-objcopy -O binary -j introspect.Target systemd org.freedesktop.systemd1.Target.xml.tmp && \
        x86_64-poky-linux-strings org.freedesktop.systemd1.Target.xml.tmp | gawk -f /buildarea2/hongxujia/build-20130417-systemd-exlusive-multilib/tmp/work/x86_64-poky-linux/systemd/1_199-r5/systemd-199/introspect.awk | \
        x86_64-poky-linux-cpp  --sysroot=/buildarea2/hongxujia/build-20130417-systemd-exlusive-multilib/tmp/sysroots/qemux86-64    -m64 -P -O2 -pipe -g -feliminate-unused-debug-types -I/buildarea2/hongxujia/build-20130417-systemd-exlusive-multilib/tmp/sysroots/qemux86-64/usr/include/dbus-1.0 -I/buildarea2/hongxujia/build-20130417-systemd-exlusive-multilib/tmp/sysroots/qemux86-64/usr/lib/dbus-1.0/include   -imacros dbus/dbus-protocol.h -o org.freedesktop.systemd1.Target.xml - && rm org.freedesktop.systemd1.Target.xml.tmp

x86_64-poky-linux-objcopy: 'systemd': No such file make[2]: *** [org.freedesktop.systemd1.Manager.xml] Error 1 make[2]: *** Waiting for unfinished jobs....
x86_64-poky-linux-objcopy: 'systemd': No such file make[2]: *** [org.freedesktop.systemd1.Job.xml] Error 1
x86_64-poky-linux-objcopy: 'systemd': No such file make[2]: *** [org.freedesktop.systemd1.Unit.xml] Error 1
x86_64-poky-linux-objcopy: 'systemd': No such file make[2]: *** [org.freedesktop.systemd1.Socket.xml] Error 1
x86_64-poky-linux-objcopy: 'systemd': No such file make[2]: *** [org.freedesktop.systemd1.Target.xml] Error 1
x86_64-poky-linux-objcopy: 'systemd': No such file make[2]: *** [org.freedesktop.systemd1.Service.xml] Error 1
x86_64-poky-linux-objcopy: 'systemd': No such file make[2]: *** [org.freedesktop.systemd1.Timer.xml] Error 1
...

1, The error is about parallel make race, see:
http://savannah.gnu.org/bugs/?30653

2, The system's make 3.28 didn't add patch to fix this defect, but Yocto's make 3.28 has fixed. See oe-core:
meta/recipes-devtools/make/make-3.82/intermediate-target-bugfix.patch

3, Add make-native' to systemd's DEPENDS' to use Yocto's make rather than system's to compile systemd.

[YOCTO #4410]

---
 meta/recipes-core/systemd/systemd_199.bb |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-core/systemd/systemd_199.bb +2 -2
index 159dfd8..71839c2 100644
@@ -9,9 +9,9 @@ LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
 PROVIDES = "udev"
 
 PE = "1"
-PR = "r3"
+PR = "r4"
 
-DEPENDS = "kmod docbook-sgml-dtd-4.1-native intltool-native gperf-native acl readline dbus libcap libcgroup tcp-wrappers glib-2.0"
+DEPENDS = "kmod docbook-sgml-dtd-4.1-native intltool-native gperf-native acl readline dbus libcap libcgroup tcp-wrappers glib-2.0 make-native"
 DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 
 SECTION = "base/shell"
Signature · 1 line
1.7.10.4
#2 lore raw

Re: [PATCH 1/1] systemd: fix do_compile failed in parallel builds with system's make 3.28

Quoted 2 lines · Hongxu Jia

3, Add make-native' to systemd's DEPENDS' to use Yocto's make rather than system's to compile systemd.

NACK.

Installing make-native during a build will lead to races over the make binary, causing strange and non-obvious build failures.

A unpatched 3.82 in certain distros (F16 is the only culprit that I'm aware of) is a known issue and we'll be adding to the release notes that if you have a broken make, run "bitbake make-native" *first*.

Opensuse 12.1 has the patches required to fix this
(https://build.opensuse.org/package/show?package=make&project=openSUSE%3A12.1%3AUpdate,
make-parallel-build.patch, added 5 weeks ago) so please update your distro and this will fix itself.

I'm also told that 12.1 will be EOL in 21 days from now, so you should consider upgrading to 12.3.

Ross

author
#3 lore raw

Re: [PATCH 1/1] systemd: fix do_compile failed in parallel builds with system's make 3.28

Quoted 17 lines · Ross
Quoted 2 lines · Hongxu Jia

3, Add make-native' to systemd's DEPENDS' to use Yocto's make rather than system's to compile systemd.

NACK.

Installing make-native during a build will lead to races over the make binary, causing strange and non-obvious build failures.

A unpatched 3.82 in certain distros (F16 is the only culprit that I'm aware of) is a known issue and we'll be adding to the release notes that if you have a broken make, run "bitbake make-native" *first*.

Opensuse 12.1 has the patches required to fix this
(https://build.opensuse.org/package/show?package=make&project=openSUSE%3A12.1%3AUpdate,
make-parallel-build.patch, added 5 weeks ago) so please update your distro and this will fix itself.

Quoted 4 lines

I'm also told that 12.1 will be EOL in 21 days from now, so you should consider upgrading to 12.3.

Ross

Got it

Hongxu