summaryrefslogtreecommitdiff
path: root/libc/ci
diff options
context:
space:
mode:
authorDaniel Mueller <deso@posteo.net>2019-06-01 11:46:58 -0700
committerDaniel Mueller <deso@posteo.net>2019-06-01 11:46:58 -0700
commit61f2baa0af6b2a54e0c109e5f73c8ff25f9f2ca6 (patch)
tree7526c0aca9a6ec34826a55cad24dd4a3457364f0 /libc/ci
parent7c880699bb9a49037c09b1be990e677a1857af7a (diff)
downloadnitrocli-61f2baa0af6b2a54e0c109e5f73c8ff25f9f2ca6.tar.gz
nitrocli-61f2baa0af6b2a54e0c109e5f73c8ff25f9f2ca6.tar.bz2
Update libc crate to 0.2.57
This change updates the libc crate to version 0.2.57. Import subrepo libc/:libc at cdc48ea36d8d2890dba38e8f779001e6855339a2
Diffstat (limited to 'libc/ci')
-rw-r--r--libc/ci/android-install-ndk.sh31
-rw-r--r--libc/ci/android-install-sdk.sh44
-rw-r--r--libc/ci/build.sh7
-rw-r--r--libc/ci/docker/aarch64-linux-android/Dockerfile2
-rw-r--r--libc/ci/docker/aarch64-unknown-linux-musl/Dockerfile18
-rw-r--r--libc/ci/docker/arm-linux-androideabi/Dockerfile2
-rw-r--r--libc/ci/docker/arm-unknown-linux-musleabihf/Dockerfile16
-rw-r--r--libc/ci/docker/i686-linux-android/Dockerfile2
-rw-r--r--libc/ci/docker/i686-unknown-linux-musl/Dockerfile25
-rw-r--r--libc/ci/docker/mips-unknown-linux-gnu/Dockerfile2
-rw-r--r--libc/ci/docker/mips-unknown-linux-musl/Dockerfile2
-rw-r--r--libc/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile2
-rw-r--r--libc/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile2
-rw-r--r--libc/ci/docker/wasm32-unknown-emscripten/Dockerfile6
-rw-r--r--libc/ci/docker/x86_64-unknown-linux-gnu/Dockerfile6
-rw-r--r--libc/ci/docker/x86_64-unknown-linux-musl/Dockerfile18
-rwxr-xr-xlibc/ci/emscripten-entry.sh2
-rw-r--r--libc/ci/emscripten.sh6
-rw-r--r--libc/ci/install-musl.sh69
-rwxr-xr-xlibc/ci/run.sh8
-rwxr-xr-xlibc/ci/test-runner-linux9
21 files changed, 164 insertions, 115 deletions
diff --git a/libc/ci/android-install-ndk.sh b/libc/ci/android-install-ndk.sh
index 54f7b2e..723e719 100644
--- a/libc/ci/android-install-ndk.sh
+++ b/libc/ci/android-install-ndk.sh
@@ -11,27 +11,40 @@
set -ex
-curl --retry 10 -O https://dl.google.com/android/repository/android-ndk-r15b-linux-x86_64.zip
-unzip -q android-ndk-r15b-linux-x86_64.zip
+NDK=android-ndk-r19c
+curl --retry 20 -O https://dl.google.com/android/repository/${NDK}-linux-x86_64.zip
+unzip -q ${NDK}-linux-x86_64.zip
case "$1" in
+ arm)
+ arch=arm
+ api=24
+ ;;
+ armv7)
+ arch=arm
+ api=24
+ ;;
aarch64)
arch=arm64
+ api=24
;;
-
i686)
arch=x86
+ api=28
+ ;;
+ x86_64)
+ arch=x86_64
+ api=28
;;
-
*)
- arch=$1
+ echo "invalid arch: $1"
+ exit 1
;;
esac;
-android-ndk-r15b/build/tools/make_standalone_toolchain.py \
- --unified-headers \
+${NDK}/build/tools/make_standalone_toolchain.py \
--install-dir "/android/ndk-${1}" \
--arch "${arch}" \
- --api 24
+ --api ${api}
-rm -rf ./android-ndk-r15b-linux-x86_64.zip ./android-ndk-r15b
+rm -rf ./${NDK}-linux-x86_64.zip ./${NDK}
diff --git a/libc/ci/android-install-sdk.sh b/libc/ci/android-install-sdk.sh
index e011cfc..7f21040 100644
--- a/libc/ci/android-install-sdk.sh
+++ b/libc/ci/android-install-sdk.sh
@@ -18,46 +18,56 @@ set -ex
# located in https://github.com/appunite/docker by just wrapping it in a script
# which apparently magically accepts the licenses.
+SDK=4333796
mkdir sdk
-curl --retry 10 https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -O
-unzip -d sdk sdk-tools-linux-3859397.zip
+curl --retry 20 https://dl.google.com/android/repository/sdk-tools-linux-${SDK}.zip -O
+unzip -q -d sdk sdk-tools-linux-${SDK}.zip
case "$1" in
arm | armv7)
- abi=armeabi-v7a
+ api=24
+ image="system-images;android-${api};google_apis;armeabi-v7a"
;;
-
aarch64)
- abi=arm64-v8a
+ api=24
+ image="system-images;android-${api};google_apis;arm64-v8a"
;;
-
i686)
- abi=x86
+ api=28
+ image="system-images;android-${api};default;x86"
;;
-
x86_64)
- abi=x86_64
+ api=28
+ image="system-images;android-${api};default;x86_64"
;;
-
*)
echo "invalid arch: $1"
exit 1
;;
esac;
-# See: https://stackoverflow.com/a/51644855/1422197
-export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
+# Try to fix warning about missing file.
+# See https://askubuntu.com/a/1078784
+mkdir -p /root/.android/
+echo '### User Sources for Android SDK Manager' >> /root/.android/repositories.cfg
+echo '#Fri Nov 03 10:11:27 CET 2017 count=0' >> /root/.android/repositories.cfg
+
+# Print all available packages
+# yes | ./sdk/tools/bin/sdkmanager --list --verbose
# --no_https avoids
- # javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
-yes | ./sdk/tools/bin/sdkmanager --licenses --no_https
+# javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
+#
+# | grep -v = || true removes the progress bar output from the sdkmanager
+# which produces an insane amount of output.
+yes | ./sdk/tools/bin/sdkmanager --licenses --no_https | grep -v = || true
yes | ./sdk/tools/bin/sdkmanager --no_https \
"emulator" \
"platform-tools" \
- "platforms;android-24" \
- "system-images;android-24;default;$abi"
+ "platforms;android-${api}" \
+ "${image}" | grep -v = || true
echo "no" |
./sdk/tools/bin/avdmanager create avd \
--name "${1}" \
- --package "system-images;android-24;default;$abi"
+ --package "${image}" | grep -v = || true
diff --git a/libc/ci/build.sh b/libc/ci/build.sh
index eb07c18..707dd4a 100644
--- a/libc/ci/build.sh
+++ b/libc/ci/build.sh
@@ -23,6 +23,11 @@ test_target() {
# See https://github.com/rust-lang/rust/issues/45417
opt="--release"
fi
+ # FIXME: https://github.com/rust-lang/rust/issues/61174
+ if [ "${TARGET}" = "sparcv9-sun-solaris" ] ||
+ [ "${TARGET}" = "x86_64-sun-solaris" ]; then
+ return 0
+ fi
# If there is a std component, fetch it:
if [ "${NO_STD}" != "1" ]; then
@@ -170,6 +175,7 @@ done
RUST_LINUX_NO_CORE_TARGETS="\
aarch64-pc-windows-msvc \
aarch64-unknown-cloudabi \
+aarch64-unknown-freebsd \
aarch64-unknown-hermit \
aarch64-unknown-netbsd \
aarch64-unknown-openbsd \
@@ -189,6 +195,7 @@ mipsel-unknown-linux-uclibc \
nvptx64-nvidia-cuda \
powerpc-unknown-linux-gnuspe \
powerpc-unknown-netbsd \
+powerpc64-unknown-freebsd \
riscv32imac-unknown-none-elf \
riscv32imc-unknown-none-elf \
sparc64-unknown-netbsd \
diff --git a/libc/ci/docker/aarch64-linux-android/Dockerfile b/libc/ci/docker/aarch64-linux-android/Dockerfile
index 1458423..6751dd9 100644
--- a/libc/ci/docker/aarch64-linux-android/Dockerfile
+++ b/libc/ci/docker/aarch64-linux-android/Dockerfile
@@ -9,7 +9,7 @@ RUN dpkg --add-architecture i386 && \
python \
unzip \
expect \
- openjdk-11-jre \
+ openjdk-8-jre \
libstdc++6:i386 \
libpulse0 \
gcc \
diff --git a/libc/ci/docker/aarch64-unknown-linux-musl/Dockerfile b/libc/ci/docker/aarch64-unknown-linux-musl/Dockerfile
index 143a960..e9634bf 100644
--- a/libc/ci/docker/aarch64-unknown-linux-musl/Dockerfile
+++ b/libc/ci/docker/aarch64-unknown-linux-musl/Dockerfile
@@ -3,21 +3,9 @@ FROM ubuntu:19.04
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc make libc6-dev git curl ca-certificates \
gcc-aarch64-linux-gnu qemu-user
-RUN curl --retry 5 https://www.musl-libc.org/releases/musl-1.1.19.tar.gz | \
- tar xzf - && \
- cd musl-1.1.19 && \
- CC=aarch64-linux-gnu-gcc \
- ./configure --prefix=/musl-aarch64 --enable-wrapper=yes && \
- make install -j4 && \
- cd .. && \
- rm -rf musl-1.1.19
-# Install linux kernel headers sanitized for use with musl
-RUN curl --retry 5 -L https://github.com/sabotage-linux/kernel-headers/archive/v3.12.6-6.tar.gz | \
- tar xzf - && \
- cd kernel-headers-3.12.6-6 && \
- make ARCH=arm64 prefix=/musl-aarch64 install -j4 && \
- cd .. && \
- rm -rf kernel-headers-3.12.6-6
+
+COPY install-musl.sh /
+RUN sh /install-musl.sh aarch64
# FIXME: shouldn't need the `-lgcc` here, shouldn't that be in libstd?
ENV PATH=$PATH:/musl-aarch64/bin:/rust/bin \
diff --git a/libc/ci/docker/arm-linux-androideabi/Dockerfile b/libc/ci/docker/arm-linux-androideabi/Dockerfile
index acc784e..544d167 100644
--- a/libc/ci/docker/arm-linux-androideabi/Dockerfile
+++ b/libc/ci/docker/arm-linux-androideabi/Dockerfile
@@ -9,7 +9,7 @@ RUN dpkg --add-architecture i386 && \
python \
unzip \
expect \
- openjdk-11-jre \
+ openjdk-8-jre \
libstdc++6:i386 \
libpulse0 \
gcc \
diff --git a/libc/ci/docker/arm-unknown-linux-musleabihf/Dockerfile b/libc/ci/docker/arm-unknown-linux-musleabihf/Dockerfile
index e29e854..639b141 100644
--- a/libc/ci/docker/arm-unknown-linux-musleabihf/Dockerfile
+++ b/libc/ci/docker/arm-unknown-linux-musleabihf/Dockerfile
@@ -4,20 +4,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
gcc make libc6-dev git curl ca-certificates \
gcc-arm-linux-gnueabihf qemu-user
-RUN curl --retry 5 https://www.musl-libc.org/releases/musl-1.1.19.tar.gz | tar xzf -
-WORKDIR /musl-1.1.19
-RUN CC=arm-linux-gnueabihf-gcc \
- CFLAGS="-march=armv6 -marm -mfpu=vfp" \
- ./configure --prefix=/musl-arm --enable-wrapper=yes
-RUN make install -j4
-
-# Install linux kernel headers sanitized for use with musl
-RUN curl --retry 5 -L https://github.com/sabotage-linux/kernel-headers/archive/v3.12.6-6.tar.gz | \
- tar xzf - && \
- cd kernel-headers-3.12.6-6 && \
- make ARCH=arm prefix=/musl-arm install -j4 && \
- cd .. && \
- rm -rf kernel-headers-3.12.6-6
+COPY install-musl.sh /
+RUN sh /install-musl.sh arm
ENV PATH=$PATH:/musl-arm/bin:/rust/bin \
CC_arm_unknown_linux_musleabihf=musl-gcc \
diff --git a/libc/ci/docker/i686-linux-android/Dockerfile b/libc/ci/docker/i686-linux-android/Dockerfile
index 59ea2d7..5403220 100644
--- a/libc/ci/docker/i686-linux-android/Dockerfile
+++ b/libc/ci/docker/i686-linux-android/Dockerfile
@@ -9,7 +9,7 @@ RUN dpkg --add-architecture i386 && \
python \
unzip \
expect \
- openjdk-11-jre \
+ openjdk-8-jre \
libstdc++6:i386 \
libpulse0 \
gcc \
diff --git a/libc/ci/docker/i686-unknown-linux-musl/Dockerfile b/libc/ci/docker/i686-unknown-linux-musl/Dockerfile
index c085c10..ac76a32 100644
--- a/libc/ci/docker/i686-unknown-linux-musl/Dockerfile
+++ b/libc/ci/docker/i686-unknown-linux-musl/Dockerfile
@@ -4,28 +4,9 @@ RUN dpkg --add-architecture i386
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
gcc-multilib make libc6-dev git curl ca-certificates libc6:i386
-# Below we're cross-compiling musl for i686 using the system compiler on an
-# x86_64 system. This is an awkward thing to be doing and so we have to jump
-# through a couple hoops to get musl to be happy. In particular:
-#
-# * We specifically pass -m32 in CFLAGS and override CC when running ./configure,
-# since otherwise the script will fail to find a compiler.
-# * We manually unset CROSS_COMPILE when running make; otherwise the makefile
-# will call the non-existent binary 'i686-ar'.
-RUN curl --retry 5 https://www.musl-libc.org/releases/musl-1.1.19.tar.gz | \
- tar xzf - && \
- cd musl-1.1.19 && \
- CC=gcc CFLAGS=-m32 ./configure --prefix=/musl-i686 --disable-shared --target=i686 && \
- make CROSS_COMPILE= install -j4 && \
- cd .. && \
- rm -rf musl-1.1.19
-# Install linux kernel headers sanitized for use with musl
-RUN curl --retry 5 -L https://github.com/sabotage-linux/kernel-headers/archive/v3.12.6-6.tar.gz | \
- tar xzf - && \
- cd kernel-headers-3.12.6-6 && \
- make ARCH=i386 prefix=/musl-i686 install -j4 && \
- cd .. && \
- rm -rf kernel-headers-3.12.6-6
+
+COPY install-musl.sh /
+RUN sh /install-musl.sh i686
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 9f1bcaf..c8623a5 100644
--- a/libc/ci/docker/mips-unknown-linux-gnu/Dockerfile
+++ b/libc/ci/docker/mips-unknown-linux-gnu/Dockerfile
@@ -3,7 +3,7 @@ FROM ubuntu:19.04
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
+ qemu-system-mips linux-headers-generic
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" \
diff --git a/libc/ci/docker/mips-unknown-linux-musl/Dockerfile b/libc/ci/docker/mips-unknown-linux-musl/Dockerfile
index 7f2764c..aee73be 100644
--- a/libc/ci/docker/mips-unknown-linux-musl/Dockerfile
+++ b/libc/ci/docker/mips-unknown-linux-musl/Dockerfile
@@ -9,7 +9,7 @@ RUN mkdir /toolchain
# Note that this originally came from:
# https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/OpenWrt-SDK-ar71xx-generic_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2
RUN curl --retry 5 -L https://s3-us-west-1.amazonaws.com/rust-lang-ci2/libc/OpenWrt-SDK-ar71xx-generic_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 | \
- tar xjf - -C /toolchain --strip-components=1
+ tar xjf - -C /toolchain --strip-components=1
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 \
diff --git a/libc/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile b/libc/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile
index b97cdb4..d4b972d 100644
--- a/libc/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile
+++ b/libc/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile
@@ -3,7 +3,7 @@ FROM ubuntu:19.04
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
+ qemu-system-mips64 linux-headers-generic
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" \
diff --git a/libc/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile b/libc/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile
index 7f79452..d0303da 100644
--- a/libc/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile
+++ b/libc/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile
@@ -3,7 +3,7 @@ FROM ubuntu:19.04
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates \
gcc-mips64el-linux-gnuabi64 libc6-dev-mips64el-cross \
- qemu-system-mips64el
+ qemu-system-mips64el linux-headers-generic
ENV CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_GNUABI64_LINKER=mips64el-linux-gnuabi64-gcc \
CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_GNUABI64_RUNNER="qemu-mips64el -L /usr/mips64el-linux-gnuabi64" \
diff --git a/libc/ci/docker/wasm32-unknown-emscripten/Dockerfile b/libc/ci/docker/wasm32-unknown-emscripten/Dockerfile
index de8e353..c0ce825 100644
--- a/libc/ci/docker/wasm32-unknown-emscripten/Dockerfile
+++ b/libc/ci/docker/wasm32-unknown-emscripten/Dockerfile
@@ -3,11 +3,17 @@ FROM ubuntu:19.04
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ca-certificates \
+ g++ \
+ make \
+ file \
curl \
gcc \
git \
libc6-dev \
python \
+ cmake \
+ sudo \
+ gdb \
xz-utils
COPY emscripten.sh /
diff --git a/libc/ci/docker/x86_64-unknown-linux-gnu/Dockerfile b/libc/ci/docker/x86_64-unknown-linux-gnu/Dockerfile
index 0dbb191..bfa2b17 100644
--- a/libc/ci/docker/x86_64-unknown-linux-gnu/Dockerfile
+++ b/libc/ci/docker/x86_64-unknown-linux-gnu/Dockerfile
@@ -1,5 +1,9 @@
FROM ubuntu:19.04
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
- gcc libc6-dev ca-certificates
+ gcc libc6-dev ca-certificates linux-headers-generic
+
+RUN apt search linux-headers
+RUN ls /usr/src
+
ENV PATH=$PATH:/rust/bin
diff --git a/libc/ci/docker/x86_64-unknown-linux-musl/Dockerfile b/libc/ci/docker/x86_64-unknown-linux-musl/Dockerfile
index 59164d2..06a081b 100644
--- a/libc/ci/docker/x86_64-unknown-linux-musl/Dockerfile
+++ b/libc/ci/docker/x86_64-unknown-linux-musl/Dockerfile
@@ -3,18 +3,8 @@ FROM ubuntu:19.04
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
gcc make libc6-dev git curl ca-certificates
-RUN curl --retry 5 https://www.musl-libc.org/releases/musl-1.1.19.tar.gz | \
- tar xzf - && \
- cd musl-1.1.19 && \
- ./configure --prefix=/musl-x86_64 && \
- make install -j4 && \
- cd .. && \
- rm -rf musl-1.1.19
-# Install linux kernel headers sanitized for use with musl
-RUN curl --retry 5 -L https://github.com/sabotage-linux/kernel-headers/archive/v3.12.6-6.tar.gz | \
- tar xzf - && \
- cd kernel-headers-3.12.6-6 && \
- make ARCH=x86_64 prefix=/musl-x86_64 install -j4 && \
- cd .. && \
- rm -rf kernel-headers-3.12.6-6
+
+COPY install-musl.sh /
+RUN sh /install-musl.sh x86_64
+
ENV PATH=$PATH:/musl-x86_64/bin:/rust/bin
diff --git a/libc/ci/emscripten-entry.sh b/libc/ci/emscripten-entry.sh
index e92c1cb..0016f56 100755
--- a/libc/ci/emscripten-entry.sh
+++ b/libc/ci/emscripten-entry.sh
@@ -15,6 +15,6 @@ set -ex
source /emsdk-portable/emsdk_env.sh &> /dev/null
# emsdk-portable provides a node binary, but we need version 8 to run wasm
-export PATH="/node-v8.0.0-linux-x64/bin:$PATH"
+export PATH="/node-v12.3.1-linux-x64/bin:$PATH"
exec "$@"
diff --git a/libc/ci/emscripten.sh b/libc/ci/emscripten.sh
index ce3b541..db31323 100644
--- a/libc/ci/emscripten.sh
+++ b/libc/ci/emscripten.sh
@@ -34,8 +34,8 @@ curl --retry 5 -L https://s3.amazonaws.com/mozilla-games/emscripten/releases/ems
cd /emsdk-portable
./emsdk update
-hide_output ./emsdk install sdk-1.37.20-64bit
-./emsdk activate sdk-1.37.20-64bit
+hide_output ./emsdk install sdk-1.38.15-64bit
+./emsdk activate sdk-1.38.15-64bit
# Compile and cache libc
# shellcheck disable=SC1091
@@ -51,6 +51,6 @@ chmod a+rxw -R /emsdk-portable
# node 8 is required to run wasm
cd /
-curl --retry 5 -L https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-x64.tar.xz | \
+curl --retry 5 -L https://nodejs.org/dist/v12.3.1/node-v12.3.1-linux-x64.tar.xz | \
tar -xJ
diff --git a/libc/ci/install-musl.sh b/libc/ci/install-musl.sh
new file mode 100644
index 0000000..ab98c4f
--- /dev/null
+++ b/libc/ci/install-musl.sh
@@ -0,0 +1,69 @@
+#!/usr/bin/env sh
+#
+# Install musl and musl-sanitized linux kernel headers
+# to musl-{$1} directory
+
+set -ex
+
+MUSL_VERSION=1.1.22
+MUSL="musl-${MUSL_VERSION}"
+
+# Download, configure, build, and install musl:
+curl --retry 5 https://www.musl-libc.org/releases/${MUSL}.tar.gz | tar xzf -
+
+cd $MUSL
+case ${1} in
+ aarch64)
+ musl_arch=aarch64
+ kernel_arch=arm64
+ CC=aarch64-linux-gnu-gcc \
+ ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes
+ make install -j4
+ ;;
+ arm)
+ musl_arch=arm
+ kernel_arch=arm
+ CC=arm-linux-gnueabihf-gcc CFLAGS="-march=armv6 -marm -mfpu=vfp" \
+ ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes
+ make install -j4
+ ;;
+ i686)
+ # cross-compile musl for i686 using the system compiler on an x86_64
+ # system.
+ musl_arch=i686
+ kernel_arch=i386
+ # Specifically pass -m32 in CFLAGS and override CC when running
+ # ./configure, since otherwise the script will fail to find a compiler.
+ CC=gcc CFLAGS="-m32" \
+ ./configure --prefix="/musl-${musl_arch}" --disable-shared --target=i686
+ # unset CROSS_COMPILE when running make; otherwise the makefile will
+ # call the non-existent binary 'i686-ar'.
+ make CROSS_COMPILE= install -j4
+ ;;
+ x86_64)
+ musl_arch=x86_64
+ kernel_arch=x86_64
+ ./configure --prefix="/musl-${musl_arch}"
+ make install -j4
+ ;;
+ *)
+ echo "Unknown target arch: \"${1}\""
+ exit 1
+ ;;
+esac
+
+
+# shellcheck disable=SC2103
+cd ..
+rm -rf $MUSL
+
+# Download, configure, build, and install musl-sanitized kernel headers:
+KERNEL_HEADER_VER="4.4.2-2"
+curl --retry 5 -L \
+ "https://github.com/sabotage-linux/kernel-headers/archive/v${KERNEL_HEADER_VER}.tar.gz" | \
+ tar xzf -
+(
+ cd kernel-headers-${KERNEL_HEADER_VER}
+ make ARCH="${kernel_arch}" prefix="/musl-${musl_arch}" install -j4
+)
+rm -rf kernel-headers-${KERNEL_HEADER_VER}
diff --git a/libc/ci/run.sh b/libc/ci/run.sh
index 427d3bf..8c56979 100755
--- a/libc/ci/run.sh
+++ b/libc/ci/run.sh
@@ -87,10 +87,12 @@ if [ "$TARGET" = "x86_64-unknown-linux-gnux32" ]; then
opt="--release"
fi
-cargo test $opt --no-default-features --manifest-path libc-test/Cargo.toml \
+export LIBC_CI=1
+
+cargo test -vv $opt --no-default-features --manifest-path libc-test/Cargo.toml \
--target "${TARGET}"
-cargo test $opt --manifest-path libc-test/Cargo.toml --target "${TARGET}"
+cargo test -vv $opt --manifest-path libc-test/Cargo.toml --target "${TARGET}"
-cargo test $opt --features extra_traits --manifest-path libc-test/Cargo.toml \
+cargo test -vv $opt --features extra_traits --manifest-path libc-test/Cargo.toml \
--target "${TARGET}"
diff --git a/libc/ci/test-runner-linux b/libc/ci/test-runner-linux
index 569fa00..cad31ec 100755
--- a/libc/ci/test-runner-linux
+++ b/libc/ci/test-runner-linux
@@ -5,15 +5,6 @@ set -e
arch=$1
prog=$2
-# Skip cmsg test on linux-s390x
-# https://github.com/rust-lang/libc/issues/1240
-if [ "$arch" = "s390x" ]; then
- progbasename=`basename $prog`
- if [ "${progbasename%%-*}" = "cmsg" ]; then
- exit 0
- fi
-fi
-
cd /qemu/init
echo "#!/bin/sh\n/prog --color=never" > run_prog.sh
chmod +x run_prog.sh