summaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2019-08-17 16:39:16 +0000
committerbors <bors@rust-lang.org>2019-08-17 16:39:16 +0000
commit4b610e6321a62d335b588ac3ead2882e8db6099e (patch)
treeb153602aa2c62e191930fc2216bf2b1e10f226ef /ci
parentabd5a3cf705e2ac263c01e39138ad4a4f0478117 (diff)
parent435cdeeec85d113982765cdfb306aef818c53888 (diff)
downloadrust-libc-4b610e6321a62d335b588ac3ead2882e8db6099e.tar.gz
Auto merge of #1449 - xen0n:mips64-musl-targets, r=gnzlbg
Add musl support for MIPS64 & bump to 0.2.63 Tested with patched stage2; both static and dynamic binaries confirmed working. Initial CI support in the form of no-core targets are added.
Diffstat (limited to 'ci')
-rw-r--r--ci/build.sh2
-rw-r--r--ci/docker/mips64-unknown-linux-muslabi64/Dockerfile15
-rw-r--r--ci/docker/mips64el-unknown-linux-muslabi64/Dockerfile15
-rw-r--r--ci/install-musl.sh14
4 files changed, 46 insertions, 0 deletions
diff --git a/ci/build.sh b/ci/build.sh
index 76af9e5fc7..3ce10deb32 100644
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -204,6 +204,8 @@ i686-unknown-netbsd \
i686-unknown-openbsd \
mips-unknown-linux-uclibc \
mipsel-unknown-linux-uclibc \
+mips64-unknown-linux-muslabi64 \
+mips64el-unknown-linux-muslabi64 \
nvptx64-nvidia-cuda \
powerpc-unknown-linux-gnuspe \
powerpc-unknown-netbsd \
diff --git a/ci/docker/mips64-unknown-linux-muslabi64/Dockerfile b/ci/docker/mips64-unknown-linux-muslabi64/Dockerfile
new file mode 100644
index 0000000000..8f63ade604
--- /dev/null
+++ b/ci/docker/mips64-unknown-linux-muslabi64/Dockerfile
@@ -0,0 +1,15 @@
+FROM ubuntu:19.04
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ gcc make libc6-dev git curl ca-certificates \
+ gcc-mips64-linux-gnuabi64 qemu-user
+
+COPY install-musl.sh /
+RUN sh /install-musl.sh mips64
+
+# FIXME: shouldn't need the `-lgcc` here, shouldn't that be in libstd?
+ENV PATH=$PATH:/musl-mips64/bin:/rust/bin \
+ CC_mips64_unknown_linux_muslabi64=musl-gcc \
+ RUSTFLAGS='-Clink-args=-lgcc' \
+ CARGO_TARGET_MIPS64_UNKNOWN_LINUX_MUSLABI64_LINKER=musl-gcc \
+ CARGO_TARGET_MIPS64_UNKNOWN_LINUX_MUSLABI64_RUNNER="qemu-mips64 -L /musl-mips64"
diff --git a/ci/docker/mips64el-unknown-linux-muslabi64/Dockerfile b/ci/docker/mips64el-unknown-linux-muslabi64/Dockerfile
new file mode 100644
index 0000000000..c42c2ba601
--- /dev/null
+++ b/ci/docker/mips64el-unknown-linux-muslabi64/Dockerfile
@@ -0,0 +1,15 @@
+FROM ubuntu:19.04
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ gcc make libc6-dev git curl ca-certificates \
+ gcc-mips64el-linux-gnuabi64 qemu-user
+
+COPY install-musl.sh /
+RUN sh /install-musl.sh mips64el
+
+# FIXME: shouldn't need the `-lgcc` here, shouldn't that be in libstd?
+ENV PATH=$PATH:/musl-mips64el/bin:/rust/bin \
+ CC_mips64el_unknown_linux_muslabi64=musl-gcc \
+ RUSTFLAGS='-Clink-args=-lgcc' \
+ CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_MUSLABI64_LINKER=musl-gcc \
+ CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_MUSLABI64_RUNNER="qemu-mips64el -L /musl-mips64el"
diff --git a/ci/install-musl.sh b/ci/install-musl.sh
index ab98c4f0f6..d6ec17e604 100644
--- a/ci/install-musl.sh
+++ b/ci/install-musl.sh
@@ -46,6 +46,20 @@ case ${1} in
./configure --prefix="/musl-${musl_arch}"
make install -j4
;;
+ mips64)
+ musl_arch=mips64
+ kernel_arch=mips
+ CC=mips64-linux-gnuabi64-gcc CFLAGS="-march=mips64r2 -mabi=64" \
+ ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes
+ make install -j4
+ ;;
+ mips64el)
+ musl_arch=mips64el
+ kernel_arch=mips
+ CC=mips64el-linux-gnuabi64-gcc CFLAGS="-march=mips64r2 -mabi=64" \
+ ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes
+ make install -j4
+ ;;
*)
echo "Unknown target arch: \"${1}\""
exit 1