Skip to content

Use crosstool-ng for dist-arm-linux-musl #143763

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 13 additions & 12 deletions src/ci/docker/host-x86_64/dist-arm-linux-musl/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,9 @@ RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
RUN sh /scripts/crosstool-ng.sh

WORKDIR /build

COPY scripts/musl-toolchain.sh /build/
# We need to mitigate rust-lang/rust#34978 when compiling musl itself as well
RUN CFLAGS="-Wa,--compress-debug-sections=none -Wl,--compress-debug-sections=none" \
CXXFLAGS="-Wa,--compress-debug-sections=none -Wl,--compress-debug-sections=none" \
bash musl-toolchain.sh aarch64 && rm -rf build

COPY scripts/rustbuild-setup.sh /scripts/
RUN sh /scripts/rustbuild-setup.sh

WORKDIR /tmp

COPY scripts/crosstool-ng-build.sh /scripts/
Expand All @@ -25,13 +18,21 @@ RUN /scripts/crosstool-ng-build.sh
COPY scripts/sccache.sh /scripts/
RUN sh /scripts/sccache.sh

ENV PATH=$PATH:/x-tools/aarch64-unknown-linux-musl/bin

ENV \
AR_aarch64_unknown_linux_musl=aarch64-unknown-linux-musl-ar \
CC_aarch64_unknown_linux_musl=aarch64-unknown-linux-musl-gcc \
CXX_aarch64_unknown_linux_musl=aarch64-unknown-linux-musl-g++

ENV HOSTS=aarch64-unknown-linux-musl

ENV RUST_CONFIGURE_ARGS \
--enable-full-tools \
--disable-docs \
--musl-root-aarch64=/usr/local/aarch64-linux-musl \
--enable-sanitizers \
--enable-profiler \
--set target.aarch64-unknown-linux-musl.crt-static=false
--enable-sanitizers \
--disable-docs \
--set target.aarch64-unknown-linux-musl.crt-static=false \
--musl-root-aarch64=/x-tools/aarch64-unknown-linux-musl/aarch64-unknown-linux-musl/sysroot/usr

ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
CT_ARCH_ARM=y
CT_ARCH_ARCH="armv6"
CT_ARCH_FLOAT_SW=y
CT_ARCH_64=y
# CT_DEMULTILIB is not set
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we explain why this is not set? 🤔

CT_KERNEL_LINUX=y
CT_LINUX_V_3_2=y
CT_BINUTILS_V_2_32=y
CT_GLIBC_V_2_17=y
CT_GCC_V_8=y
CT_LINUX_V_4_19=y
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why we increased this version?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This crosstool-ng config was unused before and for ARMv7. The musl-cross-make toolchain used before had 4.19 headers

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And no, I don't know why it was here or why it was for a 32-bit glibc toolchain :) Some of these dist jobs are a mess, which is why I'm trying to clean them up a bit

CT_LIBC_MUSL=y
CT_MUSL_V_1_2_3=y
CT_CC_LANG_CXX=y
CT_GETTEXT_NEEDED=y
Loading