Browse Source

utils: Always use datastore's PATH for host_gcc_version

BUILD_CC may reference something like ccache and expect this to come from
ccache-native, we at least have some selftests which assume this. Modify the
code to use PATH when runnig BUILD_CC to ensure the tests continue to work
as expected.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton 7 years ago
parent
commit
f3e753372b
1 changed files with 8 additions and 4 deletions
  1. 8 4
      meta/lib/oe/utils.py

+ 8 - 4
meta/lib/oe/utils.py

@@ -231,12 +231,16 @@ def format_pkg_list(pkg_dict, ret_format=None):
     return '\n'.join(output)
 
 def host_gcc_version(d):
+    import re, subprocess
+
     compiler = d.getVar("BUILD_CC")
-    retval, output = getstatusoutput("%s --version" % compiler)
-    if retval:
-        bb.fatal("Error running %s --version: %s" % (compiler, output))
+    try:
+        env = os.environ.copy()
+        env["PATH"] = d.getVar("PATH")
+        output = subprocess.check_output("%s --version" % compiler, shell=True, env=env).decode("utf-8")
+    except subprocess.CalledProcessError as e:
+        bb.fatal("Error running %s --version: %s" % (compiler, e.output.decode("utf-8")))
 
-    import re
     match = re.match(".* (\d\.\d)\.\d.*", output.split('\n')[0])
     if not match:
         bb.fatal("Can't get compiler version from %s --version output" % compiler)