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

Conversation

Gelbpunkt
Copy link
Contributor

Almost all of the musl dist jobs use crosstool-ng, only the aarch64 and x86_64 jobs use musl-cross-make. Let's start transitioning the remaining jobs over to crosstool-ng and start dropping musl-cross-make.

I noticed that this job is called dist-arm-linux-musl, but the GNU pendant is called dist-aarch64-linux. How would I go about renaming dist-arm-linux-musl to dist-aarch64-linux-musl? Is there any external effort required or can I just rename it in the repo?

try-job: dist-arm-linux-musl

Almost all of the musl dist jobs use crosstool-ng, only the aarch64 and
x86_64 jobs use musl-cross-make. Let's start transitioning the remaining
jobs over to crosstool-ng and start dropping musl-cross-make.

Signed-off-by: Jens Reidel <[email protected]>
@rustbot
Copy link
Collaborator

rustbot commented Jul 11, 2025

r? @marcoieni

rustbot has assigned @marcoieni.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Jul 11, 2025
@marcoieni
Copy link
Member

marcoieni commented Jul 11, 2025

I think you can just rename it (together with the corresponding docker image). You can do it in another PR, too.

FYI rust-lang/infra-team#190

I'm reviewing the PR 👀

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_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

@marcoieni
Copy link
Member

@bors try

bors added a commit that referenced this pull request Jul 11, 2025
Use crosstool-ng for dist-arm-linux-musl

Almost all of the musl dist jobs use crosstool-ng, only the aarch64 and x86_64 jobs use musl-cross-make. Let's start transitioning the remaining jobs over to crosstool-ng and start dropping musl-cross-make.

I noticed that this job is called `dist-arm-linux-musl`, but the GNU pendant is called `dist-aarch64-linux`. How would I go about renaming `dist-arm-linux-musl` to `dist-aarch64-linux-musl`? Is there any external effort required or can I just rename it in the repo?

try-job: dist-arm-linux-musl
@bors
Copy link
Collaborator

bors commented Jul 11, 2025

⌛ Trying commit a4813e0 with merge 3a16f98...

@bors
Copy link
Collaborator

bors commented Jul 11, 2025

☀️ Try build successful - checks-actions
Build commit: 3a16f98 (3a16f9895e7524cede8ae9b28d03a2563348525d)

@marcoieni
Copy link
Member

I downloaded the try build artifacts and compared them with the auto build artifacts from the last commit on master.

rustc-nightly-aarch64-unknown-linux-musl/rustc/bin/rustc is 71KB here, while in the latest autobuild is 11KB.

Is this size increase expected?

@Gelbpunkt
Copy link
Contributor Author

Gelbpunkt commented Jul 11, 2025

Seems a bit weird. I downloaded them and at first glance, only the rustc binary is a tiny bit larger indeed.

autobuild:

ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-aarch64.so.1, with debug_info, not stripped

try-build:

ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-aarch64.so.1, not stripped

llvm-readelf also confirms that the debuginfo sections are missing in the new one. Not sure why that'd increase the binary size though, I'll investigate a bit more.

I have a feeling that this is related to the changed CFLAGS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants