]> git.proxmox.com Git - rustc.git/blame - src/ci/docker/host-x86_64/dist-various-2/Dockerfile
New upstream version 1.63.0+dfsg1
[rustc.git] / src / ci / docker / host-x86_64 / dist-various-2 / Dockerfile
CommitLineData
5869c6ff 1FROM ubuntu:20.04
ea8adc8c
XL
2
3COPY scripts/cross-apt-packages.sh /scripts/
4RUN sh /scripts/cross-apt-packages.sh
5
48663c56
XL
6# Enable source repositories, which are disabled by default on Ubuntu >= 18.04
7RUN sed -i 's/^# deb-src/deb-src/' /etc/apt/sources.list
8
9RUN apt-get update && apt-get build-dep -y clang llvm && apt-get install -y --no-install-recommends \
ea8adc8c 10 build-essential \
416331ca 11# gcc-multilib can not be installed together with gcc-arm-linux-gnueabi
5869c6ff 12 g++-8-multilib \
ea8adc8c
XL
13 libedit-dev \
14 libgmp-dev \
15 libisl-dev \
16 libmpc-dev \
17 libmpfr-dev \
5869c6ff 18 libtinfo5 \
ea8adc8c
XL
19 ninja-build \
20 nodejs \
ba9703b0 21 python3-dev \
ea8adc8c 22 software-properties-common \
48663c56
XL
23 unzip \
24 # Needed for apt-key to work:
25 dirmngr \
416331ca 26 gpg-agent \
5869c6ff 27 g++-8-arm-linux-gnueabi
ea8adc8c
XL
28
29RUN apt-key adv --batch --yes --keyserver keyserver.ubuntu.com --recv-keys 74DA7924C5513486
136023e0 30RUN add-apt-repository -y 'deb https://apt.dilos.org/dilos dilos2 main'
ea8adc8c 31
f035d41b
XL
32ENV \
33 AR_x86_64_fuchsia=x86_64-fuchsia-ar \
34 CC_x86_64_fuchsia=x86_64-fuchsia-clang \
35 CXX_x86_64_fuchsia=x86_64-fuchsia-clang++ \
36 AR_aarch64_fuchsia=aarch64-fuchsia-ar \
37 CC_aarch64_fuchsia=aarch64-fuchsia-clang \
38 CXX_aarch64_fuchsia=aarch64-fuchsia-clang++ \
39 AR_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-ar \
40 CC_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-gcc \
41 CXX_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-g++ \
6a06907d
XL
42 AR_x86_64_pc_solaris=x86_64-pc-solaris2.10-ar \
43 CC_x86_64_pc_solaris=x86_64-pc-solaris2.10-gcc \
44 CXX_x86_64_pc_solaris=x86_64-pc-solaris2.10-g++ \
cdc7bbd5
XL
45 AR_x86_64_sun_solaris=x86_64-sun-solaris2.10-ar \
46 CC_x86_64_sun_solaris=x86_64-sun-solaris2.10-gcc \
47 CXX_x86_64_sun_solaris=x86_64-sun-solaris2.10-g++ \
5869c6ff
XL
48 CC_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-gcc-8 \
49 CXX_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-g++-8 \
f035d41b 50 AR_x86_64_fortanix_unknown_sgx=ar \
6a06907d
XL
51 CC_x86_64_fortanix_unknown_sgx=clang-11 \
52 CFLAGS_x86_64_fortanix_unknown_sgx="-D__ELF__ -isystem/usr/include/x86_64-linux-gnu -mlvi-hardening -mllvm -x86-experimental-lvi-inline-asm-hardening" \
53 CXX_x86_64_fortanix_unknown_sgx=clang++-11 \
54 CXXFLAGS_x86_64_fortanix_unknown_sgx="-D__ELF__ -isystem/usr/include/x86_64-linux-gnu -mlvi-hardening -mllvm -x86-experimental-lvi-inline-asm-hardening" \
923072b8
FG
55 AR_i686_unknown_freebsd=i686-unknown-freebsd12-ar \
56 CC_i686_unknown_freebsd=i686-unknown-freebsd12-clang \
57 CXX_i686_unknown_freebsd=i686-unknown-freebsd12-clang++ \
5869c6ff
XL
58 CC=gcc-8 \
59 CXX=g++-8
f035d41b 60
416331ca
XL
61WORKDIR /build
62COPY scripts/musl.sh /build
63RUN env \
5869c6ff
XL
64 CC=arm-linux-gnueabi-gcc-8 CFLAGS="-march=armv7-a" \
65 CXX=arm-linux-gnueabi-g++-8 CXXFLAGS="-march=armv7-a" \
416331ca
XL
66 bash musl.sh armv7 && \
67 rm -rf /build/*
68
ea8adc8c 69WORKDIR /tmp
f035d41b 70COPY host-x86_64/dist-various-2/shared.sh /tmp/
f035d41b 71COPY host-x86_64/dist-various-2/build-fuchsia-toolchain.sh /tmp/
ea8adc8c 72RUN /tmp/build-fuchsia-toolchain.sh
f035d41b 73COPY host-x86_64/dist-various-2/build-solaris-toolchain.sh /tmp/
cdc7bbd5
XL
74RUN /tmp/build-solaris-toolchain.sh x86_64 amd64 solaris-i386 pc
75# Build deprecated target 'x86_64-sun-solaris2.10' until removed
76RUN /tmp/build-solaris-toolchain.sh x86_64 amd64 solaris-i386 sun
77RUN /tmp/build-solaris-toolchain.sh sparcv9 sparcv9 solaris-sparc sun
f035d41b 78COPY host-x86_64/dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh /tmp/
f035d41b 79RUN /tmp/build-x86_64-fortanix-unknown-sgx-toolchain.sh
ea8adc8c 80
f035d41b 81COPY host-x86_64/dist-various-2/build-wasi-toolchain.sh /tmp/
532ac7d7
XL
82RUN /tmp/build-wasi-toolchain.sh
83
29967ef6
XL
84COPY scripts/freebsd-toolchain.sh /tmp/
85RUN /tmp/freebsd-toolchain.sh i686
86
ea8adc8c
XL
87COPY scripts/sccache.sh /scripts/
88RUN sh /scripts/sccache.sh
89
a1dfa0c6
XL
90ENV CARGO_TARGET_X86_64_FUCHSIA_AR /usr/local/bin/llvm-ar
91ENV CARGO_TARGET_X86_64_FUCHSIA_RUSTFLAGS \
92-C link-arg=--sysroot=/usr/local/x86_64-fuchsia \
93-C link-arg=-L/usr/local/x86_64-fuchsia/lib \
94-C link-arg=-L/usr/local/lib/x86_64-fuchsia/lib
95ENV CARGO_TARGET_AARCH64_FUCHSIA_AR /usr/local/bin/llvm-ar
96ENV CARGO_TARGET_AARCH64_FUCHSIA_RUSTFLAGS \
97-C link-arg=--sysroot=/usr/local/aarch64-fuchsia \
98-C link-arg=-L/usr/local/aarch64-fuchsia/lib \
99-C link-arg=-L/usr/local/lib/aarch64-fuchsia/lib
100
8faf50e0
XL
101ENV TARGETS=x86_64-fuchsia
102ENV TARGETS=$TARGETS,aarch64-fuchsia
ff7c6d11 103ENV TARGETS=$TARGETS,wasm32-unknown-unknown
48663c56 104ENV TARGETS=$TARGETS,wasm32-wasi
dc9dc135 105ENV TARGETS=$TARGETS,sparcv9-sun-solaris
6a06907d 106ENV TARGETS=$TARGETS,x86_64-pc-solaris
cdc7bbd5 107ENV TARGETS=$TARGETS,x86_64-sun-solaris
abe05a73 108ENV TARGETS=$TARGETS,x86_64-unknown-linux-gnux32
0731742a 109ENV TARGETS=$TARGETS,x86_64-fortanix-unknown-sgx
9fa01778 110ENV TARGETS=$TARGETS,nvptx64-nvidia-cuda
416331ca
XL
111ENV TARGETS=$TARGETS,armv7-unknown-linux-gnueabi
112ENV TARGETS=$TARGETS,armv7-unknown-linux-musleabi
29967ef6 113ENV TARGETS=$TARGETS,i686-unknown-freebsd
04454e1e 114ENV TARGETS=$TARGETS,x86_64-unknown-none
0731742a 115
416331ca 116# As per https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1300211
5869c6ff 117# we need asm in the search path for gcc-8 (for gnux32) but not in the search path of the
416331ca
XL
118# cross compilers.
119# Luckily one of the folders is /usr/local/include so symlink /usr/include/asm-generic there
120RUN ln -s /usr/include/asm-generic /usr/local/include/asm
121
532ac7d7 122ENV RUST_CONFIGURE_ARGS --enable-extended --enable-lld --disable-docs \
416331ca
XL
123 --set target.wasm32-wasi.wasi-root=/wasm32-wasi \
124 --musl-root-armv7=/musl-armv7
125
1b1a35ee 126ENV SCRIPT python3 ../x.py dist --host='' --target $TARGETS