Skip to content

Commit 9ba34f8

Browse files
committed
ci: Organise shared helper scripts
Move shared helper scripts used by Docker builds under docker/scripts.
1 parent dce8c06 commit 9ba34f8

File tree

17 files changed

+41
-200
lines changed

17 files changed

+41
-200
lines changed

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

+8-6
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,12 @@ ENV LD_LIBRARY_PATH=/rustroot/lib64:/rustroot/lib32:/rustroot/lib
4343
ENV PKG_CONFIG_PATH=/rustroot/lib/pkgconfig
4444
WORKDIR /tmp
4545
RUN mkdir /home/user
46-
COPY host-aarch64/dist-aarch64-linux/shared.sh /tmp/
46+
COPY scripts/shared.sh /tmp/
4747

4848
# Need at least GCC 5.1 to compile LLVM
49-
COPY host-aarch64/dist-aarch64-linux/build-gcc.sh /tmp/
49+
COPY scripts/build-gcc.sh /tmp/
50+
ENV GCC_VERSION=9.5.0
51+
ENV GCC_BUILD_TARGET=aarch64-unknown-linux-gnu
5052
RUN ./build-gcc.sh && yum remove -y gcc gcc-c++
5153

5254
ENV CC=gcc CXX=g++
@@ -56,12 +58,13 @@ COPY scripts/cmake.sh /tmp/
5658
RUN ./cmake.sh
5759

5860
# Build LLVM+Clang
59-
COPY host-aarch64/dist-aarch64-linux/build-clang.sh /tmp/
61+
COPY scripts/build-clang.sh /tmp/
62+
ENV LLVM_BUILD_TARGETS=AArch64
6063
RUN ./build-clang.sh
6164
ENV CC=clang CXX=clang++
6265

6366
# Build zstd to enable `llvm.libzstd`.
64-
COPY host-aarch64/dist-aarch64-linux/build-zstd.sh /tmp/
67+
COPY scripts/build-zstd.sh /tmp/
6568
RUN ./build-zstd.sh
6669

6770
COPY scripts/sccache.sh /scripts/
@@ -82,7 +85,7 @@ ENV RUST_CONFIGURE_ARGS \
8285
--set target.aarch64-unknown-linux-gnu.ar=/rustroot/bin/llvm-ar \
8386
--set target.aarch64-unknown-linux-gnu.ranlib=/rustroot/bin/llvm-ranlib \
8487
--set llvm.link-shared=true \
85-
--set llvm.thin-lto=false \
88+
--set llvm.thin-lto=true \
8689
--set llvm.libzstd=true \
8790
--set llvm.ninja=false \
8891
--set rust.debug-assertions=false \
@@ -93,6 +96,5 @@ ENV RUST_CONFIGURE_ARGS \
9396
ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS
9497

9598
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=clang
96-
ENV DIST_SRC 1
9799
ENV LIBCURL_NO_PKG_CONFIG 1
98100
ENV DIST_REQUIRE_ALL_TOOLS 1

src/ci/docker/host-aarch64/dist-aarch64-linux/build-clang.sh

-46
This file was deleted.

src/ci/docker/host-aarch64/dist-aarch64-linux/build-gcc.sh

-51
This file was deleted.

src/ci/docker/host-aarch64/dist-aarch64-linux/shared.sh

-16
This file was deleted.

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

+6-3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ RUN yum upgrade -y && \
1919
gcc \
2020
gcc-c++ \
2121
git \
22+
binutils.i686 \
2223
glibc-devel.i686 \
2324
glibc-devel.x86_64 \
2425
libedit-devel \
@@ -46,19 +47,21 @@ ENV LD_LIBRARY_PATH=/rustroot/lib64:/rustroot/lib32:/rustroot/lib
4647
ENV PKG_CONFIG_PATH=/rustroot/lib/pkgconfig
4748
WORKDIR /tmp
4849
RUN mkdir /home/user
49-
COPY host-x86_64/dist-x86_64-linux/shared.sh /tmp/
50+
COPY scripts/shared.sh /tmp/
5051

