I had to remove this line from the json.
"is-builtin": true,
Because:
sebboh@debian:~/prj/aarch64-bare-metal$ cargo build -Z build-std=core --target aarch64-unknown-none.json
error: failed to run `rustc` to learn about target-specific information
Caused by:
process didn't exit successfully: `rustc - --crate-name ___ --print=file-names --target /home/sebboh/prj/aarch64-bare-metal/aarch64-unknown-none.json --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=cfg` (exit status: 1)
--- stderr
error: Error loading target specification: may not set is_builtin for targets not built-in. Run `rustc --print target-list` for a list of built-in targets
(Also, as you can see, I'm not following the guide exactly. build-std is ready now, at least in nightly.)