summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-10-25 22:15:56 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-10-25 20:54:25 +0100
commitdeea0712942aaa538a4ab8decf63ab4127f6077f (patch)
tree34fa3d7a3f8f01308b36d46ccb3dfb3343465f0f /bitbake
parenta1f4d97bf8322461baa04145d235c20344655600 (diff)
downloadpoky-deea0712942aaa538a4ab8decf63ab4127f6077f.tar.gz
bitbake: build: Ensure python stdout/stderr is logged correctly
Currently we see things like: Log data follows: | DEBUG: Executing python function do_pythontest_exit | DEBUG: Python function do_pythontest_exit finished | ERROR: 1 | This is python stdout Whilst after the change we see things like: Log data follows: | DEBUG: Executing python function do_pythontest_exit | This is python stdout | DEBUG: Python function do_pythontest_exit finished | ERROR: 1 since the output is now correctly mixed with the log messages. In some cases the logging tests indicate the output is being lost entirely which is bad for debugging and makes things rather confusing. (Bitbake rev: 3fbc46735ee3679ef1b7466810e4345d78ed05ea) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 8966b43761500e0505333d8c9a3f0f2c3dbe7559) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/build.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index ad031cc702..b10431c4ae 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -298,6 +298,10 @@ def exec_func_python(func, d, runfile, cwd=None):
298 comp = utils.better_compile(code, func, "exec_python_func() autogenerated") 298 comp = utils.better_compile(code, func, "exec_python_func() autogenerated")
299 utils.better_exec(comp, {"d": d}, code, "exec_python_func() autogenerated") 299 utils.better_exec(comp, {"d": d}, code, "exec_python_func() autogenerated")
300 finally: 300 finally:
301 # We want any stdout/stderr to be printed before any other log messages to make debugging
302 # more accurate. In some cases we seem to lose stdout/stderr entirely in logging tests without this.
303 sys.stdout.flush()
304 sys.stderr.flush()
301 bb.debug(2, "Python function %s finished" % func) 305 bb.debug(2, "Python function %s finished" % func)
302 306
303 if cwd and olddir: 307 if cwd and olddir: