mirror of
https://git.yoctoproject.org/poky
synced 2026-04-18 12:32:12 +02:00
busybox: Add parallel make fix
We're seeing regular parallel make failures in applet headers in busybox. This adds a patch to try and avoid the issue, building upon a fix already backported from upstream. The patch has been sent to upstream. [YOCTO #10116] (From OE-Core rev: 199cef0e8a50b20d0ee6fefd1d4cf3372eba7728) (From OE-Core rev: e3cca9da7e7a7f10db708f39097e1d8700f8ba2d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
65
meta/recipes-core/busybox/busybox/parallel-make-fix.patch
Normal file
65
meta/recipes-core/busybox/busybox/parallel-make-fix.patch
Normal file
@@ -0,0 +1,65 @@
|
||||
When applet_tables is run, we need it to touch both output files,
|
||||
else make will keep calling the command, potentially leading to races
|
||||
as the files are potentially rewritten.
|
||||
|
||||
We also need to ensure that applet_tables is called once, not twice,
|
||||
potentially in parallel. To do this, make one file depend upon the other.
|
||||
|
||||
Upstream-Status: Submitted
|
||||
RP 2016/8/19
|
||||
|
||||
Index: busybox-1.24.1/applets/Kbuild.src
|
||||
===================================================================
|
||||
--- busybox-1.24.1.orig/applets/Kbuild.src
|
||||
+++ busybox-1.24.1/applets/Kbuild.src
|
||||
@@ -29,7 +29,7 @@ applets/applets.o: include/usage_compres
|
||||
|
||||
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
|
||||
@@ -40,5 +40,7 @@ include/usage_compressed.h: applets/usag
|
||||
quiet_cmd_gen_applet_tables = GEN include/applet_tables.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)
|
||||
+
|
||||
+include/applet_tables.h: include/NUM_APPLETS.h
|
||||
Index: busybox-1.24.1/applets/applet_tables.c
|
||||
===================================================================
|
||||
--- busybox-1.24.1.orig/applets/applet_tables.c
|
||||
+++ busybox-1.24.1/applets/applet_tables.c
|
||||
@@ -151,23 +151,15 @@ int main(int argc, char **argv)
|
||||
// printf("#define MAX_APPLET_NAME_LEN %u\n", MAX_APPLET_NAME_LEN);
|
||||
|
||||
if (argv[2]) {
|
||||
- char line_old[80];
|
||||
char line_new[80];
|
||||
FILE *fp;
|
||||
|
||||
- line_old[0] = 0;
|
||||
- fp = fopen(argv[2], "r");
|
||||
- if (fp) {
|
||||
- fgets(line_old, sizeof(line_old), fp);
|
||||
- fclose(fp);
|
||||
- }
|
||||
sprintf(line_new, "#define NUM_APPLETS %u\n", NUM_APPLETS);
|
||||
- if (strcmp(line_old, line_new) != 0) {
|
||||
- fp = fopen(argv[2], "w");
|
||||
- if (!fp)
|
||||
- return 1;
|
||||
- fputs(line_new, fp);
|
||||
- }
|
||||
+ fp = fopen(argv[2], "w");
|
||||
+ if (!fp)
|
||||
+ return 1;
|
||||
+ fputs(line_new, fp);
|
||||
+ fclose(fp);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -49,6 +49,7 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
|
||||
file://CVE-2016-2147_2.patch \
|
||||
file://ip_fix_problem_on_mips64_n64_big_endian_musl_systems.patch \
|
||||
file://makefile-fix-backport.patch \
|
||||
file://parallel-make-fix.patch \
|
||||
"
|
||||
SRC_URI_append_libc-musl = " file://musl.cfg "
|
||||
|
||||
|
||||
Reference in New Issue
Block a user