Skip to content

Commit 5c876f3

Browse files
committed
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.
1 parent cd1a46d commit 5c876f3

File tree

118 files changed

+74
-71
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+74
-71
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ jobs:
428428
os: windows-latest-xl
429429
- name: x86_64-msvc-tools
430430
env:
431-
SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstate/toolstates.json windows
431+
SCRIPT: src/ci/docker/host-x86_64/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstate/toolstates.json windows
432432
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstate/toolstates.json"
433433
os: windows-latest-xl
434434
- name: i686-mingw-1

src/ci/azure-pipelines/auto.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ jobs:
151151
NO_LLVM_ASSERTIONS: 1
152152
# MSVC tools tests
153153
x86_64-msvc-tools:
154-
SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py
154+
SCRIPT: src/ci/docker/host-x86_64/x86_64-gnu-tools/checktools.sh x.py
155155
INITIAL_RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstate/toolstates.json
156156

157157
# 32/64-bit MinGW builds.

src/ci/docker/README.md

+5-3

src/ci/docker/arm-android/Dockerfile src/ci/docker/host-x86_64/arm-android/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ RUN dpkg --add-architecture i386 && \
2020

2121
COPY scripts/android-sdk.sh /scripts/
2222
COPY scripts/android-sdk-manager.py /scripts/
23-
COPY arm-android/android-sdk.lock /android/sdk/android-sdk.lock
23+
COPY host-x86_64/arm-android/android-sdk.lock /android/sdk/android-sdk.lock
2424
RUN /scripts/android-sdk.sh
2525

2626
ENV PATH=$PATH:/android/sdk/emulator

src/ci/docker/armhf-gnu/Dockerfile src/ci/docker/host-x86_64/armhf-gnu/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ WORKDIR /build
3131
# The `vexpress_config` config file was a previously generated config file for
3232
# the kernel. This file was generated by running `make vexpress_defconfig`
3333
# followed by `make menuconfig` and then enabling the IPv6 protocol page.
34-
COPY armhf-gnu/vexpress_config /build/.config
34+
COPY host-x86_64/armhf-gnu/vexpress_config /build/.config
3535
RUN curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.42.tar.xz | \
3636
tar xJf - && \
3737
cd /build/linux-4.4.42 && \

src/ci/docker/disabled/aarch64-gnu/Dockerfile src/ci/docker/host-x86_64/disabled/aarch64-gnu/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ WORKDIR /build
3131
# The `config` config file was a previously generated config file for
3232
# the kernel. This file was generated by running `make defconfig`
3333
# followed by `make menuconfig` and then enabling the IPv6 protocol page.
34-
COPY aarch64-gnu/config /build/.config
34+
COPY host-x86_64/aarch64-gnu/config /build/.config
3535
RUN curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.42.tar.xz | \
3636
tar xJf - && \
3737
cd /build/linux-4.4.42 && \

src/ci/docker/disabled/dist-x86_64-dragonfly/Dockerfile src/ci/docker/host-x86_64/disabled/dist-x86_64-dragonfly/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1818
pkg-config
1919

2020

21-
COPY dist-x86_64-dragonfly/build-toolchain.sh /tmp/
22-
COPY dist-x86_64-dragonfly/patch-toolchain /tmp/
21+
COPY host-x86_64/dist-x86_64-dragonfly/build-toolchain.sh /tmp/
22+
COPY host-x86_64/dist-x86_64-dragonfly/patch-toolchain /tmp/
2323
RUN /tmp/build-toolchain.sh /tmp/patch-toolchain
2424

2525
COPY scripts/sccache.sh /scripts/

src/ci/docker/disabled/dist-x86_64-haiku/Dockerfile src/ci/docker/host-x86_64/disabled/dist-x86_64-haiku/Dockerfile

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2525
xz-utils \
2626
zlib1g-dev
2727

28-
COPY dist-x86_64-haiku/llvm-config.sh /bin/llvm-config-haiku
28+
COPY host-x86_64/dist-x86_64-haiku/llvm-config.sh /bin/llvm-config-haiku
2929

3030
ENV ARCH=x86_64
3131