5152
# Need at least GCC 5.1 to compile LLVM nowadays
52-
COPY host-x86_64/dist-x86_64-linux/build-gcc.sh /tmp/
53+
COPY scripts/build-gcc.sh /tmp/
5354
ENV GCC_VERSION=9.5.0
55+
ENV GCC_BUILD_TARGET=i686-pc-linux-gnu
5456
RUN ./build-gcc.sh && yum remove -y gcc gcc-c++
5557

5658
COPY scripts/cmake.sh /tmp/
5759
RUN ./cmake.sh
5860

5961
# Now build LLVM+Clang, afterwards configuring further compilations to use the
6062
# clang/clang++ compilers.
61-
COPY host-x86_64/dist-x86_64-linux/build-clang.sh /tmp/
63+
COPY scripts/build-clang.sh /tmp/
64+
ENV LLVM_BUILD_TARGETS=X86
6265
RUN ./build-clang.sh
6366
ENV CC=clang CXX=clang++
6467

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ RUN /scripts/crosstool-ng-build.sh
1818
WORKDIR /build
1919

2020
RUN apt-get install -y --no-install-recommends rpm2cpio cpio
21-
COPY host-x86_64/dist-powerpc64le-linux/shared.sh host-x86_64/dist-powerpc64le-linux/build-powerpc64le-toolchain.sh /build/
21+
COPY scripts/shared.sh host-x86_64/dist-powerpc64le-linux/build-powerpc64le-toolchain.sh /build/
2222
RUN ./build-powerpc64le-toolchain.sh
2323

2424
COPY scripts/sccache.sh /scripts/

src/ci/docker/host-x86_64/dist-powerpc64le-linux/shared.sh

-16
This file was deleted.

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

+6-4
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,12 @@ ENV PKG_CONFIG_PATH=/rustroot/lib/pkgconfig
4747
# Clang needs to access GCC headers to enable linker plugin LTO
4848
WORKDIR /tmp
4949
RUN mkdir /home/user
50-
COPY host-x86_64/dist-x86_64-linux/shared.sh /tmp/
50+
COPY scripts/shared.sh /tmp/
5151

5252
# Need at least GCC 5.1 to compile LLVM nowadays
53-
COPY host-x86_64/dist-x86_64-linux/build-gcc.sh /tmp/
53+
COPY scripts/build-gcc.sh /tmp/
5454
ENV GCC_VERSION=9.5.0
55+
ENV GCC_BUILD_TARGET=x86_64-pc-linux-gnu
5556
RUN ./build-gcc.sh && yum remove -y gcc gcc-c++
5657

5758
# LLVM 17 needs cmake 3.20 or higher.
@@ -60,12 +61,13 @@ RUN ./cmake.sh
6061

6162
# Now build LLVM+Clang, afterwards configuring further compilations to use the
6263
# clang/clang++ compilers.
63-
COPY host-x86_64/dist-x86_64-linux/build-clang.sh /tmp/
64+
COPY scripts/build-clang.sh /tmp/
65+
ENV LLVM_BUILD_TARGETS=X86
6466
RUN ./build-clang.sh
6567
ENV CC=clang CXX=clang++
6668

6769
# Build zstd to enable `llvm.libzstd`.
68-
COPY host-x86_64/dist-x86_64-linux/build-zstd.sh /tmp/
70+
COPY scripts/build-zstd.sh /tmp/
6971
RUN ./build-zstd.sh
7072

7173
COPY scripts/sccache.sh /scripts/

src/ci/docker/host-x86_64/dist-x86_64-linux/build-zstd.sh

-29
This file was deleted.

src/ci/docker/host-x86_64/dist-x86_64-linux/shared.sh

-16
This file was deleted.

src/ci/docker/host-x86_64/x86_64-gnu-llvm-18/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ ENV RUST_CONFIGURE_ARGS \
5454
--set rust.randomize-layout=true \
5555
--set rust.thin-lto-import-instr-limit=10
5656

57-
COPY host-x86_64/dist-x86_64-linux/shared.sh /scripts/
58-
COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
57+
COPY scripts/shared.sh /scripts/
58+
COPY scripts/build-gccjit.sh /scripts/
5959

6060
RUN /scripts/build-gccjit.sh /scripts
6161

src/ci/docker/host-x86_64/x86_64-gnu-llvm-19/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ ENV RUST_CONFIGURE_ARGS \
5454
--set rust.randomize-layout=true \
5555
--set rust.thin-lto-import-instr-limit=10
5656

