From: Simon Glass Date: Fri, 26 Mar 2021 01:39:39 +0000 (+1300) Subject: buildman: Add an encoding to the out-env file X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=5f86454b3da54586513ab83941a021cb79c383c7;p=u-boot.git buildman: Add an encoding to the out-env file The environment may contain some unicode characters. At least that is what seemed to happen on one commit: Building current source for 1 boards (0 threads, 64 jobs per thread) 0 0 0 /1 -1 (starting) Traceback (most recent call last): File ".../tools/buildman/buildman", line 64, in ret_code = control.DoBuildman(options, args) File "tools/buildman/control.py", line 372, in DoBuildman options.keep_outputs, options.verbose) File ".../tools/buildman/builder.py", line 1704, in BuildBoards results = self._single_builder.RunJob(job) File ".../tools/buildman/builderthread.py", line 526, in RunJob self._WriteResult(result, job.keep_outputs, job.work_in_output) File ".../tools//buildman/builderthread.py", line 349, in _WriteResult print('%s="%s"' % (var, env[var]), file=fd) UnicodeEncodeError: 'ascii' codec can't encode characters in position 311-312: ordinal not in range(128) The problem defies repetition with any change at all to buildman. But let's set an encoding in any case. Signed-off-by: Simon Glass --- diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py index 6c6dbd7872..06ed27203a 100644 --- a/tools/buildman/builderthread.py +++ b/tools/buildman/builderthread.py @@ -344,7 +344,8 @@ class BuilderThread(threading.Thread): # Write out the image and function size information and an objdump env = result.toolchain.MakeEnvironment(self.builder.full_path) - with open(os.path.join(build_dir, 'out-env'), 'w') as fd: + with open(os.path.join(build_dir, 'out-env'), 'w', + encoding='utf-8') as fd: for var in sorted(env.keys()): print('%s="%s"' % (var, env[var]), file=fd) lines = []