3232
WORKDIR /tmp
33-
COPY dist-x86_64-haiku/build-toolchain.sh /tmp/
33+
COPY host-x86_64/dist-x86_64-haiku/build-toolchain.sh /tmp/
3434
RUN /tmp/build-toolchain.sh $ARCH
3535

36-
COPY dist-x86_64-haiku/fetch-packages.sh /tmp/
36+
COPY host-x86_64/dist-x86_64-haiku/fetch-packages.sh /tmp/
3737
RUN /tmp/fetch-packages.sh
3838

3939
COPY scripts/sccache.sh /scripts/

src/ci/docker/disabled/dist-x86_64-redox/Dockerfile src/ci/docker/host-x86_64/disabled/dist-x86_64-redox/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ COPY scripts/crosstool-ng.sh /scripts/
77
RUN sh /scripts/crosstool-ng.sh
88

99
WORKDIR /tmp
10-
COPY dist-various-1/install-x86_64-redox.sh /scripts/
10+
COPY host-x86_64/dist-various-1/install-x86_64-redox.sh /scripts/
1111
RUN sh /scripts/install-x86_64-redox.sh
1212

1313
COPY scripts/sccache.sh /scripts/

src/ci/docker/disabled/riscv64gc-linux/Dockerfile src/ci/docker/host-x86_64/disabled/riscv64gc-linux/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ ENV CROSS_COMPILE=riscv64-linux-gnu-
3131
WORKDIR /build
3232

3333
# From https://github.com/michaeljclark/busybear-linux/blob/master/conf/linux.config
34-
COPY riscv64gc-linux/linux.config /build
34+
COPY host-x86_64/riscv64gc-linux/linux.config /build
3535

3636
# Compile the kernel that we're going to be emulating with. This is
3737
# 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
4848
# binary which we will boot into. Only trick here is configuring busybox to
4949
# build static binaries.
5050
RUN curl https://busybox.net/downloads/busybox-1.31.1.tar.bz2 | tar xjf -
51-
COPY riscv64gc-linux/0001-Remove-stime-function-calls.patch /build/busybox-1.31.1/
51+
COPY host-x86_64/riscv64gc-linux/0001-Remove-stime-function-calls.patch /build/busybox-1.31.1/
5252
RUN cd /build/busybox-1.31.1 && \
5353
patch -p1 -i 0001-Remove-stime-function-calls.patch && \
5454
make defconfig && \

src/ci/docker/dist-aarch64-linux/Dockerfile src/ci/docker/host-x86_64/dist-aarch64-linux/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ RUN sh /scripts/rustbuild-setup.sh
1616
USER rustbuild
1717
WORKDIR /tmp
1818

19-
COPY dist-aarch64-linux/aarch64-linux-gnu.config dist-aarch64-linux/build-toolchains.sh /tmp/
19+
COPY host-x86_64/dist-aarch64-linux/aarch64-linux-gnu.config host-x86_64/dist-aarch64-linux/build-toolchains.sh /tmp/
2020
RUN ./build-toolchains.sh
2121

2222
USER root

src/ci/docker/dist-arm-linux/Dockerfile src/ci/docker/host-x86_64/dist-arm-linux/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ RUN sh /scripts/rustbuild-setup.sh
1111
USER rustbuild
1212
WORKDIR /tmp
1313

14-
COPY dist-arm-linux/arm-linux-gnueabi.config dist-arm-linux/build-toolchains.sh /tmp/
14+
COPY host-x86_64/dist-arm-linux/arm-linux-gnueabi.config host-x86_64/dist-arm-linux/build-toolchains.sh /tmp/
1515
RUN ./build-toolchains.sh
1616

1717
USER root

src/ci/docker/dist-armhf-linux/Dockerfile src/ci/docker/host-x86_64/dist-armhf-linux/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ RUN sh /scripts/rustbuild-setup.sh
1111
USER rustbuild
1212
WORKDIR /tmp
1313

14-
COPY dist-armhf-linux/arm-linux-gnueabihf.config dist-armhf-linux/build-toolchains.sh /tmp/
14+
COPY host-x86_64/dist-armhf-linux/arm-linux-gnueabihf.config host-x86_64/dist-armhf-linux/build-toolchains.sh /tmp/
1515
RUN ./build-toolchains.sh
1616

