|
| 1 | +FROM ubuntu:22.04 |
| 2 | + |
| 3 | +ARG DEBIAN_FRONTEND=noninteractive |
| 4 | +RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 5 | + build-essential \ |
| 6 | + gawk \ |
| 7 | + g++ \ |
| 8 | + make \ |
| 9 | + ninja-build \ |
| 10 | + file \ |
| 11 | + curl \ |
| 12 | + ca-certificates \ |
| 13 | + python3 \ |
| 14 | + git \ |
| 15 | + cmake \ |
| 16 | + libssl-dev \ |
| 17 | + sudo \ |
| 18 | + time \ |
| 19 | + xz-utils \ |
| 20 | + pkg-config \ |
| 21 | + unzip \ |
| 22 | + && rm -rf /var/lib/apt/lists/* |
| 23 | + |
| 24 | +ENV \ |
| 25 | + AR_x86_64_unknown_fuchsia=x86_64-unknown-fuchsia-ar \ |
| 26 | + CC_x86_64_unknown_fuchsia=x86_64-unknown-fuchsia-clang \ |
| 27 | + 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" \ |
| 28 | + CXX_x86_64_unknown_fuchsia=x86_64-unknown-fuchsia-clang++ \ |
| 29 | + 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" \ |
| 30 | + 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" \ |
| 31 | + AR_x86_64_fuchsia=x86_64-unknown-fuchsia-ar \ |
| 32 | + CC_x86_64_fuchsia=x86_64-unknown-fuchsia-clang \ |
| 33 | + CFLAGS_x86_64_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 | + CXX_x86_64_fuchsia=x86_64-unknown-fuchsia-clang++ \ |
| 35 | + CXXFLAGS_x86_64_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" \ |
| 36 | + LDFLAGS_x86_64_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" |
| 37 | +# AR_aarch64_unknown_fuchsia=aarch64-unknown-fuchsia-ar \ |
| 38 | +# CC_aarch64_unknown_fuchsia=aarch64-unknown-fuchsia-clang \ |
| 39 | +# CFLAGS_aarch64_unknown_fuchsia="--target=aarch64-unknown-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \ |
| 40 | +# CXX_aarch64_unknown_fuchsia=aarch64-unknown-fuchsia-clang++ \ |
| 41 | +# CXXFLAGS_aarch64_unknown_fuchsia="--target=aarch64-unknown-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \ |
| 42 | +# LDFLAGS_aarch64_unknown_fuchsia="--target=aarch64-unknown-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot -L/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/lib" |
| 43 | + |
| 44 | +WORKDIR /tmp |
| 45 | +COPY scripts/build-fuchsia-toolchain.sh /tmp/ |
| 46 | +RUN /tmp/build-fuchsia-toolchain.sh |
| 47 | + |
| 48 | +# TODO move to canonical triple |
| 49 | +# TODO move to canonical triple |
| 50 | +ENV CARGO_TARGET_X86_64_UNKNOWN_FUCHSIA_AR /usr/local/bin/llvm-ar |
| 51 | +ENV CARGO_TARGET_X86_64_UNKNOWN_FUCHSIA_RUSTFLAGS \ |
| 52 | +-C link-arg=--sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot \ |
| 53 | +-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot/lib \ |
| 54 | +-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/lib |
| 55 | +ENV CARGO_TARGET_AARCH64_UNKNOWN_FUCHSIA_AR /usr/local/bin/llvm-ar |
| 56 | +ENV CARGO_TARGET_AARCH64_UNKNOWN_FUCHSIA_RUSTFLAGS \ |
| 57 | +-C link-arg=--sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot \ |
| 58 | +-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot/lib \ |
| 59 | +-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/lib |
| 60 | +ENV CARGO_TARGET_X86_64_FUCHSIA_AR /usr/local/bin/llvm-ar |
| 61 | +ENV CARGO_TARGET_X86_64_FUCHSIA_RUSTFLAGS \ |
| 62 | +-C link-arg=--sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot \ |
| 63 | +-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot/lib \ |
| 64 | +-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/lib |
| 65 | +ENV CARGO_TARGET_AARCH64_FUCHSIA_AR /usr/local/bin/llvm-ar |
| 66 | +ENV CARGO_TARGET_AARCH64_FUCHSIA_RUSTFLAGS \ |
| 67 | +-C link-arg=--sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot \ |
| 68 | +-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot/lib \ |
| 69 | +-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/lib |
| 70 | + |
| 71 | +ENV CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS -Clink-arg=-static-libstdc++ |
| 72 | + |
| 73 | +ENV TARGETS=x86_64-fuchsia |
| 74 | +#ENV TARGETS=$TARGETS,aarch64-unknown-fuchsia |
| 75 | +#ENV TARGETS=$TARGETS,x86_64-fuchsia |
| 76 | +#ENV TARGETS=$TARGETS,aarch64-fuchsia |
| 77 | +ENV TARGETS=$TARGETS,x86_64-unknown-linux-gnu |
| 78 | + |
| 79 | +COPY scripts/sccache.sh /scripts/ |
| 80 | +RUN sh /scripts/sccache.sh |
| 81 | + |
| 82 | +#RUN mkdir -p /tmp/install/etc |
| 83 | +ENV RUST_INSTALL_DIR /checkout/obj/install |
| 84 | + |
| 85 | +# --enable-extended --disable-docs |
| 86 | +ENV RUST_CONFIGURE_ARGS --prefix=$RUST_INSTALL_DIR --sysconfdir=etc --enable-lld --llvm-libunwind=in-tree --enable-extended --disable-docs |
| 87 | +#ENV CARGOFLAGS -Ztarget-applies-to-host |
| 88 | +#ENV RUSTC_BOOTSTRAP 1 |
| 89 | +ENV SCRIPT \ |
| 90 | + python3 ../x.py install --target $TARGETS compiler/rustc library/std clippy && \ |
| 91 | + python3 ../x.py test src/tools/cargotest |
| 92 | + |
0 commit comments