Skip to content

Commit 9ee22ff

Browse files
committed
Auto merge of #99833 - andrewpollack:fuchsia-rust-ci-zircon-lib-improvement, r=Mark-Simulacrum
Fuchsia CI zircon lib improvement Removing Zircon build process, instead pulling `sysroot` and related libs directly from Fuchsia SDK cc. `@tmandry` `@djkoloski`
2 parents 5a9c3a2 + fa4ce7a commit 9ee22ff

File tree

2 files changed

+65
-53
lines changed

2 files changed

+65
-53
lines changed

Diff for: src/ci/docker/host-x86_64/dist-various-2/Dockerfile

+12-6
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,16 @@ RUN add-apt-repository -y 'deb https://apt.dilos.org/dilos dilos2 main'
3232
ENV \
3333
AR_x86_64_fuchsia=x86_64-fuchsia-ar \
3434
CC_x86_64_fuchsia=x86_64-fuchsia-clang \
35+
CFLAGS_x86_64_fuchsia="--target=x86_64-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
3536
CXX_x86_64_fuchsia=x86_64-fuchsia-clang++ \
37+
CXXFLAGS_x86_64_fuchsia="--target=x86_64-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
38+
LDFLAGS_x86_64_fuchsia="--target=x86_64-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot -L/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/lib" \
3639
AR_aarch64_fuchsia=aarch64-fuchsia-ar \
3740
CC_aarch64_fuchsia=aarch64-fuchsia-clang \
41+
CFLAGS_aarch64_fuchsia="--target=aarch64-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
3842
CXX_aarch64_fuchsia=aarch64-fuchsia-clang++ \
43+
CXXFLAGS_aarch64_fuchsia="--target=aarch64-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot -I/usr/local/core-linux-amd64-fuchsia-sdk/pkg/fdio/include" \
44+
LDFLAGS_aarch64_fuchsia="--target=aarch64-fuchsia --sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot -L/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/lib" \
3945
AR_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-ar \
4046
CC_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-gcc \
4147
CXX_sparcv9_sun_solaris=sparcv9-sun-solaris2.10-g++ \
@@ -89,14 +95,14 @@ RUN sh /scripts/sccache.sh
8995

9096
ENV CARGO_TARGET_X86_64_FUCHSIA_AR /usr/local/bin/llvm-ar
9197
ENV CARGO_TARGET_X86_64_FUCHSIA_RUSTFLAGS \
92-
-C link-arg=--sysroot=/usr/local/x86_64-fuchsia \
93-
-C link-arg=-L/usr/local/x86_64-fuchsia/lib \
94-
-C link-arg=-L/usr/local/lib/x86_64-fuchsia/lib
98+
-C link-arg=--sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot \
99+
-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/sysroot/lib \
100+
-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/x64/lib
95101
ENV CARGO_TARGET_AARCH64_FUCHSIA_AR /usr/local/bin/llvm-ar
96102
ENV CARGO_TARGET_AARCH64_FUCHSIA_RUSTFLAGS \
97-
-C link-arg=--sysroot=/usr/local/aarch64-fuchsia \
98-
-C link-arg=-L/usr/local/aarch64-fuchsia/lib \
99-
-C link-arg=-L/usr/local/lib/aarch64-fuchsia/lib
103+
-C link-arg=--sysroot=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot \
104+
-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/sysroot/lib \
105+
-Lnative=/usr/local/core-linux-amd64-fuchsia-sdk/arch/arm64/lib
100106

101107
ENV TARGETS=x86_64-fuchsia
102108
ENV TARGETS=$TARGETS,aarch64-fuchsia

Diff for: src/ci/docker/host-x86_64/dist-various-2/build-fuchsia-toolchain.sh

+53-47
Original file line numberDiff line numberDiff line change
@@ -3,52 +3,58 @@
33
set -ex
44
source shared.sh
55

