From af373cd1746841a8891c7ba8e7acdaa8ae6256e5 Mon Sep 17 00:00:00 2001 From: geruipu Date: Mon, 5 Oct 2026 13:49:54 +0800 Subject: [PATCH] Sync verified Native toolchain fixes for graphics Actions tests --- .github/workflows/zig-toolchain-image.yml | 7 ++++++- build/linux-toolchain/Dockerfile | 2 +- build/linux-toolchain/validate-toolchain.py | 6 ++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/zig-toolchain-image.yml b/.github/workflows/zig-toolchain-image.yml index 6b2aa9d..3492b60 100644 --- a/.github/workflows/zig-toolchain-image.yml +++ b/.github/workflows/zig-toolchain-image.yml @@ -2,6 +2,10 @@ name: pinned-zig-toolchain-image on: workflow_call: + inputs: + validation_rids: + type: string + default: '[]' outputs: image: description: Immutable Debian 12 Zig toolchain image reference @@ -26,6 +30,7 @@ jobs: GH_TOKEN: ${{ github.token }} ACTOR: ${{ github.actor }} REPOSITORY: ${{ github.repository }} + VALIDATION_RIDS: ${{ inputs.validation_rids || '[]' }} BASE_HASH: ${{ hashFiles('build/linux-toolchain/Dockerfile') }} RECIPE_HASH: ${{ hashFiles('build/linux-toolchain/Dockerfile*', 'build/linux-toolchain/*.py', 'build/linux-toolchain/*.c', 'build/linux-toolchain/*.gn.in', 'build/linux-toolchain/*lock.json', 'build/linux-toolchain/versions/*.json', 'build/linux-toolchain/patches/**') }} run: | @@ -55,7 +60,7 @@ jobs: docker run --rm --user "$(id -u):$(id -g)" \ -e HOME=/tmp -e DOTNET_CLI_HOME=/tmp -e ZIG_GLOBAL_CACHE_DIR=/tmp/zig-cache \ -v "$PWD/artifacts/toolchain-environment:/validation" \ - --entrypoint python3 "$image" /opt/staticlink/validate-toolchain.py --output /validation + --entrypoint python3 "$image" /opt/staticlink/validate-toolchain.py --output /validation --rids "$VALIDATION_RIDS" if [ "$built_image" = true ]; then docker push "$image" docker pull "$image" diff --git a/build/linux-toolchain/Dockerfile b/build/linux-toolchain/Dockerfile index af1e38a..f3c1a0f 100644 --- a/build/linux-toolchain/Dockerfile +++ b/build/linux-toolchain/Dockerfile @@ -21,7 +21,7 @@ RUN rm -f /etc/apt/sources.list.d/debian.sources \ pkg-config cmake binutils file unzip xz-utils bzip2 patch \ libfontconfig1-dev libglib2.0-dev libgl1-mesa-dev libpci-dev \ libx11-dev libxcb1-dev libxext-dev libwayland-dev libexpat1-dev libicu72 libssl3 \ - && for tool in clang clang++ llvm-ar llvm-ranlib llvm-nm; do \ + && for tool in clang clang++ llvm-ar llvm-ranlib llvm-nm lld ld.lld lld-link ld64.lld; do \ ln -s "/usr/bin/$tool-16" "/usr/local/bin/$tool"; \ done \ && mkdir -p /opt/staticlink \ diff --git a/build/linux-toolchain/validate-toolchain.py b/build/linux-toolchain/validate-toolchain.py index 92092ba..fd4742b 100644 --- a/build/linux-toolchain/validate-toolchain.py +++ b/build/linux-toolchain/validate-toolchain.py @@ -20,6 +20,7 @@ def run(command): def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--output", type=Path, required=True) + parser.add_argument("--rids", default="[]") args = parser.parse_args() args.output.mkdir(parents=True, exist_ok=True) report = {"python": sys.version, "targets": {}, "passed": False} @@ -41,6 +42,11 @@ def main(): raise RuntimeError("Missing .NET SDK " + major) adapter = Path(__file__).with_name("zig-cross.py") targets = runpy.run_path(str(adapter))["TARGETS"] + requested = json.loads(args.rids) + if not isinstance(requested, list) or any(rid not in targets for rid in requested): + raise ValueError("Expected a JSON array of supported RIDs") + if requested: + targets = {rid: targets[rid] for rid in requested} sdk = Path("/opt/macos-sdk/MacOSX15.5.sdk") if json.loads((sdk / "SDKSettings.json").read_text())["Version"] != "15.5": raise RuntimeError("Unexpected macOS SDK version")