1717
USER root

src/ci/docker/dist-armv7-linux/Dockerfile src/ci/docker/host-x86_64/dist-armv7-linux/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ RUN sh /scripts/rustbuild-setup.sh
1111
USER rustbuild
1212
WORKDIR /tmp
1313

14-
COPY dist-armv7-linux/build-toolchains.sh dist-armv7-linux/armv7-linux-gnueabihf.config /tmp/
14+
COPY host-x86_64/dist-armv7-linux/build-toolchains.sh host-x86_64/dist-armv7-linux/armv7-linux-gnueabihf.config /tmp/
1515
RUN ./build-toolchains.sh
1616

1717
USER root

src/ci/docker/dist-i686-linux/Dockerfile src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile

+11-11
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ ENV PATH=/rustroot/bin:$PATH
2929
ENV LD_LIBRARY_PATH=/rustroot/lib64:/rustroot/lib
3030
ENV PKG_CONFIG_PATH=/rustroot/lib/pkgconfig
3131
WORKDIR /tmp
32-
COPY dist-x86_64-linux/shared.sh /tmp/
32+
COPY host-x86_64/dist-x86_64-linux/shared.sh /tmp/
3333

3434
# We need a build of openssl which supports SNI to download artifacts from
3535
# static.rust-lang.org. This'll be used to link into libcurl below (and used
3636
# later as well), so build a copy of OpenSSL with dynamic libraries into our
3737
# generic root.
38-
COPY dist-x86_64-linux/build-openssl.sh /tmp/
38+
COPY host-x86_64/dist-x86_64-linux/build-openssl.sh /tmp/
3939
RUN ./build-openssl.sh
4040

4141
# The `curl` binary on CentOS doesn't support SNI which is needed for fetching
@@ -44,48 +44,48 @@ RUN ./build-openssl.sh
4444
#
4545
# Note that we also disable a bunch of optional features of curl that we don't
4646
# really need.
47-
COPY dist-x86_64-linux/build-curl.sh /tmp/
47+
COPY host-x86_64/dist-x86_64-linux/build-curl.sh /tmp/
4848
RUN ./build-curl.sh
4949

5050
# binutils < 2.22 has a bug where the 32-bit executables it generates
5151
# immediately segfault in Rust, so we need to install our own binutils.
5252
#
5353
# See https://github.com/rust-lang/rust/issues/20440 for more info
54-
COPY dist-x86_64-linux/build-binutils.sh /tmp/
54+
COPY host-x86_64/dist-x86_64-linux/build-binutils.sh /tmp/
5555
RUN ./build-binutils.sh
5656

5757
# libssh2 (a dependency of Cargo) requires cmake 2.8.11 or higher but CentOS
5858
# only has 2.6.4, so build our own
59-
COPY dist-x86_64-linux/build-cmake.sh /tmp/
59+
COPY host-x86_64/dist-x86_64-linux/build-cmake.sh /tmp/
6060
RUN ./build-cmake.sh
6161

6262
# Need a newer version of gcc than centos has to compile LLVM nowadays
63-
COPY dist-x86_64-linux/build-gcc.sh /tmp/
63+
COPY host-x86_64/dist-x86_64-linux/build-gcc.sh /tmp/
6464
RUN ./build-gcc.sh
6565

6666
# CentOS 5.5 has Python 2.4 by default, but LLVM needs 2.7+
67-
COPY dist-x86_64-linux/build-python.sh /tmp/
67+
COPY host-x86_64/dist-x86_64-linux/build-python.sh /tmp/
6868
RUN ./build-python.sh
6969

7070
# Now build LLVM+Clang 7, afterwards configuring further compilations to use the
7171
# clang/clang++ compilers.
72-
COPY dist-x86_64-linux/build-clang.sh dist-x86_64-linux/llvm-project-centos.patch /tmp/
72+
COPY host-x86_64/dist-x86_64-linux/build-clang.sh host-x86_64/dist-x86_64-linux/llvm-project-centos.patch /tmp/
7373
RUN ./build-clang.sh
7474
ENV CC=clang CXX=clang++
7575