6-
ZIRCON=e9a26dbc70d631029f8ee9763103910b7e3a2fe1
7-
8-
mkdir -p zircon
9-
pushd zircon > /dev/null
10-
11-
# Download sources
12-
git init
13-
git remote add origin https://github.com/rust-lang-nursery/mirror-google-fuchsia-zircon
14-
git fetch --depth=1 origin $ZIRCON
15-
git reset --hard FETCH_HEAD
16-
17-
# Download toolchain
18-
./scripts/download-toolchain
19-
chmod -R a+rx prebuilt/downloads/clang+llvm-x86_64-linux
20-
cp -a prebuilt/downloads/clang+llvm-x86_64-linux/. /usr/local
21-
22-
build() {
23-
local arch="$1"
24-
25-
case "${arch}" in
26-
x86_64) tgt="zircon-pc-x86-64" ;;
27-
aarch64) tgt="zircon-qemu-arm64" ;;
28-
esac
29-
30-
hide_output make -j$(getconf _NPROCESSORS_ONLN) $tgt
31-
dst=/usr/local/${arch}-fuchsia
32-
mkdir -p $dst
33-
cp -a build-${tgt}/sysroot/include $dst/
34-
cp -a build-${tgt}/sysroot/lib $dst/
6+
FUCHSIA_SDK_URL=https://chrome-infra-packages.appspot.com/dl/fuchsia/sdk/core/linux-amd64
7+
FUCHSIA_SDK_ID=4xjxrGUrDbQ6_zJwj6cDN1IbWsWV5aCQXC_zO_Hu0XkC
8+
FUCHSIA_SDK_SHA256=e318f1ac652b0db43aff32708fa70337521b5ac595e5a0905c2ff33bf1eed179
9+
FUCHSIA_SDK_USR_DIR=/usr/local/core-linux-amd64-fuchsia-sdk
10+
CLANG_DOWNLOAD_URL=\
11+
https://chrome-infra-packages.appspot.com/dl/fuchsia/third_party/clang/linux-amd64
12+
CLANG_DOWNLOAD_ID=vU0vNjSihOV4Q6taQYCpy03JXGiCyVwxen3rFMNMIgsC
13+
CLANG_DOWNLOAD_SHA256=bd4d2f3634a284e57843ab5a4180a9cb4dc95c6882c95c317a7deb14c34c220b
14+
15+
install_clang() {
16+
mkdir -p clang_download
17+
pushd clang_download > /dev/null
18+
19+
# Download clang+llvm
20+
curl -LO "${CLANG_DOWNLOAD_URL}/+/${CLANG_DOWNLOAD_ID}"
21+
echo "$(echo ${CLANG_DOWNLOAD_SHA256}) ${CLANG_DOWNLOAD_ID}" | sha256sum --check --status
22+
unzip -qq ${CLANG_DOWNLOAD_ID} -d clang-linux-amd64
23+
24+
# Other dists currently depend on our Clang... moving into /usr/local for other
25+
# dist usage instead of a Fuchsia /usr/local directory
26+
chmod -R 777 clang-linux-amd64/.
27+
cp -a clang-linux-amd64/. /usr/local
28+
29+
# CFLAGS and CXXFLAGS env variables in main Dockerfile handle sysroot linking
30+
for arch in x86_64 aarch64; do
31+
for tool in clang clang++; do
32+
ln -s /usr/local/bin/${tool} /usr/local/bin/${arch}-fuchsia-${tool}
33+
done
34+
ln -s /usr/local/bin/llvm-ar /usr/local/bin/${arch}-fuchsia-ar
35+
done
36+
37+
popd > /dev/null
38+
rm -rf clang_download
3539
}
3640

37-
# Build sysroot
38-
for arch in x86_64 aarch64; do
39-
build ${arch}
40-
done
41-
42-
popd > /dev/null
43-
rm -rf zircon
44-
45-
for arch in x86_64 aarch64; do
46-
for tool in clang clang++; do
47-
cat >/usr/local/bin/${arch}-fuchsia-${tool} <<EOF
48-
#!/bin/sh
49-
${tool} --target=${arch}-fuchsia --sysroot=/usr/local/${arch}-fuchsia "\$@"
50-
EOF
51-
chmod +x /usr/local/bin/${arch}-fuchsia-${tool}
52-
done
53-
ln -s /usr/local/bin/llvm-ar /usr/local/bin/${arch}-fuchsia-ar
54-
done
41+
install_zircon_libs() {
42+
mkdir -p zircon
43+
pushd zircon > /dev/null
44+
45+
# Download Fuchsia SDK (with Zircon libs)
46+
curl -LO "${FUCHSIA_SDK_URL}/+/${FUCHSIA_SDK_ID}"
47+
echo "$(echo ${FUCHSIA_SDK_SHA256}) ${FUCHSIA_SDK_ID}" | sha256sum --check --status
48+
unzip -qq ${FUCHSIA_SDK_ID} -d core-linux-amd64
49+
50+
# Moving SDK into Docker's user-space
51+
mkdir -p ${FUCHSIA_SDK_USR_DIR}
52+
chmod -R 777 core-linux-amd64/.
53+
cp -r core-linux-amd64/* ${FUCHSIA_SDK_USR_DIR}
54+
55+
popd > /dev/null
56+
rm -rf zircon
57+
}
58+
59+
hide_output install_clang
60+
hide_output install_zircon_libs

0 commit comments

Comments
 (0)