22# Fuchsia as an integration test of the toolchain. See the build-fuchsia.sh
33# script in this directory for more details.
44
5- FROM ubuntu:22 .04
5+ FROM ubuntu:26 .04
66
77ARG DEBIAN_FRONTEND=noninteractive
88RUN apt-get update && apt-get install -y --no-install-recommends \
99 build-essential \
10- clang-15 \
10+ clang \
1111 g++ \
12+ g++-aarch64-linux-gnu \
1213 make \
1314 ninja-build \
1415 file \
@@ -26,27 +27,78 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2627
2728# Duplicated in dist-various-2 Dockerfile.
2829ENV \
30+ AR_aarch64_unknown_fuchsia=aarch64-unknown-fuchsia-ar \
31+ CC_aarch64_unknown_fuchsia=aarch64-unknown-fuchsia-clang \
32+ CFLAGS_aarch64_unknown_fuchsia="\
33+ --target=aarch64-unknown-fuchsia \
34+ --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot \
35+ -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
36+ CXX_aarch64_unknown_fuchsia=aarch64-unknown-fuchsia-clang++ \
37+ CXXFLAGS_aarch64_unknown_fuchsia="\
38+ --target=aarch64-unknown-fuchsia \
39+ --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot \
40+ -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
41+ LDFLAGS_aarch64_unknown_fuchsia="\
42+ --target=aarch64-unknown-fuchsia \
43+ --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot \
44+ -L/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/lib" \
45+ AR_riscv64gc_unknown_fuchsia=riscv64gc-unknown-fuchsia-ar \
46+ CC_riscv64gc_unknown_fuchsia=riscv64gc-unknown-fuchsia-clang \
47+ CFLAGS_riscv64gc_unknown_fuchsia="\
48+ --target=riscv64-unknown-fuchsia \
49+ --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/riscv64/sysroot \
50+ -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
51+ CXX_riscv64gc_unknown_fuchsia=riscv64gc-unknown-fuchsia-clang++ \
52+ CXXFLAGS_riscv64gc_unknown_fuchsia="\
53+ --target=riscv64-unknown-fuchsia \
54+ --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/riscv64/sysroot \
55+ -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
56+ LDFLAGS_riscv64gc_unknown_fuchsia="\
57+ --target=riscv64-unknown-fuchsia \
58+ --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/riscv64/sysroot \
59+ -L/usr/local/core-linux-amd64-fuchsia-sdk/arch/riscv64/lib" \
2960 AR_x86_64_unknown_fuchsia=x86_64-unknown-fuchsia-ar \
3061 CC_x86_64_unknown_fuchsia=x86_64-unknown-fuchsia-clang \
31- CFLAGS_x86_64_unknown_fuchsia="--target=x86_64-unknown-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
62+ CFLAGS_x86_64_unknown_fuchsia="\
63+ --target=x86_64-unknown-fuchsia \
64+ --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot \
65+ -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
3266 CXX_x86_64_unknown_fuchsia=x86_64-unknown-fuchsia-clang++ \
33- CXXFLAGS_x86_64_unknown_fuchsia="--target=x86_64-unknown-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
34- LDFLAGS_x86_64_unknown_fuchsia="--target=x86_64-unknown-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot -L/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/lib"
67+ CXXFLAGS_x86_64_unknown_fuchsia="\
68+ --target=x86_64-unknown-fuchsia \
69+ --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot \
70+ -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
71+ LDFLAGS_x86_64_unknown_fuchsia="\
72+ --target=x86_64-unknown-fuchsia \
73+ --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot \
74+ -L/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/lib"
3575
3676WORKDIR /tmp
3777COPY scripts/shared.sh /tmp/
3878COPY scripts/build-fuchsia-toolchain.sh /tmp/
3979RUN /tmp/build-fuchsia-toolchain.sh
4080
41- ENV CARGO_TARGET_X86_64_UNKNOWN_FUCHSIA_AR="/usr/local/bin/llvm-ar"
42- ENV CARGO_TARGET_X86_64_UNKNOWN_FUCHSIA_RUSTFLAGS="-C panic=abort \
43- -C force-unwind-tables=yes \
44- -C link-arg=--sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot \
45- -Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot/lib \
46- -Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/lib"
81+ ENV \
82+ CARGO_TARGET_AARCH64_UNKNOWN_FUCHSIA_AR="/usr/local/bin/llvm-ar" \
83+ CARGO_TARGET_AARCH64_UNKNOWN_FUCHSIA_RUSTFLAGS="-C panic=abort \
84+ -C force-unwind-tables=yes \
85+ -C link-arg=--sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot \
86+ -Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot/lib \
87+ -Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/lib" \
88+ CARGO_TARGET_RISCV64GC_UNKNOWN_FUCHSIA_AR="/usr/local/bin/llvm-ar" \
89+ CARGO_TARGET_RISCV64GC_UNKNOWN_FUCHSIA_RUSTFLAGS="-C panic=abort \
90+ -C force-unwind-tables=yes \
91+ -C link-arg=--sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/riscv64/sysroot \
92+ -Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/riscv64/sysroot/lib \
93+ -Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/riscv64/lib" \
94+ CARGO_TARGET_X86_64_UNKNOWN_FUCHSIA_AR="/usr/local/bin/llvm-ar" \
95+ CARGO_TARGET_X86_64_UNKNOWN_FUCHSIA_RUSTFLAGS="-C panic=abort \
96+ -C force-unwind-tables=yes \
97+ -C link-arg=--sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot \
98+ -Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot/lib \
99+ -Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/lib"
47100
48- ENV TARGETS=x86_64-unknown-fuchsia
49- ENV TARGETS=$TARGETS,x86_64-unknown-linux-gnu
101+ ENV TARGETS=aarch64-unknown-linux-gnu,x86_64-unknown-linux-gnu,aarch64-unknown-fuchsia,riscv64gc-unknown-fuchsia,x86_64-unknown-fuchsia
50102
51103COPY scripts/sccache.sh /scripts/
52104RUN sh /scripts/sccache.sh
@@ -60,17 +112,29 @@ ENV CODEGEN_BACKENDS="llvm"
60112# download-rustc is not allowed for `x install`
61113ENV NO_DOWNLOAD_CI_RUSTC="1"
62114
63- ENV RUST_CONFIGURE_ARGS="--prefix=$RUST_INSTALL_DIR \
64- --sysconfdir=etc \
65- --enable-lld \
66- --llvm-libunwind=in-tree \
67- --enable-extended \
68- --disable-docs \
69- --set target.x86_64-unknown-fuchsia.cc=/usr/local/bin/clang \
70- --set target.x86_64-unknown-fuchsia.cxx=/usr/local/bin/clang++ \
71- --set target.x86_64-unknown-fuchsia.ar=/usr/local/bin/llvm-ar \
72- --set target.x86_64-unknown-fuchsia.ranlib=/usr/local/bin/llvm-ranlib \
73- --set target.x86_64-unknown-fuchsia.linker=/usr/local/bin/ld.lld"
115+ ENV RUST_CONFIGURE_ARGS="\
116+ --prefix=$RUST_INSTALL_DIR \
117+ --sysconfdir=etc \
118+ --enable-lld \
119+ --llvm-libunwind=in-tree \
120+ --enable-extended \
121+ --disable-docs \
122+ --set target.aarch64-unknown-fuchsia.cc=/usr/local/bin/clang \
123+ --set target.aarch64-unknown-fuchsia.cxx=/usr/local/bin/clang++ \
124+ --set target.aarch64-unknown-fuchsia.ar=/usr/local/bin/llvm-ar \
125+ --set target.aarch64-unknown-fuchsia.ranlib=/usr/local/bin/llvm-ranlib \
126+ --set target.aarch64-unknown-fuchsia.linker=/usr/local/bin/ld.lld \
127+ --set target.riscv64gc-unknown-fuchsia.cc=/usr/local/bin/clang \
128+ --set target.riscv64gc-unknown-fuchsia.cxx=/usr/local/bin/clang++ \
129+ --set target.riscv64gc-unknown-fuchsia.ar=/usr/local/bin/llvm-ar \
130+ --set target.riscv64gc-unknown-fuchsia.ranlib=/usr/local/bin/llvm-ranlib \
131+ --set target.riscv64gc-unknown-fuchsia.linker=/usr/local/bin/ld.lld \
132+ --set target.x86_64-unknown-fuchsia.cc=/usr/local/bin/clang \
133+ --set target.x86_64-unknown-fuchsia.cxx=/usr/local/bin/clang++ \
134+ --set target.x86_64-unknown-fuchsia.ar=/usr/local/bin/llvm-ar \
135+ --set target.x86_64-unknown-fuchsia.ranlib=/usr/local/bin/llvm-ranlib \
136+ --set target.x86_64-unknown-fuchsia.linker=/usr/local/bin/ld.lld"
74137
75- ENV SCRIPT="python3 ../x.py install --target $TARGETS compiler/rustc library/std clippy && \
76- bash ../src/ci/docker/host-x86_64/x86_64-fuchsia/build-fuchsia.sh"
138+ ENV SCRIPT="\
139+ bash ../src/ci/docker/host-x86_64/test-x86_64-fuchsia/install-rust-for-fuchsia.sh && \
140+ bash ../src/ci/docker/host-x86_64/test-x86_64-fuchsia/build-fuchsia.sh"
0 commit comments