]>
Commit | Line | Data |
---|---|---|
5869c6ff | 1 | FROM ubuntu:20.04 |
ea8adc8c XL |
2 | |
3 | COPY scripts/cross-apt-packages.sh /scripts/ | |
4 | RUN sh /scripts/cross-apt-packages.sh | |
5 | ||
48663c56 XL |
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 \ | |
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 | |
29 | RUN apt-key adv --batch --yes --keyserver keyserver.ubuntu.com --recv-keys 74DA7924C5513486 | |
136023e0 | 30 | RUN add-apt-repository -y 'deb https://apt.dilos.org/dilos dilos2 main' |
ea8adc8c | 31 | |
f035d41b XL |
32 | ENV \ |
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 |
61 | WORKDIR /build |
62 | COPY scripts/musl.sh /build | |
63 | RUN 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 | 69 | WORKDIR /tmp |
f035d41b | 70 | COPY host-x86_64/dist-various-2/shared.sh /tmp/ |
f035d41b | 71 | COPY host-x86_64/dist-various-2/build-fuchsia-toolchain.sh /tmp/ |
ea8adc8c | 72 | RUN /tmp/build-fuchsia-toolchain.sh |
f035d41b | 73 | COPY host-x86_64/dist-various-2/build-solaris-toolchain.sh /tmp/ |
cdc7bbd5 XL |
74 | RUN /tmp/build-solaris-toolchain.sh x86_64 amd64 solaris-i386 pc |
75 | # Build deprecated target 'x86_64-sun-solaris2.10' until removed | |
76 | RUN /tmp/build-solaris-toolchain.sh x86_64 amd64 solaris-i386 sun | |
77 | RUN /tmp/build-solaris-toolchain.sh sparcv9 sparcv9 solaris-sparc sun | |
f035d41b | 78 | COPY host-x86_64/dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh /tmp/ |
f035d41b | 79 | RUN /tmp/build-x86_64-fortanix-unknown-sgx-toolchain.sh |
ea8adc8c | 80 | |
f035d41b | 81 | COPY host-x86_64/dist-various-2/build-wasi-toolchain.sh /tmp/ |
532ac7d7 XL |
82 | RUN /tmp/build-wasi-toolchain.sh |
83 | ||
29967ef6 XL |
84 | COPY scripts/freebsd-toolchain.sh /tmp/ |
85 | RUN /tmp/freebsd-toolchain.sh i686 | |
86 | ||
ea8adc8c XL |
87 | COPY scripts/sccache.sh /scripts/ |
88 | RUN sh /scripts/sccache.sh | |
89 | ||
a1dfa0c6 XL |
90 | ENV CARGO_TARGET_X86_64_FUCHSIA_AR /usr/local/bin/llvm-ar |
91 | ENV 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 | |
95 | ENV CARGO_TARGET_AARCH64_FUCHSIA_AR /usr/local/bin/llvm-ar | |
96 | ENV 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 |
101 | ENV TARGETS=x86_64-fuchsia |
102 | ENV TARGETS=$TARGETS,aarch64-fuchsia | |
ff7c6d11 | 103 | ENV TARGETS=$TARGETS,wasm32-unknown-unknown |
48663c56 | 104 | ENV TARGETS=$TARGETS,wasm32-wasi |
dc9dc135 | 105 | ENV TARGETS=$TARGETS,sparcv9-sun-solaris |
6a06907d | 106 | ENV TARGETS=$TARGETS,x86_64-pc-solaris |
cdc7bbd5 | 107 | ENV TARGETS=$TARGETS,x86_64-sun-solaris |
abe05a73 | 108 | ENV TARGETS=$TARGETS,x86_64-unknown-linux-gnux32 |
0731742a | 109 | ENV TARGETS=$TARGETS,x86_64-fortanix-unknown-sgx |
9fa01778 | 110 | ENV TARGETS=$TARGETS,nvptx64-nvidia-cuda |
416331ca XL |
111 | ENV TARGETS=$TARGETS,armv7-unknown-linux-gnueabi |
112 | ENV TARGETS=$TARGETS,armv7-unknown-linux-musleabi | |
29967ef6 | 113 | ENV TARGETS=$TARGETS,i686-unknown-freebsd |
04454e1e | 114 | ENV 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 | |
120 | RUN ln -s /usr/include/asm-generic /usr/local/include/asm | |
121 | ||
532ac7d7 | 122 | ENV 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 | 126 | ENV SCRIPT python3 ../x.py dist --host='' --target $TARGETS |