57-
COPY host-x86_64/dist-x86_64-linux/shared.sh /scripts/
58-
COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
57+
COPY scripts/shared.sh /scripts/
58+
COPY scripts/build-gccjit.sh /scripts/
5959

6060
RUN /scripts/build-gccjit.sh /scripts
6161

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ ENV HOST_TARGET x86_64-unknown-linux-gnu
8989
# assertions enabled! Therefore, we cannot force download CI rustc.
9090
#ENV FORCE_CI_RUSTC 1
9191

92-
COPY host-x86_64/dist-x86_64-linux/shared.sh /scripts/
93-
COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
92+
COPY scripts/shared.sh /scripts/
93+
COPY scripts/build-gccjit.sh /scripts/
9494

9595
RUN /scripts/build-gccjit.sh /scripts
9696

src/ci/docker/host-x86_64/dist-x86_64-linux/build-clang.sh src/ci/docker/scripts/build-clang.sh

+8-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ cd clang-build
2121
# include path, /rustroot/include, to clang's default include path.
2222
INC="/rustroot/include:/usr/include"
2323

24+
GCC_PLUGIN_TARGET=$GCC_BUILD_TARGET
25+
# We build gcc for the i686 job on x86_64 so the plugin will end up under an x86_64 path
26+
if [[ $GCC_PLUGIN_TARGET == "i686-pc-linux-gnu" ]]; then
27+
GCC_PLUGIN_TARGET=x86_64-pc-linux-gnu
28+
fi
29+
2430
# We need compiler-rt for the profile runtime (used later to PGO the LLVM build)
2531
# but sanitizers aren't currently building. Since we don't need those, just
2632
# disable them. BOLT is used for optimizing LLVM.
@@ -34,12 +40,12 @@ hide_output \
3440
-DCOMPILER_RT_BUILD_XRAY=OFF \
3541
-DCOMPILER_RT_BUILD_MEMPROF=OFF \
3642
-DCOMPILER_RT_BUILD_CTX_PROFILE=OFF \
37-
-DLLVM_TARGETS_TO_BUILD=X86 \
43+
-DLLVM_TARGETS_TO_BUILD=$LLVM_BUILD_TARGETS \
3844
-DLLVM_INCLUDE_BENCHMARKS=OFF \
3945
-DLLVM_INCLUDE_TESTS=OFF \
4046
-DLLVM_INCLUDE_EXAMPLES=OFF \
4147
-DLLVM_ENABLE_PROJECTS="clang;lld;compiler-rt;bolt" \
42-
-DLLVM_BINUTILS_INCDIR="/rustroot/lib/gcc/x86_64-pc-linux-gnu/$GCC_VERSION/plugin/include/" \
48+
-DLLVM_BINUTILS_INCDIR="/rustroot/lib/gcc/$GCC_PLUGIN_TARGET/$GCC_VERSION/plugin/include/" \
4349
-DC_INCLUDE_DIRS="$INC"
4450

4551
hide_output make -j$(nproc)

src/ci/docker/host-x86_64/dist-x86_64-linux/build-gcc.sh src/ci/docker/scripts/build-gcc.sh

+6-4
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ cd ..
5151
rm -rf gcc-build
5252
rm -rf gcc-$GCC
5353

54-
# FIXME: clang doesn't find 32-bit libraries in /rustroot/lib,
55-
# but it does look all the way under /rustroot/lib/[...]/32,
56-
# so we can link stuff there to help it out.
57-
ln /rustroot/lib/*.{a,so} -rst /rustroot/lib/gcc/x86_64-pc-linux-gnu/$GCC/32/
54+
if [[ $GCC_BUILD_TARGET == "i686-pc-linux-gnu" ]]; then
55+
# FIXME: clang doesn't find 32-bit libraries in /rustroot/lib,
56+
# but it does look all the way under /rustroot/lib/[...]/32,
57+
# so we can link stuff there to help it out.
58+
ln /rustroot/lib/*.{a,so} -rst /rustroot/lib/gcc/x86_64-pc-linux-gnu/$GCC/32/
59+
fi

0 commit comments

Comments
 (0)