From 3fad51d07307c2fada39edecd2f15a82c6ddc886 Mon Sep 17 00:00:00 2001 From: Ximin Luo Date: Mon, 9 Sep 2019 19:13:03 -0700 Subject: [PATCH] Test the c-system feature in CI as well --- ci/docker/aarch64-unknown-linux-gnu/Dockerfile | 12 +++++++++++- .../armv7-unknown-linux-gnueabihf/Dockerfile | 15 +++++++++++++-- ci/docker/i686-unknown-linux-gnu/Dockerfile | 4 +++- .../powerpc64le-unknown-linux-gnu/Dockerfile | 16 +++++++++++++--- ci/docker/x86_64-unknown-linux-gnu/Dockerfile | 2 +- ci/run.sh | 8 ++++++++ 6 files changed, 49 insertions(+), 8 deletions(-) diff --git a/ci/docker/aarch64-unknown-linux-gnu/Dockerfile b/ci/docker/aarch64-unknown-linux-gnu/Dockerfile index 9e2559f4a..2a26b17eb 100644 --- a/ci/docker/aarch64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-gnu/Dockerfile @@ -1,10 +1,20 @@ FROM ubuntu:18.04 -RUN apt-get update && \ +RUN dpkg --add-architecture arm64 && \ + sed -e "\,security.ubuntu.com/ubuntu,p;s,security.ubuntu.com/ubuntu,ports.ubuntu.com/ubuntu-ports,g" \ + -e "\,archive.ubuntu.com/ubuntu,p;s,archive.ubuntu.com/ubuntu,ports.ubuntu.com/ubuntu-ports,g" \ + -i /etc/apt/sources.list && \ + sed -e "\,security.ubuntu.com/ubuntu,s.^deb .deb [ arch=amd64,i386 ] .g" \ + -e "\,archive.ubuntu.com/ubuntu,s.^deb .deb [ arch=amd64,i386 ] .g" \ + -e "\,ports.ubuntu.com/ubuntu-ports,s.^deb .deb [ arch=arm64,armhf,ppc64el,s390x ] .g" \ + -i /etc/apt/sources.list && \ + apt-get update && \ apt-get install -y --no-install-recommends \ gcc libc6-dev ca-certificates \ gcc-aarch64-linux-gnu libc6-dev-arm64-cross \ + clang libclang-common-6.0-dev:arm64 \ 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 \ + CLANG=clang \ RUST_TEST_THREADS=1 diff --git a/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile b/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile index 6617af155..13fb1caea 100644 --- a/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile +++ b/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile @@ -1,9 +1,20 @@ FROM ubuntu:18.04 -RUN apt-get update && \ +RUN dpkg --add-architecture armhf && \ + sed -e "\,security.ubuntu.com/ubuntu,p;s,security.ubuntu.com/ubuntu,ports.ubuntu.com/ubuntu-ports,g" \ + -e "\,archive.ubuntu.com/ubuntu,p;s,archive.ubuntu.com/ubuntu,ports.ubuntu.com/ubuntu-ports,g" \ + -i /etc/apt/sources.list && \ + sed -e "\,security.ubuntu.com/ubuntu,s.^deb .deb [ arch=amd64,i386 ] .g" \ + -e "\,archive.ubuntu.com/ubuntu,s.^deb .deb [ arch=amd64,i386 ] .g" \ + -e "\,ports.ubuntu.com/ubuntu-ports,s.^deb .deb [ arch=arm64,armhf,ppc64el,s390x ] .g" \ + -i /etc/apt/sources.list && \ + 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 + gcc-arm-linux-gnueabihf libc6-dev-armhf-cross \ + clang libclang-common-6.0-dev:armhf \ + 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 \ + CLANG=clang \ RUST_TEST_THREADS=1 diff --git a/ci/docker/i686-unknown-linux-gnu/Dockerfile b/ci/docker/i686-unknown-linux-gnu/Dockerfile index 5783e28e1..9e3daab28 100644 --- a/ci/docker/i686-unknown-linux-gnu/Dockerfile +++ b/ci/docker/i686-unknown-linux-gnu/Dockerfile @@ -1,4 +1,6 @@ FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y --no-install-recommends \ - gcc-multilib libc6-dev ca-certificates + gcc-multilib libc6-dev ca-certificates \ + clang +ENV CLANG=clang diff --git a/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile b/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile index 63ea9af9d..8f4ed7518 100644 --- a/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile +++ b/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile @@ -1,13 +1,23 @@ FROM ubuntu:18.04 -RUN apt-get update && \ +RUN dpkg --add-architecture ppc64el && \ + sed -e "\,security.ubuntu.com/ubuntu,p;s,security.ubuntu.com/ubuntu,ports.ubuntu.com/ubuntu-ports,g" \ + -e "\,archive.ubuntu.com/ubuntu,p;s,archive.ubuntu.com/ubuntu,ports.ubuntu.com/ubuntu-ports,g" \ + -i /etc/apt/sources.list && \ + sed -e "\,security.ubuntu.com/ubuntu,s.^deb .deb [ arch=amd64,i386 ] .g" \ + -e "\,archive.ubuntu.com/ubuntu,s.^deb .deb [ arch=amd64,i386 ] .g" \ + -e "\,ports.ubuntu.com/ubuntu-ports,s.^deb .deb [ arch=arm64,armhf,ppc64el,s390x ] .g" \ + -i /etc/apt/sources.list && \ + apt-get update && \ apt-get install -y --no-install-recommends \ - gcc libc6-dev qemu-user-static ca-certificates \ + gcc libc6-dev ca-certificates \ gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross \ - qemu-system-ppc + clang libclang-common-6.0-dev:ppc64el \ + qemu-user-static 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 \ + CLANG=clang \ RUST_TEST_THREADS=1 diff --git a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile index 98000f4eb..27d3b78d6 100644 --- a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y --no-install-recommends \ - gcc libc6-dev ca-certificates + gcc libc6-dev ca-certificates clang diff --git a/ci/run.sh b/ci/run.sh index ae32806ec..254f8da65 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -18,6 +18,10 @@ cargo build --target $1 cargo build --target $1 --release cargo build --target $1 --features c cargo build --target $1 --release --features c +if [ -n "$CLANG" -o -n "$LLVM_CONFIG" ]; then +cargo build --target $1 --features c-system +cargo build --target $1 --release --features c-system +fi PREFIX=$(echo $1 | sed -e 's/unknown-//')- case $1 in @@ -77,6 +81,10 @@ RUSTFLAGS="-C debug-assertions=no" $build_intrinsics RUSTFLAGS="-C debug-assertions=no" $build_intrinsics --release RUSTFLAGS="-C debug-assertions=no" $build_intrinsics --features c RUSTFLAGS="-C debug-assertions=no" $build_intrinsics --features c --release +if [ -n "$CLANG" -o -n "$LLVM_CONFIG" ]; then +RUSTFLAGS="-C debug-assertions=no" $build_intrinsics --features c-system +RUSTFLAGS="-C debug-assertions=no" $build_intrinsics --features c-system --release +fi # Verify that there are no undefined symbols to `panic` within our # implementations