diff options
author | Hongxu Jia <hongxu.jia@windriver.com> | 2014-06-15 23:22:57 -0400 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-06-17 08:59:04 +0100 |
commit | f2a104d777dc23db2a6fa7b0d9dcb942a830872f (patch) | |
tree | 8b1b59e8c4141f2035f109f93ee70e8be9100a22 /meta/classes | |
parent | e95d2f2687d84c5ad3d80232ce879f0f974dbf10 (diff) | |
download | poky-f2a104d777dc23db2a6fa7b0d9dcb942a830872f.tar.gz |
archiver: create dir 'B' explicitly while WORKDIR changed
In the do_unpack_and_patch task of archiver, the changed 'WORKDIR' also
casued 'B' changed, create dir 'B' for the possibly requiring of the
tasks which executed in do_unpack_and_patch task.
Such as cut-ecgl's do_patch required 'B' existed:
...
| cp: target 'tmp/work/x86_64-wrs-linux/cut-ecgl/1.0-r0/archiver-work
/cut-ecgl-1.0' is not a directory
...
| ERROR: Function failed: do_patch (log file is located at tmp/work/
x86_64-wrs-linux/cut-ecgl/1.0-r0/temp/do_unpack_and_patch/
log.do_unpack_and_patch.11886)
...
The 'B' dir is implicitly created at the task executing time while the
task tag 'dirs' is not assigned. In the above cut-ecgl example, the 'B'
was created at the wrl_buildlink executing time which is the prefuncs of
task do_unpack. So the following do_patch could use 'B' correctly. But
wrl_buildlink is unnecessary and not invoked in the do_unpack_and_patch
task.
(From OE-Core rev: 8baefb49d0bf9d3dd757d9b2359e0a9f4f33dd60)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/archiver.bbclass | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass index 8d8e7c42a8..efd413bdc4 100644 --- a/meta/classes/archiver.bbclass +++ b/meta/classes/archiver.bbclass | |||
@@ -276,6 +276,11 @@ python do_unpack_and_patch() { | |||
276 | # Change the WORKDIR to make do_unpack do_patch run in another dir. | 276 | # Change the WORKDIR to make do_unpack do_patch run in another dir. |
277 | d.setVar('WORKDIR', d.getVar('ARCHIVER_WORKDIR', True)) | 277 | d.setVar('WORKDIR', d.getVar('ARCHIVER_WORKDIR', True)) |
278 | 278 | ||
279 | # The changed 'WORKDIR' also casued 'B' changed, create dir 'B' for the | ||
280 | # possibly requiring of the following tasks (such as some recipes's | ||
281 | # do_patch required 'B' existed). | ||
282 | bb.utils.mkdirhier(d.getVar('B', True)) | ||
283 | |||
279 | # The kernel source is ready after do_validate_branches | 284 | # The kernel source is ready after do_validate_branches |
280 | if bb.data.inherits_class('kernel-yocto', d): | 285 | if bb.data.inherits_class('kernel-yocto', d): |
281 | bb.build.exec_func('do_unpack', d) | 286 | bb.build.exec_func('do_unpack', d) |