Add arm64 builds to CI
Description
Add arm64 python wheel generation in CI. Solve #3091
Changes:
- Ensure rustup gets the version appropriate for the architecture
- Add a manylinux container for arm64
- Fix target for native arm compilation
- Fix cmake install in pagmo2/arm64
- Fix protoc arch in cmake
Disclosure: Claude Opus 4.5 helped me identify the details to solve the problem.
Testing
I ran the fully CI suite on my branch.
I assume that the existing test suite is sufficient, since I'm only building a new artifact for the same code.
Thanks for your work on this! I'm not sure why the x86_64 builds are suddenly running out of disk space. I'm looking into fixing that today. Our CI builds tend to run up against builder disk space limits, there is probably some excess / unused stuff on the filesystem we can remove to clear up space.
Besides the x86_64 builder disk space issues, there are still a couple things needed on this PR to support aarch64/arm64 builds:
- Needs to run the Python test job on arm64 as well
- Needs to upload the wheel artifacts and include them in the tagged release.
I've been working on those items in my branch. Today I'm going to cherry-pick your commits onto my branch, so that you retain attribution for your work, and see if I can't get all the builds green.
Closing in favor of #3092 , which carries over my work.