about summary refs log tree commit diff
path: root/library/compiler-builtins/ci/docker
AgeCommit message (Collapse)AuthorLines
2025-07-24ci: Upgrade ubuntu:25.04 for the PowerPC64LE testTrevor Gross-3/+1
Update the last remaining image. For this to work, the `QEMU_CPU=POWER8` configuration needed to be dropped to avoid a new SIGILL. Doing some debugging locally, the crash comes from an `extswsli` (per `powerpc:common64` in gdb-multiarch) in the `ld64.so` available with PowerPC, which qemu rejects when set to power8. Testing a build with `+crt-static` hits the same issue at a `maddld` in `__libc_start_main_impl`. Rust isn't needed to reproduce this: $ cat a.c #include <stdio.h> int main() { printf("Hello, world!\n"); } $ powerpc64le-linux-gnu-gcc a.c $ QEMU_CPU=power8 QEMU_LD_PREFIX=/usr/powerpc64le-linux-gnu/ ./a.out qemu: uncaught target signal 4 (Illegal instruction) - core dumped Illegal instruction So the cross toolchain provided by Debian must have a power9 baseline rather than rustc's power8. Alternatively, qemu may be incorrectly rejecting these instructions (I can't find a source on whether or not they should be available for power8). Testing instead with the `-musl` toolchain and ppc linker from musl.cc works correctly. In any case, things work with the default qemu config so it seems fine to drop. The env was originally added in 5d164a4edafb ("fix the powerpc64le target") but whatever the problem was there appears to no longer be relevant.
2025-07-24ci: Update to the latest ubuntu:25.04 Docker imagesTrevor Gross-19/+20
This includes a qemu update from 8.2.2 to 9.2.1 which should hopefully fix some bugs we have encountered. PowerPC64LE is skipped for now because the new version seems to cause a number of new SIGILLs.
2025-04-18ci: Make CI configuration more similar to `libm`Trevor Gross-23/+77
Apply a handful of changes to reduce the diff between the two: * Cancel running jobs on new pushes * Enable log color and backtraces * Add timeouts * Specify CI runner versions * Add an armv7 job * Replace the name NO_STD with BUILD_ONLY * Update the extension to the canonical .yaml * Set AR_ and CC_ environments in docker * Install requirements to build MPFR
2024-11-01ci: add support for loongarch64-unknown-linux-gnuWANG Rui-0/+13
2024-10-02Add riscv64gc to CITrevor Gross-0/+13
There is a proposal to promote `riscv64gc-unknown-linux-gnu` to tier 1 [1]. We do not currently test RISC-V in CI; add it here. [1]: https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Imminent.20RFC.20PR.3A.20riscv64gc-unknown-linux-gnu.20to.20Tier-1
2024-06-22Update the Ubuntu docker image to the latest versionTrevor Gross-18/+18
2024-04-19Add a way to run tests on non-linux machinesTrevor Gross-19/+38
Allow using the `rust-lang/rust:nightly` docker image to run tests in cases where the host rust and cargo cannot be used, such as non-linux hosts.
2024-03-28Clean up and rework CI scriptAmanieu d'Antras-4/+4
2024-01-09build: Allow building C compiler-rt fallbacks for wasmtrevyn-1/+1
2020-05-29Expand wasm32 testing on CI (#360)Alex Crichton-0/+6
* Expand wasm32 testing on CI Run the full `run.sh` test script to get full assertions, including that nothing in the wasm compiler-builtins is panicking. Unfortunately it's currently panicking, so this is good to weed out! * Update libm
2019-05-14Fix __divsi3 and __udivsi3 on thumbv6m targetsAlex Crichton-40/+28
This commit fixes a bug accidentally introduced in #285 where some lingering references remained to `#[cfg(thumbv6m)]` but this, since the historical revert, was renamed to `#[cfg(thumb_1)]`. This caused on the thumbv6m platform for the intrinsics to be accidentally omitted because the build script didn't actually compile them but the Rust code thought the C code was in use. After correcting the `#[cfg]` statements the CI configuration for the `thumb*` family of targets was all updated. The support for xargo testing was removed from `run.sh` since it had long since bitrotted, and the script was updated to simply build the intrinsics example to attempt to link for each of these targets. This in turn exposed the bug locally and allowed to confirm a fix once the `#[cfg]` statements were corrected. cc rust-lang/rust#60782
2019-04-02Upgrade all docker containers to 18.04Alex Crichton-18/+18
2017-10-07drop binfmt_misc dependencyJorge Aparicio-1/+15
Instead use the Cargo runner feature. The binfmt_misc approach requires running a privileged container for setup. Not all docker setups support privileged containers so the test suite should be more accessible with this change as no privileged container is needed.
2017-04-10modify the CI setup to run tests on the thumb targetsJorge Aparicio-16/+16
2016-12-31CI: use a recent nightlyJorge Aparicio-4/+4
- add #[no_mangle] to the panic_fmt lang item to adjust to changes in the visibility algorithm - adjust to changes in the layout of Cargo's target directory - use a newer Xargo to reduce the build time of the sysroot (only core is compiled as part of the sysroot now)
2016-11-23CI: use Xargo 0.2.xJorge Aparicio-8/+8
this version uses the rust-src component that rustup installs instead of fetching the source tarball from static.r-l.o, which sometimes went wrong due to the fallible logic that Xargo 0.1.x used
2016-11-12merge apt-get commandsJorge Aparicio-1/+1
2016-11-12Fix apt 404s in DockerMatt Ickstadt-65/+65
`apt update` and `apt install` should be in the same Docker RUN statement, otherwise `apt update` will be cached and `apt install` will 404 if a package no longer exists.
2016-10-14test the mips64 targetsJorge Aparicio-0/+27
2016-10-14fix the powerpc64le targetJorge Aparicio-0/+1
by selecting a CPU that's compatible with the instructions that `rustc` generates
2016-10-06drop the target filesJorge Aparicio-4/+4
2016-09-30pick target during Xargo installationJorge Aparicio-3/+3
2016-09-30fix Xargo installationJorge Aparicio-0/+8
2016-09-30cache Cargo artifactsJorge Aparicio-18/+0
notable changes in the docker-based testing infrastructure - the docker containers can now modify $CARGO_HOME, to re-use the outer Cargo registry, and the target directory to re-use build artifacts. - the docker containers are removed when their execution finishes because it's no longer necessary to re-start them to inspect them because all the interesting output is in the outer target directory
2016-09-29adapt to new testing infrastructureJorge Aparicio-0/+32
2016-09-28Expand and refactor teting infrastructureAlex Crichton-0/+116
This commit moves over most of the testing infrastructure to in-tree docker images that are all dispatched to from Travis (no other test configuration). This allows versioning modifications to the test infrastructure as well as the code itself. Additionally separate docker images allows for easy modification of one without worrying about tampering of others as well as easy addition of new targets by simply adding a new `Dockerfile`. Additionally this commit bundles the master version of the `compiler-rt` source repository from `llvm-mirror/compiler-rt` to test against. The compiler-rt library itself is compiled as a `cdylib` which is then dynamically located at runtime and we look for symbols in. There's a few hoops here, but they currently get the job done. All tests now execute against both gcc_s and compiler-rt, and this testing strategy is now all hidden behind a macro as well (refactoring all existing tests along the way).