about summary refs log tree commit diff
path: root/src/ci
AgeCommit message (Collapse)AuthorLines
2019-03-20Auto merge of #58791 - denzp:asm-compile-tests, r=alexcrichtonbors-1/+2
Introduce assembly tests suite The change introduces a new test suite - **Assembly** tests. The motivation behind this is an ability to perform end-to-end codegen testing with LLVM backend. Turned out, NVPTX backend sometimes missing common Rust features (`i128` and libcalls in the past, and still full atomics support) due to different reasons. Prior to this change, basic NVPTX assembly tests were implemented within `run-make` suite. Now, it's easier to write additional and maintain existing tests for the target. cc @gnzlbg @peterhj cc @eddyb I adjusted mangling scheme expectation, so there is no need to change the tests for #57967
2019-03-20Rollup merge of #59257 - redox-os:upstream-redox, r=sanxiynkennytm-10/+4
Update CI configuration for building Redox libraries This fixes https://github.com/rust-lang/rust/issues/59254
2019-03-20Rollup merge of #59253 - kennytm:precise-docker-cache-hash, r=pietroalbinikennytm-1/+12
Calculate Docker cache hash precisely from Dockerfile's dependencies #58549 changed the Docker cache calculation to include every file under `src/ci/docker`, so that when files under `dist-x86_64-linux` is changed, its dependent image `dist-i686-linux` will also be rebuilt. However, this ultraconservative solution caused the `dist-i686-linux` to be rebuilt every time an irrelevant Dockerfile (e.g. the PowerPC ones) is changed, which increases the building time beyond 3 hours and forcing a spurious but expected failure. This commit instead parses the Dockerfile itself and look for the actual dependencies. The scripts needs to be copied into the Docker image, which must be done with the COPY command, so we just need to find all lines with a COPY command and add the source file into the hash calculator. Note: this script only handles single-lined COPY command in the form `COPY src1 src2 src3 dst`, since these are the only variant used inside this repository.
2019-03-20Rollup merge of #59038 - kennytm:track-embedded-book, r=oli-obkkennytm-0/+1
Track embedded-book in the toolstate The embedded book was tested in the tools job but the test result was never published. This PR adds maintainer information of embedded-book. This PR also requires the next update to embedded-book to pass the all tests, currently its state is test-fail. rust-lang-nursery/rust-toolstate#10 should be merged before this PR.
2019-03-20Rollup merge of #58986 - cuviper:ppc64-binutils, r=alexcrichtonkennytm-1/+21
[CI] Update binutils for powerpc64 and powerpc64le Cargo powerpc64 and powerpc64le are seeing `SIGILL` crashes in openssl, which was found to be a linking problem, fixed by newer binutils. See <https://github.com/rust-lang/rust/issues/57345#issuecomment-462094555> For powerpc64 we're using crosstool-ng, which doesn't offer a newer binutils version, but we can just compile it separately. On powerpc64le we're already building binutils. Both are now updated to binutils 2.32. Closes rust-lang/cargo#6320 Closes rust-lang/rust#57345 Closes rust-lang/rustup.rs#1620 r? @alexcrichton
2019-03-20Use `curl` instead of `wget` in install-x86_64-redox.shkennytm-1/+1
2019-03-17Calculate Docker cache hash precisely from Dockerfile's dependencieskennytm-1/+12
`src/ci/docker`, so that when files under `dist-x86_64-linux` is changed, its dependent image `dist-i686-linux` will also be rebuilt. However, this ultraconservative solution caused the `dist-i686-linux` to be rebuilt every time an irrelevant Dockerfile (e.g. the PowerPC ones) is changed, which increases the building time beyond 3 hours and forcing a spurious but expected failure. This commit instead parses the Dockerfile itself and look for the actual dependencies. The scripts needs to be copied into the Docker image, which must be done with the COPY command, so we just need to find all lines with a COPY command and add the source file into the hash calculator. Note: this script only handles single-lined COPY command in the form `COPY src1 src2 src3 dst`, since these are the only variant used inside this repository.
2019-03-17Update CI configuration for building Redox librariesJeremy Soller-10/+4
2019-03-16Merge remote-tracking branch 'upstream/master' into asm-compile-testsDenys Zariaiev-11/+99
2019-03-15Fix TARGET variable in musl-toolchain.shMateusz Mikuła-1/+1
2019-03-14Address final reviewMateusz Mikuła-4/+7
2019-03-13Final cleanupsMateusz Mikuła-12/+8
2019-03-13Move testing to test-variousMateusz Mikuła-5/+19
2019-03-13Disable relax relocations againMateusz Mikuła-3/+4
2019-03-13Drop copyright notice from musl-toolchainMateusz Mikuła-10/+0
2019-03-13musl: update LLVM to 7Mateusz Mikuła-1/+1
2019-03-13Address review commentsMartell Malone-2/+2
2019-03-13musl-toolchain: fix global lib paths (dont create /lib/libc.so)Jonathan Sieber-2/+1
2019-03-13Make the musl dynamic loader known to the system, so it can execute target ↵Jonathan Sieber-0/+11
binaries
2019-03-13build a proper c++-enabled musl toolchain with musl-cross-makeJonathan Sieber-9/+79
2019-03-13Set RUSTFLAGS env to make dylib workJonathan Sieber-0/+2
The musl-target doesn't automatically disable static linking of musl when building a dylib, and then complains it can't build a dylib. As a workaround, disable static linking via RUSTFLAGS, to see how far the build gets. The proper fix is to have rustc figure that out automagically.
2019-03-13Enable dist-x86_64-musl as a host architextureJonathanS-2/+4
2019-03-13Merge remote-tracking branch 'upstream/master' into asm-compile-testsDenys Zariaiev-23/+14
2019-03-10CI: Trim some tests from i686-gnuEric Huss-1/+7
This removes some tests from the i686-gnu job. This job clocks in at 2hr 56min, and removing these should cut about 10 to 15 minutes, giving a little more breathing room. I suspect these don't need to be tested on every platform.
2019-03-09Track embedded-book in the toolstatekennytm-0/+1
2019-03-06Wrap a long configure lineJosh Stone-1/+2
2019-03-06[CI] Update binutils for powerpc64 and powerpc64leJosh Stone-1/+20
Cargo powerpc64 and powerpc64le are seeing `SIGILL` crashes in openssl, which was found to be a linking problem, fixed by newer binutils. See <https://github.com/rust-lang/rust/issues/57345#issuecomment-462094555> For powerpc64 we're using crosstool-ng, which doesn't offer a newer binutils version, but we can just compile it separately. On powerpc64le we're already building binutils. Both are now updated to binutils 2.32. Closes rust-lang/cargo#6320 Closes rust-lang/rust#57345 Closes rust-lang/rustup.rs#1620
2019-03-01Update toolchain to build NetBSD releaseAlex Crichton-24/+8
This allows us to remove the "allow old toolchains" flag we pass to LLVM, ensuring that we'll be up to date when LLVM needs us to be!
2019-02-27Introduce assembly testsDenys Zariaiev-1/+2
2019-02-27Whitelist containers that allow older toolchainsAlex Crichton-1/+2
We'll use this as a temporary measure to get an LLVM update landed, but we'll have to go through and update images later to make sure they've got the right toolchains.
2019-02-23Added a connection timeout and speed threshold when downloading the Docker cachekennytm-1/+1
2019-02-18Auto merge of #58549 - pietroalbini:fix-docker-ci-hash, r=Mark-Simulacrumbors-3/+3
ci: fix docker cache hash collision #58416 uncovered a bug in our caching for docker images: if the image `foo` pulls files from the image `bar` and a file in `bar` changed, the hash of `foo` will be the same even though it should be different. In that PR's case, `dist-i686-linux` pulls scripts from `dist-x86_64-linux`, and the PR only changed those scripts, causing an hash collision for `dist-i686-linux`. We have to fix this, since the image will be rebuilt every time bors switches from testing master to testing beta/stable (and when it switches back), making CI way more painful than it currently is. The approach used by this PR is to just include all the files in `src/ci/docker` in the hash. It's a bit heavy-handed and it will cause a rebuild of all the images every time a single image changes, but it's the best I can think of. r? @Mark-Simulacrum cc @alexcrichton @kennytm
2019-02-18ci: fix docker cache hash collisionPietro Albini-3/+3
Before this commit the hash used to cache docker images was calculated from the image's files and the files in the scripts/ directory. This worked fine when all the files used by an image were in those directories, but some images pull files from other images, causing hash collisions in some cases. This commit changes the hash to include the files of all the docker images, causing a rebuild of all the images when a single one changes. That's a bit heavy-handed, but we have no way to track which files an image pulls in and hash collisions are really painful to deal with.
2019-02-17Auto merge of #58416 - cuviper:dist-linux-gcc, r=alexcrichtonbors-111/+312
[CI] Update GCC in the dist-linux builders Upstream LLVM is planning to raise their minimum toolchain requirements, so they may start using C++14 features. This new policy has already landed in the form of a "soft" error. http://lists.llvm.org/pipermail/llvm-dev/2019-February/130117.html For GCC, they will require at least version 5.1. This PR moves our crosstool-ng builders to their max GCC 5.2, with a few small patches to fix compatibility. The dist-x86_64-linux builder is updated to GCC 5.5 and LLVM/Clang 8.0.0-rc2, which also affects dist-i686-linux sharing the same scripts. r? @alexcrichton
2019-02-15Auto merge of #58406 - Disasm:rv64-support, r=nagisabors-0/+2
Add riscv64{imac,gc}-unknown-none-elf targets Previous attempt by @fintelia: https://github.com/rust-lang/rust/pull/58012 Related: https://github.com/rust-embedded/wg/issues/218
2019-02-12[CI] Update dist-x86_64-linux to GCC 5.5Josh Stone-22/+12
This also updates dist-i686-linux, since it borrows the same scripts. While we're at it, update llvm+clang+lld to llvm-project 8.0.0-rc2.
2019-02-12[CI] Update crosstool-ng builders to GCC 5.2Josh Stone-89/+300
2019-02-12Add riscv64gc-unknown-none-elf targetVadim Kaushan-0/+1
2019-02-12Add riscv64imac-unknown-none-elf targetVadim Kaushan-0/+1
2019-02-12use Ubuntu keyserver for CloudABI portsAndy Russell-5/+4
The Ubuntu keyserver is more reliable than the MIT PGP server, which is prone to going down. This commit also explicitly uses port 80 on the keyserver for reasons outlined in #57844.
2019-02-06Revert "Auto merge of #57975 - alexcrichton:debug-exit-appveyor, r=pietroalbini"Pietro Albini-7/+0
This reverts commit d3d0bf0e9f4d748b95ed143cc636d159bfcb4a6f, reversing changes made to 40e6a0bd766ca7b1c582b964131400b8c3e89d76.
2019-02-06Revert "Rollup merge of #58162 - pietroalbini:track-259, r=alexcrichton"Pietro Albini-7/+1
This reverts commit 4c243e2c3d8f02cdcd22fe68acf6a0b3edca2078, reversing changes made to 64f0032a3739b18ae45387744340d9c7ce48b145.
2019-02-06Rollup merge of #58162 - pietroalbini:track-259, r=alexcrichtonkennytm-1/+7
Add more debugging code to track down appveyor 259 exit code cc https://github.com/rust-lang/rust/issues/58160 r? @alexcrichton
2019-02-05add even more debugging code to track down appveyor 259 exit codePietro Albini-0/+6
2019-02-04add more debugging code to track down appveyor 259 exit codePietro Albini-1/+1
2019-02-04Add embedded bookJames Munns-0/+1
2019-02-01Auto merge of #57937 - denzp:nvptx, r=nagisabors-5/+15
NVPTX target specification This change adds a built-in `nvptx64-nvidia-cuda` GPGPU no-std target specification and a basic PTX assembly smoke tests. The approach is taken here and the target spec is based on `ptx-linker`, a project started about 1.5 years ago. Key feature: bitcode object files being linked with LTO into the final module on the linker's side. Prior to this change, the linker used a `ld` linker-flavor, but I think, having the special CLI convention is a more reliable way. Questions about further progress on reliable CUDA workflow with Rust: 1. Is it possible to create a test suite `codegen-asm` to verify end-to-end integration with LLVM backend? 1. How would it be better to organise no-std `compile-fail` tests: add `#![no_std]` where possible and mark others as `ignore-nvptx` directive, or alternatively, introduce `compile-fail-no-std` test suite? 1. Can we have the `ptx-linker` eventually be integrated as `rls` or `clippy`? Hopefully, this should allow to statically link against LLVM used in Rust and get rid of the [current hacky solution](https://github.com/denzp/rustc-llvm-proxy). 1. Am I missing some methods from `rustc_codegen_ssa::back::linker::Linker` that can be useful for bitcode-only linking? Currently, there are no major public CUDA projects written in Rust I'm aware of, but I'm expecting to have a built-in target will create a solid foundation for further experiments and awesome crates. Related to #38789 Fixes #38787 Fixes #38786
2019-01-31Auto merge of #57914 - jethrogb:jb/sgx-unwind-version, r=alexcrichtonbors-25/+35
SGX target: clean up dist builder, update libunwind This incorporates https://github.com/fortanix/llvm-project/pull/4 Fixes https://github.com/fortanix/rust-sgx/issues/65 r? @alexcrichton
2019-01-31Updated commit id for building libunwind.Vardhan Thigle-2/+2
2019-01-31Auto merge of #57514 - michaelwoerister:xlto-tests, r=alexcrichtonbors-4/+23
compiletest: Support opt-in Clang-based run-make tests and use them for testing xLTO. Some cross-language run-make tests need a Clang compiler that matches the LLVM version of `rustc`. Since such a compiler usually isn't available these tests (marked with the `needs-matching-clang` directive) are ignored by default. For some CI jobs we do need these tests to run unconditionally though. In order to support this a `--force-clang-based-tests` flag is added to compiletest. If this flag is specified, `compiletest` will fail if it can't detect an appropriate version of Clang. @rust-lang/infra The PR doesn't yet enable the tests yet. Do you have any recommendation for which jobs to enable them? cc #57438 r? @alexcrichton