Skip to content

Commit f26527f

Browse files
Auto merge of #138699 - psumbera:solaris-ci-build3, r=<try>
build dist for x86_64-pc-solaris and sparcv9-sun-solaris <!-- homu-ignore:start --> FIx for #126025 Note that this needs Nix with following commit: nix-rust/nix@0f45593 Unfortunatelly there is no new release. And for sparcv9 it needs also: tov/libffi-rs#103 For now it therefore uses cargo patch infrastructure for these. <!-- homu-ignore:end --> try-job: dist-sparcv9-solaris try-job: dist-x86_64-solaris
2 parents 6de3a73 + 0f1579b commit f26527f

File tree

11 files changed

+285
-172
lines changed

11 files changed

+285
-172
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
FROM ubuntu:22.04
2+
3+
COPY scripts/cross-apt-packages.sh /tmp/
4+
RUN bash /tmp/cross-apt-packages.sh
5+
6+
# Required gcc dependencies.
7+
RUN apt-get update && \
8+
apt-get install -y --no-install-recommends \
9+
libgmp-dev \
10+
libmpfr-dev \
11+
libmpc-dev \
12+
&& rm -rf /var/lib/apt/lists/*
13+
14+
COPY scripts/shared.sh /tmp/
15+
COPY scripts/solaris-toolchain.sh /tmp/
16+
17+
RUN bash /tmp/solaris-toolchain.sh sparcv9 sysroot
18+
RUN bash /tmp/solaris-toolchain.sh sparcv9 binutils
19+
RUN bash /tmp/solaris-toolchain.sh sparcv9 gcc
20+
21+
COPY scripts/sccache.sh /scripts/
22+
RUN sh /scripts/sccache.sh
23+
24+
COPY scripts/cmake.sh /scripts/
25+
RUN /scripts/cmake.sh
26+
27+
ENV \
28+
AR_sparcv9_sun_solaris=sparcv9-solaris-ar \
29+
RANLIB_sparcv9_sun_solaris=sparcv9-solaris-ranlib \
30+
CC_sparcv9_sun_solaris=sparcv9-solaris-gcc \
31+
CXX_sparcv9_sun_solaris=sparcv9-solaris-g++
32+
33+
ENV HOSTS=sparcv9-sun-solaris
34+
35+
ENV RUST_CONFIGURE_ARGS --enable-extended --disable-docs
36+
ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS

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

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,6 @@ ENV \
4343
CXX_aarch64_unknown_fuchsia=aarch64-unknown-fuchsia-clang++ \
4444
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" \
4545
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" \
46-
AR_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-ar \
47-
CC_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-gcc \
48-
CXX_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-g++ \
49-
AR_x86_64_pc_solaris=x86_64-pc-solaris2.10-ar \
50-
CC_x86_64_pc_solaris=x86_64-pc-solaris2.10-gcc \
51-
CXX_x86_64_pc_solaris=x86_64-pc-solaris2.10-g++ \
5246
CC_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-gcc-9 \
5347
CXX_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-g++-9 \
5448
AR_x86_64_fortanix_unknown_sgx=ar \
@@ -84,9 +78,6 @@ WORKDIR /tmp
8478
COPY scripts/shared.sh /tmp/
8579
COPY scripts/build-fuchsia-toolchain.sh /tmp/
8680
RUN /tmp/build-fuchsia-toolchain.sh
87-
COPY host-x86_64/dist-various-2/build-solaris-toolchain.sh /tmp/
88-
RUN /tmp/build-solaris-toolchain.sh x86_64 amd64 solaris-i386 pc
89-
RUN /tmp/build-solaris-toolchain.sh sparcv9 sparcv9 solaris-sparc sun
9081
COPY host-x86_64/dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh /tmp/
9182
RUN /tmp/build-x86_64-fortanix-unknown-sgx-toolchain.sh
9283

@@ -118,8 +109,6 @@ ENV TARGETS=$TARGETS,wasm32-wasip1
118109
ENV TARGETS=$TARGETS,wasm32-wasip1-threads
119110
ENV TARGETS=$TARGETS,wasm32-wasip2
120111
ENV TARGETS=$TARGETS,wasm32v1-none
121-
ENV TARGETS=$TARGETS,sparcv9-sun-solaris
122-
ENV TARGETS=$TARGETS,x86_64-pc-solaris
123112
ENV TARGETS=$TARGETS,x86_64-unknown-linux-gnux32
124113
ENV TARGETS=$TARGETS,x86_64-fortanix-unknown-sgx
125114
ENV TARGETS=$TARGETS,nvptx64-nvidia-cuda

src/ci/docker/host-x86_64/dist-various-2/build-solaris-toolchain.sh

Lines changed: 0 additions & 111 deletions
This file was deleted.

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ RUN apt-get update && \
1515
python2.7 \
1616
&& rm -rf /var/lib/apt/lists/*
1717

18+
COPY scripts/shared.sh /tmp/
1819
COPY scripts/illumos-toolchain.sh /tmp/
1920

2021
RUN bash /tmp/illumos-toolchain.sh x86_64 sysroot
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
FROM ubuntu:22.04
2+
3+
COPY scripts/cross-apt-packages.sh /tmp/
4+
RUN bash /tmp/cross-apt-packages.sh
5+
6+
# Required gcc dependencies.
7+
RUN apt-get update && \
8+
apt-get install -y --no-install-recommends \
9+
libgmp-dev \
10+
libmpfr-dev \
11+
libmpc-dev \
12+
&& rm -rf /var/lib/apt/lists/*
13+
14+
COPY scripts/shared.sh /tmp/
15+
COPY scripts/solaris-toolchain.sh /tmp/
16+
17+
RUN bash /tmp/solaris-toolchain.sh x86_64 sysroot
18+
RUN bash /tmp/solaris-toolchain.sh x86_64 binutils
19+
RUN bash /tmp/solaris-toolchain.sh x86_64 gcc
20+
21+
COPY scripts/sccache.sh /scripts/
22+
RUN sh /scripts/sccache.sh
23+
24+
COPY scripts/cmake.sh /scripts/
25+
RUN /scripts/cmake.sh
26+
27+
ENV \
28+
AR_x86_64_pc_solaris=x86_64-solaris-ar \
29+
RANLIB_x86_64_pc_solaris=x86_64-solaris-ranlib \
30+
CC_x86_64_pc_solaris=x86_64-solaris-gcc \
31+
CXX_x86_64_pc_solaris=x86_64-solaris-g++
32+
33+
ENV HOSTS=x86_64-pc-solaris
34+
35+
ENV RUST_CONFIGURE_ARGS --enable-extended --disable-docs
36+
ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS

src/ci/docker/scripts/illumos-toolchain.sh

Lines changed: 5 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ set -o errexit
44
set -o pipefail
55
set -o xtrace
66

7+
source /tmp/shared.sh
8+
79
ARCH="$1"
810
PHASE="$2"
911

@@ -59,52 +61,13 @@ BINUTILS_TAR="$BINUTILS_BASE.tar.bz2"
5961
BINUTILS_URL="https://ftp.gnu.org/gnu/binutils/$BINUTILS_TAR"
6062

6163

62-
download_file() {
63-
local file="$1"
64-
local url="$2"
65-
local sum="$3"
66-
67-
while :; do
68-
if [[ -f "$file" ]]; then
69-
if ! h="$(sha256sum "$file" | awk '{ print $1 }')"; then
70-
printf 'ERROR: reading hash\n' >&2
71-
exit 1
72-
fi
73-
74-
if [[ "$h" == "$sum" ]]; then
75-
return 0
76-
fi
77-
78-
printf 'WARNING: hash mismatch: %s != expected %s\n' \
79-
"$h" "$sum" >&2
80-
rm -f "$file"
81-
fi
82-
83-
printf 'Downloading: %s\n' "$url"
84-
if ! curl -f -L -o "$file" "$url"; then
85-
rm -f "$file"
86-
sleep 1
87-
fi
88-
done
89-
}
90-
91-
9264
case "$PHASE" in
9365
sysroot)
94-
download_file "/tmp/$SYSROOT_TAR" "$SYSROOT_URL" "$SYSROOT_SUM"
95-
mkdir -p "$SYSROOT_DIR"
96-
cd "$SYSROOT_DIR"
97-
tar -xzf "/tmp/$SYSROOT_TAR"
98-
rm -f "/tmp/$SYSROOT_TAR"
66+
download_tar_and_extract_into_dir "$SYSROOT_URL" "$SYSROOT_SUM" "$SYSROOT_DIR"
9967
;;
10068

10169
binutils)
102-
download_file "/tmp/$BINUTILS_TAR" "$BINUTILS_URL" "$BINUTILS_SUM"
103-
mkdir -p /ws/src/binutils
104-
cd /ws/src/binutils
105-
tar -xjf "/tmp/$BINUTILS_TAR"
106-
rm -f "/tmp/$BINUTILS_TAR"
107-
70+
download_tar_and_extract_into_dir "$BINUTILS_URL" "$BINUTILS_SUM" /ws/src/binutils
10871
mkdir -p /ws/build/binutils
10972
cd /ws/build/binutils
11073
"/ws/src/binutils/$BINUTILS_BASE/configure" \
@@ -123,12 +86,7 @@ binutils)
12386
;;
12487

12588
gcc)
126-
download_file "/tmp/$GCC_TAR" "$GCC_URL" "$GCC_SUM"
127-
mkdir -p /ws/src/gcc
128-
cd /ws/src/gcc
129-
tar -xJf "/tmp/$GCC_TAR"
130-
rm -f "/tmp/$GCC_TAR"
131-
89+
download_tar_and_extract_into_dir "$GCC_URL" "$GCC_SUM" /ws/src/gcc
13290
mkdir -p /ws/build/gcc
13391
cd /ws/build/gcc
13492
export CFLAGS='-fPIC'

src/ci/docker/scripts/shared.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,37 @@ function retry {
4040
}
4141
done
4242
}
43+
44+
download_tar_and_extract_into_dir() {
45+
local url="$1"
46+
local sum="$2"
47+
local dir="$3"
48+
local file=$(mktemp -u)
49+
50+
while :; do
51+
if [[ -f "$file" ]]; then
52+
if ! h="$(sha256sum "$file" | awk '{ print $1 }')"; then
53+
printf 'ERROR: reading hash\n' >&2
54+
exit 1
55+
fi
56+
57+
if [[ "$h" == "$sum" ]]; then
58+
break
59+
fi
60+
61+
printf 'WARNING: hash mismatch: %s != expected %s\n' "$h" "$sum" >&2
62+
rm -f "$file"
63+
fi
64+
65+
printf 'Downloading: %s\n' "$url"
66+
if ! curl -f -L -o "$file" "$url"; then
67+
rm -f "$file"
68+
sleep 1
69+
fi
70+
done
71+
72+
mkdir -p "$dir"
73+
cd "$dir"
74+
tar -xf "$file"
75+
rm -f "$file"
76+
}

0 commit comments

Comments
 (0)