]> git.lizzy.rs Git - rust.git/blob - src/ci/docker/dist-various-2/Dockerfile
Use xcode 9.3 on all osx builders
[rust.git] / src / ci / docker / dist-various-2 / Dockerfile
1 FROM ubuntu:18.04
2
3 COPY scripts/cross-apt-packages.sh /scripts/
4 RUN sh /scripts/cross-apt-packages.sh
5
6 # Enable source repositories, which are disabled by default on Ubuntu >= 18.04
7 RUN sed -i 's/^# deb-src/deb-src/' /etc/apt/sources.list
8
9 RUN apt-get update && apt-get build-dep -y clang llvm && apt-get install -y --no-install-recommends \
10   build-essential \
11   gcc-multilib \
12   libedit-dev \
13   libgmp-dev \
14   libisl-dev \
15   libmpc-dev \
16   libmpfr-dev \
17   ninja-build \
18   nodejs \
19   python2.7-dev \
20   software-properties-common \
21   unzip \
22   # Needed for apt-key to work:
23   dirmngr \
24   gpg-agent
25
26 RUN apt-key adv --batch --yes --keyserver keyserver.ubuntu.com --recv-keys 74DA7924C5513486
27 RUN add-apt-repository -y 'deb http://apt.dilos.org/dilos dilos2-testing main'
28
29 WORKDIR /tmp
30 COPY dist-various-2/shared.sh /tmp/
31 COPY dist-various-2/build-cloudabi-toolchain.sh /tmp/
32 RUN /tmp/build-cloudabi-toolchain.sh x86_64-unknown-cloudabi
33 COPY dist-various-2/build-fuchsia-toolchain.sh /tmp/
34 RUN /tmp/build-fuchsia-toolchain.sh
35 COPY dist-various-2/build-solaris-toolchain.sh /tmp/
36 RUN /tmp/build-solaris-toolchain.sh x86_64  amd64   solaris-i386
37 RUN /tmp/build-solaris-toolchain.sh sparcv9 sparcv9 solaris-sparc
38 COPY dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh /tmp/
39 # We pass the commit id of the port of LLVM's libunwind to the build script.
40 # Any update to the commit id here, should cause the container image to be re-built from this point on.
41 RUN /tmp/build-x86_64-fortanix-unknown-sgx-toolchain.sh "53b586346f2c7870e20b170decdc30729d97c42b"
42
43 COPY dist-various-2/build-wasi-toolchain.sh /tmp/
44 RUN /tmp/build-wasi-toolchain.sh
45
46 COPY scripts/sccache.sh /scripts/
47 RUN sh /scripts/sccache.sh
48
49 ENV \
50     AR_x86_64_fuchsia=x86_64-fuchsia-ar \
51     CC_x86_64_fuchsia=x86_64-fuchsia-clang \
52     CXX_x86_64_fuchsia=x86_64-fuchsia-clang++ \
53     AR_aarch64_fuchsia=aarch64-fuchsia-ar \
54     CC_aarch64_fuchsia=aarch64-fuchsia-clang \
55     CXX_aarch64_fuchsia=aarch64-fuchsia-clang++ \
56     AR_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-ar \
57     CC_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-gcc \
58     CXX_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-g++ \
59     AR_x86_64_sun_solaris=x86_64-sun-solaris2.10-ar \
60     CC_x86_64_sun_solaris=x86_64-sun-solaris2.10-gcc \
61     CXX_x86_64_sun_solaris=x86_64-sun-solaris2.10-g++
62
63 ENV CARGO_TARGET_X86_64_FUCHSIA_AR /usr/local/bin/llvm-ar
64 ENV CARGO_TARGET_X86_64_FUCHSIA_RUSTFLAGS \
65 -C link-arg=--sysroot=/usr/local/x86_64-fuchsia \
66 -C link-arg=-L/usr/local/x86_64-fuchsia/lib \
67 -C link-arg=-L/usr/local/lib/x86_64-fuchsia/lib
68 ENV CARGO_TARGET_AARCH64_FUCHSIA_AR /usr/local/bin/llvm-ar
69 ENV CARGO_TARGET_AARCH64_FUCHSIA_RUSTFLAGS \
70 -C link-arg=--sysroot=/usr/local/aarch64-fuchsia \
71 -C link-arg=-L/usr/local/aarch64-fuchsia/lib \
72 -C link-arg=-L/usr/local/lib/aarch64-fuchsia/lib
73
74 ENV TARGETS=x86_64-fuchsia
75 ENV TARGETS=$TARGETS,aarch64-fuchsia
76 ENV TARGETS=$TARGETS,sparcv9-sun-solaris
77 ENV TARGETS=$TARGETS,wasm32-unknown-unknown
78 ENV TARGETS=$TARGETS,wasm32-unknown-wasi
79 ENV TARGETS=$TARGETS,x86_64-sun-solaris
80 ENV TARGETS=$TARGETS,x86_64-unknown-linux-gnux32
81 ENV TARGETS=$TARGETS,x86_64-unknown-cloudabi
82 ENV TARGETS=$TARGETS,x86_64-fortanix-unknown-sgx
83 ENV TARGETS=$TARGETS,nvptx64-nvidia-cuda
84
85 ENV X86_FORTANIX_SGX_LIBS="/x86_64-fortanix-unknown-sgx/lib/"
86
87 ENV RUST_CONFIGURE_ARGS --enable-extended --enable-lld --disable-docs \
88   --set target.wasm32-unknown-wasi.wasi-root=/wasm32-unknown-wasi
89 ENV SCRIPT python2.7 ../x.py dist --target $TARGETS