All notable changes to bootstrap will be documented in this file.
The format is based on Keep a Changelog.
cargo vendor
manually, or use the pre-vendored rustc-src
tarball.llvm-libunwind
now accepts in-tree
(formerly true), system
or no
(formerly false) #77703infodir
, localstatedir
, and gpg-password-file
are no longer allowed in config.toml. Previously, they were ignored without warning. Note that infodir
and localstatedir
are still accepted by ./configure
, with a warning. #82451dist
commands to match the component they generate. #90684build.fast-submodules
option has been removed. Fast submodule checkouts are enabled unconditionally. Automatic submodule handling can still be disabled with build.submodules = false
../configure
options have been removed: optimize
, parallel-compiler
. These can still be enabled with --set
, although it isn't recommended.remote-test-server
's verbose
argument has been removed in favor of the --verbose
flagremote-test-server
's remote
argument has been removed in favor of the --bind
flag. Use --bind 0.0.0.0:12345
to replicate the behavior of the remote
argument.x.py fmt
now formats only files modified between the merge-base of HEAD and the last commit in the master branch of the rust-lang repository and the current working directory. To restore old behaviour, use x.py fmt .
. The check mode is not affected by this change. #105702llvm.version-check
config option has been removed. Older versions were never supported. If you still need to support older versions (e.g. you are applying custom patches), patch check_llvm_version
in bootstrap to change the minimum version. #108619rust.ignore-git
option has been renamed to rust.omit-git-hash
. #110059--exclude
no longer accepts a Kind
as part of a Step; instead it uses the top-level Kind of the subcommand. If this matches how you were already using --exclude (e.g. x test --exclude test::std
), simply remove the kind: --exclude std
. If you were using a kind that did not match the top-level subcommand, please open an issue explaining why you wanted this feature.x.py check
needs opt-in to check tests (--all-targets) #77473bootstrap/defaults/config.$PROFILE.toml
(previously they were located at bootstrap/defaults/config.toml.$PROFILE
) #77558x.py
will now infer the host target from the default rust toolchain. #78513overflow-checks-std
) and one for everything else (overflow-checks
). Both default to false.enable-warnings
to have control on llvm compilation warnings. Default to false.rpath
option in target
section to support set rpath option for each target independently. #111242host
now defaults to the value of build
in all caseshost
defaulted to an empty list when target
was overridden, and to build
otherwisex.py setup
#76631download-ci-llvm = true
under [llvm]
.rustc-dev
#76856build-stage = N
, doc-stage = N
, etc.debug-logging
could only be set with debug-assertions
, slowing down the compiler more than necessary.--keep-stage-std
, which behaves like keep-stage
but allows the stage 0 compiler artifacts (i.e., stage1/bin/rustc) to be rebuilt if changed #77120.x.py
(e.g. when using rust-analyzer
and x.py
at the same time). Note that Solaris and possibly other non Unix and non Windows systems don't support it #108607. This might possibly lead to build data corruption.This is the first changelog entry, and it does not attempt to be an exhaustive list of features in x.py. Instead, this documents the changes to bootstrap in the past 2 months.
x.py
#73964 (see blog post for details)ninja = true
by default #74922x.py check
checks tests/examples/benches #76258rust.use-lld
when linker is not set #76326use-lld = true
was passed #76378