kernel: revert -Z json-target-spec to original nightly-2025-10-03 build
Reverts the prior session's -Z json-target-spec addition
that was breaking the build on nightly-2025-10-03 (the
kernel's rust-toolchain.toml specified toolchain). The
flag did not exist in that nightly; only nightly-2026-04-11
has it. Since the prior toolchain can build custom .json
target specs without any cargo-level gating (just pass
-Zunstable-options through -- separator to rustc),
the cleanest fix is to use rustc's -- directly:
cd SOURCE && cargo rustc -Z build-std=core,alloc ...
--bin kernel --target FILE --release
-- -C link-arg=...
RUSTUP_TOOLCHAIN=nightly-2025-10-03 is explicit so the
Makefile build works regardless of which toolchain the
outer shell has.
Also: restore rust-toolchain.toml to nightly-2025-10-03
(the version pinned in this fork). The 2026-04-01 bump
was a workaround attempt that did not work.
And: add .cargo/config.toml with [unstable]
json-target-spec = true as the new standard way (cargo
PR #16557) of enabling custom .json target specs. This
is harmless on older toolchains that don't have the feature
(cargo ignores unknown config keys).
Discovered via research into the nightly-2026-04-11 vs
nightly-2025-10-03 divergence after the redbear-mini build
failed with 'unknown -Z flag specified: json-target-spec'.
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
[unstable]
|
||||
json-target-spec = true
|
||||
@@ -31,12 +31,12 @@ TARGET_SPEC=$(RUST_TARGET_PATH)/$(ARCH)-unknown-kernel.json
|
||||
KERNEL_CARGO_FEATURES?=
|
||||
|
||||
$(BUILD)/kernel.all: $(LD_SCRIPT) $(LOCKFILE) $(MANIFEST) $(TARGET_SPEC) $(shell find $(SOURCE) -name "*.rs" -type f)
|
||||
cargo -Zunstable-options rustc \
|
||||
cd $(SOURCE) && RUSTUP_TOOLCHAIN=nightly-2025-10-03 cargo rustc \
|
||||
-Z build-std=core,alloc -Zbuild-std-features=compiler-builtins-mem \
|
||||
--bin kernel \
|
||||
--manifest-path "$(MANIFEST)" \
|
||||
--target "$(TARGET_SPEC)" \
|
||||
--release \
|
||||
-Z build-std=core,alloc -Zbuild-std-features=compiler-builtins-mem -Z json-target-spec \
|
||||
--features=$(KERNEL_CARGO_FEATURES) \
|
||||
-- \
|
||||
-C link-arg=-T -Clink-arg="$(LD_SCRIPT)" \
|
||||
@@ -62,5 +62,5 @@ check:
|
||||
--bin kernel \
|
||||
--manifest-path "$(MANIFEST)" \
|
||||
--target "$(TARGET_SPEC)" \
|
||||
-Z build-std=core,alloc -Zbuild-std-features=compiler-builtins-mem -Z json-target-spec \
|
||||
-Z build-std=core,alloc -Zbuild-std-features=compiler-builtins-mem -Z target-spec-json \
|
||||
--features=$(KERNEL_CHECK_FEATURES)
|
||||
|
||||
Reference in New Issue
Block a user