Skip to content

ci: Test powerpc64-unknown-linux-musl in tier 2#4983

Merged
tgross35 merged 1 commit into
rust-lang:mainfrom
Gelbpunkt:ppc64-musl-tier2
Jun 26, 2026
Merged

ci: Test powerpc64-unknown-linux-musl in tier 2#4983
tgross35 merged 1 commit into
rust-lang:mainfrom
Gelbpunkt:ppc64-musl-tier2

Conversation

@Gelbpunkt

Copy link
Copy Markdown
Contributor

Description

Since 1.95.0, this is now a tier 2 target.

Sources

Checklist

  • Relevant tests in libc-test/semver have been updated
  • No placeholder or unstable values like *LAST or *MAX are
    included (see #3131)
  • Tested locally (cd libc-test && cargo test --target mytarget);
    especially relevant for platforms that may not be checked in CI

@rustbot rustbot added A-CI Area: CI-related items S-waiting-on-review labels Feb 18, 2026
@Gelbpunkt
Gelbpunkt marked this pull request as draft February 18, 2026 03:26
@Gelbpunkt

Copy link
Copy Markdown
Contributor Author

This is going to be a bit of fun, since the Ubuntu cross compilation toolchain is for ELFv1. We'll have to compile libgcc ourselves or just start using the Rust CI images that contain ready-to-use toolchains.

@tgross35

tgross35 commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Could you say a bit more about where the mismatch comes from? I'm not sure why -musl hits the issue but -gnu isn't.

Using a prebuilt toolchain specifically for this target sounds nicer if possible, as long setup isn't too crazy.

@Gelbpunkt

Gelbpunkt commented Mar 3, 2026

Copy link
Copy Markdown
Contributor Author

Could you say a bit more about where the mismatch comes from? I'm not sure why -musl hits the issue but -gnu isn't.

The -musl target uses the ELFv2 ABI, while the -gnu target uses ELFv1. Ubuntu's toolchain can be forced to compile for ELFv2 with -mabi=elfv2, but the libgcc.a it bundles is for ELFv1 and cannot be linked together with ELFv2 objects.

Using a prebuilt toolchain specifically for this target sounds nicer if possible, as long setup isn't too crazy.

Rustup does this, they have a shell script to fetch the Docker base images from the r-l/r CI and use that for getting a ready to use toolchain.

@tgross35

tgross35 commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

Does linking with musl-gcc happen to work? I think it's in the musl-tools package and might be a bit easier.

Any idea if debian is going to move to elfv2 at some point? It seems like support for elfv1 is pretty poor at this point.

@Gelbpunkt

Copy link
Copy Markdown
Contributor Author

Does linking with musl-gcc happen to work? I think it's in the musl-tools package and might be a bit easier.

No, the musl-gcc on x86_64 cannot target big-endian powerpc64 and there are no musl cross compilers packaged as far as I can tell.

Any idea if debian is going to move to elfv2 at some point? It seems like support for elfv1 is pretty poor at this point.

No idea, I'm not really interested or involved in Debian...

@Gelbpunkt
Gelbpunkt force-pushed the ppc64-musl-tier2 branch 2 times, most recently from b59574e to 503d118 Compare June 26, 2026 04:21
@Gelbpunkt
Gelbpunkt marked this pull request as ready for review June 26, 2026 04:29
Comment thread ci/docker/powerpc64-unknown-linux-musl/Dockerfile Outdated
Comment thread ci/install-musl.sh
Comment thread ci/docker/powerpc64-unknown-linux-musl/Dockerfile
@rustbot

rustbot commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

Reminder, once the PR becomes ready for a review, use @rustbot ready.

Since 1.95.0, this is now a tier 2 target.
@Gelbpunkt
Gelbpunkt requested a review from tgross35 June 26, 2026 19:17

@tgross35 tgross35 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks great, thanks!

View changes since this review

@tgross35
tgross35 added this pull request to the merge queue Jun 26, 2026
Merged via the queue into rust-lang:main with commit ed3a6f9 Jun 26, 2026
56 checks passed
@tgross35 tgross35 added the stable-nominated This PR should be considered for cherry-pick to libc's stable release branch label Jul 20, 2026
tgross35 pushed a commit to tgross35/rust-libc that referenced this pull request Jul 20, 2026
Since 1.95.0, this is now a tier 2 target.

(backport <rust-lang#4983>)
(cherry picked from commit ed3a6f9)
tgross35 pushed a commit to tgross35/rust-libc that referenced this pull request Jul 20, 2026
Since 1.95.0, this is now a tier 2 target.

(backport <rust-lang#4983>)
(cherry picked from commit ed3a6f9)
@tgross35 tgross35 mentioned this pull request Jul 20, 2026
@tgross35 tgross35 mentioned this pull request Jul 20, 2026
tgross35 pushed a commit to tgross35/rust-libc that referenced this pull request Jul 20, 2026
Since 1.95.0, this is now a tier 2 target.

(backport <rust-lang#4983>)
(cherry picked from commit ed3a6f9)
@tgross35 tgross35 added stable-applied This PR has been cherry-picked to libc's stable release branch and removed stable-nominated This PR should be considered for cherry-pick to libc's stable release branch labels Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: CI-related items S-waiting-on-author stable-applied This PR has been cherry-picked to libc's stable release branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants