From 61f2baa0af6b2a54e0c109e5f73c8ff25f9f2ca6 Mon Sep 17 00:00:00 2001 From: Daniel Mueller Date: Sat, 1 Jun 2019 11:46:58 -0700 Subject: Update libc crate to 0.2.57 This change updates the libc crate to version 0.2.57. Import subrepo libc/:libc at cdc48ea36d8d2890dba38e8f779001e6855339a2 --- libc/ci/android-install-ndk.sh | 31 +++++++--- libc/ci/android-install-sdk.sh | 44 ++++++++------ libc/ci/build.sh | 7 +++ libc/ci/docker/aarch64-linux-android/Dockerfile | 2 +- .../docker/aarch64-unknown-linux-musl/Dockerfile | 18 +----- libc/ci/docker/arm-linux-androideabi/Dockerfile | 2 +- .../docker/arm-unknown-linux-musleabihf/Dockerfile | 16 +---- libc/ci/docker/i686-linux-android/Dockerfile | 2 +- libc/ci/docker/i686-unknown-linux-musl/Dockerfile | 25 +------- libc/ci/docker/mips-unknown-linux-gnu/Dockerfile | 2 +- libc/ci/docker/mips-unknown-linux-musl/Dockerfile | 2 +- .../mips64-unknown-linux-gnuabi64/Dockerfile | 2 +- .../mips64el-unknown-linux-gnuabi64/Dockerfile | 2 +- .../ci/docker/wasm32-unknown-emscripten/Dockerfile | 6 ++ libc/ci/docker/x86_64-unknown-linux-gnu/Dockerfile | 6 +- .../ci/docker/x86_64-unknown-linux-musl/Dockerfile | 18 ++---- libc/ci/emscripten-entry.sh | 2 +- libc/ci/emscripten.sh | 6 +- libc/ci/install-musl.sh | 69 ++++++++++++++++++++++ libc/ci/run.sh | 8 ++- libc/ci/test-runner-linux | 9 --- 21 files changed, 164 insertions(+), 115 deletions(-) create mode 100644 libc/ci/install-musl.sh (limited to 'libc/ci') 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 -- cgit v1.2.1