[OE-core] [PATCH] archiver.bbclass: fix an exception of the mode configured

Jian Liu jian.liu at windriver.com
Fri Nov 13 10:09:49 UTC 2015


gcc-source does not have the task do_configure, so if configured mode is set,
the task do_ar_configured depends on do_configure.
This will cause an error.

Signed-off-by: Jian Liu <jian.liu at windriver.com>
---
 archiver.bbclass |   15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
index 41a552c..3d1952a 100644
--- a/meta/classes/archiver.bbclass
+++ b/meta/classes/archiver.bbclass
@@ -73,8 +73,18 @@ python () {
         # We can't use "addtask do_ar_configured after do_configure" since it
         # will cause the deptask of do_populate_sysroot to run not matter what
         # archives we need, so we add the depends here.
-        d.appendVarFlag('do_ar_configured', 'depends', ' %s:do_configure' % pn)
-        d.appendVarFlag('do_deploy_archives', 'depends', ' %s:do_ar_configured' % pn)
+        ##
+        # For some specific packages like gcc-source, do_configure may be deleted.
+        deltask = d.getVar('__BBDELTASKS', False)
+        noexec = d.getVarFlag('do_configure', 'noexec')
+        os.system("echo deltask=%s, noexec=%s, pn=%s >> /tmp/tasks.txt" %(deltask,noexec,pn))
+        #if 'do_configure' in (d.getVar('__BBDELTASKS', False) or []) or d.getVarFlag('do_configure', 'noexec') == '1':
+        if d.getVarFlag('do_configure', 'noexec') == '1' or 'do_configure' not in d.getVar('__BBTASKS', False):
+            pass
+        else:
+            bb.build.addtask('do_ar_configured', None, 'do_unpack_and_patch', d)
+            d.appendVarFlag('do_ar_configured', 'depends', ' %s:do_configure' % pn)
+            d.appendVarFlag('do_deploy_archives', 'depends', ' %s:do_ar_configured' % pn)
     elif ar_src:
         bb.fatal("Invalid ARCHIVER_MODE[src]: %s" % ar_src)
 
@@ -348,7 +358,6 @@ do_deploy_archives[sstate-outputdirs] = "${DEPLOY_DIR_SRC}"
 
 addtask do_ar_original after do_unpack
 addtask do_ar_patched after do_unpack_and_patch
-addtask do_ar_configured after do_unpack_and_patch
 addtask do_dumpdata
 addtask do_ar_recipe
 addtask do_deploy_archives before do_build



More information about the Openembedded-core mailing list