7676
# Apparently CentOS 5.5 desn't have `git` in yum, but we're gonna need it for
7777
# cloning, so download and build it here.
78-
COPY dist-x86_64-linux/build-git.sh /tmp/
78+
COPY host-x86_64/dist-x86_64-linux/build-git.sh /tmp/
7979
RUN ./build-git.sh
8080

8181
# for sanitizers, we need kernel headers files newer than the ones CentOS ships
8282
# with so we install newer ones here
83-
COPY dist-x86_64-linux/build-headers.sh /tmp/
83+
COPY host-x86_64/dist-x86_64-linux/build-headers.sh /tmp/
8484
RUN ./build-headers.sh
8585

8686
# OpenSSL requires a more recent version of perl
8787
# with so we install newer ones here
88-
COPY dist-x86_64-linux/build-perl.sh /tmp/
88+
COPY host-x86_64/dist-x86_64-linux/build-perl.sh /tmp/
8989
RUN ./build-perl.sh
9090

9191
COPY scripts/sccache.sh /scripts/

src/ci/docker/dist-powerpc-linux/Dockerfile src/ci/docker/host-x86_64/dist-powerpc-linux/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ RUN sh /scripts/rustbuild-setup.sh
1616
USER rustbuild
1717
WORKDIR /tmp
1818

19-
COPY dist-powerpc-linux/patches/ /tmp/patches/
20-
COPY dist-powerpc-linux/powerpc-linux-gnu.config dist-powerpc-linux/build-powerpc-toolchain.sh /tmp/
19+
COPY host-x86_64/dist-powerpc-linux/patches/ /tmp/patches/
20+
COPY host-x86_64/dist-powerpc-linux/powerpc-linux-gnu.config host-x86_64/dist-powerpc-linux/build-powerpc-toolchain.sh /tmp/
2121
RUN ./build-powerpc-toolchain.sh
2222

2323
USER root

src/ci/docker/dist-powerpc64-linux/Dockerfile src/ci/docker/host-x86_64/dist-powerpc64-linux/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ RUN sh /scripts/rustbuild-setup.sh
1717
USER rustbuild
1818
WORKDIR /tmp
1919

20-
COPY dist-powerpc64-linux/patches/ /tmp/patches/
21-
COPY dist-powerpc64-linux/shared.sh dist-powerpc64-linux/powerpc64-linux-gnu.config dist-powerpc64-linux/build-powerpc64-toolchain.sh /tmp/
20+
COPY host-x86_64/dist-powerpc64-linux/patches/ /tmp/patches/
21+
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/
2222
RUN ./build-powerpc64-toolchain.sh
2323

2424
USER root

src/ci/docker/dist-powerpc64le-linux/Dockerfile src/ci/docker/host-x86_64/dist-powerpc64le-linux/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ WORKDIR /tmp
1919
USER root
2020

2121
RUN apt-get install -y --no-install-recommends rpm2cpio cpio
22-
COPY dist-powerpc64le-linux/shared.sh dist-powerpc64le-linux/build-powerpc64le-toolchain.sh /tmp/
22+
COPY host-x86_64/dist-powerpc64le-linux/shared.sh host-x86_64/dist-powerpc64le-linux/build-powerpc64le-toolchain.sh /tmp/
2323
RUN ./build-powerpc64le-toolchain.sh
2424

2525
COPY scripts/sccache.sh /scripts/

src/ci/docker/dist-s390x-linux/Dockerfile src/ci/docker/host-x86_64/dist-s390x-linux/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ RUN sh /scripts/rustbuild-setup.sh
1616
USER rustbuild
1717
WORKDIR /tmp
1818

19-
COPY dist-s390x-linux/patches/ /tmp/patches/
20-
COPY dist-s390x-linux/s390x-linux-gnu.config dist-s390x-linux/build-s390x-toolchain.sh /tmp/
19+
COPY host-x86_64/dist-s390x-linux/patches/ /tmp/patches/
20+
COPY host-x86_64/dist-s390x-linux/s390x-linux-gnu.config host-x86_64/dist-s390x-linux/build-s390x-toolchain.sh /tmp/
2121
RUN ./build-s390x-toolchain.sh
2222

2323
USER root

src/ci/docker/dist-various-1/Dockerfile src/ci/docker/host-x86_64/dist-various-1/Dockerfile

