diff options
| author | Hideki Sekine <sekineh@me.com> | 2018-06-24 10:09:25 +0900 |
|---|---|---|
| committer | Hideki Sekine <sekineh@me.com> | 2018-07-08 23:30:34 +0900 |
| commit | c3e2ff8f22bb6978f48ec6dbb3710984eea43ee6 (patch) | |
| tree | 568cfa72adf13e53b8a67eb5936c823ba4bf2348 /src/ci | |
| parent | 0c0315cfd9750db7793b83bc59dfd353c5dd1624 (diff) | |
| download | rust-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/Dockerfile | 127 |
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 |
