about summary refs log tree commit diff
path: root/src/ci
AgeCommit message (Collapse)AuthorLines
2020-09-15ci: gate macOS on GHA tooPietro Albini-51/+73
2020-09-15Enable shared linking to LLVM on non-WindowsMark Rousskov-0/+7
Windows doesn't quite support dynamic linking to LLVM yet, but on other platforms we do. In #76708, it was discovered that we dynamically link to LLVM from the LLVM tools (e.g., rust-lld), so we need the shared LLVM library to link against. That means that if we do not have a shared link to LLVM, and want LLVM tools to work, we'd be shipping two copies of LLVM on all of these platforms: one in librustc_driver and one in libLLVM. Also introduce an error into rustbuild if we do end up configured for shared linking on Windows.
2020-09-14Update based on @alex's PRJens Reidel-6/+0
2020-09-13remove orphaned filesTshepang Lekhonkhobe-52/+0
Should been part of https://github.com/rust-lang/rust/pull/74163
2020-09-12Add host= configuration for msvc/darwinMark Rousskov-3/+5
2020-09-10ci: avoid moving the build directory on GHAPietro Albini-18/+0
While waiting for a PR job to start testing my code, I noticed the symlink-build-dir step took 10 minutes to complete, so I investigated what caused that. It seems like something changed in the build environment between version 20200901.1 (where the step took 45 seconds) and version 20200908.1 (where the step took 10 minutes). At the time of writing this commit, the rust-lang organization is on vertsion 20200908.1, while the rust-lang-ci organization is at version 20200901.1 (and is not affected by this yet). There is no need for this step anymore on GHA, as our XL builders got an increase in the root paritition size, so this commit removes the code that moved stuff around on GHA (while keeping it on Azure). For the record, at the time of writing this, the disk situation is: Filesystem Size Used Avail Use% Mounted on /dev/sda1 667G 60G 607G 9% / /dev/sdb1 110G 4.1G 101G 4% /mnt
2020-09-06initial attempt to add aarch64-unknown-linux-musl to dist-linux-armJens Reidel-17/+13
2020-09-04Enable profiler tests on Windows-gnuMateusz Mikuła-2/+2
2020-08-29Auto merge of #74922 - joshtriplett:ninja-by-default, r=Mark-Simulacrumbors-6/+40
Set ninja=true by default Ninja substantially improves LLVM build time. On a 96-way system, using Make took 248s, and using Ninja took 161s, a 35% improvement. We already require a variety of tools to build Rust. If someone wants to build without Ninja (for instance, to minimize the set of packages required to bootstrap a new target), they can easily set `ninja=false` in `config.toml`. Our defaults should help people build Rust (and LLVM) faster, to speed up development.
2020-08-28Auto merge of #76035 - tiagolam:master, r=pietroalbinibors-0/+1
Build dist-x86_64-musl with --enable-profiler. Trying to build a Rust project with `-Zprofile` for target x86_64-unknown-linux-musl using rustc 1.46.0-nightly (346aec9b0 2020-07-11), installed with rustup, results in the following error. ``` export RUSTFLAGS="-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort"export CARGO_INCREMENTAL=0$ cargo build --target=x86_64-unknown-linux-muslCompiling hello_world v0.1.0 (…)error[E0463]: can't find crate for `profiler_builtins` | = note: the compiler may have been built without the profiler runtime error: aborting due to previous error For more information about this error, try `rustc --explain E0463`.error: could not compile `hello_world`. To learn more, run the command again with --verbose. ``` `-Zprofile` is required here to enable grcov profiling. This is similar in nature to issue https://github.com/rust-lang/rust/issues/57257, which has been fixed in asimilar way at https://github.com/rust-lang/rust/pull/60476 . A fix for Android has also landed not long ago: https://github.com/rust-lang/rust/pull/70054 . Signed-off-by: Tiago Lam <tiagol@hadean.com>
2020-08-28Build dist-x86_64-musl with --enable-profiler.Tiago Lam-0/+1
Trying to build a Rust project with `-Zprofile` for target x86_64-unknown-linux-musl using rustc 1.46.0-nightly (346aec9b0 2020-07-11), installed with rustup, results in the following error. ``` export RUSTFLAGS="-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort"export CARGO_INCREMENTAL=0$ cargo build --target=x86_64-unknown-linux-muslCompiling hello_world v0.1.0 (…)error[E0463]: can't find crate for `profiler_builtins` | = note: the compiler may have been built without the profiler runtime error: aborting due to previous error For more information about this error, try `rustc --explain E0463`.error: could not compile `hello_world`. To learn more, run the command again with --verbose. ``` `-Zprofile` is required here to enable grcov profiling. This is similar in nature to issue https://github.com/rust-lang/rust/issues/57257, which has been fixed in asimilar way at https://github.com/rust-lang/rust/pull/60476 . A fix for Android has also landed not long ago: https://github.com/rust-lang/rust/pull/70054 . Signed-off-by: Tiago Lam <tiagol@hadean.com>
2020-08-28ci: run cancel-outdated-builds after fully setting up the envPietro Albini-9/+9
2020-08-27ci: disable cancel-outdated-builds for auto-falliblePietro Albini-1/+15
2020-08-26Debian 6 doesn't have ninja, so use make for the dist buildsJosh Triplett-2/+2
2020-08-26Install ninja on CI buildersJosh Triplett-0/+34
Windows CI builds already install ninja. Install it in all the Docker-based builds as well.
2020-08-26Disable ninja on macOS CIJosh Triplett-6/+6
Should be re-enabled when we have a recipe for installing ninja on macOS.
2020-08-25ci: fix macOS target name for LLVM 10Pietro Albini-3/+3
2020-08-25ci: bump LLVM source tarball on Linux to 10.0.0Pietro Albini-1/+1
2020-08-25ci: bump prebuilt LLVM on macOS and Windows to 10.0.0Pietro Albini-6/+11
2020-08-22Apply suggestions from code review Josh Stone-2/+1
Flatten the INC definition to one line. Co-authored-by: lzutao <taolzu@gmail.com>
2020-08-22Don't make clang use gcc's include-fixedJosh Stone-9/+0
This was breaking `#include_next <limits.h>`, such that we weren't getting definitions of `PATH_MAX` and `_POSIX_ARG_MAX`.
2020-08-21Auto merge of #75708 - JohnTitor:stay-cool-full-bootstrap-builder, ↵bors-33/+0
r=pietroalbini Remove the full-bootstrap builder from CI Fixes #75198
2020-08-19Upgrade Emscripten on CI to 1.39.20Thomas Lively-2/+2
This Emscripten version was the first to be cut after the LLVM 11 release branch was created, so it should be the most compatible with LLVM 11. The old version we were using was incompatible with LLVM 11 because its wasm-ld did not understand all the relocations that LLVM 11 emits.
2020-08-20Remove the full-bootstrap builder from CIYuki Okushi-33/+0
2020-08-17Auto merge of #75568 - ehuss:cloudabi-tier3, r=Mark-Simulacrumbors-4/+1
Move CloudABI to tier 3. The CloudABI target hasn't had much work done on it in a while, and it doesn't appear to be in active use. It has a fairly substantial amount of code, particularly in the [sys module](https://github.com/rust-lang/rust/tree/5addb135edc2653b07670482a430aac9b655a86b/library/std/src/sys/cloudabi) that requires actively supporting. I contacted @EdSchouten who indicated that many of the CloudABI concepts are now in WASI, and that they are OK with the target being moved to tier 3.
2020-08-16Fix fortanix buildMark Rousskov-1/+1
2020-08-15Bump minor version of emsdk to 1.38.47Tomasz Miąsko-2/+2
Release Notes: ``` v1.38.47: 10/02/2019 -------------------- - Add support for FETCH API in WASM backend. This doesn't support FETCH in the main thread (`USE_FETCH_WORKER=0` is enforced). #9490 - Redefine errno values to be consistent with wasi. This will let us avoid needing to convert the values back and forth as we use more wasi APIs. This is an ABI change, which should not be noticeable from user code unless you use errno defines (like EAGAIN) *and* keep around binaries compiled with an older version that you link against. In that case, you should rebuild them. See #9545. - Removed build option `-s ONLY_MY_CODE` as we now have much better solutions for that, like building to a wasm object file or using `STANDALONE_WASM` etc. (see https://github.com/emscripten-core/emscripten/wiki/WebAssembly-Standalone). - Emscripten now supports the config file (.emscripten) being placed in the emscripten directory rather that the current user's home directory. See #9543 ```
2020-08-15Auto merge of #74576 - myfreeweb:freebsd-sanitizers, r=oli-obkbors-1/+1
Add sanitizer support on FreeBSD Restarting #47337. Everything is better now, no more weird llvm problems, well not everything: Unfortunately, the sanitizers don't have proper support for versioned symbols (https://github.com/google/sanitizers/issues/628), so `libc`'s usage of `stat@FBSD_1.0` and so on explodes, e.g. in calling `std::fs::metadata`. Building std (now easy thanks to cargo `-Zbuild-std`) and libc with `freebsd12/13` config via the `LIBC_CI=1` env variable is a good workaround… ``` LIBC_CI=1 RUSTFLAGS="-Z sanitizer=address" cargo +san-test -Zbuild-std run --target x86_64-unknown-freebsd --verbose ``` …*except* std won't build because there's no `st_lspare` in the ino64 version of the struct, so an std patch is required: ```diff --- i/src/libstd/os/freebsd/fs.rs +++ w/src/libstd/os/freebsd/fs.rs @@ -66,8 +66,6 @@ pub trait MetadataExt { fn st_flags(&self) -> u32; #[stable(feature = "metadata_ext2", since = "1.8.0")] fn st_gen(&self) -> u32; - #[stable(feature = "metadata_ext2", since = "1.8.0")] - fn st_lspare(&self) -> u32; } #[stable(feature = "metadata_ext", since = "1.1.0")] @@ -136,7 +134,4 @@ impl MetadataExt for Metadata { fn st_flags(&self) -> u32 { self.as_inner().as_inner().st_flags as u32 } - fn st_lspare(&self) -> u32 { - self.as_inner().as_inner().st_lspare as u32 - } } ``` I guess std could like.. detect that `libc` isn't built for the old ABI, and replace the implementation of `st_lspare` with a panic?
2020-08-14Move CloudABI to tier 3.Eric Huss-3/+0
2020-08-14Auto merge of #73383 - ecstatic-morse:test-unoptimized-std, r=Mark-Simulacrumbors-2/+12
Run standard library unit tests without optimizations in `nopt` CI jobs This was discussed in #73288 as a way to catch similar issues in the future. This builds an unoptimized standard library with the bootstrap compiler and runs the unit tests. This takes about 2 minutes on my laptop. I confirmed that this method works locally, although there may be a better way of implementing it. It would be better to use the stage 2 compiler instead of the bootstrap one. Notably, there are currently four `libstd` unit tests that fail in debug mode on `i686-unkown-linux-gnu` (a tier one target): ``` failures: f32::tests::test_float_bits_conv f32::tests::test_total_cmp f64::tests::test_float_bits_conv f64::tests::test_total_cmp ``` These are the tests that prompted #73288 as well as the ones added in #72568, which is currently broken due to #73328.
2020-08-13Add no-opt standard library buildersDylan MacKenzie-2/+12
We already have builders which built standard library *test*s without optimizations, but we previously did not have builders which built the standard library itself without optimizations and then tested that. This adds those builds for i686 and x86_64 linux.
2020-08-11Update MinGW comments in ci.ymlMateusz Mikuła-5/+7
2020-08-09Upgrade the FreeBSD toolchain to version 11.4Josh Stone-25/+11
FreeBSD 10 reached its end-of-life in October 2018, and that toolchain caused issues in the LLVM 11 upgrade (#73526) that are resolved with the toolchain from FreeBSD 11.
2020-08-09Add sanitizer support on FreeBSDGreg V-1/+1
2020-08-04ci: disable fail-fast on auto-falliblePietro Albini-0/+1
The purpose of the auto-fallible job is to run builders that are likely to fail on CI without gating on them. Having fail-fast enabled there kinda defeats the purpose, as if one of them fails we can't monitor the outcome of the other ones. This was prompted by the aarch64-gnu builder consistently failing due to a broken test, preventing us from seeing if the macOS spurious failure is fixed.
2020-08-02Auto merge of #74675 - pietroalbini:aarch64-ci-fallible, r=Mark-Simulacrumbors-1/+16
Add fallible AArch64 CI builder This adds the `aarch64-gnu` CI builder to the `auto-fallible` job, as a first step in the process of actually gating on it. r? @Mark-Simulacrum
2020-08-01Rollup merge of #74995 - sunfishcode:update-llvm, r=alexcrichtonManish Goregaokar-3/+3
Update the WASI libc build to LLVM 10. Among other things, this brings in [the `__main_argc_argv`] patch, which simplifies the interaction between the compiler and WASI libc's startup code, which will help work on reactor support. [the `__main_argc_argv` patch]: https://github.com/llvm/llvm-project/commit/00072c08c75050ae2c835b7bb0e505475dbcd7b9 r? @alexcrichton
2020-08-01Auto merge of #74993 - sunfishcode:update-wasi-libc, r=alexcrichtonbors-2/+2
Update the bundled wasi-libc with libstd This just updates WASI libc, in preparation for WASI reactor support in a separate change. r? @alexcrichton
2020-07-31Update the WASI libc build to LLVM 10.Dan Gohman-3/+3
Among other things, this brings in [the `__main_argc_argv`] patch, which simplifies the interaction between the compiler and WASI libc's startup code, which will help work on reactor support. [the `__main_argc_argv` patch]: https://github.com/llvm/llvm-project/commit/00072c08c75050ae2c835b7bb0e505475dbcd7b9
2020-07-31Update the bundled wasi-libc with libstdDan Gohman-2/+2
This just updates WASI libc, in preparation for WASI reactor support in a separate change.
2020-07-31Auto merge of #74844 - asomers:freebsd-profiler, r=pietroalbinibors-2/+2
Enable the profiler on FreeBSD FreeBSD has been doing this in our own package builds for two months now. https://svnweb.freebsd.org/ports?view=revision&revision=535771
2020-07-30Rollup merge of #74871 - etherealist:musl_doc, r=Mark-SimulacrumManish Goregaokar-1/+0
Enable docs on dist-x86_64-musl Add the `rust-docs` component to toolchain `x86_64-unknown-linux-musl`, which allows people using rustup on their musl-based linux distribution to download the rust-docs. `--disable-docs` is based on the assumption that `x86_64-unknown-linux-musl` is only a cross-compile target. I have tested that the docs are built. I assume the build-system will automatically detect the docs and create a `rust-docs` component. I will [monitor](https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-musl.html) the components and create a follow-up PR, if the docs aren't published. See also #70619, where we enabled `rust-lld` to enable the wasm-workflow on musl-based linux distributions.
2020-07-28Use --stage 2 in checktoolsJoshua Nelson-5/+5
- Remove useless --stage 2 argument to checktools.sh - Fix help text for expand-yaml-anchors (it had a typo)
2020-07-28Enable docs on dist-x86_64-muslDavid Sonder-1/+0
Add the rust-docs component to toolchain x86_64-unknown-linux-musl, which allows people using rustup on their musl-based linux distribution to download the rust-docs.
2020-07-27Use --stage 2 explicitly in CIJoshua Nelson-33/+33
- expand yaml anchors - don't use --stage 2 for dist; that's already the default
2020-07-27mv std libs to library/mark-8/+8
2020-07-27Enable the profiler on FreeBSDAlan Somers-2/+2
FreeBSD has been doing this in our own package builds for two months now. https://svnweb.freebsd.org/ports?view=revision&revision=535771
2020-07-24Rollup merge of #74639 - msirringhaus:master, r=cuviperManish Goregaokar-12/+12
Downgrade glibc to 2.11.1 for ppc, ppc64 and s390x As discussed in #73782 I've tested these changes on rust 1.43.0 for all the specified archs and used the resulting binaries to bootstrap building rust 1.43.1. I've also shortly tested these changes on master on ppc64.
2020-07-23ci: add aarch64-gnu as a fallible auto builderPietro Albini-0/+10
2020-07-23ci: avoid symlinking the build directory on self-hosted buildersPietro Albini-1/+6