[oe-commits] chase maupin : sourceipk: fix race condition with compileconfigs/ multi-kernel
git version control
git at git.openembedded.org
Thu Feb 3 01:33:34 UTC 2011
Module: openembedded.git
Branch: org.openembedded.dev
Commit: 67b511de871b2cfcbb6efd99b8b315282bbc29e9
URL: http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=67b511de871b2cfcbb6efd99b8b315282bbc29e9
Author: chase maupin <chasemaupin03 at gmail.com>
Date: Mon Jan 31 22:15:40 2011 +0000
sourceipk: fix race condition with compileconfigs/multi-kernel
* This patch adds an empty compileconfigs function to the
sourceipk class.
* This is required because when making a sourceipk of a
package using the multi-kernel.inc functionality you will
have a race condition between the compileconfigs of the
multi-kernel file building the kernel and sourceipk trying
to copy and patch the sources. The resulting conditions
can then occur:
- You will package some interim build files, yielding
a sourceipk that is not consistent between builds
- You will try to copy interim build files as they are
being deleted which will result in an error and break
the build.
* The empty compileconfigs function is overwritten by the
real compileconfigs function when the multi-kernel.inc file
is used.
Signed-off-by: Chase Maupin <Chase.Maupin at ti.com>
Signed-off-by: Denys Dmytriyenko <denis at denix.org>
---
classes/sourceipk.bbclass | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/classes/sourceipk.bbclass b/classes/sourceipk.bbclass
index 75e7a14..b37bbf9 100644
--- a/classes/sourceipk.bbclass
+++ b/classes/sourceipk.bbclass
@@ -144,7 +144,18 @@ EXPORT_FUNCTIONS do_create_srcipk
do_create_srcipk[deptask] = "do_patch"
-addtask create_srcipk after do_patch before do_configure
+# Add a blank compileconfigs task. This allows the sourceipk to schedule
+# its copy of the sources for kernels using the multi-kernel functionality
+# before the compileconfigs task. Failure to do this results in a race
+# condition where in the best case the sources packaged may contain binary
+# builds and in the worst case binary files being cleaned cause an error
+# in the copy command for the sourceipk.
+do_compileconfigs() {
+ :
+}
+addtask compileconfigs after do_patch before do_configure
+
+addtask create_srcipk after do_patch before do_compileconfigs
#Add source packages to list of packages OE knows about
PACKAGES_DYNAMIC += "${PN}-src"
More information about the Openembedded-commits
mailing list