diff options
author | gnzlbg <gonzalobg88@gmail.com> | 2019-05-24 14:57:28 +0200 |
---|---|---|
committer | gnzlbg <gonzalobg88@gmail.com> | 2019-05-27 22:23:02 +0200 |
commit | 8f403e5ac262508b763da173d545195710d10494 (patch) | |
tree | 9c894fbc9c9505448d26c94ace99be2599420a78 /ci/install-musl.sh | |
parent | 1059e0bd85428728cdd8b1546ce4edbace81f725 (diff) | |
download | rust-libc-8f403e5ac262508b763da173d545195710d10494.tar.gz |
Update MUSL Linux kernel headers and re-enable Linux tests
Diffstat (limited to 'ci/install-musl.sh')
-rw-r--r-- | ci/install-musl.sh | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/ci/install-musl.sh b/ci/install-musl.sh new file mode 100644 index 0000000000..0a2fc5529b --- /dev/null +++ b/ci/install-musl.sh @@ -0,0 +1,68 @@ +#!/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: +curl --retry 5 -L \ + https://github.com/sabotage-linux/kernel-headers/archive/v4.4.2-1.tar.gz | \ + tar xzf - +( + cd kernel-headers-4.4.2-1 + make ARCH="${kernel_arch}" prefix="/musl-${musl_arch}" install -j4 +) +rm -rf kernel-headers-4.4.2-1 |