commit ec65f129d8cfdba6c15f0ea5cda5acea5c8d3ada (tree)
parent 5c133c5765f3c4e80d46c35c104edc23d883c60e
Author: Andrew Kelley <andrew@ziglang.org>
Date: Tue, 19 May 2026 16:58:07 -0700
Maker: lower -target arguments
Diffstat:
2 files changed, 6 insertions(+), 120 deletions(-)
diff --git a/BRANCH_TODO b/BRANCH_TODO
@@ -1,114 +0,0 @@
-* Run step getting wrong path_directory values
-* double check when targets get resolved (should be at configure time)
-* finish migrating the rest of the build steps
-* pass overridden pkg-dir to maker
-* inspect b4ffb402c082605c4b324e88120306fc8fb3cf32 diff and apply changes as needed (merge conflict)
-* make zig-pkg path root configurable in maker (make sure --system still works)
-* eliminate calls to getPath, getPath2, getPath3
-* test lazyImport
-* get zig tests passing
-* solve the TODOs added in this branch
-* test a bunch of third party projects / help people migrate
- * tetris
-
-* [handle missing cache hits when chaining two run steps](https://codeberg.org/ziglang/zig/pulls/30762)
-* [Absolute and cwd-relative paths in build cache](https://codeberg.org/ziglang/zig/issues/32097)
-
-
-* implement {q} or delete {q} uses
-* make the generated dependencies.zig be dependencies.zon and don't put absolute paths in there
- - and adjust dependencyInner to not openDir()
-
-* re-evaluate https://codeberg.org/ziglang/zig/pulls/35224
-
-## Followup Issues
-* make more stuff use IndexType
-* make addExtra return Index using reflection
-* refactor with DefaultingEnum
-* get the target from the parent process instead
-* stop leaking into global process arena
-* reduce the size of Maker.Step.Extended (make Run smaller) probably by using an arena per make
-* link_eh_frame_hdr should be DefaultingBool
-* make --foo, --no-foo CLI args uniform (make them -f args instead)
-* install steps should provide generated files for installed things, then delete the run step hack
- - but artifact install steps also add paths for dyn libs on windows
-* no more "artifact arg" to run step. if you want to run the post-install binary, get the lazy path
- from the install step.
-* fmt step: import zig fmt code directly rather than child proc
-* UpdateSourceFiles: introduce Group
-* WriteFiles: introduce Group
-* re-examine the use case of adding file paths to Options steps
-* extract the reusable Configure abstractions and reuse it for Zir etc
-* add the ability to delete files to UpdateSourceFiles
-
-## Already Filed Followup Issues
-* build system fmt step with check=false does not acquire a write lock on source files #35204
-* enhance CheckFile step output when there is not a match #35208
-* missing truncate functionality #35353
-
-## Release Notes
-
-### Run Step: Passthru Args
-
-In the Run step, passthru args are all together now, not observable in
-configure phase whether run args are provided.
-
-```zig
-if (b.args) |args| {
- run_cmd.addArgs(args);
-}
-```
-
-⬇️
-
-```zig
-run_cmd.addPassthruArgs();
-```
-
-This removes a capability from build scripts since they can no longer observe
-those arguments. In exchange, it means that when changing those arguments,
-build scripts no longer must be rebuilt from source.
-
-closes #31397
-
-### Fmt Step: Options
-
-`paths` and `exclude_paths` are now LazyPath lists. There is a convenience method to create them: `b.pathList`.
-
-```diff
-- const fmt_include_paths = &.{ "lib", "src", "test", "tools", "build.zig", "build.zig.zon" };
-- const fmt_exclude_paths = &.{ "test/cases", "test/behavior/zon" };
-+ const fmt_include_paths = b.pathList(&.{ "lib", "src", "test", "tools", "build.zig", "build.zig.zon" });
-+ const fmt_exclude_paths = b.pathList(&.{ "test/cases", "test/behavior/zon" });
-```
-
-### std.Build API
-
-* `b.build_root` (Directory) -> `b.root` (Path)
-* `ConfigHeader.Options`: `include_guard_override` -> `include_guard`
-* `LazyPath`: `getDisplayName` -> `format` or `fmt`
-* `LazyPath.basename` no longer takes parameters. The returned basename might
- be unknown until make phase in which case returned string is length zero.
-
-### Perf Data Point: `zig build -h` (cached)
-
-```
-Benchmark 1 (34 runs): master/zig build -h
- measurement mean ± σ min … max outliers delta
- wall_time 150ms ± 5.52ms 145ms … 165ms 4 (12%) 0%
- peak_rss 84.8MB ± 275KB 84.2MB … 85.1MB 0 ( 0%) 0%
- cpu_cycles 593M ± 4.01M 588M … 608M 2 ( 6%) 0%
- instructions 995M ± 52.5K 995M … 995M 0 ( 0%) 0%
- cache_references 25.8M ± 165K 25.4M … 26.1M 0 ( 0%) 0%
- cache_misses 651K ± 20.1K 619K … 697K 0 ( 0%) 0%
- branch_misses 918K ± 7.44K 906K … 935K 0 ( 0%) 0%
-Benchmark 2 (348 runs): branch/zig build -h
- measurement mean ± σ min … max outliers delta
- wall_time 14.3ms ± 744us 13.2ms … 23.3ms 8 ( 2%) ⚡- 90.4% ± 0.4%
- peak_rss 78.5MB ± 562KB 77.1MB … 81.4MB 7 ( 2%) ⚡- 7.4% ± 0.2%
- cpu_cycles 24.1M ± 821K 22.8M … 27.1M 3 ( 1%) ⚡- 95.9% ± 0.1%
- instructions 43.7M ± 23.8K 43.7M … 43.8M 56 (16%) ⚡- 95.6% ± 0.0%
- cache_references 1.46M ± 14.6K 1.40M … 1.50M 19 ( 5%) ⚡- 94.3% ± 0.1%
- cache_misses 142K ± 4.87K 127K … 157K 2 ( 1%) ⚡- 78.1% ± 0.4%
- branch_misses 126K ± 1.37K 120K … 129K 12 ( 3%) ⚡- 86.3% ± 0.1%
-```
diff --git a/lib/compiler/Maker/Step/Compile.zig b/lib/compiler/Maker/Step/Compile.zig
@@ -1274,21 +1274,21 @@ fn appendModuleFlags(
if (m.resolved_target.get(conf)) |target| {
// Communicate the query via CLI since it's more compact.
- if (target.query.get(conf)) |query| {
+ if (target.query.get(conf)) |compact_query| {
try zig_args.ensureUnusedCapacity(gpa, 6);
- if (true) @panic("TODO appendModuleFlags");
+ const query = compact_query.unwrap(conf);
zig_args.appendAssumeCapacity("-target");
zig_args.appendAssumeCapacity(try query.zigTriple(arena));
+
zig_args.appendAssumeCapacity("-mcpu");
zig_args.appendAssumeCapacity(try query.serializeCpuAlloc(arena));
- if (query.dynamic_linker) |dynamic_linker| {
- const dynamic_linker_slice = dynamic_linker.slice(conf);
- if (dynamic_linker_slice.len != 0) {
+ if (query.dynamic_linker) |*dynamic_linker| {
+ if (dynamic_linker.get()) |dynamic_linker_path| {
zig_args.appendAssumeCapacity("--dynamic-linker");
- zig_args.appendAssumeCapacity(dynamic_linker_slice);
+ zig_args.appendAssumeCapacity(dynamic_linker_path);
} else {
zig_args.appendAssumeCapacity("--no-dynamic-linker");
}