about summary refs log tree commit diff
path: root/src/ci
diff options
context:
space:
mode:
authorHideki Sekine <sekineh@me.com>2018-06-24 10:09:25 +0900
committerHideki Sekine <sekineh@me.com>2018-07-08 23:30:34 +0900
commitc3e2ff8f22bb6978f48ec6dbb3710984eea43ee6 (patch)
tree568cfa72adf13e53b8a67eb5936c823ba4bf2348 /src/ci
parent0c0315cfd9750db7793b83bc59dfd353c5dd1624 (diff)
downloadrust-c3e2ff8f22bb6978f48ec6dbb3710984eea43ee6.tar.gz
rust-c3e2ff8f22bb6978f48ec6dbb3710984eea43ee6.zip
Create Dockerfile based on dist-various-1.
Diffstat (limited to 'src/ci')
-rw-r--r--src/ci/docker/thumb-none/Dockerfile127
1 files changed, 127 insertions, 0 deletions
diff --git a/src/ci/docker/thumb-none/Dockerfile b/src/ci/docker/thumb-none/Dockerfile
new file mode 100644
index 00000000000..b195decfcf5
--- /dev/null
+++ b/src/ci/docker/thumb-none/Dockerfile
@@ -0,0 +1,127 @@
+FROM ubuntu:16.04
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+  g++ \
+  make \
+  file \
+  curl \
+  ca-certificates \
+  python2.7 \
+  git \
+  cmake \
+  sudo \
+  xz-utils \
+  zlib1g-dev \
+  g++-arm-linux-gnueabi \
+  g++-arm-linux-gnueabihf \
+  g++-aarch64-linux-gnu \
+  gcc-sparc64-linux-gnu \
+  libc6-dev-sparc64-cross \
+  bzip2 \
+  patch \
+  libssl-dev \
+  pkg-config \
+  gcc-arm-none-eabi \
+  libnewlib-arm-none-eabi
+
+WORKDIR /build
+
+COPY dist-various-1/build-rumprun.sh /build
+RUN ./build-rumprun.sh
+
+COPY dist-various-1/install-x86_64-redox.sh /build
+RUN ./install-x86_64-redox.sh
+
+COPY dist-various-1/install-mips-musl.sh /build
+RUN ./install-mips-musl.sh
+
+COPY dist-various-1/install-mipsel-musl.sh /build
+RUN ./install-mipsel-musl.sh
+
+# Suppress some warnings in the openwrt toolchains we downloaded
+ENV STAGING_DIR=/tmp
+
+COPY scripts/musl.sh /build
+RUN env \
+    CC=arm-linux-gnueabi-gcc CFLAGS="-march=armv5te -marm -mfloat-abi=soft" \
+    CXX=arm-linux-gnueabi-g++ CXXFLAGS="-march=armv5te -marm -mfloat-abi=soft" \
+    bash musl.sh armv5te && \
+    env \
+    CC=arm-linux-gnueabi-gcc CFLAGS="-march=armv6 -marm" \
+    CXX=arm-linux-gnueabi-g++ CXXFLAGS="-march=armv6 -marm" \
+    bash musl.sh arm && \
+    env \
+    CC=arm-linux-gnueabihf-gcc CFLAGS="-march=armv6 -marm" \
+    CXX=arm-linux-gnueabihf-g++ CXXFLAGS="-march=armv6 -marm" \
+    bash musl.sh armhf && \
+    env \
+    CC=arm-linux-gnueabihf-gcc CFLAGS="-march=armv7-a" \
+    CXX=arm-linux-gnueabihf-g++ CXXFLAGS="-march=armv7-a" \
+    bash musl.sh armv7 && \
+    env \
+    CC=aarch64-linux-gnu-gcc \
+    CXX=aarch64-linux-gnu-g++ \
+    bash musl.sh aarch64 && \
+    env \
+    CC=mips-openwrt-linux-gcc \
+    CXX=mips-openwrt-linux-g++ \
+    bash musl.sh mips && \
+    env \
+    CC=mipsel-openwrt-linux-gcc \
+    CXX=mipsel-openwrt-linux-g++ \
+    bash musl.sh mipsel && \
+    rm -rf /build/*
+
+# FIXME(mozilla/sccache#235) this shouldn't be necessary but is currently
+# necessary to disambiguate the mips compiler with the mipsel compiler. We want
+# to give these two wrapper scripts (currently identical ones) different hashes
+# to ensure that sccache understands that they're different compilers.
+RUN \
+  echo "# a" >> /usr/local/mips-linux-musl/bin/mips-openwrt-linux-musl-wrapper.sh && \
+  echo "# b" >> /usr/local/mipsel-linux-musl/bin/mipsel-openwrt-linux-musl-wrapper.sh
+
+ENV TARGETS=asmjs-unknown-emscripten
+ENV TARGETS=$TARGETS,wasm32-unknown-emscripten
+ENV TARGETS=$TARGETS,x86_64-rumprun-netbsd
+ENV TARGETS=$TARGETS,mips-unknown-linux-musl
+ENV TARGETS=$TARGETS,mipsel-unknown-linux-musl
+ENV TARGETS=$TARGETS,arm-unknown-linux-musleabi
+ENV TARGETS=$TARGETS,arm-unknown-linux-musleabihf
+ENV TARGETS=$TARGETS,armv5te-unknown-linux-gnueabi
+ENV TARGETS=$TARGETS,armv5te-unknown-linux-musleabi
+ENV TARGETS=$TARGETS,armv7-unknown-linux-musleabihf
+ENV TARGETS=$TARGETS,aarch64-unknown-linux-musl
+ENV TARGETS=$TARGETS,sparc64-unknown-linux-gnu
+ENV TARGETS=$TARGETS,x86_64-unknown-redox
+ENV TARGETS=$TARGETS,thumbv6m-none-eabi
+ENV TARGETS=$TARGETS,thumbv7m-none-eabi
+ENV TARGETS=$TARGETS,thumbv7em-none-eabi
+ENV TARGETS=$TARGETS,thumbv7em-none-eabihf
+
+# FIXME: remove armv5te vars after https://github.com/alexcrichton/cc-rs/issues/271
+#        get fixed and cc update
+ENV CC_mipsel_unknown_linux_musl=mipsel-openwrt-linux-gcc \
+    CC_mips_unknown_linux_musl=mips-openwrt-linux-gcc \
+    CC_sparc64_unknown_linux_gnu=sparc64-linux-gnu-gcc \
+    CC_x86_64_unknown_redox=x86_64-unknown-redox-gcc \
+    CC_armv5te_unknown_linux_gnueabi=arm-linux-gnueabi-gcc \
+    CFLAGS_armv5te_unknown_linux_gnueabi="-march=armv5te -marm -mfloat-abi=soft" \
+    CC_armv5te_unknown_linux_musleabi=arm-linux-gnueabi-gcc \
+    CFLAGS_armv5te_unknown_linux_musleabi="-march=armv5te -marm -mfloat-abi=soft"
+
+ENV RUST_CONFIGURE_ARGS \
+      --musl-root-armv5te=/musl-armv5te \
+      --musl-root-arm=/musl-arm \
+      --musl-root-armhf=/musl-armhf \
+      --musl-root-armv7=/musl-armv7 \
+      --musl-root-aarch64=/musl-aarch64 \
+      --musl-root-mips=/musl-mips \
+      --musl-root-mipsel=/musl-mipsel \
+      --enable-emscripten \
+      --disable-docs
+
+ENV SCRIPT python2.7 ../x.py dist --target $TARGETS
+
+# sccache
+COPY scripts/sccache.sh /scripts/
+RUN sh /scripts/sccache.sh