diff options
author | chase maupin <chasemaupin03@gmail.com> | 2011-01-31 22:15:40 +0000 |
---|---|---|
committer | Denys Dmytriyenko <denis@denix.org> | 2011-02-02 20:31:14 -0500 |
commit | 67b511de871b2cfcbb6efd99b8b315282bbc29e9 (patch) | |
tree | d389e2851d3c600e6aa7488dff55bdef628c78ee /classes/sourceipk.bbclass | |
parent | 5225c735fe8c4d918daea415a404e45d1a3d5270 (diff) | |
download | openembedded-67b511de871b2cfcbb6efd99b8b315282bbc29e9.tar.gz |
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@ti.com>
Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Diffstat (limited to 'classes/sourceipk.bbclass')
-rw-r--r-- | classes/sourceipk.bbclass | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/classes/sourceipk.bbclass b/classes/sourceipk.bbclass index 75e7a1443b..b37bbf9aa9 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" |