summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2025-07-01 22:28:21 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-07-03 10:40:16 +0100
commit862447427783352dbab916d901ad38d4792f5328 (patch)
tree145edaba149b03b156f9c81a93ba5862b2fb4d25
parent204653a519b341353dc129b1471291bb202460e5 (diff)
downloadpoky-862447427783352dbab916d901ad38d4792f5328.tar.gz
sanity/utils: Directly use gcc, not BUILD_CC
The test/helper is written assuming gcc, so just call that and stop accessing BUILD_CC which may be set to clang. (From OE-Core rev: 0a165a93693a293f08cb0d7e2dfa1016803a917a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes-global/sanity.bbclass9
-rw-r--r--meta/lib/oe/utils.py17
2 files changed, 9 insertions, 17 deletions
diff --git a/meta/classes-global/sanity.bbclass b/meta/classes-global/sanity.bbclass
index d1452967fc..3c103d3bfb 100644
--- a/meta/classes-global/sanity.bbclass
+++ b/meta/classes-global/sanity.bbclass
@@ -514,12 +514,9 @@ def check_userns():
514# built buildtools-extended-tarball) 514# built buildtools-extended-tarball)
515# 515#
516def check_gcc_version(sanity_data): 516def check_gcc_version(sanity_data):
517 import subprocess 517 version = oe.utils.get_host_gcc_version(sanity_data)
518 518 if bb.utils.vercmp_string_op(version, "8.0", "<"):
519 build_cc, version = oe.utils.get_host_compiler_version(sanity_data) 519 return "Your version of gcc is older than 8.0 and will break builds. Please install a newer version of gcc (you could use the project's buildtools-extended-tarball or use scripts/install-buildtools).\n"
520 if build_cc.strip() == "gcc":
521 if bb.utils.vercmp_string_op(version, "8.0", "<"):
522 return "Your version of gcc is older than 8.0 and will break builds. Please install a newer version of gcc (you could use the project's buildtools-extended-tarball or use scripts/install-buildtools).\n"
523 return None 520 return None
524 521
525# Tar version 1.24 and onwards handle overwriting symlinks correctly 522# Tar version 1.24 and onwards handle overwriting symlinks correctly
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py
index 0378071b5c..779c5e593f 100644
--- a/meta/lib/oe/utils.py
+++ b/meta/lib/oe/utils.py
@@ -415,34 +415,29 @@ def format_pkg_list(pkg_dict, ret_format=None, pkgdata_dir=None):
415 return output_str 415 return output_str
416 416
417 417
418# Helper function to get the host compiler version 418# Helper function to get the host gcc version
419# Do not assume the compiler is gcc 419def get_host_gcc_version(d, taskcontextonly=False):
420def get_host_compiler_version(d, taskcontextonly=False):
421 import re, subprocess 420 import re, subprocess
422 421
423 if taskcontextonly and d.getVar('BB_WORKERCONTEXT') != '1': 422 if taskcontextonly and d.getVar('BB_WORKERCONTEXT') != '1':
424 return 423 return
425 424
426 compiler = d.getVar("BUILD_CC")
427 # Get rid of ccache since it is not present when parsing.
428 if compiler.startswith('ccache '):
429 compiler = compiler[7:]
430 try: 425 try:
431 env = os.environ.copy() 426 env = os.environ.copy()
432 # datastore PATH does not contain session PATH as set by environment-setup-... 427 # datastore PATH does not contain session PATH as set by environment-setup-...
433 # this breaks the install-buildtools use-case 428 # this breaks the install-buildtools use-case
434 # env["PATH"] = d.getVar("PATH") 429 # env["PATH"] = d.getVar("PATH")
435 output = subprocess.check_output("%s --version" % compiler, \ 430 output = subprocess.check_output("gcc --version", \
436 shell=True, env=env, stderr=subprocess.STDOUT).decode("utf-8") 431 shell=True, env=env, stderr=subprocess.STDOUT).decode("utf-8")
437 except subprocess.CalledProcessError as e: 432 except subprocess.CalledProcessError as e:
438 bb.fatal("Error running %s --version: %s" % (compiler, e.output.decode("utf-8"))) 433 bb.fatal("Error running gcc --version: %s" % (e.output.decode("utf-8")))
439 434
440 match = re.match(r".* (\d+\.\d+)\.\d+.*", output.split('\n')[0]) 435 match = re.match(r".* (\d+\.\d+)\.\d+.*", output.split('\n')[0])
441 if not match: 436 if not match:
442 bb.fatal("Can't get compiler version from %s --version output" % compiler) 437 bb.fatal("Can't get compiler version from gcc --version output")
443 438
444 version = match.group(1) 439 version = match.group(1)
445 return compiler, version 440 return version
446 441
447@bb.parse.vardepsexclude("DEFAULTTUNE_MULTILIB_ORIGINAL", "OVERRIDES") 442@bb.parse.vardepsexclude("DEFAULTTUNE_MULTILIB_ORIGINAL", "OVERRIDES")
448def get_multilib_datastore(variant, d): 443def get_multilib_datastore(variant, d):