Skip to content
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

ci: add musl ppc64le #3537

Merged
merged 2 commits into from
May 15, 2024
Merged

Conversation

henryiii
Copy link
Contributor

Summary

Working on followup to #3523. I expect some changes will be required to match the glibc versions above.

Test Plan

@henryiii henryiii force-pushed the henryiii/ci/othermusl branch from 547721e to 0b5ae3f Compare May 13, 2024 04:30
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
@henryiii henryiii force-pushed the henryiii/ci/othermusl branch from 0b5ae3f to 64a02a4 Compare May 13, 2024 04:39
@henryiii
Copy link
Contributor Author

henryiii commented May 13, 2024

I'm not sure how to cross-compile for these targets. Binaries are not provided, AFAICT, so I think the target needs to be built. I vaguely have clues on how to do that, but not sure how to inject my ideas into maturin-action.

I don't think it's going to work, locally I tried:

docker run -v $PWD:/uv -w /uv --rm -it ubuntu
apt update && apt install curl build-essential cmake
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. "$HOME/.cargo/env"
rustup install nightly
rustup +nightly component add rust-src
cargo +nightly build -Z build-std --target powerpc64le-unknown-linux-musl

It makes it pretty far, but crashes compiling OpenSSL.

@charliermarsh
Copy link
Member

@konstin or @messense may have ideas.

@henryiii
Copy link
Contributor Author

It looks like there's mention of the powerpc64le one in maturin-action, so I was rather thinking that might work. s309x is sounds like it's not possible currently. I'm checking to see if missing uv on these two (I would assume) rarely used images is acceptable in manylinux.

@messense
Copy link
Contributor

messense commented May 14, 2024

ppc64le musl requires Rust nightly, I have tried to build a Docker image for s390x musl in the past, but it seems to have some issues (see rust-cross/rust-musl-cross#63) so I haven't added it to maturin-action.

@henryiii henryiii force-pushed the henryiii/ci/othermusl branch from 5cc87da to b5cac07 Compare May 14, 2024 04:52
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
@henryiii henryiii force-pushed the henryiii/ci/othermusl branch from b5cac07 to 7e970d8 Compare May 14, 2024 05:15
@henryiii henryiii changed the title ci: add builds for other musl targets ci: add musl ppc64le May 14, 2024
@henryiii
Copy link
Contributor Author

henryiii commented May 14, 2024

Great! Only musl s390x for manylinux (and Windows ARM for cibuildwheel) left!

Is rust-cross/rust-musl-cross#63 still an issue? Looks like it's been a while since it was attempted?

@henryiii henryiii marked this pull request as ready for review May 14, 2024 12:20
@messense
Copy link
Contributor

Is rust-cross/rust-musl-cross#63 still an issue? Looks like it's been a while since it was attempted?

Probably still an issue, but I think it's solvable given that Alpine Linux has the target working for years now, although it's a hard problem for people without deep knowledge in GCC.

@charliermarsh charliermarsh merged commit f7b9ca9 into astral-sh:main May 15, 2024
62 checks passed
@charliermarsh charliermarsh added the releases Related to building and distributing release artifacts of uv label May 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
releases Related to building and distributing release artifacts of uv
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants