From 7fbabdd8eec7a16d3af0c177461ad31a7c66a2e1 Mon Sep 17 00:00:00 2001 From: Joao Luis Sombrio Date: Thu, 21 May 2026 20:29:26 -0300 Subject: [PATCH] bazel: bump bazel-orfs to 05bbceb for cacheable gnumake Pin moved from 78f19f25 (PR #699 era) to 05bbceb (PR #717 final). At the old pin, @gnumake's repo rule downloaded the Zig toolchain (~80 MB) and bootstrapped GNU Make 4.4.1 inside repository_ctx.execute via `zig cc -static -target x86_64-linux-musl`, gated by a 300s configure timeout. That setup put GNU Make's build outside Bazel's action graph, so it was not cacheable in the disk/remote action cache and re-ran on every fresh output base. Under load -- 16 parallel jobs on a 16-CPU CI pod with a cold Zig cache -- the configure step occasionally exceeded the 300s timeout. Jenkins build PR-10338-merge #21 hit exactly this failure mode in the Bazel Test stage; the retry with --keep_going passed because the partial Zig cache from the first attempt was warm. https://jenkins.openroad.tools/job/OpenROAD-Public/job/PR-10338-merge/21/ PR #717 (merged 2026-05-10) refactored the rule on hzeller's review: download GNU Make sources, overlay a vendored config.h and a cc_binary BUILD file, and let the registered @llvm_toolchain clang build make as a normal cc_binary action. No repository_ctx.execute, no Zig, no timeout. Determinism on a fixed host preserved via `-Wl,--build-id=none -Wl,-s`. Net for CI: the gmake binary becomes a cacheable Bazel action -- first build populates the remote action cache, every subsequent fresh pod hits the cache instead of re-running the upstream build. Closes the last non-cacheable repo-rule execution in our Bazel graph (verified: all other repo rules either download prebuilt blobs or push work into actions, e.g. aspect_rules_js npm extracts). Commits between old and new pin that the bump also picks up: b10bca4 private/stages.bzl: register SYNTH_NUM_PARTITIONS f37bae8 synth_partition.sh: fix SYNTH_SKIP_KEEP truthy check 1ac6af9 synth_partition.sh: parse kept_modules.json without greedy sed 5c89e35 orfs_design: forward user_arguments to orfs_flow 6f3719b deps: bump orfs to 523bbbb4, openroad to 07427ed0 3e1dc5e feat: support archive_override for ORFS pin f1e817f fix: add missing self-archive fixture to bump_test data 943cae5 gnumake: drop zig bootstrap, build with cc_binary 8e8ade8 gnumake: address hzeller PR #717 review 05bbceb gnumake: document --override_repository host-make escape hatch ORFS and OpenROAD pin bumps inside bazel-orfs do not propagate to this repo: OpenROAD is the root module and overrides ORFS via archive_override (ORFS_COMMIT=10a2baea), so bazel-orfs's internal pins are irrelevant. Real risk surface is the synth_partition.sh tweaks (could shift mock-array gold). Watch CI for diffs in MockArray_4x4_flat_test. Signed-off-by: Joao Luis Sombrio --- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 6dbd6dea82..9756feb322 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -152,7 +152,7 @@ bazel_dep(name = "rules_nodejs", version = "6.7.3", dev_dependency = True) bazel_dep(name = "bazel-orfs", dev_dependency = True) bazel_dep(name = "bazel-orfs-verilog", dev_dependency = True) -BAZEL_ORFS_COMMIT = "78f19f25cec73bdec3517a76465dec7ce17ce227" +BAZEL_ORFS_COMMIT = "05bbceb78baaf04fc8ff251f7c04f37f1f5ffc66" BAZEL_ORFS_REMOTE = "https://github.com/The-OpenROAD-Project/bazel-orfs.git" diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index a56525fb60..8eb150f3b9 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -1018,7 +1018,7 @@ }, "@@bazel-orfs+//:extension.bzl%orfs_repositories": { "general": { - "bzlTransitiveDigest": "n442YWYaiLaZmB140K7YjK80SbojjoPPnbiBKSmFuSk=", + "bzlTransitiveDigest": "C6+jSEpGuhiLoQhPNZaHk2lhRCKMAwa/llq72vzyygE=", "usagesDigest": "3/2frkS50u3iPaTVPzc49SDaZmcRsNFg/KHB0xlzlBw=", "recordedFileInputs": {}, "recordedDirentsInputs": {},