about summary refs log tree commit diff
path: root/src/ci/docker
AgeCommit message (Collapse)AuthorLines
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-4/+4
- 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-29/+29
- 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-23Downgrade glibc to 2.11.1 for ppc, ppc64 and s390xMartin Sirringhaus-12/+12
2020-07-19Auto merge of #74163 - cuviper:debian6, r=Mark-Simulacrumbors-98/+89
ci: Update dist-{i686,x86_64}-linux to Debian 6 This increases the minimum `{i686,x86_64}-unknown-linux-gnu` platform from RHEL/CentOS 5 (glibc 2.5 and kernel 2.6.18) to a slightly newer Debian 6 `squeeze` (glibc 2.11 and kernel 2.6.32). While that release is already EOL, it happens to match the minimum common versions of two enterprise distros that do still need Rust support -- RHEL 6 (glibc 2.12 and kernel 2.6.32) and SLES 11 SP4 (glibc 2.11 and kernel 3.0). Closes #62516.
2020-07-16Add zlib1g to builder depsMark Rousskov-0/+4
2020-07-15Rollup merge of #74294 - msirringhaus:master, r=pietroalbiniManish Goregaokar-8/+31
Update cross-compilation README README seemed rather out of date. I hope the information in my PR is now correct (it was more or less assembled by asking in zulip and learning-by-doing).
2020-07-15Rollup merge of #72973 - msizanoen1:riscv-host, r=pietroalbiniManish Goregaokar-23/+35
RISC-V GNU/Linux as host platform This PR add a new builder named `dist-riscv64-linux` that builds the compiler toolchain for RISC-V 64-bit GNU/Linux. r? @alexcrichton
2020-07-15ci: Update dist-{i686,x86_64}-linux to Debian 6Josh Stone-98/+89
This increases the minimum `{i686,x86_64}-unknown-linux-gnu` platform from RHEL/CentOS 5 (glibc 2.5 and kernel 2.6.18) to a slightly newer Debian 6 `squeeze` (glibc 2.11 and kernel 2.6.32). While that release is already EOL, it happens to match the minimum common versions of two enterprise distros that do still need Rust support -- RHEL 6 (glibc 2.12 and kernel 2.6.32) and SLES 11 SP4 (glibc 2.11 and kernel 3.0).
2020-07-15Auto merge of #71272 - jclulow:illumos-x86-ci, r=pietroalbinibors-0/+210
build dist for x86_64-unknown-illumos This change creates a new Docker image, "dist-x86_64-illumos", and sets things up to build the full set of "dist" packages for illumos hosts, so that illumos users can use "rustup" to install packages. It also adjusts the manifest builder to expect complete toolchains for this platform.
2020-07-13Move all code-snippets to /tmp/ as basedirMartin Sirringhaus-1/+1
2020-07-13Fix typoMartin Sirringhaus-2/+3
2020-07-13Update cross-compilation READMEMartin Sirringhaus-8/+30
2020-07-11RISC-V GNU/Linux as host platformmsizanoen1-23/+35
2020-07-08build dist for x86_64-unknown-illumosJoshua M. Clulow-0/+210
This change creates a new Docker image, "dist-x86_64-illumos", and sets things up to build the full set of "dist" packages for illumos hosts, so that illumos users can use "rustup" to install packages. It also adjusts the manifest builder to expect complete toolchains for this platform.
2020-07-08ci: fix context for disabled docker imagesTom Eccles-2/+2
When the dockerfiles were moved into the host-x86_64 directory, paths for COPY commands were updated with the new host-x86_64/ prefix. This suggested that the intended context was src/ci/docker. However, the context for disabled docker images was src/ci/docker/host-x86_64. This broke the new paths and prevented src/ci/docker/scripts from being included in the context at all. This commit corrects this context allowing docker to find the files it needs for COPY commands.
2020-07-08ci: disabled: riscv: minimise docker overlaysTom Eccles-3/+3
Suggested by @bjorn3 Every RUN command creates a new overlay on top of the image as of before the RUN command. Using fewer RUN commands prevents intermediate overlays (which in this case would have contained the entire Linux source tree).
2020-07-04Auto merge of #74019 - Manishearth:rollup-2st3jsk, r=Manishearthbors-1/+1
Rollup of 12 pull requests Successful merges: - #73140 (Fallback to xml.etree.ElementTree) - #73670 (Add `format_args_capture` feature) - #73693 (Use exhaustive match in const_prop.rs) - #73845 (Use &raw in A|Rc::as_ptr) - #73861 (Create E0768) - #73881 (Standardize bibliographic citations in rustc API docs) - #73925 (Improve comments from #72617, as suggested by RalfJung) - #73949 ([mir-opt] Fix mis-optimization and other issues with the SimplifyArmIdentity pass) - #73984 (Edit docs for rustc_data_structures::graph::scc) - #73985 (Fix "getting started" link) - #73997 (fix typo) - #73999 (Bump mingw-check CI image from Ubuntu 16.04 to 18.04.) Failed merges: - #74000 (add `lazy_normalization_consts` feature gate) r? @ghost
2020-07-03Bump mingw-check CI image from Ubuntu 16.04 to 18.04.Eduard-Mihai Burtescu-1/+1
2020-07-03ci: remove the emulated aarch64-gnu imagePietro Albini-3179/+0
2020-07-03ci: add native aarch64-gnu docker builderPietro Albini-2/+38
2020-07-03ci: include the architecture in the docker cache keyPietro Albini-0/+4
We're starting to include native aarch64 machines in our CI, but before this commit the architecture wasn't included in the cache key for our Docker images. This means there could be conflicts between images produced on different architectures, hurting our CI times. This commit fixes the problem by including the output of `uname -m` in the cache key.
2020-07-03ci: provide feedback when running an image on the wrong host archPietro Albini-0/+22
2020-07-03ci: move all x86_64 runners to the host-x86_64 directoryPietro Albini-68/+71
We need to add runners designed for an aarch64 host system, and it'd be nice to return an error message if someone tries to run an image designed for an host architecture in another one. To start the work on this, this commit moves all the existing builders in the host-x86_64 directory, and changes the run.sh script to look up the image in the correct directory based on the host architecture.
2020-07-02Rollup merge of #73952 - ehuss:docker-dev, r=Mark-SimulacrumManish Goregaokar-2/+31
Add option for local docker testing. This adds the option `--dev` to `src/ci/docker/run.sh` so that it will enter an interactive environment for local testing. I have often needed this for testing things, but I always needed to edit this script. I wanted the ability to interact in the environment, run different commands, inspect errors, etc.
2020-07-02Rollup merge of #73724 - CryZe:wasm-saturating-casts, r=alexcrichtonManish Goregaokar-2/+2
Use WASM's saturating casts if they are available WebAssembly supports saturating floating point to integer casts behind a target feature. The feature is already available on many browsers. Beginning with 1.45 Rust will start defining the behavior of floating point to integer casts to be saturating as well. For this Rust constructs additional checks on top of the `fptoui` / `fptosi` instructions it emits. Here we introduce the possibility for the codegen backend to construct saturating casts itself and only fall back to constructing the checks ourselves if that is not possible. Resolves part of #73591
2020-07-02Address review comments and add UI testChristopher Serr-2/+2
2020-07-02Rollup merge of #73885 - pietroalbini:ci-fix-wasm32, r=kennytmManish Goregaokar-1/+12
Fix wasm32 being broken due to a NodeJS version bump Emscripten's SDK [recently bumped the version of NodeJS they shipped](https://github.com/emscripten-core/emsdk/pull/529), but our Dockerfile for the wasm32 builder hardcoded the version number. This will cause consistent CI failures once the currently cached image is rebuilt (either due to a change or due to the cache expiring). This PR fixes the problem by finding the latest version of NodeJS in the Emscripten SDK and symlinking it to a "latest" directory, which is then added to the `PATH`.
2020-07-01Add option for local docker testing.Eric Huss-2/+31
2020-07-01Verify UI tests work in pass=check modeMark Rousskov-0/+9
We do not test cross-compilation here as the PR builder lacks a sufficiently recent LLVM to cross-compile to 32-bit linux. Once we bump the minimum LLVM version to LLVM 9, this can use normal 32-bit linux.
2020-06-30ci: fix wasm32 broken due to a NodeJS version bumpPietro Albini-1/+12
Emscripten's SDK recently bumped the version of NodeJS they shipped, but our Dockerfile for the wasm32 builder hardcoded the version number. This will cause consistent CI failures once the currently cached image is rebuilt (either due to a change or due to the cache expiring). This commit fixes the problem by finding the latest version of NodeJS in the Emscripten SDK and symlinking it to a "latest" directory, which is then added to the PATH.
2020-06-27Auto merge of #73671 - ehuss:update-mdbook, r=Mark-Simulacrumbors-3/+0
Update mdbook This updates mdbook to 0.4. The list of changes can be found at https://github.com/rust-lang/mdBook/blob/master/CHANGELOG.md#mdbook-040. I think the most important one is the change to include fonts with the book instead of using the Google Fonts CDN. This adds a few megabytes of fonts to the docs component. It may be possible to share the fonts across the books, but would take a fair bit of work to make that happen, so I'm not sure if it is necessary. This also removes mdbook-linkcheck. It is currently not being used, and I don't foresee it going back into use anytime soon. I would prefer not to maintain something that isn't being used, and it removes a very large number of dependencies.
2020-06-26Remove mdbook-linkcheck.Eric Huss-3/+0
2020-06-25Remove deprecated commentsAdrian Cruceru-2/+0
2020-06-25Fix commentsAdrian Cruceru-8/+1
2020-06-24Update libunwind build process for x86_64-fortanix-unknown-sgx targetAdrian Cruceru-37/+0
2020-06-20Rollup merge of #73171 - tblah:riscv-qemu-test, r=pietroalbiniRalf Jung-0/+249
RISC-V Emulated Testing Adds a disabled docker image on which to run RISC-V tests. Based on the armhf image. Test using ``` ./src/ci/docker/run.sh riscv64gc-linux ``` cc: @msizanoen1
2020-06-20ci: Enable sanitizers on dist-aarch64-linuxTomasz Miąsko-0/+1
2020-06-15Avoid prematurely recording toolstatesMark Rousskov-1/+3
When we're running with dry_run enabled (i.e. all builds do this initially), we're guaranteed to save of a toolstate of TestFail for tools that aren't tested. In practice, we do test tools as well, so for those tools we would initially record them as being TestPass, and then later on re-record the correct state after actually testing them. However, this would not work well if the build failed for whatever reason (e.g. panicking in bootstrap, or as was the case in 73097, clippy failing to test successfully), we would just go on believing that things passed when they in practice did not. This commit also adjusts saving toolstate to never record clippy explicitly (otherwise, it would be recorded when building it); eventually that'll likely move to other tools as well but not yet. This is deemed simpler than checking everywhere we generically save toolstate. We also move clippy out of the "toolstate" no-fail-fast build into a separate x.py invocation; this should no longer be technically required but provides the nice state of letting us check toolstate for all tools and only then check clippy (giving full results on every build).
2020-06-14Auto merge of #73089 - tmiasko:musl-1.1.24, r=kennytmbors-5/+7
Update musl to 1.1.24 Release notes since previous version 1.1.22: ## 1.1.23 release notes ### new features: - riscv64 port - configure now allows customizing AR and RANLIB vars - header-level support for new linux features in 5.1 ### major internal changes: - removed extern __syscall; syscall header code is now fully self-contained ### performance: - new math library implementation for log/exp/pow - aarch64 dynamic tlsdesc function is streamlined ### compatibility & conformance: - O_TTY_INIT is now defined - sys/types.h no longer pollutes namespace with sys/sysmacros.h in any profile - powerpc asm is now compatible with clang internal assembler ### changes for new POSIX interpretations: - fgetwc now sets stream error indicator on encoding errors - fmemopen no longer rejects 0 size ### bugs fixed: - static TLS for shared libraries was allocated wrong on "Variant I" archs - crash in dladdr reading through uninitialized pointer on non-match - sigaltstack wrongly errored out on invalid ss_size when doing SS_DISABLE - getdents function misbehaved with buffer length larger than INT_MAX - set*id could deadlock after fork from multithreaded process ### arch-specfic bugs fixed: - s390x SO_PEERSEC definition was wrong - passing of 64-bit syscall arguments was broken on microblaze - posix_fadvise was broken on mips due to missing 7-arg syscall support - vrregset_t layout and member naming was wrong on powerpc64 ## 1.1.24 release notes ### new features: - GLOB_TILDE extension to glob - non-stub catgets localization API, using netbsd binary catalog format - posix_spawn file actions for [f]chdir (extension, pending future standard) - secure_getenv function (extension) - copy_file_range syscall wrapper (Linux extension) - header-level support for new linux features in 5.2 ### performance: - new fast path for lrint (generic C version) on 32-bit archs ### major internal changes: - functions involving time are overhauled to be time64-ready in 32-bit archs - x32 uses the new time64 code paths to replace nasty hacks in syscall glue ### compatibility & conformance: - support for powerpc[64] unaligned relocation types - powerpc[64] and sh sys/user.h no longer clash with kernel asm/ptrace.h - select no longer modifies timeout on failure (or at all) - mips64 stat results are no longer limited to 32-bit time range - optreset (BSD extension) now has a public declaration - support for clang inconsistencies in wchar_t type vs some 32-bit archs - mips r6 syscall asm no longer has invalid lo/hi register clobbers - vestigial asm declarations of __tls_get_new are removed (broke some tooling) - riscv64 mcontext_t mismatch glibc's member naming is corrected ### bugs fixed: - glob failed to match broken symlinks consistently - invalid use of interposed calloc to allocate initial TLS - various dlsym symbol resolution logic errors - semctl with SEM_STAT_ANY didn't work - pthread_create with explicit scheduling was subject to priority inversion - pthread_create failure path had data race for thread count - timer_create with SIGEV_THREAD notification had data race getting timer id - wide printf family failed to support l modifier for float formats ### arch-specific bugs fixed: - x87 floating point stack imbalance in math asm (i386-only CVE-2019-14697) - x32 clock_adjtime, getrusage, wait3, wait4 produced junk (struct mismatches) - lseek broken on x32 and mipsn32 with large file offsets - riscv64 atomics weren't compiler barriers - riscv64 atomics had broken asm constraints (missing earlyclobber flag) - arm clone() was broken when compiled as thumb if start function returned - mipsr6 setjmp/longjmp did not preserve fpu register state correctly Fixes #71099.
2020-06-10Fix emcc failure for wasm32.Eric Huss-0/+3
2020-06-09Add a disabled builder for riscv64 emulated testsTom Eccles-0/+249
This will run all tests for `riscv64gc-unknown-linux-gnu` in a QEMU instance. This is based upon the armhf QEMU test image.