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