summaryrefslogtreecommitdiffstats
path: root/third_party/rust/libm/ci
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/libm/ci')
-rw-r--r--third_party/rust/libm/ci/docker/aarch64-unknown-linux-gnu/Dockerfile10
-rw-r--r--third_party/rust/libm/ci/docker/arm-unknown-linux-gnueabi/Dockerfile9
-rw-r--r--third_party/rust/libm/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile9
-rw-r--r--third_party/rust/libm/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile9
-rw-r--r--third_party/rust/libm/ci/docker/i686-unknown-linux-gnu/Dockerfile4
-rw-r--r--third_party/rust/libm/ci/docker/mips-unknown-linux-gnu/Dockerfile12
-rw-r--r--third_party/rust/libm/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile15
-rw-r--r--third_party/rust/libm/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile14
-rw-r--r--third_party/rust/libm/ci/docker/mipsel-unknown-linux-gnu/Dockerfile12
-rw-r--r--third_party/rust/libm/ci/docker/powerpc-unknown-linux-gnu/Dockerfile12
-rw-r--r--third_party/rust/libm/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile13
-rw-r--r--third_party/rust/libm/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile13
-rw-r--r--third_party/rust/libm/ci/docker/x86_64-unknown-linux-gnu/Dockerfile4
-rwxr-xr-xthird_party/rust/libm/ci/run-docker.sh37
-rwxr-xr-xthird_party/rust/libm/ci/run.sh21
15 files changed, 194 insertions, 0 deletions
diff --git a/third_party/rust/libm/ci/docker/aarch64-unknown-linux-gnu/Dockerfile b/third_party/rust/libm/ci/docker/aarch64-unknown-linux-gnu/Dockerfile
new file mode 100644
index 0000000000..9e2559f4ab
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/aarch64-unknown-linux-gnu/Dockerfile
@@ -0,0 +1,10 @@
+FROM ubuntu:18.04
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gcc libc6-dev ca-certificates \
+ gcc-aarch64-linux-gnu libc6-dev-arm64-cross \
+ qemu-user-static
+ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
+ CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER=qemu-aarch64-static \
+ QEMU_LD_PREFIX=/usr/aarch64-linux-gnu \
+ RUST_TEST_THREADS=1
diff --git a/third_party/rust/libm/ci/docker/arm-unknown-linux-gnueabi/Dockerfile b/third_party/rust/libm/ci/docker/arm-unknown-linux-gnueabi/Dockerfile
new file mode 100644
index 0000000000..afab874bc2
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/arm-unknown-linux-gnueabi/Dockerfile
@@ -0,0 +1,9 @@
+FROM ubuntu:18.04
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gcc libc6-dev ca-certificates \
+ gcc-arm-linux-gnueabi libc6-dev-armel-cross qemu-user-static
+ENV CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABI_LINKER=arm-linux-gnueabi-gcc \
+ CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABI_RUNNER=qemu-arm-static \
+ QEMU_LD_PREFIX=/usr/arm-linux-gnueabi \
+ RUST_TEST_THREADS=1
diff --git a/third_party/rust/libm/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile b/third_party/rust/libm/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile
new file mode 100644
index 0000000000..3ed3602b0d
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile
@@ -0,0 +1,9 @@
+FROM ubuntu:18.04
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gcc libc6-dev ca-certificates \
+ gcc-arm-linux-gnueabihf libc6-dev-armhf-cross qemu-user-static
+ENV CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \
+ CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER=qemu-arm-static \
+ QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf \
+ RUST_TEST_THREADS=1
diff --git a/third_party/rust/libm/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile b/third_party/rust/libm/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile
new file mode 100644
index 0000000000..6617af1558
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile
@@ -0,0 +1,9 @@
+FROM ubuntu:18.04
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gcc libc6-dev ca-certificates \
+ gcc-arm-linux-gnueabihf libc6-dev-armhf-cross qemu-user-static
+ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \
+ CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUNNER=qemu-arm-static \
+ QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf \
+ RUST_TEST_THREADS=1
diff --git a/third_party/rust/libm/ci/docker/i686-unknown-linux-gnu/Dockerfile b/third_party/rust/libm/ci/docker/i686-unknown-linux-gnu/Dockerfile
new file mode 100644
index 0000000000..5783e28e12
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/i686-unknown-linux-gnu/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:18.04
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gcc-multilib libc6-dev ca-certificates
diff --git a/third_party/rust/libm/ci/docker/mips-unknown-linux-gnu/Dockerfile b/third_party/rust/libm/ci/docker/mips-unknown-linux-gnu/Dockerfile
new file mode 100644
index 0000000000..f47e8f5227
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/mips-unknown-linux-gnu/Dockerfile
@@ -0,0 +1,12 @@
+FROM ubuntu:18.04
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gcc libc6-dev ca-certificates \
+ gcc-mips-linux-gnu libc6-dev-mips-cross \
+ binfmt-support qemu-user-static qemu-system-mips
+
+ENV CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_LINKER=mips-linux-gnu-gcc \
+ CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_RUNNER=qemu-mips-static \
+ QEMU_LD_PREFIX=/usr/mips-linux-gnu \
+ RUST_TEST_THREADS=1
diff --git a/third_party/rust/libm/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile b/third_party/rust/libm/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile
new file mode 100644
index 0000000000..8fa77c7bd0
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile
@@ -0,0 +1,15 @@
+FROM ubuntu:18.04
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ ca-certificates \
+ gcc \
+ gcc-mips64-linux-gnuabi64 \
+ libc6-dev \
+ libc6-dev-mips64-cross \
+ qemu-user-static \
+ qemu-system-mips
+ENV CARGO_TARGET_MIPS64_UNKNOWN_LINUX_GNUABI64_LINKER=mips64-linux-gnuabi64-gcc \
+ CARGO_TARGET_MIPS64_UNKNOWN_LINUX_GNUABI64_RUNNER=qemu-mips64-static \
+ CC_mips64_unknown_linux_gnuabi64=mips64-linux-gnuabi64-gcc \
+ QEMU_LD_PREFIX=/usr/mips64-linux-gnuabi64 \
+ RUST_TEST_THREADS=1
diff --git a/third_party/rust/libm/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile b/third_party/rust/libm/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile
new file mode 100644
index 0000000000..c6611d9ac8
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile
@@ -0,0 +1,14 @@
+FROM ubuntu:18.04
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ ca-certificates \
+ gcc \
+ gcc-mips64el-linux-gnuabi64 \
+ libc6-dev \
+ libc6-dev-mips64el-cross \
+ qemu-user-static
+ENV CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_GNUABI64_LINKER=mips64el-linux-gnuabi64-gcc \
+ CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_GNUABI64_RUNNER=qemu-mips64el-static \
+ CC_mips64el_unknown_linux_gnuabi64=mips64el-linux-gnuabi64-gcc \
+ QEMU_LD_PREFIX=/usr/mips64el-linux-gnuabi64 \
+ RUST_TEST_THREADS=1
diff --git a/third_party/rust/libm/ci/docker/mipsel-unknown-linux-gnu/Dockerfile b/third_party/rust/libm/ci/docker/mipsel-unknown-linux-gnu/Dockerfile
new file mode 100644
index 0000000000..0bc6956246
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/mipsel-unknown-linux-gnu/Dockerfile
@@ -0,0 +1,12 @@
+FROM ubuntu:18.04
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gcc libc6-dev ca-certificates \
+ gcc-mipsel-linux-gnu libc6-dev-mipsel-cross \
+ binfmt-support qemu-user-static
+
+ENV CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_GNU_LINKER=mipsel-linux-gnu-gcc \
+ CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_GNU_RUNNER=qemu-mipsel-static \
+ QEMU_LD_PREFIX=/usr/mipsel-linux-gnu \
+ RUST_TEST_THREADS=1
diff --git a/third_party/rust/libm/ci/docker/powerpc-unknown-linux-gnu/Dockerfile b/third_party/rust/libm/ci/docker/powerpc-unknown-linux-gnu/Dockerfile
new file mode 100644
index 0000000000..2d39fef614
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/powerpc-unknown-linux-gnu/Dockerfile
@@ -0,0 +1,12 @@
+FROM ubuntu:18.04
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gcc libc6-dev qemu-user-static ca-certificates \
+ gcc-powerpc-linux-gnu libc6-dev-powerpc-cross \
+ qemu-system-ppc
+
+ENV CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_LINKER=powerpc-linux-gnu-gcc \
+ CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_RUNNER=qemu-ppc-static \
+ QEMU_LD_PREFIX=/usr/powerpc-linux-gnu \
+ RUST_TEST_THREADS=1
diff --git a/third_party/rust/libm/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile b/third_party/rust/libm/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile
new file mode 100644
index 0000000000..653cd35115
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile
@@ -0,0 +1,13 @@
+FROM ubuntu:18.04
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gcc libc6-dev ca-certificates \
+ gcc-powerpc64-linux-gnu libc6-dev-ppc64-cross \
+ binfmt-support qemu-user-static qemu-system-ppc
+
+ENV CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_LINKER=powerpc64-linux-gnu-gcc \
+ CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_RUNNER=qemu-ppc64-static \
+ CC_powerpc64_unknown_linux_gnu=powerpc64-linux-gnu-gcc \
+ QEMU_LD_PREFIX=/usr/powerpc64-linux-gnu \
+ RUST_TEST_THREADS=1
diff --git a/third_party/rust/libm/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile b/third_party/rust/libm/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile
new file mode 100644
index 0000000000..63ea9af9d2
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile
@@ -0,0 +1,13 @@
+FROM ubuntu:18.04
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gcc libc6-dev qemu-user-static ca-certificates \
+ gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross \
+ qemu-system-ppc
+
+ENV CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_LINKER=powerpc64le-linux-gnu-gcc \
+ CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_RUNNER=qemu-ppc64le-static \
+ QEMU_CPU=POWER8 \
+ QEMU_LD_PREFIX=/usr/powerpc64le-linux-gnu \
+ RUST_TEST_THREADS=1
diff --git a/third_party/rust/libm/ci/docker/x86_64-unknown-linux-gnu/Dockerfile b/third_party/rust/libm/ci/docker/x86_64-unknown-linux-gnu/Dockerfile
new file mode 100644
index 0000000000..98000f4eb8
--- /dev/null
+++ b/third_party/rust/libm/ci/docker/x86_64-unknown-linux-gnu/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:18.04
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ gcc libc6-dev ca-certificates
diff --git a/third_party/rust/libm/ci/run-docker.sh b/third_party/rust/libm/ci/run-docker.sh
new file mode 100755
index 0000000000..c7ad60fd49
--- /dev/null
+++ b/third_party/rust/libm/ci/run-docker.sh
@@ -0,0 +1,37 @@
+# Small script to run tests for a target (or all targets) inside all the
+# respective docker images.
+
+set -ex
+
+run() {
+ local target=$1
+
+ echo $target
+
+ # This directory needs to exist before calling docker, otherwise docker will create it but it
+ # will be owned by root
+ mkdir -p target
+
+ docker build -t $target ci/docker/$target
+ docker run \
+ --rm \
+ --user $(id -u):$(id -g) \
+ -e CARGO_HOME=/cargo \
+ -e CARGO_TARGET_DIR=/target \
+ -v "${HOME}/.cargo":/cargo \
+ -v `pwd`/target:/target \
+ -v `pwd`:/checkout:ro \
+ -v `rustc --print sysroot`:/rust:ro \
+ --init \
+ -w /checkout \
+ $target \
+ sh -c "HOME=/tmp PATH=\$PATH:/rust/bin exec ci/run.sh $target"
+}
+
+if [ -z "$1" ]; then
+ for d in `ls ci/docker/`; do
+ run $d
+ done
+else
+ run $1
+fi
diff --git a/third_party/rust/libm/ci/run.sh b/third_party/rust/libm/ci/run.sh
new file mode 100755
index 0000000000..d0cd42a8d0
--- /dev/null
+++ b/third_party/rust/libm/ci/run.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env sh
+
+set -ex
+TARGET=$1
+
+CMD="cargo test --all --target $TARGET"
+
+# Needed for no-panic to correct detect a lack of panics
+export RUSTFLAGS="$RUSTFLAGS -Ccodegen-units=1"
+
+# stable by default
+$CMD
+$CMD --release
+
+# unstable with a feature
+$CMD --features 'unstable'
+$CMD --release --features 'unstable'
+
+# also run the reference tests
+$CMD --features 'unstable musl-reference-tests'
+$CMD --release --features 'unstable musl-reference-tests'