[gnome-continuous-yocto/gnomeostree-3.22-krogoth: 26/246] busybox: Add parallel make fix



commit ab4f42608a962f5f4768ca8188b424dedd20320e
Author: Richard Purdie <richard purdie linuxfoundation org>
Date:   Fri Aug 19 16:28:17 2016 +0100

    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>

 .../busybox/busybox/parallel-make-fix.patch        |   65 ++++++++++++++++++++
 meta/recipes-core/busybox/busybox_1.24.1.bb        |    1 +
 2 files changed, 66 insertions(+), 0 deletions(-)
---
diff --git a/meta/recipes-core/busybox/busybox/parallel-make-fix.patch 
b/meta/recipes-core/busybox/busybox/parallel-make-fix.patch
new file mode 100644
index 0000000..120dff1
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/parallel-make-fix.patch
@@ -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;
diff --git a/meta/recipes-core/busybox/busybox_1.24.1.bb b/meta/recipes-core/busybox/busybox_1.24.1.bb
index 7edd32d..e8265cd 100644
--- a/meta/recipes-core/busybox/busybox_1.24.1.bb
+++ b/meta/recipes-core/busybox/busybox_1.24.1.bb
@@ -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 "
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]