Skip to content

Commit

Permalink
scripts/xtensa-build-zephyr.py: Allow for alternate toolchain versions
Browse files Browse the repository at this point in the history
Currently the build scripts force a single "blessed" Cadence toolchain
for each platform, which prohibits the use of
upgraded/fixed/standardized tooling by downstreams.  Let
XTENSA_TOOLS_VERSION be set in the environment and use the
PlatformConfig value as a fallback if unspecified.

Also log the resulting choice (and also XTENSA_TOOLS_ROOT, which is
likewise external input to the script) for build tracking, so any
deployment downstreams can reconstruct what was done.

Signed-off-by: Andy Ross <[email protected]>
  • Loading branch information
andyross committed Dec 18, 2024
1 parent 3e60e08 commit ad155c9
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions scripts/xtensa-build-zephyr.py
Original file line number Diff line number Diff line change
Expand Up @@ -787,10 +787,20 @@ def build_platforms():
_dict = dataclasses.asdict(platform_configs[platform])
platform_dict = { k:v for (k,v) in _dict.items() if _dict[k] is not None }

xtensa_tools_version = os.getenv("XTENSA_TOOLS_VERSION")
if not xtensa_tools_version:
xtesna_tools_version = platform_dict["XTENSA_TOOLS_VERSION"]
xtensa_tools_root_dir = os.getenv("XTENSA_TOOLS_ROOT")

# when XTENSA_TOOLS_ROOT environmental variable is set,
# use user installed Xtensa tools not Zephyr SDK
if "XTENSA_TOOLS_VERSION" in platform_dict and xtensa_tools_root_dir:
if xtensa_tools_version and xtensa_tools_root_dir:
# These are external input, so log for posterity (and
# build dependency tracking)
print("Building using Cadence Xtensa Tools")
print(f" XTENSA_TOOLS_VERSION = {xtensa_tools_version}")
print(f" XTENSA_TOOLS_ROOT = {xtensa_tools_root_dir}")

xtensa_tools_root_dir = pathlib.Path(xtensa_tools_root_dir)
if not xtensa_tools_root_dir.is_dir():
raise RuntimeError(f"Platform {platform} uses Xtensa toolchain."
Expand All @@ -811,7 +821,7 @@ def build_platforms():
xtensa_tools_root_dir / "install" / "tools"
)
# Toolchain sub-directory
TOOLCHAIN_VER = platform_dict["XTENSA_TOOLS_VERSION"]
TOOLCHAIN_VER = xtensa_tools_version
platf_build_environ["TOOLCHAIN_VER"] = TOOLCHAIN_VER

# This XTENSA_SYSTEM variable was copied as is from XTOS
Expand Down

0 comments on commit ad155c9

Please sign in to comment.