summaryrefslogtreecommitdiff
path: root/libc/ci/docker
diff options
context:
space:
mode:
Diffstat (limited to 'libc/ci/docker')
-rw-r--r--libc/ci/docker/aarch64-linux-android/Dockerfile13
-rw-r--r--libc/ci/docker/aarch64-unknown-linux-gnu/Dockerfile6
-rw-r--r--libc/ci/docker/arm-linux-androideabi/Dockerfile13
-rw-r--r--libc/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile6
-rw-r--r--libc/ci/docker/asmjs-unknown-emscripten/Dockerfile20
-rw-r--r--libc/ci/docker/i686-linux-android/Dockerfile13
-rw-r--r--libc/ci/docker/i686-unknown-linux-gnu/Dockerfile2
-rw-r--r--libc/ci/docker/i686-unknown-linux-musl/Dockerfile11
-rw-r--r--libc/ci/docker/mips-unknown-linux-gnu/Dockerfile6
-rw-r--r--libc/ci/docker/mips-unknown-linux-musl/Dockerfile8
-rw-r--r--libc/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile6
-rw-r--r--libc/ci/docker/mipsel-unknown-linux-musl/Dockerfile8
-rw-r--r--libc/ci/docker/powerpc-unknown-linux-gnu/Dockerfile6
-rw-r--r--libc/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile6
-rw-r--r--libc/ci/docker/s390x-unknown-linux-gnu/Dockerfile12
-rw-r--r--libc/ci/docker/wasm32-unknown-emscripten/Dockerfile21
-rwxr-xr-xlibc/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh11
-rw-r--r--libc/ci/docker/x86_64-linux-android/Dockerfile2
-rw-r--r--libc/ci/docker/x86_64-rumprun-netbsd/Dockerfile6
-rw-r--r--libc/ci/docker/x86_64-rumprun-netbsd/runtest.rs54
-rw-r--r--libc/ci/docker/x86_64-unknown-linux-gnu/Dockerfile2
-rw-r--r--libc/ci/docker/x86_64-unknown-linux-musl/Dockerfile11
-rw-r--r--libc/ci/docker/x86_64-unknown-openbsd/Dockerfile8
23 files changed, 209 insertions, 42 deletions
diff --git a/libc/ci/docker/aarch64-linux-android/Dockerfile b/libc/ci/docker/aarch64-linux-android/Dockerfile
index 7ad8492..345540a 100644
--- a/libc/ci/docker/aarch64-linux-android/Dockerfile
+++ b/libc/ci/docker/aarch64-linux-android/Dockerfile
@@ -29,4 +29,17 @@ RUN chmod 755 /android/sdk/tools/* /android/sdk/tools/qemu/linux-x86_64/*
ENV PATH=$PATH:/rust/bin \
CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android-gcc \
+ CARGO_TARGET_AARCH64_LINUX_ANDROID_RUNNER=/tmp/runtest \
HOME=/tmp
+
+ADD runtest-android.rs /tmp/runtest.rs
+ENTRYPOINT [ \
+ "bash", \
+ "-c", \
+ # set SHELL so android can detect a 64bits system, see
+ # http://stackoverflow.com/a/41789144
+ "SHELL=/bin/dash emulator @aarch64 -no-window & \
+ rustc /tmp/runtest.rs -o /tmp/runtest && \
+ exec \"$@\"", \
+ "--" \
+]
diff --git a/libc/ci/docker/aarch64-unknown-linux-gnu/Dockerfile b/libc/ci/docker/aarch64-unknown-linux-gnu/Dockerfile
index 2ba69e1..18214a3 100644
--- a/libc/ci/docker/aarch64-unknown-linux-gnu/Dockerfile
+++ b/libc/ci/docker/aarch64-unknown-linux-gnu/Dockerfile
@@ -1,7 +1,7 @@
-FROM ubuntu:16.10
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends \
+FROM ubuntu:17.10
+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
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
+ CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64 -L /usr/aarch64-linux-gnu" \
PATH=$PATH:/rust/bin
diff --git a/libc/ci/docker/arm-linux-androideabi/Dockerfile b/libc/ci/docker/arm-linux-androideabi/Dockerfile
index 0549414..554f078 100644
--- a/libc/ci/docker/arm-linux-androideabi/Dockerfile
+++ b/libc/ci/docker/arm-linux-androideabi/Dockerfile
@@ -29,4 +29,17 @@ RUN chmod 755 /android/sdk/tools/* /android/sdk/tools/qemu/linux-x86_64/*
ENV PATH=$PATH:/rust/bin \
CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=arm-linux-androideabi-gcc \
+ CARGO_TARGET_ARM_LINUX_ANDROIDEABI_RUNNER=/tmp/runtest \
HOME=/tmp
+
+ADD runtest-android.rs /tmp/runtest.rs
+ENTRYPOINT [ \
+ "bash", \
+ "-c", \
+ # set SHELL so android can detect a 64bits system, see
+ # http://stackoverflow.com/a/41789144
+ "SHELL=/bin/dash emulator @arm -no-window & \
+ rustc /tmp/runtest.rs -o /tmp/runtest && \
+ exec \"$@\"", \
+ "--" \
+]
diff --git a/libc/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile b/libc/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile
index 3824c04..9fe71dc 100644
--- a/libc/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile
+++ b/libc/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile
@@ -1,7 +1,7 @@
-FROM ubuntu:16.10
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends \
+FROM ubuntu:17.10
+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
ENV CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \
+ CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -L /usr/arm-linux-gnueabihf" \
PATH=$PATH:/rust/bin
diff --git a/libc/ci/docker/asmjs-unknown-emscripten/Dockerfile b/libc/ci/docker/asmjs-unknown-emscripten/Dockerfile
new file mode 100644
index 0000000..3088fc5
--- /dev/null
+++ b/libc/ci/docker/asmjs-unknown-emscripten/Dockerfile
@@ -0,0 +1,20 @@
+FROM ubuntu:16.04
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ ca-certificates \
+ curl \
+ gcc \
+ git \
+ libc6-dev \
+ python \
+ xz-utils
+
+COPY emscripten.sh /
+RUN bash /emscripten.sh
+
+ENV PATH=$PATH:/rust/bin \
+ CARGO_TARGET_ASMJS_UNKNOWN_EMSCRIPTEN_RUNNER=node
+
+COPY emscripten-entry.sh /
+ENTRYPOINT ["/emscripten-entry.sh"]
diff --git a/libc/ci/docker/i686-linux-android/Dockerfile b/libc/ci/docker/i686-linux-android/Dockerfile
index bee9043..7671f78 100644
--- a/libc/ci/docker/i686-linux-android/Dockerfile
+++ b/libc/ci/docker/i686-linux-android/Dockerfile
@@ -29,4 +29,17 @@ RUN chmod 755 /android/sdk/tools/* /android/sdk/tools/qemu/linux-x86_64/*
ENV PATH=$PATH:/rust/bin \
CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android-gcc \
+ CARGO_TARGET_I686_LINUX_ANDROID_RUNNER=/tmp/runtest \
HOME=/tmp
+
+ADD runtest-android.rs /tmp/runtest.rs
+ENTRYPOINT [ \
+ "bash", \
+ "-c", \
+ # set SHELL so android can detect a 64bits system, see
+ # http://stackoverflow.com/a/41789144
+ "SHELL=/bin/dash emulator @i686 -no-window -no-accel & \
+ rustc /tmp/runtest.rs -o /tmp/runtest && \
+ exec \"$@\"", \
+ "--" \
+]
diff --git a/libc/ci/docker/i686-unknown-linux-gnu/Dockerfile b/libc/ci/docker/i686-unknown-linux-gnu/Dockerfile
index c149d84..a5a4b8e 100644
--- a/libc/ci/docker/i686-unknown-linux-gnu/Dockerfile
+++ b/libc/ci/docker/i686-unknown-linux-gnu/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:16.10
+FROM ubuntu:17.10
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
gcc-multilib libc6-dev ca-certificates
diff --git a/libc/ci/docker/i686-unknown-linux-musl/Dockerfile b/libc/ci/docker/i686-unknown-linux-musl/Dockerfile
index bdc2272..3adb920 100644
--- a/libc/ci/docker/i686-unknown-linux-musl/Dockerfile
+++ b/libc/ci/docker/i686-unknown-linux-musl/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:16.10
+FROM ubuntu:17.10
RUN dpkg --add-architecture i386
RUN apt-get update
@@ -18,6 +18,13 @@ RUN curl https://www.musl-libc.org/releases/musl-1.1.15.tar.gz | \
CC=gcc CFLAGS=-m32 ./configure --prefix=/musl-i686 --disable-shared --target=i686 && \
make CROSS_COMPILE= install -j4 && \
cd .. && \
- rm -rf musl-1.1.15
+ rm -rf musl-1.1.15 && \
+# Install linux kernel headers sanitized for use with musl
+ curl -L https://github.com/sabotage-linux/kernel-headers/archive/v3.12.6-5.tar.gz | \
+ tar xzf - && \
+ cd kernel-headers-3.12.6-5 && \
+ make ARCH=i386 prefix=/musl-i686 install -j4 && \
+ cd .. && \
+ rm -rf kernel-headers-3.12.6-5
ENV PATH=$PATH:/musl-i686/bin:/rust/bin \
CC_i686_unknown_linux_musl=musl-gcc
diff --git a/libc/ci/docker/mips-unknown-linux-gnu/Dockerfile b/libc/ci/docker/mips-unknown-linux-gnu/Dockerfile
index eea1f65..c66abd4 100644
--- a/libc/ci/docker/mips-unknown-linux-gnu/Dockerfile
+++ b/libc/ci/docker/mips-unknown-linux-gnu/Dockerfile
@@ -1,10 +1,10 @@
-FROM ubuntu:16.10
+FROM ubuntu:17.10
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends \
+RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates \
gcc-mips-linux-gnu libc6-dev-mips-cross \
qemu-system-mips
ENV CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_LINKER=mips-linux-gnu-gcc \
+ CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_RUNNER="qemu-mips -L /usr/mips-linux-gnu" \
PATH=$PATH:/rust/bin
diff --git a/libc/ci/docker/mips-unknown-linux-musl/Dockerfile b/libc/ci/docker/mips-unknown-linux-musl/Dockerfile
index cbc41c2..3fb0eeb 100644
--- a/libc/ci/docker/mips-unknown-linux-musl/Dockerfile
+++ b/libc/ci/docker/mips-unknown-linux-musl/Dockerfile
@@ -1,7 +1,6 @@
-FROM ubuntu:16.10
+FROM ubuntu:17.10
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends \
+RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates qemu-system-mips curl \
bzip2
@@ -14,4 +13,5 @@ RUN curl -L https://s3.amazonaws.com/rust-lang-ci/libc/OpenWrt-SDK-ar71xx-generi
ENV PATH=$PATH:/rust/bin:/toolchain/staging_dir/toolchain-mips_34kc_gcc-5.3.0_musl-1.1.15/bin \
CC_mips_unknown_linux_musl=mips-openwrt-linux-gcc \
- CARGO_TARGET_MIPS_UNKNOWN_LINUX_MUSL_LINKER=mips-openwrt-linux-gcc
+ CARGO_TARGET_MIPS_UNKNOWN_LINUX_MUSL_LINKER=mips-openwrt-linux-gcc \
+ CARGO_TARGET_MIPS_UNKNOWN_LINUX_MUSL_RUNNER="qemu-mips -L /toolchain/staging_dir/toolchain-mips_34kc_gcc-5.3.0_musl-1.1.15"
diff --git a/libc/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile b/libc/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile
index 2eb5de2..b9921fc 100644
--- a/libc/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile
+++ b/libc/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile
@@ -1,11 +1,11 @@
-FROM ubuntu:16.10
+FROM ubuntu:17.10
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends \
+RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates \
gcc-mips64-linux-gnuabi64 libc6-dev-mips64-cross \
qemu-system-mips64
ENV CARGO_TARGET_MIPS64_UNKNOWN_LINUX_GNUABI64_LINKER=mips64-linux-gnuabi64-gcc \
+ CARGO_TARGET_MIPS64_UNKNOWN_LINUX_GNUABI64_RUNNER="qemu-mips64 -L /usr/mips64-linux-gnuabi64" \
CC_mips64_unknown_linux_gnuabi64=mips64-linux-gnuabi64-gcc \
PATH=$PATH:/rust/bin
diff --git a/libc/ci/docker/mipsel-unknown-linux-musl/Dockerfile b/libc/ci/docker/mipsel-unknown-linux-musl/Dockerfile
index 4c7ee8b..a2c3bc4 100644
--- a/libc/ci/docker/mipsel-unknown-linux-musl/Dockerfile
+++ b/libc/ci/docker/mipsel-unknown-linux-musl/Dockerfile
@@ -1,7 +1,6 @@
-FROM ubuntu:16.10
+FROM ubuntu:17.10
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends \
+RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates qemu-system-mips curl \
bzip2
@@ -14,4 +13,5 @@ RUN curl -L https://s3.amazonaws.com/rust-lang-ci/libc/OpenWrt-Toolchain-malta-l
ENV PATH=$PATH:/rust/bin:/toolchain/bin \
CC_mipsel_unknown_linux_musl=mipsel-openwrt-linux-gcc \
- CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_MUSL_LINKER=mipsel-openwrt-linux-gcc
+ CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_MUSL_LINKER=mipsel-openwrt-linux-gcc \
+ CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_MUSL_RUNNER="qemu-mipsel -L /toolchain"
diff --git a/libc/ci/docker/powerpc-unknown-linux-gnu/Dockerfile b/libc/ci/docker/powerpc-unknown-linux-gnu/Dockerfile
index d9d7db0..106ada4 100644
--- a/libc/ci/docker/powerpc-unknown-linux-gnu/Dockerfile
+++ b/libc/ci/docker/powerpc-unknown-linux-gnu/Dockerfile
@@ -1,10 +1,10 @@
-FROM ubuntu:16.10
+FROM ubuntu:17.10
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends \
+RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user 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 -L /usr/powerpc-linux-gnu" \
PATH=$PATH:/rust/bin
diff --git a/libc/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile b/libc/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile
index df0e605..a6ab66a 100644
--- a/libc/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile
+++ b/libc/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile
@@ -1,11 +1,11 @@
-FROM ubuntu:16.10
+FROM ubuntu:17.10
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends \
+RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates \
gcc-powerpc64-linux-gnu libc6-dev-ppc64-cross \
qemu-system-ppc
ENV CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_LINKER=powerpc64-linux-gnu-gcc \
+ CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc64 -L /usr/powerpc64-linux-gnu" \
CC=powerpc64-linux-gnu-gcc \
PATH=$PATH:/rust/bin
diff --git a/libc/ci/docker/s390x-unknown-linux-gnu/Dockerfile b/libc/ci/docker/s390x-unknown-linux-gnu/Dockerfile
new file mode 100644
index 0000000..49a277d
--- /dev/null
+++ b/libc/ci/docker/s390x-unknown-linux-gnu/Dockerfile
@@ -0,0 +1,12 @@
+FROM ubuntu:17.10
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ gcc libc6-dev qemu-user ca-certificates \
+ gcc-s390x-linux-gnu libc6-dev-s390x-cross
+
+ENV CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_LINKER=s390x-linux-gnu-gcc \
+ # TODO: in theory we should execute this, but qemu segfaults immediately :(
+ # CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_RUNNER="qemu-s390x -L /usr/s390x-linux-gnu" \
+ CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_RUNNER=true \
+ CC_s390x_unknown_linux_gnu=s390x-linux-gnu-gcc \
+ PATH=$PATH:/rust/bin
diff --git a/libc/ci/docker/wasm32-unknown-emscripten/Dockerfile b/libc/ci/docker/wasm32-unknown-emscripten/Dockerfile
new file mode 100644
index 0000000..59bf7d9
--- /dev/null
+++ b/libc/ci/docker/wasm32-unknown-emscripten/Dockerfile
@@ -0,0 +1,21 @@
+FROM ubuntu:16.04
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ ca-certificates \
+ curl \
+ gcc \
+ git \
+ libc6-dev \
+ python \
+ xz-utils
+
+COPY emscripten.sh /
+RUN bash /emscripten.sh
+
+ENV PATH=$PATH:/rust/bin \
+ CARGO_TARGET_WASM32_UNKNOWN_EMSCRIPTEN_RUNNER=node-wrapper.sh
+
+COPY emscripten-entry.sh /
+COPY docker/wasm32-unknown-emscripten/node-wrapper.sh /usr/local/bin/node-wrapper.sh
+ENTRYPOINT ["/emscripten-entry.sh"]
diff --git a/libc/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh b/libc/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh
new file mode 100755
index 0000000..b1936f0
--- /dev/null
+++ b/libc/ci/docker/wasm32-unknown-emscripten/node-wrapper.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+me=$1
+shift
+dir=$(dirname $me)
+file=$(basename $me)
+
+cd $dir
+exec node $file "$@"
diff --git a/libc/ci/docker/x86_64-linux-android/Dockerfile b/libc/ci/docker/x86_64-linux-android/Dockerfile
index dfc0c83..0cfbc48 100644
--- a/libc/ci/docker/x86_64-linux-android/Dockerfile
+++ b/libc/ci/docker/x86_64-linux-android/Dockerfile
@@ -17,7 +17,7 @@ RUN sh /android/android-install-ndk.sh $ANDROID_ARCH
# We do not run x86_64-linux-android tests on an android emulator.
# See ci/android-sysimage.sh for informations about how tests are run.
COPY android-sysimage.sh /android/
-RUN bash /android/android-sysimage.sh x86_64 x86_64-21_r04.zip
+RUN bash /android/android-sysimage.sh x86_64 x86_64-24_r07.zip
ENV PATH=$PATH:/rust/bin:/android/ndk-$ANDROID_ARCH/bin \
CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android-gcc \
diff --git a/libc/ci/docker/x86_64-rumprun-netbsd/Dockerfile b/libc/ci/docker/x86_64-rumprun-netbsd/Dockerfile
index 129771e..a486d05 100644
--- a/libc/ci/docker/x86_64-rumprun-netbsd/Dockerfile
+++ b/libc/ci/docker/x86_64-rumprun-netbsd/Dockerfile
@@ -3,4 +3,8 @@ USER root
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
qemu
-ENV PATH=$PATH:/rust/bin
+ENV PATH=$PATH:/rust/bin \
+ CARGO_TARGET_X86_64_RUMPRUN_NETBSD_RUNNER=/tmp/runtest
+
+ADD docker/x86_64-rumprun-netbsd/runtest.rs /tmp/
+ENTRYPOINT ["sh", "-c", "rustc /tmp/runtest.rs -o /tmp/runtest && exec \"$@\"", "--"]
diff --git a/libc/ci/docker/x86_64-rumprun-netbsd/runtest.rs b/libc/ci/docker/x86_64-rumprun-netbsd/runtest.rs
new file mode 100644
index 0000000..94b5946
--- /dev/null
+++ b/libc/ci/docker/x86_64-rumprun-netbsd/runtest.rs
@@ -0,0 +1,54 @@
+use std::env;
+use std::process::{Command, Stdio};
+use std::sync::mpsc;
+use std::thread;
+use std::time::Duration;
+use std::io::{BufRead, BufReader, Read};
+
+fn main() {
+ assert_eq!(env::args().len(), 2);
+
+ let status = Command::new("rumprun-bake")
+ .arg("hw_virtio")
+ .arg("/tmp/libc-test.img")
+ .arg(env::args().nth(1).unwrap())
+ .status()
+ .expect("failed to run rumprun-bake");
+ assert!(status.success());
+
+ let mut child = Command::new("qemu-system-x86_64")
+ .arg("-nographic")
+ .arg("-vga").arg("none")
+ .arg("-m").arg("64")
+ .arg("-kernel").arg("/tmp/libc-test.img")
+ .stdout(Stdio::piped())
+ .stderr(Stdio::piped())
+ .spawn()
+ .expect("failed to spawn qemu");
+
+ let mut stdout = child.stdout.take().unwrap();
+ let mut stderr = child.stderr.take().unwrap();
+ let (tx, rx) = mpsc::channel();
+ let tx2 = tx.clone();
+ let t1 = thread::spawn(move || find_ok(&mut stdout, tx));
+ let t2 = thread::spawn(move || find_ok(&mut stderr, tx2));
+
+ let res = rx.recv_timeout(Duration::new(5, 0));
+ child.kill().unwrap();
+ t1.join().unwrap();
+ t2.join().unwrap();
+
+ if res.is_err() {
+ panic!("didn't find success");
+ }
+}
+
+fn find_ok(input: &mut Read, tx: mpsc::Sender<()>) {
+ for line in BufReader::new(input).lines() {
+ let line = line.unwrap();
+ println!("{}", line);
+ if line.starts_with("PASSED ") && line.contains(" tests") {
+ tx.send(()).unwrap();
+ }
+ }
+}
diff --git a/libc/ci/docker/x86_64-unknown-linux-gnu/Dockerfile b/libc/ci/docker/x86_64-unknown-linux-gnu/Dockerfile
index 4af3f83..ca60ede 100644
--- a/libc/ci/docker/x86_64-unknown-linux-gnu/Dockerfile
+++ b/libc/ci/docker/x86_64-unknown-linux-gnu/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:16.10
+FROM ubuntu:17.10
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
gcc libc6-dev ca-certificates
diff --git a/libc/ci/docker/x86_64-unknown-linux-musl/Dockerfile b/libc/ci/docker/x86_64-unknown-linux-musl/Dockerfile
index 9c24999..d9d6511 100644
--- a/libc/ci/docker/x86_64-unknown-linux-musl/Dockerfile
+++ b/libc/ci/docker/x86_64-unknown-linux-musl/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:16.10
+FROM ubuntu:17.10
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
@@ -9,5 +9,12 @@ RUN curl https://www.musl-libc.org/releases/musl-1.1.15.tar.gz | \
./configure --prefix=/musl-x86_64 && \
make install -j4 && \
cd .. && \
- rm -rf musl-1.1.15
+ rm -rf musl-1.1.15 && \
+# Install linux kernel headers sanitized for use with musl
+ curl -L https://github.com/sabotage-linux/kernel-headers/archive/v3.12.6-5.tar.gz | \
+ tar xzf - && \
+ cd kernel-headers-3.12.6-5 && \
+ make ARCH=x86_64 prefix=/musl-x86_64 install -j4 && \
+ cd .. && \
+ rm -rf kernel-headers-3.12.6-5
ENV PATH=$PATH:/musl-x86_64/bin:/rust/bin
diff --git a/libc/ci/docker/x86_64-unknown-openbsd/Dockerfile b/libc/ci/docker/x86_64-unknown-openbsd/Dockerfile
deleted file mode 100644
index 518baf8..0000000
--- a/libc/ci/docker/x86_64-unknown-openbsd/Dockerfile
+++ /dev/null
@@ -1,8 +0,0 @@
-FROM ubuntu:16.10
-
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends \
- gcc libc6-dev qemu curl ca-certificates \
- genext2fs
-ENV PATH=$PATH:/rust/bin \
- QEMU=2016-11-06/openbsd-6.0-without-pkgs.qcow2