Auto merge of #73964 - jyn514:sane-defaults, r=Mark-Simulacrum
Improve defaults in x.py - Make the default stage dependent on the subcommand - Don't build stage1 rustc artifacts with x.py build --stage 1. If this is what you want, use x.py build --stage 2 instead, which gives you a working libstd. - Change default debuginfo when debug = true from 2 to 1 I tried to fix CI to use `--stage 2` everywhere it currently has no stage, but I might have missed a spot. This does not update much of the documentation - most of it is in https://github.com/rust-lang/rustc-dev-guide/ or https://github.com/rust-lang/rust-forge and will need a separate PR. See individual commits for a detailed rationale of each change. See also the MCP: https://github.com/rust-lang/compiler-team/issues/326 r? @Mark-Simulacrum , but anyone is free to give an opinion.
This commit is contained in:
commit
7b3a781937
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@ -406,7 +406,7 @@ jobs:
|
||||
os: windows-latest-xl
|
||||
- name: x86_64-msvc-cargo
|
||||
env:
|
||||
SCRIPT: python x.py test src/tools/cargotest src/tools/cargo
|
||||
SCRIPT: python x.py --stage 2 test src/tools/cargotest src/tools/cargo
|
||||
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --enable-lld"
|
||||
VCVARS_BAT: vcvars64.bat
|
||||
NO_DEBUG_ASSERTIONS: 1
|
||||
@ -598,7 +598,7 @@ jobs:
|
||||
os: macos-latest
|
||||
- name: x86_64-apple
|
||||
env:
|
||||
SCRIPT: "./x.py test"
|
||||
SCRIPT: "./x.py --stage 2 test"
|
||||
RUST_CONFIGURE_ARGS: "--build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc"
|
||||
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
|
||||
MACOSX_DEPLOYMENT_TARGET: 10.8
|
||||
|
@ -341,7 +341,10 @@
|
||||
# Debuginfo for tests run with compiletest is not controlled by this option
|
||||
# and needs to be enabled separately with `debuginfo-level-tests`.
|
||||
#
|
||||
# Defaults to 2 if debug is true
|
||||
# Note that debuginfo-level = 2 generates several gigabytes of debuginfo
|
||||
# and will slow down the linking process significantly.
|
||||
#
|
||||
# Defaults to 1 if debug is true
|
||||
#debuginfo-level = 0
|
||||
|
||||
# Debuginfo level for the compiler.
|
||||
|
@ -232,7 +232,7 @@ impl StepDescription {
|
||||
}
|
||||
|
||||
if !attempted_run {
|
||||
panic!("Error: no rules matched {}.", path.display());
|
||||
panic!("error: no rules matched {}", path.display());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -501,16 +501,7 @@ impl<'a> Builder<'a> {
|
||||
_ => return None,
|
||||
};
|
||||
|
||||
let builder = Builder {
|
||||
build,
|
||||
top_stage: build.config.stage.unwrap_or(2),
|
||||
kind,
|
||||
cache: Cache::new(),
|
||||
stack: RefCell::new(Vec::new()),
|
||||
time_spent_on_dependencies: Cell::new(Duration::new(0, 0)),
|
||||
paths: vec![],
|
||||
};
|
||||
|
||||
let builder = Self::new_internal(build, kind, vec![]);
|
||||
let builder = &builder;
|
||||
let mut should_run = ShouldRun::new(builder);
|
||||
for desc in Builder::get_step_descriptions(builder.kind) {
|
||||
@ -535,6 +526,32 @@ impl<'a> Builder<'a> {
|
||||
Some(help)
|
||||
}
|
||||
|
||||
fn new_internal(build: &Build, kind: Kind, paths: Vec<PathBuf>) -> Builder<'_> {
|
||||
let top_stage = if let Some(explicit_stage) = build.config.stage {
|
||||
explicit_stage
|
||||
} else {
|
||||
// See https://github.com/rust-lang/compiler-team/issues/326
|
||||
match kind {
|
||||
Kind::Doc => 0,
|
||||
Kind::Build | Kind::Test => 1,
|
||||
Kind::Bench | Kind::Dist | Kind::Install => 2,
|
||||
// These are all bootstrap tools, which don't depend on the compiler.
|
||||
// The stage we pass shouldn't matter, but use 0 just in case.
|
||||
Kind::Check | Kind::Clippy | Kind::Fix | Kind::Run | Kind::Format => 0,
|
||||
}
|
||||
};
|
||||
|
||||
Builder {
|
||||
build,
|
||||
top_stage,
|
||||
kind,
|
||||
cache: Cache::new(),
|
||||
stack: RefCell::new(Vec::new()),
|
||||
time_spent_on_dependencies: Cell::new(Duration::new(0, 0)),
|
||||
paths,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn new(build: &Build) -> Builder<'_> {
|
||||
let (kind, paths) = match build.config.cmd {
|
||||
Subcommand::Build { ref paths } => (Kind::Build, &paths[..]),
|
||||
@ -550,15 +567,20 @@ impl<'a> Builder<'a> {
|
||||
Subcommand::Format { .. } | Subcommand::Clean { .. } => panic!(),
|
||||
};
|
||||
|
||||
Builder {
|
||||
build,
|
||||
top_stage: build.config.stage.unwrap_or(2),
|
||||
kind,
|
||||
cache: Cache::new(),
|
||||
stack: RefCell::new(Vec::new()),
|
||||
time_spent_on_dependencies: Cell::new(Duration::new(0, 0)),
|
||||
paths: paths.to_owned(),
|
||||
let this = Self::new_internal(build, kind, paths.to_owned());
|
||||
|
||||
// CI should always run stage 2 builds, unless it specifically states otherwise
|
||||
#[cfg(not(test))]
|
||||
if build.config.stage.is_none() && build.ci_env != crate::CiEnv::None {
|
||||
match kind {
|
||||
Kind::Test | Kind::Doc | Kind::Build | Kind::Bench | Kind::Dist | Kind::Install => {
|
||||
assert_eq!(this.top_stage, 2)
|
||||
}
|
||||
Kind::Check | Kind::Clippy | Kind::Fix | Kind::Run | Kind::Format => {}
|
||||
}
|
||||
}
|
||||
|
||||
this
|
||||
}
|
||||
|
||||
pub fn execute_cli(&self) {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -446,10 +446,10 @@ pub struct Rustc {
|
||||
impl Step for Rustc {
|
||||
type Output = ();
|
||||
const ONLY_HOSTS: bool = true;
|
||||
const DEFAULT: bool = true;
|
||||
const DEFAULT: bool = false;
|
||||
|
||||
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
|
||||
run.all_krates("rustc-main")
|
||||
run.path("src/rustc")
|
||||
}
|
||||
|
||||
fn make_run(run: RunConfig<'_>) {
|
||||
|
@ -734,7 +734,7 @@ impl Config {
|
||||
|
||||
let with_defaults = |debuginfo_level_specific: Option<u32>| {
|
||||
debuginfo_level_specific.or(debuginfo_level).unwrap_or(if debug == Some(true) {
|
||||
2
|
||||
1
|
||||
} else {
|
||||
0
|
||||
})
|
||||
|
@ -425,7 +425,7 @@ Arguments:
|
||||
This subcommand accepts a number of paths to tools to build and run. For
|
||||
example:
|
||||
|
||||
./x.py run src/tool/expand-yaml-anchors
|
||||
./x.py run src/tools/expand-yaml-anchors
|
||||
|
||||
At least a tool needs to be called.",
|
||||
);
|
||||
|
@ -9,8 +9,8 @@ endif
|
||||
BOOTSTRAP := $(CFG_PYTHON) $(CFG_SRC_DIR)src/bootstrap/bootstrap.py
|
||||
|
||||
all:
|
||||
$(Q)$(BOOTSTRAP) build $(BOOTSTRAP_ARGS)
|
||||
$(Q)$(BOOTSTRAP) doc $(BOOTSTRAP_ARGS)
|
||||
$(Q)$(BOOTSTRAP) build --stage 2 $(BOOTSTRAP_ARGS)
|
||||
$(Q)$(BOOTSTRAP) doc --stage 2 $(BOOTSTRAP_ARGS)
|
||||
|
||||
help:
|
||||
$(Q)echo 'Welcome to the rustbuild build system!'
|
||||
@ -31,17 +31,17 @@ rustc-stage2:
|
||||
|
||||
docs: doc
|
||||
doc:
|
||||
$(Q)$(BOOTSTRAP) doc $(BOOTSTRAP_ARGS)
|
||||
$(Q)$(BOOTSTRAP) doc --stage 2 $(BOOTSTRAP_ARGS)
|
||||
nomicon:
|
||||
$(Q)$(BOOTSTRAP) doc src/doc/nomicon $(BOOTSTRAP_ARGS)
|
||||
$(Q)$(BOOTSTRAP) doc --stage 2 src/doc/nomicon $(BOOTSTRAP_ARGS)
|
||||
book:
|
||||
$(Q)$(BOOTSTRAP) doc src/doc/book $(BOOTSTRAP_ARGS)
|
||||
$(Q)$(BOOTSTRAP) doc --stage 2 src/doc/book $(BOOTSTRAP_ARGS)
|
||||
standalone-docs:
|
||||
$(Q)$(BOOTSTRAP) doc src/doc $(BOOTSTRAP_ARGS)
|
||||
$(Q)$(BOOTSTRAP) doc --stage 2 src/doc $(BOOTSTRAP_ARGS)
|
||||
check:
|
||||
$(Q)$(BOOTSTRAP) test $(BOOTSTRAP_ARGS)
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 $(BOOTSTRAP_ARGS)
|
||||
check-aux:
|
||||
$(Q)$(BOOTSTRAP) test \
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 \
|
||||
src/tools/cargo \
|
||||
src/tools/cargotest \
|
||||
$(BOOTSTRAP_ARGS)
|
||||
@ -51,18 +51,18 @@ dist:
|
||||
$(Q)$(BOOTSTRAP) dist $(BOOTSTRAP_ARGS)
|
||||
distcheck:
|
||||
$(Q)$(BOOTSTRAP) dist $(BOOTSTRAP_ARGS)
|
||||
$(Q)$(BOOTSTRAP) test distcheck $(BOOTSTRAP_ARGS)
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 distcheck $(BOOTSTRAP_ARGS)
|
||||
install:
|
||||
$(Q)$(BOOTSTRAP) install $(BOOTSTRAP_ARGS)
|
||||
tidy:
|
||||
$(Q)$(BOOTSTRAP) test src/tools/tidy $(BOOTSTRAP_ARGS)
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 src/tools/tidy $(BOOTSTRAP_ARGS)
|
||||
prepare:
|
||||
$(Q)$(BOOTSTRAP) build nonexistent/path/to/trigger/cargo/metadata
|
||||
$(Q)$(BOOTSTRAP) build --stage 2 nonexistent/path/to/trigger/cargo/metadata
|
||||
|
||||
check-stage2-T-arm-linux-androideabi-H-x86_64-unknown-linux-gnu:
|
||||
$(Q)$(BOOTSTRAP) test --target arm-linux-androideabi
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 --target arm-linux-androideabi
|
||||
check-stage2-T-x86_64-unknown-linux-musl-H-x86_64-unknown-linux-gnu:
|
||||
$(Q)$(BOOTSTRAP) test --target x86_64-unknown-linux-musl
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 --target x86_64-unknown-linux-musl
|
||||
|
||||
TESTS_IN_2 := \
|
||||
src/test/ui \
|
||||
@ -70,18 +70,18 @@ TESTS_IN_2 := \
|
||||
src/tools/linkchecker
|
||||
|
||||
ci-subset-1:
|
||||
$(Q)$(BOOTSTRAP) test $(TESTS_IN_2:%=--exclude %)
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 $(TESTS_IN_2:%=--exclude %)
|
||||
ci-subset-2:
|
||||
$(Q)$(BOOTSTRAP) test $(TESTS_IN_2)
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 $(TESTS_IN_2)
|
||||
|
||||
TESTS_IN_MINGW_2 := \
|
||||
src/test/ui \
|
||||
src/test/compile-fail
|
||||
|
||||
ci-mingw-subset-1:
|
||||
$(Q)$(BOOTSTRAP) test $(TESTS_IN_MINGW_2:%=--exclude %)
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 $(TESTS_IN_MINGW_2:%=--exclude %)
|
||||
ci-mingw-subset-2:
|
||||
$(Q)$(BOOTSTRAP) test $(TESTS_IN_MINGW_2)
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 $(TESTS_IN_MINGW_2)
|
||||
|
||||
|
||||
.PHONY: dist
|
||||
|
@ -36,7 +36,7 @@ jobs:
|
||||
# Note that the compiler is compiled to target 10.8 here because the Xcode
|
||||
# version that we're using, 8.2, cannot compile LLVM for OSX 10.7.
|
||||
x86_64-apple:
|
||||
SCRIPT: ./x.py test
|
||||
SCRIPT: ./x.py --stage 2 test
|
||||
INITIAL_RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc
|
||||
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
|
||||
MACOSX_DEPLOYMENT_TARGET: 10.8
|
||||
|
@ -23,4 +23,4 @@ ENV RUST_CONFIGURE_ARGS \
|
||||
--enable-sanitizers \
|
||||
--enable-profiler \
|
||||
--enable-compiler-docs
|
||||
ENV SCRIPT python3 ../x.py test
|
||||
ENV SCRIPT python3 ../x.py --stage 2 test
|
||||
|
@ -31,7 +31,7 @@ ENV TARGETS=arm-linux-androideabi
|
||||
|
||||
ENV RUST_CONFIGURE_ARGS --arm-linux-androideabi-ndk=/android/ndk/arm-14
|
||||
|
||||
ENV SCRIPT python3 ../x.py test --target $TARGETS
|
||||
ENV SCRIPT python3 ../x.py --stage 2 test --target $TARGETS
|
||||
|
||||
COPY scripts/sccache.sh /scripts/
|
||||
RUN sh /scripts/sccache.sh
|
||||
|
@ -78,6 +78,6 @@ COPY scripts/sccache.sh /scripts/
|
||||
RUN sh /scripts/sccache.sh
|
||||
|
||||
ENV RUST_CONFIGURE_ARGS --qemu-armhf-rootfs=/tmp/rootfs
|
||||
ENV SCRIPT python3 ../x.py test --target arm-unknown-linux-gnueabihf
|
||||
ENV SCRIPT python3 ../x.py --stage 2 test --target arm-unknown-linux-gnueabihf
|
||||
|
||||
ENV NO_CHANGE_USER=1
|
||||
|
@ -33,7 +33,7 @@ ENV EMCC_CFLAGS=-O1
|
||||
# Emscripten installation is user-specific
|
||||
ENV NO_CHANGE_USER=1
|
||||
|
||||
ENV SCRIPT python3 ../x.py test --target $TARGETS
|
||||
ENV SCRIPT python3 ../x.py --stage 2 test --target $TARGETS
|
||||
|
||||
# This is almost identical to the wasm32-unknown-emscripten target, so
|
||||
# running with assertions again is not useful
|
||||
|
@ -33,7 +33,7 @@ ENV RUST_CONFIGURE_ARGS \
|
||||
# build to finish we use --warn-unresolved-symbols. Note that the missing
|
||||
# symbols does not affect std, only the compiler (llvm) and cargo (openssl).
|
||||
ENV SCRIPT \
|
||||
python3 ../x.py build src/llvm --host $HOSTS --target $HOSTS && \
|
||||
python3 ../x.py --stage 2 build src/llvm --host $HOSTS --target $HOSTS && \
|
||||
(export RUSTFLAGS="\"-C link-arg=-Wl,--warn-unresolved-symbols\""; \
|
||||
rm /android/ndk/arm && \
|
||||
ln -s /android/ndk/arm-14 /android/ndk/arm && \
|
||||
|
@ -33,7 +33,7 @@ ENV RUST_CONFIGURE_ARGS \
|
||||
# build to finish we use --warn-unresolved-symbols. Note that the missing
|
||||
# symbols does not affect std, only the compiler (llvm) and cargo (openssl).
|
||||
ENV SCRIPT \
|
||||
python3 ../x.py build src/llvm --host $HOSTS --target $HOSTS && \
|
||||
python3 ../x.py --stage 2 build src/llvm --host $HOSTS --target $HOSTS && \
|
||||
(export RUSTFLAGS="\"-C link-arg=-Wl,--warn-unresolved-symbols\""; \
|
||||
rm /android/ndk/x86 && \
|
||||
ln -s /android/ndk/x86-14 /android/ndk/x86 && \
|
||||
|
@ -97,6 +97,6 @@ COPY scripts/sccache.sh /scripts/
|
||||
RUN sh /scripts/sccache.sh
|
||||
|
||||
ENV RUST_CONFIGURE_ARGS --qemu-riscv64-rootfs=/tmp/rootfs
|
||||
ENV SCRIPT python3 ../x.py test --target riscv64gc-unknown-linux-gnu
|
||||
ENV SCRIPT python3 ../x.py --stage 2 test --target riscv64gc-unknown-linux-gnu
|
||||
|
||||
ENV NO_CHANGE_USER=1
|
||||
|
@ -46,5 +46,5 @@ ENV CFLAGS_i586_unknown_linux_musl=-Wa,-mrelax-relocations=no
|
||||
ENV TARGETS=i586-unknown-linux-gnu,i686-unknown-linux-musl
|
||||
|
||||
ENV SCRIPT \
|
||||
python3 ../x.py test --target $TARGETS && \
|
||||
python3 ../x.py --stage 2 test --target $TARGETS && \
|
||||
python3 ../x.py dist --target $TARGETS,i586-unknown-linux-musl
|
||||
|
@ -192,7 +192,7 @@ ENV RUST_CONFIGURE_ARGS \
|
||||
--disable-docs
|
||||
|
||||
ENV SCRIPT \
|
||||
python3 ../x.py test --target $RUN_MAKE_TARGETS src/test/run-make && \
|
||||
python3 ../x.py --stage 2 test --target $RUN_MAKE_TARGETS src/test/run-make && \
|
||||
python3 ../x.py dist --target $TARGETS
|
||||
|
||||
# sccache
|
||||
|
@ -20,7 +20,7 @@ COPY scripts/sccache.sh /scripts/
|
||||
RUN sh /scripts/sccache.sh
|
||||
|
||||
ENV RUST_CONFIGURE_ARGS --build=i686-unknown-linux-gnu --disable-optimize-tests
|
||||
ENV SCRIPT python3 ../x.py test
|
||||
ENV SCRIPT python3 ../x.py --stage 2 test
|
||||
|
||||
# FIXME(#59637) takes too long on CI right now
|
||||
ENV NO_LLVM_ASSERTIONS=1 NO_DEBUG_ASSERTIONS=1
|
||||
|
@ -22,7 +22,7 @@ RUN sh /scripts/sccache.sh
|
||||
ENV RUST_CONFIGURE_ARGS --build=i686-unknown-linux-gnu
|
||||
# Exclude some tests that are unlikely to be platform specific, to speed up
|
||||
# this slow job.
|
||||
ENV SCRIPT python3 ../x.py test \
|
||||
ENV SCRIPT python3 ../x.py --stage 2 test \
|
||||
--exclude src/bootstrap \
|
||||
--exclude src/test/rustdoc-js \
|
||||
--exclude src/tools/error_index_generator \
|
||||
|
@ -22,10 +22,10 @@ RUN sh /scripts/sccache.sh
|
||||
COPY host-x86_64/mingw-check/validate-toolstate.sh /scripts/
|
||||
|
||||
ENV RUN_CHECK_WITH_PARALLEL_QUERIES 1
|
||||
ENV SCRIPT python3 ../x.py test src/tools/expand-yaml-anchors && \
|
||||
ENV SCRIPT python3 ../x.py --stage 2 test src/tools/expand-yaml-anchors && \
|
||||
python3 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu && \
|
||||
python3 ../x.py build --stage 0 src/tools/build-manifest && \
|
||||
python3 ../x.py test --stage 0 src/tools/compiletest && \
|
||||
python3 ../x.py test src/tools/tidy && \
|
||||
python3 ../x.py test --stage 2 src/tools/tidy && \
|
||||
python3 ../x.py doc --stage 0 library/std && \
|
||||
/scripts/validate-toolstate.sh
|
||||
|
@ -40,7 +40,7 @@ ENV RUST_CONFIGURE_ARGS \
|
||||
ENV NO_DEBUG_ASSERTIONS=1
|
||||
|
||||
ENV WASM_TARGETS=wasm32-unknown-unknown
|
||||
ENV WASM_SCRIPT python3 /checkout/x.py test --target $WASM_TARGETS \
|
||||
ENV WASM_SCRIPT python3 /checkout/x.py --stage 2 test --target $WASM_TARGETS \
|
||||
src/test/run-make \
|
||||
src/test/ui \
|
||||
src/test/compile-fail \
|
||||
@ -49,13 +49,13 @@ ENV WASM_SCRIPT python3 /checkout/x.py test --target $WASM_TARGETS \
|
||||
library/core
|
||||
|
||||
ENV NVPTX_TARGETS=nvptx64-nvidia-cuda
|
||||
ENV NVPTX_SCRIPT python3 /checkout/x.py test --target $NVPTX_TARGETS \
|
||||
ENV NVPTX_SCRIPT python3 /checkout/x.py --stage 2 test --target $NVPTX_TARGETS \
|
||||
src/test/run-make \
|
||||
src/test/assembly
|
||||
|
||||
ENV MUSL_TARGETS=x86_64-unknown-linux-musl \
|
||||
CC_x86_64_unknown_linux_musl=x86_64-linux-musl-gcc \
|
||||
CXX_x86_64_unknown_linux_musl=x86_64-linux-musl-g++
|
||||
ENV MUSL_SCRIPT python3 /checkout/x.py test --target $MUSL_TARGETS
|
||||
ENV MUSL_SCRIPT python3 /checkout/x.py --stage 2 test --target $MUSL_TARGETS
|
||||
|
||||
ENV SCRIPT $WASM_SCRIPT && $NVPTX_SCRIPT && $MUSL_SCRIPT
|
||||
|
@ -52,7 +52,7 @@ ENV NO_CHANGE_USER=1
|
||||
|
||||
# FIXME: Re-enable these tests once https://github.com/rust-lang/cargo/pull/7476
|
||||
# is picked up by CI
|
||||
ENV SCRIPT python3 ../x.py test --target $TARGETS \
|
||||
ENV SCRIPT python3 ../x.py test --stage 2 --target $TARGETS \
|
||||
--exclude library/core \
|
||||
--exclude library/alloc \
|
||||
--exclude library/proc_macro \
|
||||
|
@ -40,5 +40,5 @@ ENV RUST_CONFIGURE_ARGS \
|
||||
--set target.x86_64-unknown-linux-gnu.cxx=clang++
|
||||
|
||||
ENV SCRIPT \
|
||||
python3 ../x.py build && \
|
||||
python3 ../x.py test src/test/run-make-fulldeps --test-args clang
|
||||
python3 ../x.py --stage 2 build && \
|
||||
python3 ../x.py --stage 2 test src/test/run-make-fulldeps --test-args clang
|
||||
|
@ -19,10 +19,10 @@ COPY scripts/sccache.sh /scripts/
|
||||
RUN sh /scripts/sccache.sh
|
||||
|
||||
ENV RUST_CONFIGURE_ARGS --build=x86_64-unknown-linux-gnu --set rust.ignore-git=false
|
||||
ENV SCRIPT python3 ../x.py test distcheck
|
||||
ENV SCRIPT python3 ../x.py --stage 2 test distcheck
|
||||
ENV DIST_SRC 1
|
||||
|
||||
# The purpose of this builder is to test that we can `./x.py test` successfully
|
||||
# The purpose of this builder is to test that we can `./x.py --stage 2 test` successfully
|
||||
# from a tarball, not to test LLVM/rustc's own set of assertions. These cause a
|
||||
# significant hit to CI compile time (over a half hour as observed in #61185),
|
||||
# so disable assertions for this builder.
|
||||
|
@ -21,7 +21,7 @@ RUN sh /scripts/sccache.sh
|
||||
ENV RUST_CONFIGURE_ARGS \
|
||||
--build=x86_64-unknown-linux-gnu \
|
||||
--enable-full-bootstrap
|
||||
ENV SCRIPT python3 ../x.py build
|
||||
ENV SCRIPT python3 ../x.py --stage 2 build
|
||||
|
||||
# In general this just slows down the build and we're just a smoke test that
|
||||
# a full bootstrap works in general, so there's not much need to take this
|
||||
|
@ -30,7 +30,7 @@ ENV RUST_CONFIGURE_ARGS \
|
||||
--enable-llvm-link-shared \
|
||||
--set rust.thin-lto-import-instr-limit=10
|
||||
|
||||
ENV SCRIPT python2.7 ../x.py test --exclude src/tools/tidy && \
|
||||
ENV SCRIPT python2.7 ../x.py --stage 2 test --exclude src/tools/tidy && \
|
||||
# Run the `mir-opt` tests again but this time for a 32-bit target.
|
||||
# This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have
|
||||
# both 32-bit and 64-bit outputs updated by the PR author, before
|
||||
@ -43,7 +43,7 @@ ENV SCRIPT python2.7 ../x.py test --exclude src/tools/tidy && \
|
||||
# This also requires `--pass=build` because we can't execute the tests
|
||||
# on the `x86_64` host when they're built as `armv5te` binaries.
|
||||
# (we're only interested in the MIR output, so this doesn't matter)
|
||||
python2.7 ../x.py test src/test/mir-opt --pass=build \
|
||||
python2.7 ../x.py --stage 2 test src/test/mir-opt --pass=build \
|
||||
--target=armv5te-unknown-linux-gnueabi && \
|
||||
# Run the UI test suite again, but in `--pass=check` mode
|
||||
#
|
||||
@ -53,9 +53,9 @@ ENV SCRIPT python2.7 ../x.py test --exclude src/tools/tidy && \
|
||||
# FIXME: We ideally want to test this in 32-bit mode, but currently
|
||||
# (due to the LLVM problems mentioned above) that isn't readily
|
||||
# possible.
|
||||
python2.7 ../x.py test src/test/ui --pass=check && \
|
||||
python2.7 ../x.py --stage 2 test src/test/ui --pass=check && \
|
||||
# Run tidy at the very end, after all the other tests.
|
||||
python2.7 ../x.py test src/tools/tidy
|
||||
python2.7 ../x.py --stage 2 test src/tools/tidy
|
||||
|
||||
# The purpose of this container isn't to test with debug assertions and
|
||||
# this is run on all PRs, so let's get speedier builds by disabling these extra
|
||||
|
@ -21,4 +21,4 @@ RUN sh /scripts/sccache.sh
|
||||
ENV RUST_CONFIGURE_ARGS --build=x86_64-unknown-linux-gnu \
|
||||
--disable-optimize-tests \
|
||||
--set rust.test-compare-mode
|
||||
ENV SCRIPT python3 ../x.py test
|
||||
ENV SCRIPT python3 ../x.py --stage 2 test
|
||||
|
@ -7,7 +7,7 @@ X_PY="$1"
|
||||
# Try to test all the tools and store the build/test success in the TOOLSTATE_FILE
|
||||
|
||||
set +e
|
||||
python3 "$X_PY" test --no-fail-fast \
|
||||
python3 "$X_PY" test --stage 2 --no-fail-fast \
|
||||
src/doc/book \
|
||||
src/doc/nomicon \
|
||||
src/doc/reference \
|
||||
@ -22,5 +22,5 @@ set -e
|
||||
|
||||
# debugging: print out the saved toolstates
|
||||
cat /tmp/toolstate/toolstates.json
|
||||
python3 "$X_PY" test check-tools
|
||||
python3 "$X_PY" test src/tools/clippy
|
||||
python3 "$X_PY" test --stage 2 check-tools
|
||||
python3 "$X_PY" test --stage 2 src/tools/clippy
|
||||
|
@ -23,4 +23,4 @@ ENV RUST_CONFIGURE_ARGS \
|
||||
--enable-sanitizers \
|
||||
--enable-profiler \
|
||||
--enable-compiler-docs
|
||||
ENV SCRIPT python3 ../x.py test
|
||||
ENV SCRIPT python3 ../x.py --stage 2 test
|
||||
|
@ -471,7 +471,7 @@ jobs:
|
||||
|
||||
- name: x86_64-msvc-cargo
|
||||
env:
|
||||
SCRIPT: python x.py test src/tools/cargotest src/tools/cargo
|
||||
SCRIPT: python x.py --stage 2 test src/tools/cargotest src/tools/cargo
|
||||
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-lld
|
||||
VCVARS_BAT: vcvars64.bat
|
||||
# FIXME(#59637)
|
||||
@ -613,7 +613,7 @@ jobs:
|
||||
|
||||
- name: x86_64-apple
|
||||
env:
|
||||
SCRIPT: ./x.py test
|
||||
SCRIPT: ./x.py --stage 2 test
|
||||
RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc
|
||||
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
|
||||
MACOSX_DEPLOYMENT_TARGET: 10.8
|
||||
|
Loading…
Reference in New Issue
Block a user