]> git.proxmox.com Git - rustc.git/blame - src/ci/docker/host-x86_64/dist-various-1/Dockerfile
Merge tag 'debian/1.52.1+dfsg1-1_exp2' into proxmox/buster
[rustc.git] / src / ci / docker / host-x86_64 / dist-various-1 / Dockerfile
CommitLineData
5869c6ff 1FROM ubuntu:20.04
476ff2be 2
5869c6ff 3RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
476ff2be 4 g++ \
dfeec247
XL
5 automake \
6 bison \
7 bzip2 \
8 flex \
9 help2man \
10 libtool-bin \
11 texinfo \
12 unzip \
13 wget \
14 xz-utils \
15 libncurses-dev \
16 gawk \
476ff2be 17 make \
1b1a35ee 18 ninja-build \
476ff2be
SL
19 file \
20 curl \
21 ca-certificates \
dfeec247 22 python3 \
476ff2be
SL
23 git \
24 cmake \
476ff2be 25 sudo \
32a655c1
SL
26 xz-utils \
27 zlib1g-dev \
28 g++-arm-linux-gnueabi \
29 g++-arm-linux-gnueabihf \
ea8adc8c 30 g++-aarch64-linux-gnu \
e74abb32
XL
31 g++-mips64-linux-gnuabi64 \
32 g++-mips64el-linux-gnuabi64 \
5869c6ff 33 gcc-arm-none-eabi \
8bb4bdeb
XL
34 gcc-sparc64-linux-gnu \
35 libc6-dev-sparc64-cross \
32a655c1 36 bzip2 \
8bb4bdeb
XL
37 patch \
38 libssl-dev \
83c7162d 39 pkg-config \
a1dfa0c6 40 libnewlib-arm-none-eabi \
0731742a
XL
41 qemu-system-arm \
42# software-properties-common for the add-apt-repository command
43 software-properties-common
476ff2be 44
2c00a5a8 45WORKDIR /build
476ff2be 46
f035d41b 47COPY host-x86_64/dist-various-1/install-x86_64-redox.sh /build
2c00a5a8 48RUN ./install-x86_64-redox.sh
476ff2be 49
f035d41b 50COPY host-x86_64/dist-various-1/install-mips-musl.sh /build
7cac9316 51RUN ./install-mips-musl.sh
476ff2be 52
f035d41b 53COPY host-x86_64/dist-various-1/install-mipsel-musl.sh /build
7cac9316 54RUN ./install-mipsel-musl.sh
32a655c1 55
f035d41b 56COPY host-x86_64/dist-various-1/install-aarch64-none-elf.sh /build
ba9703b0
XL
57RUN ./install-aarch64-none-elf.sh
58
2c00a5a8
XL
59# Suppress some warnings in the openwrt toolchains we downloaded
60ENV STAGING_DIR=/tmp
61
62COPY scripts/musl.sh /build
63RUN env \
83c7162d
XL
64 CC=arm-linux-gnueabi-gcc CFLAGS="-march=armv5te -marm -mfloat-abi=soft" \
65 CXX=arm-linux-gnueabi-g++ CXXFLAGS="-march=armv5te -marm -mfloat-abi=soft" \
66 bash musl.sh armv5te && \
67 env \
2c00a5a8
XL
68 CC=arm-linux-gnueabi-gcc CFLAGS="-march=armv6 -marm" \
69 CXX=arm-linux-gnueabi-g++ CXXFLAGS="-march=armv6 -marm" \
70 bash musl.sh arm && \
71 env \
0731742a
XL
72 CC=arm-linux-gnueabihf-gcc CFLAGS="-march=armv6 -marm -mfpu=vfp" \
73 CXX=arm-linux-gnueabihf-g++ CXXFLAGS="-march=armv6 -marm -mfpu=vfp" \
2c00a5a8
XL
74 bash musl.sh armhf && \
75 env \
76 CC=arm-linux-gnueabihf-gcc CFLAGS="-march=armv7-a" \
77 CXX=arm-linux-gnueabihf-g++ CXXFLAGS="-march=armv7-a" \
416331ca 78 bash musl.sh armv7hf && \
2c00a5a8 79 env \
2c00a5a8
XL
80 CC=mips-openwrt-linux-gcc \
81 CXX=mips-openwrt-linux-g++ \
82 bash musl.sh mips && \
83 env \
84 CC=mipsel-openwrt-linux-gcc \
85 CXX=mipsel-openwrt-linux-g++ \
86 bash musl.sh mipsel && \
e74abb32
XL
87 env \
88 CC=mips64-linux-gnuabi64-gcc \
89 CXX=mips64-linux-gnuabi64-g++ \
90 bash musl.sh mips64 && \
91 env \
92 CC=mips64el-linux-gnuabi64-gcc \
93 CXX=mips64el-linux-gnuabi64-g++ \
94 bash musl.sh mips64el && \
2c00a5a8 95 rm -rf /build/*
3b2f2976 96
83c7162d
XL
97# FIXME(mozilla/sccache#235) this shouldn't be necessary but is currently
98# necessary to disambiguate the mips compiler with the mipsel compiler. We want
99# to give these two wrapper scripts (currently identical ones) different hashes
100# to ensure that sccache understands that they're different compilers.
101RUN \
102 echo "# a" >> /usr/local/mips-linux-musl/bin/mips-openwrt-linux-musl-wrapper.sh && \
103 echo "# b" >> /usr/local/mipsel-linux-musl/bin/mipsel-openwrt-linux-musl-wrapper.sh
104
8faf50e0
XL
105ENV RUN_MAKE_TARGETS=thumbv6m-none-eabi
106ENV RUN_MAKE_TARGETS=$RUN_MAKE_TARGETS,thumbv7m-none-eabi
107ENV RUN_MAKE_TARGETS=$RUN_MAKE_TARGETS,thumbv7em-none-eabi
108ENV RUN_MAKE_TARGETS=$RUN_MAKE_TARGETS,thumbv7em-none-eabihf
109
32a655c1
SL
110ENV TARGETS=asmjs-unknown-emscripten
111ENV TARGETS=$TARGETS,wasm32-unknown-emscripten
32a655c1
SL
112ENV TARGETS=$TARGETS,mips-unknown-linux-musl
113ENV TARGETS=$TARGETS,mipsel-unknown-linux-musl
e74abb32
XL
114ENV TARGETS=$TARGETS,mips64-unknown-linux-muslabi64
115ENV TARGETS=$TARGETS,mips64el-unknown-linux-muslabi64
32a655c1
SL
116ENV TARGETS=$TARGETS,arm-unknown-linux-musleabi
117ENV TARGETS=$TARGETS,arm-unknown-linux-musleabihf
ff7c6d11 118ENV TARGETS=$TARGETS,armv5te-unknown-linux-gnueabi
83c7162d 119ENV TARGETS=$TARGETS,armv5te-unknown-linux-musleabi
32a655c1 120ENV TARGETS=$TARGETS,armv7-unknown-linux-musleabihf
ba9703b0
XL
121ENV TARGETS=$TARGETS,aarch64-unknown-none
122ENV TARGETS=$TARGETS,aarch64-unknown-none-softfloat
8bb4bdeb 123ENV TARGETS=$TARGETS,sparc64-unknown-linux-gnu
e1599b0c 124ENV TARGETS=$TARGETS,x86_64-unknown-redox
83c7162d
XL
125ENV TARGETS=$TARGETS,thumbv6m-none-eabi
126ENV TARGETS=$TARGETS,thumbv7m-none-eabi
127ENV TARGETS=$TARGETS,thumbv7em-none-eabi
128ENV TARGETS=$TARGETS,thumbv7em-none-eabihf
532ac7d7 129ENV TARGETS=$TARGETS,thumbv8m.base-none-eabi
0731742a 130ENV TARGETS=$TARGETS,thumbv8m.main-none-eabi
532ac7d7 131ENV TARGETS=$TARGETS,thumbv8m.main-none-eabihf
416331ca 132ENV TARGETS=$TARGETS,riscv32i-unknown-none-elf
b7449926
XL
133ENV TARGETS=$TARGETS,riscv32imc-unknown-none-elf
134ENV TARGETS=$TARGETS,riscv32imac-unknown-none-elf
9fa01778
XL
135ENV TARGETS=$TARGETS,riscv64imac-unknown-none-elf
136ENV TARGETS=$TARGETS,riscv64gc-unknown-none-elf
b7449926
XL
137ENV TARGETS=$TARGETS,armebv7r-none-eabi
138ENV TARGETS=$TARGETS,armebv7r-none-eabihf
139ENV TARGETS=$TARGETS,armv7r-none-eabi
140ENV TARGETS=$TARGETS,armv7r-none-eabihf
0731742a 141ENV TARGETS=$TARGETS,thumbv7neon-unknown-linux-gnueabihf
dfeec247 142ENV TARGETS=$TARGETS,armv7a-none-eabi
476ff2be 143
60c5eb7d
XL
144# riscv targets currently do not need a C compiler, as compiler_builtins
145# doesn't currently have it enabled, and the riscv gcc compiler is not
146# installed.
32a655c1 147ENV CC_mipsel_unknown_linux_musl=mipsel-openwrt-linux-gcc \
8bb4bdeb 148 CC_mips_unknown_linux_musl=mips-openwrt-linux-gcc \
e74abb32
XL
149 CC_mips64el_unknown_linux_muslabi64=mips64el-linux-gnuabi64-gcc \
150 CC_mips64_unknown_linux_muslabi64=mips64-linux-gnuabi64-gcc \
3b2f2976 151 CC_sparc64_unknown_linux_gnu=sparc64-linux-gnu-gcc \
b7449926 152 CC_x86_64_unknown_redox=x86_64-unknown-redox-gcc \
0731742a
XL
153 CC_thumbv7neon_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc \
154 AR_thumbv7neon_unknown_linux_gnueabihf=arm-linux-gnueabihf-ar \
60c5eb7d 155 CXX_thumbv7neon_unknown_linux_gnueabihf=arm-linux-gnueabihf-g++ \
dfeec247
XL
156 CC_armv7a_none_eabi=arm-none-eabi-gcc \
157 CC_armv7a_none_eabihf=arm-none-eabi-gcc \
158 CFLAGS_armv7a_none_eabi=-march=armv7-a \
159 CFLAGS_armv7a_none_eabihf=-march=armv7-a+vfpv3 \
ba9703b0
XL
160 CC_aarch64_unknown_none_softfloat=aarch64-none-elf-gcc \
161 CFLAGS_aarch64_unknown_none_softfloat=-mstrict-align -march=armv8-a+nofp+nosimd \
162 CC_aarch64_unknown_none=aarch64-none-elf-gcc \
163 CFLAGS_aarch64_unknown_none=-mstrict-align -march=armv8-a+fp+simd \
60c5eb7d
XL
164 CC_riscv32i_unknown_none_elf=false \
165 CC_riscv32imc_unknown_none_elf=false \
166 CC_riscv32imac_unknown_none_elf=false \
167 CC_riscv64imac_unknown_none_elf=false \
168 CC_riscv64gc_unknown_none_elf=false
e1599b0c 169
32a655c1 170ENV RUST_CONFIGURE_ARGS \
83c7162d 171 --musl-root-armv5te=/musl-armv5te \
2c00a5a8
XL
172 --musl-root-arm=/musl-arm \
173 --musl-root-armhf=/musl-armhf \
416331ca 174 --musl-root-armv7hf=/musl-armv7hf \
2c00a5a8
XL
175 --musl-root-mips=/musl-mips \
176 --musl-root-mipsel=/musl-mipsel \
e74abb32
XL
177 --musl-root-mips64=/musl-mips64 \
178 --musl-root-mips64el=/musl-mips64el \
0531ce1d 179 --disable-docs
2c00a5a8 180
b7449926 181ENV SCRIPT \
1b1a35ee
XL
182 python3 ../x.py --stage 2 test --host='' --target $RUN_MAKE_TARGETS src/test/run-make && \
183 python3 ../x.py dist --host='' --target $TARGETS
7cac9316
XL
184
185# sccache
186COPY scripts/sccache.sh /scripts/
187RUN sh /scripts/sccache.sh