]> code.ossystems Code Review - openembedded-core.git/commitdiff
ncurses_6: Fix an install race condition
authorJuro Bystricky <juro.bystricky@intel.com>
Fri, 11 Mar 2016 02:07:36 +0000 (18:07 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 12 Mar 2016 22:11:19 +0000 (22:11 +0000)
Both targets install.libs and install.includes install the same
files, resulting in a race condition when running parallel make.
This race is addressed in a patch file, making sure only one
of the targets (install.includes) installes the include files.
This will work properly (i.e.ncurses will install as intended
by the recipe) as long as we always install both targets.

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/ncurses/files/fix-include-files-race.patch [new file with mode: 0644]
meta/recipes-core/ncurses/ncurses_6.0+20160213.bb

diff --git a/meta/recipes-core/ncurses/files/fix-include-files-race.patch b/meta/recipes-core/ncurses/files/fix-include-files-race.patch
new file mode 100644 (file)
index 0000000..6f22e98
--- /dev/null
@@ -0,0 +1,32 @@
+There is a race condition when running 
+
+    $ make install.libs install.includes
+    
+As both targets install identical files. The remedy is to either prevent
+parallel make of install.libs and install.includes, or ensure only one 
+target installs the files. 
+The second approch will only work if we always install both libs and 
+includes (which we do).
+
+
+Upstream-Status: Inappropriate [configuration]
+
+Index: git/mk-hdr.awk
+===================================================================
+--- a/mk-hdr.awk
++++ b/mk-hdr.awk
+@@ -73,11 +73,13 @@ BEGIN      {
+ END   {
+               if ( count > 0 )
+               {
++                      print" # patched here: Removed install.libs due the race "
+                       print "${INCLUDEDIR} :"
+                       print " mkdir -p $@"
+                       print ""
++                      print "install.libs :: ;"
++                      print ""
+                       print "install \\"
+-                      print "install.libs \\"
+                       print "install.includes :: ${AUTO_SRC} ${INCLUDEDIR} \\"
+                       for (i = 0; i < count - 1; ++i) {
index 0d56481a5c9cbc4f8b22f4496571deafc00177fc..fef4e0f626b142bf4de90f444019f53ef4f99487 100644 (file)
@@ -2,6 +2,7 @@ require ncurses.inc
 
 SRC_URI += "file://tic-hang.patch \
             file://config.cache \
+            file://fix-include-files-race.patch \
 "
 # commit id corresponds to the revision in package version
 SRCREV = "a25949ff653ac5ae7a204381a3ebfd800feeaa01"