summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2017-01-24 17:32:24 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-26 10:19:40 +0000
commit25df3db5eeda9dbf417e67e96845f376e5c8e6b3 (patch)
tree6c09afccf4a897ddd5928c652a68279a8a4b15b8
parent50afcab054b2d93be96bfd3c224affebcab023cc (diff)
downloadbitbake-contrib-25df3db5eeda9dbf417e67e96845f376e5c8e6b3.tar.gz
bitbake-contrib-25df3db5eeda9dbf417e67e96845f376e5c8e6b3.tar.bz2
bitbake-contrib-25df3db5eeda9dbf417e67e96845f376e5c8e6b3.zip
build.py: avoid exception when function is not defined
exc_func() fails with a hard to debug exception when the function does not exist, for example due to a typo: ERROR: ...: Traceback (most recent call last): File "/work/bitbake/lib/bb/build.py", line 644, in exec_task return _exec_task(fn, task, d, quieterr) File "/work/bitbake/lib/bb/build.py", line 584, in _exec_task exec_func(func, localdata) File "/work/bitbake/lib/bb/build.py", line 198, in exec_func cleandirs = flags.get('cleandirs') AttributeError: 'NoneType' object has no attribute 'get' There is code further down which will print a warning, but we don't reach that unless we allow None as result of of d.getVarFlags() first. The warning is further down intentionally and has to stay there, to ensure that 'cleandirs' gets executed also for empty functions. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/build.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/bb/build.py b/lib/bb/build.py
index c6104a475e..c08ef8904d 100644
--- a/lib/bb/build.py
+++ b/lib/bb/build.py
@@ -195,13 +195,13 @@ def exec_func(func, d, dirs = None, pythonexception=False):
oldcwd = None
flags = d.getVarFlags(func)
- cleandirs = flags.get('cleandirs')
+ cleandirs = flags.get('cleandirs') if flags else None
if cleandirs:
for cdir in d.expand(cleandirs).split():
bb.utils.remove(cdir, True)
bb.utils.mkdirhier(cdir)
- if dirs is None:
+ if flags and dirs is None:
dirs = flags.get('dirs')
if dirs:
dirs = d.expand(dirs).split()