From a866a05e2c7d090a77aa6e95339c93e3592703a6 Mon Sep 17 00:00:00 2001 From: Juro Bystricky Date: Wed, 14 Sep 2016 10:05:46 -0700 Subject: 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] Signed-off-by: Juro Bystricky Signed-off-by: Richard Purdie --- .../busybox-kbuild-race-fix-commit-d8e61bb.patch | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch (limited to 'meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch') 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 @@ +Upstream-Status: Backport + +Patch addressing a parallel make race in Busybox + + http://git.busybox.net/busybox/commit/?id=d8e61bbf13d0cf38d477255cfd5dc71c5d51d575 + +Signed-off-by: Juro Bystricky + +From d8e61bbf13d0cf38d477255cfd5dc71c5d51d575 Mon Sep 17 00:00:00 2001 +From: Denys Vlasenko +Date: Sun, 21 Aug 2016 22:00:20 +0200 +Subject: build system: different fix for + include/applet_tables.h/include/NUM_APPLETS.h + +Signed-off-by: Denys Vlasenko + +diff --git a/applets/Kbuild.src b/applets/Kbuild.src +index 5cc1827..3aedbbf 100644 +--- a/applets/Kbuild.src ++++ b/applets/Kbuild.src +@@ -29,7 +29,7 @@ applets/applets.o: include/usage_compressed.h include/applet_tables.h + + applets/applet_tables: .config include/applets.h + applets/usage: .config include/applets.h +-applets/usage_pod: .config include/applets.h include/applet_tables.h include/NUM_APPLETS.h ++applets/usage_pod: .config include/applets.h include/applet_tables.h + + quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h + cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets +@@ -37,8 +37,21 @@ quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h + include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compressed + $(call cmd,gen_usage_compressed) + +-quiet_cmd_gen_applet_tables = GEN include/applet_tables.h ++quiet_cmd_gen_applet_tables = GEN include/applet_tables.h include/NUM_APPLETS.h + cmd_gen_applet_tables = applets/applet_tables include/applet_tables.h include/NUM_APPLETS.h + +-include/applet_tables.h include/NUM_APPLETS.h: applets/applet_tables ++include/NUM_APPLETS.h: applets/applet_tables ++ $(call cmd,gen_applet_tables) ++ ++# In fact, include/applet_tables.h depends only on applets/applet_tables, ++# and is generated by it. But specifying only it can run ++# applets/applet_tables twice, possibly in parallel. ++# We say that it also needs NUM_APPLETS.h ++# ++# Unfortunately, we need to list the same command, ++# and it can be executed twice (sequentially). ++# The alternative is to not list any command, ++# and then if include/applet_tables.h is deleted, it won't be rebuilt. ++# ++include/applet_tables.h: include/NUM_APPLETS.h applets/applet_tables + $(call cmd,gen_applet_tables) -- cgit 1.2.3-korg