diff options
Diffstat (limited to 'src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile')
-rw-r--r-- | src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile b/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile new file mode 100644 index 000000000..c98fc7dcf --- /dev/null +++ b/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile @@ -0,0 +1,54 @@ +FROM ubuntu:16.04 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + g++-multilib \ + make \ + ninja-build \ + file \ + curl \ + ca-certificates \ + python3 \ + git \ + cmake \ + xz-utils \ + sudo \ + gdb \ + patch \ + libssl-dev \ + pkg-config + +WORKDIR /build/ +COPY scripts/musl.sh /build/ +RUN CC=gcc CFLAGS="-m32 -Wa,-mrelax-relocations=no" \ + CXX=g++ CXXFLAGS="-m32 -Wa,-mrelax-relocations=no" \ + bash musl.sh i686 --target=i686 && \ + CC=gcc CFLAGS="-march=pentium -m32 -Wa,-mrelax-relocations=no" \ + CXX=g++ CXXFLAGS="-march=pentium -m32 -Wa,-mrelax-relocations=no" \ + bash musl.sh i586 --target=i586 && \ + rm -rf /build + +COPY scripts/sccache.sh /scripts/ +RUN sh /scripts/sccache.sh + +COPY scripts/cmake.sh /scripts/ +RUN /scripts/cmake.sh + +ENV RUST_CONFIGURE_ARGS \ + --musl-root-i586=/musl-i586 \ + --musl-root-i686=/musl-i686 \ + --disable-docs + +# Newer binutils broke things on some vms/distros (i.e., linking against +# unknown relocs disabled by the following flag), so we need to go out of our +# way to produce "super compatible" binaries. +# +# See: https://github.com/rust-lang/rust/issues/34978 +ENV CFLAGS_i686_unknown_linux_musl=-Wa,-mrelax-relocations=no +ENV CFLAGS_i586_unknown_linux_gnu=-Wa,-mrelax-relocations=no +ENV CFLAGS_i586_unknown_linux_musl=-Wa,-mrelax-relocations=no + +ENV TARGETS=i586-unknown-linux-gnu,i686-unknown-linux-musl + +ENV SCRIPT \ + python3 ../x.py --stage 2 test --host='' --target $TARGETS && \ + python3 ../x.py dist --host='' --target $TARGETS,i586-unknown-linux-musl |