Skip to content

Commit fa4ce7a

Browse files
committed
Shifting CI to pull Zircon libraries directly from Fuchsia SDK
PR feedback PR Followups Updating clang download Updating clang download Restructuring env used Restructuring env used Adding chmod Adding chmod Adding chmod
1 parent 2643b16 commit fa4ce7a

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)