common-mk: arg wrappers: fix bytes-vs-str handling with subprocess

The subprocess module returns bytes by default for stdout.  Make sure
we get back UTF-8 strings so we can parse/output things correctly.

BUG=chromium:989152
TEST=building with python->python3 works

Change-Id: If5ebc532f322020d87e9ac67c4be6ebe87239913
Reviewed-on: https://chromium-review.googlesource.com/1760280
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Keigo Oka <oka@chromium.org>
diff --git a/common-mk/arg_prefix_filter_wrapper.py b/common-mk/arg_prefix_filter_wrapper.py
index 1ab51d1..07d9c23 100755
--- a/common-mk/arg_prefix_filter_wrapper.py
+++ b/common-mk/arg_prefix_filter_wrapper.py
@@ -32,7 +32,9 @@
   opts, cmd_list = parser.parse_known_args(argv)
 
   prefix_len = len(opts.prefix)
-  flags = shlex.split(subprocess.check_output(cmd_list))
+  # TODO(vapier): Move decode('utf-8') to encoding='utf-8' in check_output once
+  # .gn uses shebangs.
+  flags = shlex.split(subprocess.check_output(cmd_list).decode('utf-8'))
   filtered = [x[prefix_len:] for x in flags if x.startswith(opts.prefix)]
   print('\n'.join(filtered))
 
diff --git a/common-mk/args_generator_wrapper.py b/common-mk/args_generator_wrapper.py
index d265901..3239d54 100755
--- a/common-mk/args_generator_wrapper.py
+++ b/common-mk/args_generator_wrapper.py
@@ -24,7 +24,9 @@
 
 import common_utils
 
-output = subprocess.check_output(sys.argv[1:]).strip()
+# TODO(vapier): Move decode('utf-8') to encoding='utf-8' in check_output once
+# .gn uses shebangs.
+output = subprocess.check_output(sys.argv[1:]).decode('utf-8').strip()
 unescaped = common_utils.parse_shell_args(output)
 
 print('\n'.join(unescaped))
diff --git a/common-mk/common_utils.py b/common-mk/common_utils.py
index 3d5e667..4c5f2f9 100644
--- a/common-mk/common_utils.py
+++ b/common-mk/common_utils.py
@@ -27,4 +27,6 @@
   # for echo. IFS is set to separate $* with newlines.
   output = subprocess.check_output(
       ['eval "set -- dummy $0"; IFS=$\'\\n\'; printf "%s" "$*"', s], shell=True)
-  return output.splitlines()[1:]
+  # TODO(vapier): Move decode('utf-8') to encoding='utf-8' in check_output once
+  # platform2.py is converted to `python3`.
+  return output.decode('utf-8').splitlines()[1:]