summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch
diff options
context:
space:
mode:
authorJuro Bystricky <juro.bystricky@intel.com>2016-09-14 10:05:46 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-15 12:15:07 +0100
commita6f0bced4c15f93a5e1c1b8782aa5dc6ca8d1113 (patch)
treec481099dcd78e2a84d6e3ed549f436e3ac812a69 /meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch
parentde915fb7d387a7a3dcaba61b6e116bb28db9d8ff (diff)
downloadpoky-a6f0bced4c15f93a5e1c1b8782aa5dc6ca8d1113.tar.gz
busybox: Avoid race building libbb
When building busybox, an occasional error was observed. The error is consistently the same: libbb/appletlib.c:164:13: error: 'NUM_APPLETS' undeclared (first use in this function) while (i < NUM_APPLETS) { The reason is the include file where NUM_APPLETS is defined is not yet generated (or is being modified) at the time libbb/appletlib.c is compiled. The attached patchset fixes the problem by assuring libb is compiled as the last directory. [YOCTO#10116] (From OE-Core rev: a866a05e2c7d090a77aa6e95339c93e3592703a6) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch')
-rw-r--r--meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch b/meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch
new file mode 100644
index 0000000000..38302e0b68
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch
@@ -0,0 +1,53 @@
1Upstream-Status: Backport
2
3Patch addressing a parallel make race in Busybox
4
5 http://git.busybox.net/busybox/commit/?id=d8e61bbf13d0cf38d477255cfd5dc71c5d51d575
6
7Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
8
9From d8e61bbf13d0cf38d477255cfd5dc71c5d51d575 Mon Sep 17 00:00:00 2001
10From: Denys Vlasenko <vda.linux@googlemail.com>
11Date: Sun, 21 Aug 2016 22:00:20 +0200
12Subject: build system: different fix for
13 include/applet_tables.h/include/NUM_APPLETS.h
14
15Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
16
17diff --git a/applets/Kbuild.src b/applets/Kbuild.src
18index 5cc1827..3aedbbf 100644
19--- a/applets/Kbuild.src
20+++ b/applets/Kbuild.src
21@@ -29,7 +29,7 @@ applets/applets.o: include/usage_compressed.h include/applet_tables.h
22
23 applets/applet_tables: .config include/applets.h
24 applets/usage: .config include/applets.h
25-applets/usage_pod: .config include/applets.h include/applet_tables.h include/NUM_APPLETS.h
26+applets/usage_pod: .config include/applets.h include/applet_tables.h
27
28 quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
29 cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets
30@@ -37,8 +37,21 @@ quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
31 include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compressed
32 $(call cmd,gen_usage_compressed)
33
34-quiet_cmd_gen_applet_tables = GEN include/applet_tables.h
35+quiet_cmd_gen_applet_tables = GEN include/applet_tables.h include/NUM_APPLETS.h
36 cmd_gen_applet_tables = applets/applet_tables include/applet_tables.h include/NUM_APPLETS.h
37
38-include/applet_tables.h include/NUM_APPLETS.h: applets/applet_tables
39+include/NUM_APPLETS.h: applets/applet_tables
40+ $(call cmd,gen_applet_tables)
41+
42+# In fact, include/applet_tables.h depends only on applets/applet_tables,
43+# and is generated by it. But specifying only it can run
44+# applets/applet_tables twice, possibly in parallel.
45+# We say that it also needs NUM_APPLETS.h
46+#
47+# Unfortunately, we need to list the same command,
48+# and it can be executed twice (sequentially).
49+# The alternative is to not list any command,
50+# and then if include/applet_tables.h is deleted, it won't be rebuilt.
51+#
52+include/applet_tables.h: include/NUM_APPLETS.h applets/applet_tables
53 $(call cmd,gen_applet_tables)