]> git.lizzy.rs Git - rust.git/blob - src/ci/docker/host-x86_64/dist-x86_64-musl/Dockerfile
c026506b106618709844c4d7daa534eb9440cb99
[rust.git] / src / ci / docker / host-x86_64 / dist-x86_64-musl / Dockerfile
1 FROM ubuntu:16.04
2
3 RUN apt-get update && apt-get install -y --no-install-recommends \
4   g++ \
5   make \
6   file \
7   wget \
8   curl \
9   ca-certificates \
10   python3 \
11   git \
12   cmake \
13   xz-utils \
14   sudo \
15   gdb \
16   patch \
17   libssl-dev \
18   pkg-config
19
20 WORKDIR /build/
21
22 COPY scripts/musl-toolchain.sh /build/
23 # We need to mitigate rust-lang/rust#34978 when compiling musl itself as well
24 RUN CFLAGS="-Wa,-mrelax-relocations=no -Wa,--compress-debug-sections=none -Wl,--compress-debug-sections=none" \
25     CXXFLAGS="-Wa,-mrelax-relocations=no -Wa,--compress-debug-sections=none -Wl,--compress-debug-sections=none" \
26     REPLACE_CC=1 bash musl-toolchain.sh x86_64 && rm -rf build
27
28 COPY scripts/sccache.sh /scripts/
29 RUN sh /scripts/sccache.sh
30
31 ENV HOSTS=x86_64-unknown-linux-musl
32
33 ENV RUST_CONFIGURE_ARGS \
34       --musl-root-x86_64=/usr/local/x86_64-linux-musl \
35       --enable-extended \
36       --disable-docs \
37       --enable-lld \
38       --set target.x86_64-unknown-linux-musl.crt-static=false \
39       --build $HOSTS
40
41 # Newer binutils broke things on some vms/distros (i.e., linking against
42 # unknown relocs disabled by the following flag), so we need to go out of our
43 # way to produce "super compatible" binaries.
44 #
45 # See: https://github.com/rust-lang/rust/issues/34978
46 # And: https://github.com/rust-lang/rust/issues/59411
47 ENV CFLAGS_x86_64_unknown_linux_musl="-Wa,-mrelax-relocations=no -Wa,--compress-debug-sections=none \
48     -Wl,--compress-debug-sections=none"
49
50 # To run native tests replace `dist` below with `test`
51 ENV SCRIPT python3 ../x.py dist --build $HOSTS