+6-6
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ RUN add-apt-repository ppa:team-gcc-arm-embedded/ppa && \
4747
apt-get update && \
4848
apt-get install -y --no-install-recommends gcc-arm-embedded
4949

50-
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/
50+
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/
5151
RUN ./crosstool-ng.sh
5252

5353
# Crosstool-ng will refuse to build as root
@@ -59,19 +59,19 @@ RUN ./build-riscv-toolchain.sh
5959
USER root
6060
ENV PATH=/x-tools/riscv64-unknown-linux-gnu/bin:$PATH
6161

62-
COPY dist-various-1/build-rumprun.sh /build
62+
COPY host-x86_64/dist-various-1/build-rumprun.sh /build
6363
RUN ./build-rumprun.sh
6464

65-
COPY dist-various-1/install-x86_64-redox.sh /build
65+
COPY host-x86_64/dist-various-1/install-x86_64-redox.sh /build
6666
RUN ./install-x86_64-redox.sh
6767

68-
COPY dist-various-1/install-mips-musl.sh /build
68+
COPY host-x86_64/dist-various-1/install-mips-musl.sh /build
6969
RUN ./install-mips-musl.sh
7070

71-
COPY dist-various-1/install-mipsel-musl.sh /build
71+
COPY host-x86_64/dist-various-1/install-mipsel-musl.sh /build
7272
RUN ./install-mipsel-musl.sh
7373

74-
COPY dist-various-1/install-aarch64-none-elf.sh /build
74+
COPY host-x86_64/dist-various-1/install-aarch64-none-elf.sh /build
7575
RUN ./install-aarch64-none-elf.sh
7676

7777
# Suppress some warnings in the openwrt toolchains we downloaded

src/ci/docker/dist-various-2/Dockerfile src/ci/docker/host-x86_64/dist-various-2/Dockerfile

+7-7
Original file line numberDiff line numberDiff line change
@@ -60,20 +60,20 @@ RUN env \
6060
rm -rf /build/*
6161

6262
WORKDIR /tmp
63-
COPY dist-various-2/shared.sh /tmp/
64-
COPY dist-various-2/build-cloudabi-toolchain.sh /tmp/
63+
COPY host-x86_64/dist-various-2/shared.sh /tmp/
64+
COPY host-x86_64/dist-various-2/build-cloudabi-toolchain.sh /tmp/
6565
RUN /tmp/build-cloudabi-toolchain.sh x86_64-unknown-cloudabi
66-
COPY dist-various-2/build-fuchsia-toolchain.sh /tmp/
66+
COPY host-x86_64/dist-various-2/build-fuchsia-toolchain.sh /tmp/
6767
RUN /tmp/build-fuchsia-toolchain.sh
68-
COPY dist-various-2/build-solaris-toolchain.sh /tmp/
68+
COPY host-x86_64/dist-various-2/build-solaris-toolchain.sh /tmp/
6969
RUN /tmp/build-solaris-toolchain.sh x86_64 amd64 solaris-i386
7070
RUN /tmp/build-solaris-toolchain.sh sparcv9 sparcv9 solaris-sparc
71-
COPY dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh /tmp/
72-
COPY dist-various-2/x86_64-fortanix-unknown-sgx-clang-wrap.sh /usr/bin/x86_64-fortanix-unknown-sgx-clang-11
71+
COPY host-x86_64/dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh /tmp/
72+
COPY host-x86_64/dist-various-2/x86_64-fortanix-unknown-sgx-clang-wrap.sh /usr/bin/x86_64-fortanix-unknown-sgx-clang-11
7373
RUN ln -s /usr/bin/x86_64-fortanix-unknown-sgx-clang-11 /usr/bin/x86_64-fortanix-unknown-sgx-clang++-11
7474
RUN /tmp/build-x86_64-fortanix-unknown-sgx-toolchain.sh
7575

76-
COPY dist-various-2/build-wasi-toolchain.sh /tmp/
76+
COPY host-x86_64/dist-various-2/build-wasi-toolchain.sh /tmp/
7777
RUN /tmp/build-wasi-toolchain.sh
7878

7979
COPY scripts/sccache.sh /scripts/

0 commit comments

Comments
 (0)