Commit graph

483 commits

Author SHA1 Message Date
Alex Crichton
320640060f Whitelist containers that allow older toolchains
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-27 08:10:21 -08:00
kennytm
ee07b15a3c
Added a connection timeout and speed threshold when downloading the Docker cache 2019-02-23 03:25:14 +08:00
bors
146aa60f34 Auto merge of #58549 - pietroalbini:fix-docker-ci-hash, r=Mark-Simulacrum
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-18 17:34:14 +00:00
Pietro Albini
2b2045d161
ci: fix docker cache hash collision
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-18 15:28:10 +01:00
bors
9a3392e174 Auto merge of #58416 - cuviper:dist-linux-gcc, r=alexcrichton
[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-17 14:29:33 +00:00
bors
a9410cd1af Auto merge of #58406 - Disasm:rv64-support, r=nagisa
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-15 16:20:12 +00:00
Josh Stone
adb54c2fa7 [CI] Update dist-x86_64-linux to GCC 5.5
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 15:28:27 -08:00
Josh Stone
e0544ca1cf [CI] Update crosstool-ng builders to GCC 5.2 2019-02-12 09:56:09 -08:00
Vadim Kaushan
1f1a82434b Add riscv64gc-unknown-none-elf target 2019-02-12 19:15:00 +03:00
Vadim Kaushan
06f21a5314 Add riscv64imac-unknown-none-elf target 2019-02-12 19:05:41 +03:00
Andy Russell
8b21a55b96
use Ubuntu keyserver for CloudABI ports
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-12 09:39:38 -05:00
Pietro Albini
99599245a3
Revert "Auto merge of #57975 - alexcrichton:debug-exit-appveyor, r=pietroalbini"
This reverts commit d3d0bf0e9f, reversing
changes made to 40e6a0bd76.
2019-02-06 15:17:15 +01:00
Pietro Albini
4f20348fd3
Revert "Rollup merge of #58162 - pietroalbini:track-259, r=alexcrichton"
This reverts commit 4c243e2c3d, reversing
changes made to 64f0032a37.
2019-02-06 15:16:50 +01:00
kennytm
4c243e2c3d
Rollup merge of #58162 - pietroalbini:track-259, r=alexcrichton
Add more debugging code to track down appveyor 259 exit code

cc https://github.com/rust-lang/rust/issues/58160
r? @alexcrichton
2019-02-06 00:29:16 +09:00
Pietro Albini
2bfb4b336f
add even more debugging code to track down appveyor 259 exit code 2019-02-05 08:47:52 +01:00
Pietro Albini
59ea75b51c
add more debugging code to track down appveyor 259 exit code 2019-02-04 19:29:45 +01:00
James Munns
606e5e07f6 Add embedded book 2019-02-04 05:20:43 -05:00
bors
2efa31b2d9 Auto merge of #57937 - denzp:nvptx, r=nagisa
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:🔙: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-02-01 23:43:34 +00:00
bors
63505b84a6 Auto merge of #57914 - jethrogb:jb/sgx-unwind-version, r=alexcrichton
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-31 16:21:39 +00:00
Vardhan Thigle
b025557e97 Updated commit id for building libunwind. 2019-01-31 17:42:08 +05:30
bors
d30b99f9c2 Auto merge of #57514 - michaelwoerister:xlto-tests, r=alexcrichton
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
2019-01-31 11:07:41 +00:00
Michael Woerister
b17c10de46 CI: Use lld for linking LLVM in the x86_64-gnu-debug image. 2019-01-30 16:21:43 +01:00
Michael Woerister
4f534ffbdb ci: Use clang as the C++ compiler for x86_64-gnu-debug. 2019-01-30 16:21:43 +01:00
Michael Woerister
4460e7c919 Add missing packages. 2019-01-30 16:21:43 +01:00
bors
d3d0bf0e9f Auto merge of #57975 - alexcrichton:debug-exit-appveyor, r=pietroalbini
Attempt to debug 259 exit code on AppVeyor

Let's try to dig in a bit more and see where this is coming from, it
looks like AppVeyor is also unsure where this is coming from!
2019-01-30 03:44:11 +00:00
Denys Zariaiev
49931fda56 Use correct CI test image for WASM and NVPTX 2019-01-29 21:00:07 +01:00
Denys Zariaiev
3f624456e6 Provide PTXLinker with fallback to internal target-cpu 2019-01-29 20:55:09 +01:00
Denys Zariaiev
899d936dee Merge NVPTX and WASM test images into test-various 2019-01-29 19:06:42 +01:00
Alex Crichton
ce279a8e53 Attempt to debug 259 exit code on AppVeyor
Let's try to dig in a bit more and see where this is coming from, it
looks like AppVeyor is also unsure where this is coming from!
2019-01-29 07:45:54 -08:00
bors
ae1ba150a2 Auto merge of #57948 - Zoxc:parallel, r=michaelwoerister
Use multiple threads by default. Limits tests to one thread. Do some renaming.

r? @michaelwoerister
2019-01-29 13:32:13 +00:00
bors
106b3e9fa4 Auto merge of #57862 - hsivonen:buildneon, r=alexcrichton
Build the standard library for thumbv7neon-unknown-linux-gnueabihf in CI

Using the `dist-armv7-linux` image instead of `dist-various-1` in order to use the ARMv7 toolchain available in `dist-armv7-linux`.

Closes #57030.
2019-01-29 09:42:13 +00:00
Denys Zariaiev
6f86a70ea1 Adjust PTXLinker LTO logic and CLI 2019-01-28 23:56:37 +01:00
John Kåre Alsaker
a015f7f61f Fix CI 2019-01-28 19:22:55 +01:00
Henri Sivonen
7dbb70eea3 Build the standard library for thumbv7neon-unknown-linux-gnueabihf in CI
Closes #57030.
2019-01-28 11:46:41 +02:00
Denys Zariaiev
ceacde31ae NVPTX: by-default use target cpu "sm_30" 2019-01-28 01:16:32 +01:00
Denys Zariaiev
97c8e82fe0 Enable CI for nvptx64-nvidia-cuda 2019-01-27 16:04:27 +01:00
Jethro Beekman
9ce3cfa4f2 Update SGX libunwind 2019-01-26 14:58:11 +05:30
Jethro Beekman
7e7a43b876 Clean up build-x86_64-fortanix-unknown-sgx-toolchain.sh 2019-01-26 14:53:00 +05:30
Josh Stone
df0466d0bb Rebase to the llvm-project monorepo
The new git submodule src/llvm-project is a monorepo replacing src/llvm
and src/tools/{clang,lld,lldb}.  This also serves as a rebase for these
projects to the new 8.x branch from trunk.

The src/llvm-emscripten fork is unchanged for now.
2019-01-25 15:39:54 -08:00
Mazdak Farrokhzad
bea83213f3
Rollup merge of #57803 - jethrogb:jb/sgx-unwind-version, r=alexcrichton
Several changes to libunwind for SGX target

Two fixes:
* #34978 bites again!
* __rust_alloc are actually private symbols. Add new public versions. Also, these ones are `extern "C"`.

Upstream changes (https://github.com/fortanix/llvm-project/pull/2, https://github.com/fortanix/llvm-project/pull/3):
* b7357de Avoid too new relocation types being emitted
* 0feefe5 Use new symbol names to call Rust allocator

Fixes https://github.com/fortanix/rust-sgx/issues/65
2019-01-24 18:25:44 +01:00
Michael Woerister
48cb04fbca Enable Clang-based tests on x86_64-gnu-debug builder. 2019-01-24 13:18:36 +01:00
Mazdak Farrokhzad
86244854b5
Rollup merge of #57844 - euclio:keyserver-port, r=alexcrichton
use port 80 for retrieving GPG key

This works around firewalls blocking port 11371.

See https://unix.stackexchange.com/questions/75892/keyserver-timed-out-when-trying-to-add-a-gpg-public-key.
2019-01-24 00:20:02 +01:00
Pietro Albini
91f328fb55
make sure to accept all android licenses 2019-01-23 11:21:24 +01:00
Andy Russell
4e649ccc3a
use port 80 for retrieving GPG key
This works around firewalls blocking port 11371.

See https://unix.stackexchange.com/questions/75892/keyserver-timed-out-when-trying-to-add-a-gpg-public-key.
2019-01-22 16:18:29 -05:00
Jethro Beekman
6abba95045 Update libunwind for SGX target 2019-01-21 22:01:42 +05:30
Pietro Albini
d158ef64e8
Revert "Auto merge of #57670 - rust-lang:beta-next, r=Mark-Simulacrum"
This reverts commit 722b4d6959, reversing
changes made to 956dba47d3.
2019-01-17 10:48:10 +01:00
Pietro Albini
dc25c80571
prepare beta 1.33.0 2019-01-16 17:22:51 +01:00
bors
33e6df4b62 Auto merge of #57130 - VardhanThigle:Vardhan/x86_64-fortanix-unknown-sgx-tier2_support, r=alexcrichton
Upgrade x86_64-fortanix-unknown-sgx platform support to tier 2

## Overview
1. This PR upgrades x86_64-fortanix-unknown-sgx platform support to tier 2 (std only) by setting up build automation for this target.
1. For supporting unwinding, this target needs to link to a port of LLVM's libunwind (more details could be found in #56979), which will be distributed along with the Rust binaries (similar to the extra musl objects)

### Building and copying libunwind:
We have added a new build script  (`build-x86_64-fortanix-unknown-sgx-toolchain.sh`) that will run while the container is built. This will build `libunwind.a` from git source.
While the container is built, the persistent volumes where obj/ gets created aren't yet mapped. As a workaround, we copy the built `libunwind.a` to  `obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-fortanix-unknown-sgx/lib/` after x.py runs.
 If any reviewer knows of a better solution, please do tell.

r? @Mark-Simulacrum
2019-01-15 04:06:25 +00:00
Vardhan Thigle
4a957b320d Adding Build automation for x86_64-fortanix-unknown-sgx 2019-01-13 13:07:45 +05:30
Hugues de Valon
f0d4158db6 Replace Arm GCC to a more recent version
The version included in Ubuntu 16.04 repositories in the dist-various-1
docker, Arm GCC version 4.9, does not support the new Armv8-M
architecture.
This commit adds the team-gcc-arm-embedded PPA to get through APT a
newer version of Arm GCC.
2019-01-09 14:50:29 +00:00