mirror of
https://github.com/rust-lang/rust
synced 2024-09-15 22:50:55 +00:00
ci: move all x86_64 runners to the host-x86_64 directory
We need to add runners designed for an aarch64 host system, and it'd be nice to return an error message if someone tries to run an image designed for an host architecture in another one. To start the work on this, this commit moves all the existing builders in the host-x86_64 directory, and changes the run.sh script to look up the image in the correct directory based on the host architecture.
This commit is contained in:
parent
cd1a46d644
commit
5c876f336a
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -428,7 +428,7 @@ jobs:
|
||||||
os: windows-latest-xl
|
os: windows-latest-xl
|
||||||
- name: x86_64-msvc-tools
|
- name: x86_64-msvc-tools
|
||||||
env:
|
env:
|
||||||
SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstate/toolstates.json windows
|
SCRIPT: src/ci/docker/host-x86_64/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstate/toolstates.json windows
|
||||||
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstate/toolstates.json"
|
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstate/toolstates.json"
|
||||||
os: windows-latest-xl
|
os: windows-latest-xl
|
||||||
- name: i686-mingw-1
|
- name: i686-mingw-1
|
||||||
|
|
|
@ -151,7 +151,7 @@ jobs:
|
||||||
NO_LLVM_ASSERTIONS: 1
|
NO_LLVM_ASSERTIONS: 1
|
||||||
# MSVC tools tests
|
# MSVC tools tests
|
||||||
x86_64-msvc-tools:
|
x86_64-msvc-tools:
|
||||||
SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py
|
SCRIPT: src/ci/docker/host-x86_64/x86_64-gnu-tools/checktools.sh x.py
|
||||||
INITIAL_RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstate/toolstates.json
|
INITIAL_RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstate/toolstates.json
|
||||||
|
|
||||||
# 32/64-bit MinGW builds.
|
# 32/64-bit MinGW builds.
|
||||||
|
|
|
@ -25,9 +25,11 @@ before running your command.
|
||||||
|
|
||||||
## Filesystem layout
|
## Filesystem layout
|
||||||
|
|
||||||
- Each directory, excluding `scripts` and `disabled`, corresponds to a docker image
|
- Each host architecture has its own `host-{arch}` directory, and those
|
||||||
- `scripts` contains files shared by docker images
|
directories contain a subdirectory for each Docker image (plus the `disabled`
|
||||||
- `disabled` contains images that are not built on CI
|
subdirectory).
|
||||||
|
- `host-{arch}/disabled` contains images that are not built on CI.
|
||||||
|
- `scripts` contains files shared by multiple Docker images.
|
||||||
|
|
||||||
## Docker Toolbox on Windows
|
## Docker Toolbox on Windows
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ RUN dpkg --add-architecture i386 && \
|
||||||
|
|
||||||
COPY scripts/android-sdk.sh /scripts/
|
COPY scripts/android-sdk.sh /scripts/
|
||||||
COPY scripts/android-sdk-manager.py /scripts/
|
COPY scripts/android-sdk-manager.py /scripts/
|
||||||
COPY arm-android/android-sdk.lock /android/sdk/android-sdk.lock
|
COPY host-x86_64/arm-android/android-sdk.lock /android/sdk/android-sdk.lock
|
||||||
RUN /scripts/android-sdk.sh
|
RUN /scripts/android-sdk.sh
|
||||||
|
|
||||||
ENV PATH=$PATH:/android/sdk/emulator
|
ENV PATH=$PATH:/android/sdk/emulator
|
|
@ -31,7 +31,7 @@ WORKDIR /build
|
||||||
# The `vexpress_config` config file was a previously generated config file for
|
# The `vexpress_config` config file was a previously generated config file for
|
||||||
# the kernel. This file was generated by running `make vexpress_defconfig`
|
# the kernel. This file was generated by running `make vexpress_defconfig`
|
||||||
# followed by `make menuconfig` and then enabling the IPv6 protocol page.
|
# followed by `make menuconfig` and then enabling the IPv6 protocol page.
|
||||||
COPY armhf-gnu/vexpress_config /build/.config
|
COPY host-x86_64/armhf-gnu/vexpress_config /build/.config
|
||||||
RUN curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.42.tar.xz | \
|
RUN curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.42.tar.xz | \
|
||||||
tar xJf - && \
|
tar xJf - && \
|
||||||
cd /build/linux-4.4.42 && \
|
cd /build/linux-4.4.42 && \
|
|
@ -31,7 +31,7 @@ WORKDIR /build
|
||||||
# The `config` config file was a previously generated config file for
|
# The `config` config file was a previously generated config file for
|
||||||
# the kernel. This file was generated by running `make defconfig`
|
# the kernel. This file was generated by running `make defconfig`
|
||||||
# followed by `make menuconfig` and then enabling the IPv6 protocol page.
|
# followed by `make menuconfig` and then enabling the IPv6 protocol page.
|
||||||
COPY aarch64-gnu/config /build/.config
|
COPY host-x86_64/aarch64-gnu/config /build/.config
|
||||||
RUN curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.42.tar.xz | \
|
RUN curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.42.tar.xz | \
|
||||||
tar xJf - && \
|
tar xJf - && \
|
||||||
cd /build/linux-4.4.42 && \
|
cd /build/linux-4.4.42 && \
|
|
@ -18,8 +18,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
|
|
||||||
COPY dist-x86_64-dragonfly/build-toolchain.sh /tmp/
|
COPY host-x86_64/dist-x86_64-dragonfly/build-toolchain.sh /tmp/
|
||||||
COPY dist-x86_64-dragonfly/patch-toolchain /tmp/
|
COPY host-x86_64/dist-x86_64-dragonfly/patch-toolchain /tmp/
|
||||||
RUN /tmp/build-toolchain.sh /tmp/patch-toolchain
|
RUN /tmp/build-toolchain.sh /tmp/patch-toolchain
|
||||||
|
|
||||||
COPY scripts/sccache.sh /scripts/
|
COPY scripts/sccache.sh /scripts/
|
|
@ -25,15 +25,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
zlib1g-dev
|
zlib1g-dev
|
||||||
|
|
||||||
COPY dist-x86_64-haiku/llvm-config.sh /bin/llvm-config-haiku
|
COPY host-x86_64/dist-x86_64-haiku/llvm-config.sh /bin/llvm-config-haiku
|
||||||
|
|
||||||
ENV ARCH=x86_64
|
ENV ARCH=x86_64
|
||||||
|
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
COPY dist-x86_64-haiku/build-toolchain.sh /tmp/
|
COPY host-x86_64/dist-x86_64-haiku/build-toolchain.sh /tmp/
|
||||||
RUN /tmp/build-toolchain.sh $ARCH
|
RUN /tmp/build-toolchain.sh $ARCH
|
||||||
|
|
||||||
COPY dist-x86_64-haiku/fetch-packages.sh /tmp/
|
COPY host-x86_64/dist-x86_64-haiku/fetch-packages.sh /tmp/
|
||||||
RUN /tmp/fetch-packages.sh
|
RUN /tmp/fetch-packages.sh
|
||||||
|
|
||||||
COPY scripts/sccache.sh /scripts/
|
COPY scripts/sccache.sh /scripts/
|
|
@ -7,7 +7,7 @@ COPY scripts/crosstool-ng.sh /scripts/
|
||||||
RUN sh /scripts/crosstool-ng.sh
|
RUN sh /scripts/crosstool-ng.sh
|
||||||
|
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
COPY dist-various-1/install-x86_64-redox.sh /scripts/
|
COPY host-x86_64/dist-various-1/install-x86_64-redox.sh /scripts/
|
||||||
RUN sh /scripts/install-x86_64-redox.sh
|
RUN sh /scripts/install-x86_64-redox.sh
|
||||||
|
|
||||||
COPY scripts/sccache.sh /scripts/
|
COPY scripts/sccache.sh /scripts/
|
|
@ -31,7 +31,7 @@ ENV CROSS_COMPILE=riscv64-linux-gnu-
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
|
|
||||||
# From https://github.com/michaeljclark/busybear-linux/blob/master/conf/linux.config
|
# From https://github.com/michaeljclark/busybear-linux/blob/master/conf/linux.config
|
||||||
COPY riscv64gc-linux/linux.config /build
|
COPY host-x86_64/riscv64gc-linux/linux.config /build
|
||||||
|
|
||||||
# Compile the kernel that we're going to be emulating with. This is
|
# Compile the kernel that we're going to be emulating with. This is
|
||||||
# basically just done to be compatible with the QEMU target that we're going
|
# basically just done to be compatible with the QEMU target that we're going
|
||||||
|
@ -48,7 +48,7 @@ RUN rm -rf linux-5.6.16
|
||||||
# binary which we will boot into. Only trick here is configuring busybox to
|
# binary which we will boot into. Only trick here is configuring busybox to
|
||||||
# build static binaries.
|
# build static binaries.
|
||||||
RUN curl https://busybox.net/downloads/busybox-1.31.1.tar.bz2 | tar xjf -
|
RUN curl https://busybox.net/downloads/busybox-1.31.1.tar.bz2 | tar xjf -
|
||||||
COPY riscv64gc-linux/0001-Remove-stime-function-calls.patch /build/busybox-1.31.1/
|
COPY host-x86_64/riscv64gc-linux/0001-Remove-stime-function-calls.patch /build/busybox-1.31.1/
|
||||||
RUN cd /build/busybox-1.31.1 && \
|
RUN cd /build/busybox-1.31.1 && \
|
||||||
patch -p1 -i 0001-Remove-stime-function-calls.patch && \
|
patch -p1 -i 0001-Remove-stime-function-calls.patch && \
|
||||||
make defconfig && \
|
make defconfig && \
|
|
@ -16,7 +16,7 @@ RUN sh /scripts/rustbuild-setup.sh
|
||||||
USER rustbuild
|
USER rustbuild
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
COPY dist-aarch64-linux/aarch64-linux-gnu.config dist-aarch64-linux/build-toolchains.sh /tmp/
|
COPY host-x86_64/dist-aarch64-linux/aarch64-linux-gnu.config host-x86_64/dist-aarch64-linux/build-toolchains.sh /tmp/
|
||||||
RUN ./build-toolchains.sh
|
RUN ./build-toolchains.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
|
@ -11,7 +11,7 @@ RUN sh /scripts/rustbuild-setup.sh
|
||||||
USER rustbuild
|
USER rustbuild
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
COPY dist-arm-linux/arm-linux-gnueabi.config dist-arm-linux/build-toolchains.sh /tmp/
|
COPY host-x86_64/dist-arm-linux/arm-linux-gnueabi.config host-x86_64/dist-arm-linux/build-toolchains.sh /tmp/
|
||||||
RUN ./build-toolchains.sh
|
RUN ./build-toolchains.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
|
@ -11,7 +11,7 @@ RUN sh /scripts/rustbuild-setup.sh
|
||||||
USER rustbuild
|
USER rustbuild
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
COPY dist-armhf-linux/arm-linux-gnueabihf.config dist-armhf-linux/build-toolchains.sh /tmp/
|
COPY host-x86_64/dist-armhf-linux/arm-linux-gnueabihf.config host-x86_64/dist-armhf-linux/build-toolchains.sh /tmp/
|
||||||
RUN ./build-toolchains.sh
|
RUN ./build-toolchains.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
|
@ -11,7 +11,7 @@ RUN sh /scripts/rustbuild-setup.sh
|
||||||
USER rustbuild
|
USER rustbuild
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
COPY dist-armv7-linux/build-toolchains.sh dist-armv7-linux/armv7-linux-gnueabihf.config /tmp/
|
COPY host-x86_64/dist-armv7-linux/build-toolchains.sh host-x86_64/dist-armv7-linux/armv7-linux-gnueabihf.config /tmp/
|
||||||
RUN ./build-toolchains.sh
|
RUN ./build-toolchains.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
|
@ -29,13 +29,13 @@ ENV PATH=/rustroot/bin:$PATH
|
||||||
ENV LD_LIBRARY_PATH=/rustroot/lib64:/rustroot/lib
|
ENV LD_LIBRARY_PATH=/rustroot/lib64:/rustroot/lib
|
||||||
ENV PKG_CONFIG_PATH=/rustroot/lib/pkgconfig
|
ENV PKG_CONFIG_PATH=/rustroot/lib/pkgconfig
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
COPY dist-x86_64-linux/shared.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/shared.sh /tmp/
|
||||||
|
|
||||||
# We need a build of openssl which supports SNI to download artifacts from
|
# We need a build of openssl which supports SNI to download artifacts from
|
||||||
# static.rust-lang.org. This'll be used to link into libcurl below (and used
|
# static.rust-lang.org. This'll be used to link into libcurl below (and used
|
||||||
# later as well), so build a copy of OpenSSL with dynamic libraries into our
|
# later as well), so build a copy of OpenSSL with dynamic libraries into our
|
||||||
# generic root.
|
# generic root.
|
||||||
COPY dist-x86_64-linux/build-openssl.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-openssl.sh /tmp/
|
||||||
RUN ./build-openssl.sh
|
RUN ./build-openssl.sh
|
||||||
|
|
||||||
# The `curl` binary on CentOS doesn't support SNI which is needed for fetching
|
# The `curl` binary on CentOS doesn't support SNI which is needed for fetching
|
||||||
|
@ -44,48 +44,48 @@ RUN ./build-openssl.sh
|
||||||
#
|
#
|
||||||
# Note that we also disable a bunch of optional features of curl that we don't
|
# Note that we also disable a bunch of optional features of curl that we don't
|
||||||
# really need.
|
# really need.
|
||||||
COPY dist-x86_64-linux/build-curl.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-curl.sh /tmp/
|
||||||
RUN ./build-curl.sh
|
RUN ./build-curl.sh
|
||||||
|
|
||||||
# binutils < 2.22 has a bug where the 32-bit executables it generates
|
# binutils < 2.22 has a bug where the 32-bit executables it generates
|
||||||
# immediately segfault in Rust, so we need to install our own binutils.
|
# immediately segfault in Rust, so we need to install our own binutils.
|
||||||
#
|
#
|
||||||
# See https://github.com/rust-lang/rust/issues/20440 for more info
|
# See https://github.com/rust-lang/rust/issues/20440 for more info
|
||||||
COPY dist-x86_64-linux/build-binutils.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-binutils.sh /tmp/
|
||||||
RUN ./build-binutils.sh
|
RUN ./build-binutils.sh
|
||||||
|
|
||||||
# libssh2 (a dependency of Cargo) requires cmake 2.8.11 or higher but CentOS
|
# libssh2 (a dependency of Cargo) requires cmake 2.8.11 or higher but CentOS
|
||||||
# only has 2.6.4, so build our own
|
# only has 2.6.4, so build our own
|
||||||
COPY dist-x86_64-linux/build-cmake.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-cmake.sh /tmp/
|
||||||
RUN ./build-cmake.sh
|
RUN ./build-cmake.sh
|
||||||
|
|
||||||
# Need a newer version of gcc than centos has to compile LLVM nowadays
|
# Need a newer version of gcc than centos has to compile LLVM nowadays
|
||||||
COPY dist-x86_64-linux/build-gcc.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-gcc.sh /tmp/
|
||||||
RUN ./build-gcc.sh
|
RUN ./build-gcc.sh
|
||||||
|
|
||||||
# CentOS 5.5 has Python 2.4 by default, but LLVM needs 2.7+
|
# CentOS 5.5 has Python 2.4 by default, but LLVM needs 2.7+
|
||||||
COPY dist-x86_64-linux/build-python.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-python.sh /tmp/
|
||||||
RUN ./build-python.sh
|
RUN ./build-python.sh
|
||||||
|
|
||||||
# Now build LLVM+Clang 7, afterwards configuring further compilations to use the
|
# Now build LLVM+Clang 7, afterwards configuring further compilations to use the
|
||||||
# clang/clang++ compilers.
|
# clang/clang++ compilers.
|
||||||
COPY dist-x86_64-linux/build-clang.sh dist-x86_64-linux/llvm-project-centos.patch /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-clang.sh host-x86_64/dist-x86_64-linux/llvm-project-centos.patch /tmp/
|
||||||
RUN ./build-clang.sh
|
RUN ./build-clang.sh
|
||||||
ENV CC=clang CXX=clang++
|
ENV CC=clang CXX=clang++
|
||||||
|
|
||||||
# Apparently CentOS 5.5 desn't have `git` in yum, but we're gonna need it for
|
# Apparently CentOS 5.5 desn't have `git` in yum, but we're gonna need it for
|
||||||
# cloning, so download and build it here.
|
# cloning, so download and build it here.
|
||||||
COPY dist-x86_64-linux/build-git.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-git.sh /tmp/
|
||||||
RUN ./build-git.sh
|
RUN ./build-git.sh
|
||||||
|
|
||||||
# for sanitizers, we need kernel headers files newer than the ones CentOS ships
|
# for sanitizers, we need kernel headers files newer than the ones CentOS ships
|
||||||
# with so we install newer ones here
|
# with so we install newer ones here
|
||||||
COPY dist-x86_64-linux/build-headers.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-headers.sh /tmp/
|
||||||
RUN ./build-headers.sh
|
RUN ./build-headers.sh
|
||||||
|
|
||||||
# OpenSSL requires a more recent version of perl
|
# OpenSSL requires a more recent version of perl
|
||||||
# with so we install newer ones here
|
# with so we install newer ones here
|
||||||
COPY dist-x86_64-linux/build-perl.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-perl.sh /tmp/
|
||||||
RUN ./build-perl.sh
|
RUN ./build-perl.sh
|
||||||
|
|
||||||
COPY scripts/sccache.sh /scripts/
|
COPY scripts/sccache.sh /scripts/
|
|
@ -16,8 +16,8 @@ RUN sh /scripts/rustbuild-setup.sh
|
||||||
USER rustbuild
|
USER rustbuild
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
COPY dist-powerpc-linux/patches/ /tmp/patches/
|
COPY host-x86_64/dist-powerpc-linux/patches/ /tmp/patches/
|
||||||
COPY dist-powerpc-linux/powerpc-linux-gnu.config dist-powerpc-linux/build-powerpc-toolchain.sh /tmp/
|
COPY host-x86_64/dist-powerpc-linux/powerpc-linux-gnu.config host-x86_64/dist-powerpc-linux/build-powerpc-toolchain.sh /tmp/
|
||||||
RUN ./build-powerpc-toolchain.sh
|
RUN ./build-powerpc-toolchain.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
|
@ -17,8 +17,8 @@ RUN sh /scripts/rustbuild-setup.sh
|
||||||
USER rustbuild
|
USER rustbuild
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
COPY dist-powerpc64-linux/patches/ /tmp/patches/
|
COPY host-x86_64/dist-powerpc64-linux/patches/ /tmp/patches/
|
||||||
COPY dist-powerpc64-linux/shared.sh dist-powerpc64-linux/powerpc64-linux-gnu.config dist-powerpc64-linux/build-powerpc64-toolchain.sh /tmp/
|
COPY host-x86_64/dist-powerpc64-linux/shared.sh host-x86_64/dist-powerpc64-linux/powerpc64-linux-gnu.config host-x86_64/dist-powerpc64-linux/build-powerpc64-toolchain.sh /tmp/
|
||||||
RUN ./build-powerpc64-toolchain.sh
|
RUN ./build-powerpc64-toolchain.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
|
@ -19,7 +19,7 @@ WORKDIR /tmp
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
RUN apt-get install -y --no-install-recommends rpm2cpio cpio
|
RUN apt-get install -y --no-install-recommends rpm2cpio cpio
|
||||||
COPY dist-powerpc64le-linux/shared.sh dist-powerpc64le-linux/build-powerpc64le-toolchain.sh /tmp/
|
COPY host-x86_64/dist-powerpc64le-linux/shared.sh host-x86_64/dist-powerpc64le-linux/build-powerpc64le-toolchain.sh /tmp/
|
||||||
RUN ./build-powerpc64le-toolchain.sh
|
RUN ./build-powerpc64le-toolchain.sh
|
||||||
|
|
||||||
COPY scripts/sccache.sh /scripts/
|
COPY scripts/sccache.sh /scripts/
|
|
@ -16,8 +16,8 @@ RUN sh /scripts/rustbuild-setup.sh
|
||||||
USER rustbuild
|
USER rustbuild
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
COPY dist-s390x-linux/patches/ /tmp/patches/
|
COPY host-x86_64/dist-s390x-linux/patches/ /tmp/patches/
|
||||||
COPY dist-s390x-linux/s390x-linux-gnu.config dist-s390x-linux/build-s390x-toolchain.sh /tmp/
|
COPY host-x86_64/dist-s390x-linux/s390x-linux-gnu.config host-x86_64/dist-s390x-linux/build-s390x-toolchain.sh /tmp/
|
||||||
RUN ./build-s390x-toolchain.sh
|
RUN ./build-s390x-toolchain.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
|
@ -47,7 +47,7 @@ RUN add-apt-repository ppa:team-gcc-arm-embedded/ppa && \
|
||||||
apt-get update && \
|
apt-get update && \
|
||||||
apt-get install -y --no-install-recommends gcc-arm-embedded
|
apt-get install -y --no-install-recommends gcc-arm-embedded
|
||||||
|
|
||||||
COPY scripts/rustbuild-setup.sh dist-various-1/build-riscv-toolchain.sh dist-various-1/riscv64-unknown-linux-gnu.config dist-various-1/crosstool-ng.sh /build/
|
COPY scripts/rustbuild-setup.sh host-x86_64/dist-various-1/build-riscv-toolchain.sh host-x86_64/dist-various-1/riscv64-unknown-linux-gnu.config host-x86_64/dist-various-1/crosstool-ng.sh /build/
|
||||||
RUN ./crosstool-ng.sh
|
RUN ./crosstool-ng.sh
|
||||||
|
|
||||||
# Crosstool-ng will refuse to build as root
|
# Crosstool-ng will refuse to build as root
|
||||||
|
@ -59,19 +59,19 @@ RUN ./build-riscv-toolchain.sh
|
||||||
USER root
|
USER root
|
||||||
ENV PATH=/x-tools/riscv64-unknown-linux-gnu/bin:$PATH
|
ENV PATH=/x-tools/riscv64-unknown-linux-gnu/bin:$PATH
|
||||||
|
|
||||||
COPY dist-various-1/build-rumprun.sh /build
|
COPY host-x86_64/dist-various-1/build-rumprun.sh /build
|
||||||
RUN ./build-rumprun.sh
|
RUN ./build-rumprun.sh
|
||||||
|
|
||||||
COPY dist-various-1/install-x86_64-redox.sh /build
|
COPY host-x86_64/dist-various-1/install-x86_64-redox.sh /build
|
||||||
RUN ./install-x86_64-redox.sh
|
RUN ./install-x86_64-redox.sh
|
||||||
|
|
||||||
COPY dist-various-1/install-mips-musl.sh /build
|
COPY host-x86_64/dist-various-1/install-mips-musl.sh /build
|
||||||
RUN ./install-mips-musl.sh
|
RUN ./install-mips-musl.sh
|
||||||
|
|
||||||
COPY dist-various-1/install-mipsel-musl.sh /build
|
COPY host-x86_64/dist-various-1/install-mipsel-musl.sh /build
|
||||||
RUN ./install-mipsel-musl.sh
|
RUN ./install-mipsel-musl.sh
|
||||||
|
|
||||||
COPY dist-various-1/install-aarch64-none-elf.sh /build
|
COPY host-x86_64/dist-various-1/install-aarch64-none-elf.sh /build
|
||||||
RUN ./install-aarch64-none-elf.sh
|
RUN ./install-aarch64-none-elf.sh
|
||||||
|
|
||||||
# Suppress some warnings in the openwrt toolchains we downloaded
|
# Suppress some warnings in the openwrt toolchains we downloaded
|
|
@ -60,20 +60,20 @@ RUN env \
|
||||||
rm -rf /build/*
|
rm -rf /build/*
|
||||||
|
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
COPY dist-various-2/shared.sh /tmp/
|
COPY host-x86_64/dist-various-2/shared.sh /tmp/
|
||||||
COPY dist-various-2/build-cloudabi-toolchain.sh /tmp/
|
COPY host-x86_64/dist-various-2/build-cloudabi-toolchain.sh /tmp/
|
||||||
RUN /tmp/build-cloudabi-toolchain.sh x86_64-unknown-cloudabi
|
RUN /tmp/build-cloudabi-toolchain.sh x86_64-unknown-cloudabi
|
||||||
COPY dist-various-2/build-fuchsia-toolchain.sh /tmp/
|
COPY host-x86_64/dist-various-2/build-fuchsia-toolchain.sh /tmp/
|
||||||
RUN /tmp/build-fuchsia-toolchain.sh
|
RUN /tmp/build-fuchsia-toolchain.sh
|
||||||
COPY dist-various-2/build-solaris-toolchain.sh /tmp/
|
COPY host-x86_64/dist-various-2/build-solaris-toolchain.sh /tmp/
|
||||||
RUN /tmp/build-solaris-toolchain.sh x86_64 amd64 solaris-i386
|
RUN /tmp/build-solaris-toolchain.sh x86_64 amd64 solaris-i386
|
||||||
RUN /tmp/build-solaris-toolchain.sh sparcv9 sparcv9 solaris-sparc
|
RUN /tmp/build-solaris-toolchain.sh sparcv9 sparcv9 solaris-sparc
|
||||||
COPY dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh /tmp/
|
COPY host-x86_64/dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh /tmp/
|
||||||
COPY dist-various-2/x86_64-fortanix-unknown-sgx-clang-wrap.sh /usr/bin/x86_64-fortanix-unknown-sgx-clang-11
|
COPY host-x86_64/dist-various-2/x86_64-fortanix-unknown-sgx-clang-wrap.sh /usr/bin/x86_64-fortanix-unknown-sgx-clang-11
|
||||||
RUN ln -s /usr/bin/x86_64-fortanix-unknown-sgx-clang-11 /usr/bin/x86_64-fortanix-unknown-sgx-clang++-11
|
RUN ln -s /usr/bin/x86_64-fortanix-unknown-sgx-clang-11 /usr/bin/x86_64-fortanix-unknown-sgx-clang++-11
|
||||||
RUN /tmp/build-x86_64-fortanix-unknown-sgx-toolchain.sh
|
RUN /tmp/build-x86_64-fortanix-unknown-sgx-toolchain.sh
|
||||||
|
|
||||||
COPY dist-various-2/build-wasi-toolchain.sh /tmp/
|
COPY host-x86_64/dist-various-2/build-wasi-toolchain.sh /tmp/
|
||||||
RUN /tmp/build-wasi-toolchain.sh
|
RUN /tmp/build-wasi-toolchain.sh
|
||||||
|
|
||||||
COPY scripts/sccache.sh /scripts/
|
COPY scripts/sccache.sh /scripts/
|
|
@ -29,13 +29,13 @@ ENV PATH=/rustroot/bin:$PATH
|
||||||
ENV LD_LIBRARY_PATH=/rustroot/lib64:/rustroot/lib
|
ENV LD_LIBRARY_PATH=/rustroot/lib64:/rustroot/lib
|
||||||
ENV PKG_CONFIG_PATH=/rustroot/lib/pkgconfig
|
ENV PKG_CONFIG_PATH=/rustroot/lib/pkgconfig
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
COPY dist-x86_64-linux/shared.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/shared.sh /tmp/
|
||||||
|
|
||||||
# We need a build of openssl which supports SNI to download artifacts from
|
# We need a build of openssl which supports SNI to download artifacts from
|
||||||
# static.rust-lang.org. This'll be used to link into libcurl below (and used
|
# static.rust-lang.org. This'll be used to link into libcurl below (and used
|
||||||
# later as well), so build a copy of OpenSSL with dynamic libraries into our
|
# later as well), so build a copy of OpenSSL with dynamic libraries into our
|
||||||
# generic root.
|
# generic root.
|
||||||
COPY dist-x86_64-linux/build-openssl.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-openssl.sh /tmp/
|
||||||
RUN ./build-openssl.sh
|
RUN ./build-openssl.sh
|
||||||
|
|
||||||
# The `curl` binary on CentOS doesn't support SNI which is needed for fetching
|
# The `curl` binary on CentOS doesn't support SNI which is needed for fetching
|
||||||
|
@ -44,48 +44,48 @@ RUN ./build-openssl.sh
|
||||||
#
|
#
|
||||||
# Note that we also disable a bunch of optional features of curl that we don't
|
# Note that we also disable a bunch of optional features of curl that we don't
|
||||||
# really need.
|
# really need.
|
||||||
COPY dist-x86_64-linux/build-curl.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-curl.sh /tmp/
|
||||||
RUN ./build-curl.sh
|
RUN ./build-curl.sh
|
||||||
|
|
||||||
# binutils < 2.22 has a bug where the 32-bit executables it generates
|
# binutils < 2.22 has a bug where the 32-bit executables it generates
|
||||||
# immediately segfault in Rust, so we need to install our own binutils.
|
# immediately segfault in Rust, so we need to install our own binutils.
|
||||||
#
|
#
|
||||||
# See https://github.com/rust-lang/rust/issues/20440 for more info
|
# See https://github.com/rust-lang/rust/issues/20440 for more info
|
||||||
COPY dist-x86_64-linux/build-binutils.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-binutils.sh /tmp/
|
||||||
RUN ./build-binutils.sh
|
RUN ./build-binutils.sh
|
||||||
|
|
||||||
# libssh2 (a dependency of Cargo) requires cmake 2.8.11 or higher but CentOS
|
# libssh2 (a dependency of Cargo) requires cmake 2.8.11 or higher but CentOS
|
||||||
# only has 2.6.4, so build our own
|
# only has 2.6.4, so build our own
|
||||||
COPY dist-x86_64-linux/build-cmake.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-cmake.sh /tmp/
|
||||||
RUN ./build-cmake.sh
|
RUN ./build-cmake.sh
|
||||||
|
|
||||||
# Build a version of gcc capable of building LLVM 6
|
# Build a version of gcc capable of building LLVM 6
|
||||||
COPY dist-x86_64-linux/build-gcc.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-gcc.sh /tmp/
|
||||||
RUN ./build-gcc.sh
|
RUN ./build-gcc.sh
|
||||||
|
|
||||||
# CentOS 5.5 has Python 2.4 by default, but LLVM needs 2.7+
|
# CentOS 5.5 has Python 2.4 by default, but LLVM needs 2.7+
|
||||||
COPY dist-x86_64-linux/build-python.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-python.sh /tmp/
|
||||||
RUN ./build-python.sh
|
RUN ./build-python.sh
|
||||||
|
|
||||||
# Now build LLVM+Clang 7, afterwards configuring further compilations to use the
|
# Now build LLVM+Clang 7, afterwards configuring further compilations to use the
|
||||||
# clang/clang++ compilers.
|
# clang/clang++ compilers.
|
||||||
COPY dist-x86_64-linux/build-clang.sh dist-x86_64-linux/llvm-project-centos.patch /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-clang.sh host-x86_64/dist-x86_64-linux/llvm-project-centos.patch /tmp/
|
||||||
RUN ./build-clang.sh
|
RUN ./build-clang.sh
|
||||||
ENV CC=clang CXX=clang++
|
ENV CC=clang CXX=clang++
|
||||||
|
|
||||||
# Apparently CentOS 5.5 desn't have `git` in yum, but we're gonna need it for
|
# Apparently CentOS 5.5 desn't have `git` in yum, but we're gonna need it for
|
||||||
# cloning, so download and build it here.
|
# cloning, so download and build it here.
|
||||||
COPY dist-x86_64-linux/build-git.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-git.sh /tmp/
|
||||||
RUN ./build-git.sh
|
RUN ./build-git.sh
|
||||||
|
|
||||||
# for sanitizers, we need kernel headers files newer than the ones CentOS ships
|
# for sanitizers, we need kernel headers files newer than the ones CentOS ships
|
||||||
# with so we install newer ones here
|
# with so we install newer ones here
|
||||||
COPY dist-x86_64-linux/build-headers.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-headers.sh /tmp/
|
||||||
RUN ./build-headers.sh
|
RUN ./build-headers.sh
|
||||||
|
|
||||||
# OpenSSL requires a more recent version of perl
|
# OpenSSL requires a more recent version of perl
|
||||||
# with so we install newer ones here
|
# with so we install newer ones here
|
||||||
COPY dist-x86_64-linux/build-perl.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/build-perl.sh /tmp/
|
||||||
RUN ./build-perl.sh
|
RUN ./build-perl.sh
|
||||||
|
|
||||||
COPY scripts/sccache.sh /scripts/
|
COPY scripts/sccache.sh /scripts/
|
|
@ -3,7 +3,7 @@ FROM ubuntu:16.04
|
||||||
COPY scripts/cross-apt-packages.sh /scripts/
|
COPY scripts/cross-apt-packages.sh /scripts/
|
||||||
RUN sh /scripts/cross-apt-packages.sh
|
RUN sh /scripts/cross-apt-packages.sh
|
||||||
|
|
||||||
COPY dist-x86_64-netbsd/build-netbsd-toolchain.sh /tmp/
|
COPY host-x86_64/dist-x86_64-netbsd/build-netbsd-toolchain.sh /tmp/
|
||||||
RUN /tmp/build-netbsd-toolchain.sh
|
RUN /tmp/build-netbsd-toolchain.sh
|
||||||
|
|
||||||
COPY scripts/sccache.sh /scripts/
|
COPY scripts/sccache.sh /scripts/
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue