-
Notifications
You must be signed in to change notification settings - Fork 366
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
Build C++ SDK for Linux ARM64 #5489
Conversation
1292899
to
2056560
Compare
This comment was marked as outdated.
This comment was marked as outdated.
2056560
to
775de22
Compare
and make naming of ci jobs a tad more consistent
04b1eb6
to
ea6ec4f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The cmake stuff if beyond me, but the rest appears really straightforward 👍🏻
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I take it back :) We must make sure to always accept aarch64
and arm64
in input interchangeably.
was used to create & upload a new linux arm only bundle. Tested by @abey79 on a debian VM against the opencv example. It works! \o/ |
### What Add support for building a Linux ARM64 version of the CLI in our build system. - Follow-up to #5489 - Part of #4136 This PR introduces ugly work-around to be cleaned when our pixi deps support linux-aarch64: - #5507 ### Checklist * [x] I have read and agree to [Contributor Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md) * [x] I've included a screenshot or gif (if applicable) * [x] I have tested the web demo (if applicable): * Using newly built examples: [app.rerun.io](https://app.rerun.io/pr/5503/index.html) * Using examples from latest `main` build: [app.rerun.io](https://app.rerun.io/pr/5503/index.html?manifest_url=https://app.rerun.io/version/main/examples_manifest.json) * Using full set of examples from `nightly` build: [app.rerun.io](https://app.rerun.io/pr/5503/index.html?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json) * [x] The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG * [x] If applicable, add a new check to the [release checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)! - [PR Build Summary](https://build.rerun.io/pr/5503) - [Docs preview](https://rerun.io/preview/65c8082ad0c5482bad9167e8620490494f80637e/docs) <!--DOCS-PREVIEW--> - [Examples preview](https://rerun.io/preview/65c8082ad0c5482bad9167e8620490494f80637e/examples) <!--EXAMPLES-PREVIEW--> - [Recent benchmark results](https://build.rerun.io/graphs/crates.html) - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html) --------- Co-authored-by: Andreas Reich <andreas@rerun.io>
### What Build linux-aarch64 wheels (with manylinux_2_31) and fixes the C and CLI builds to bring the min required glibc version to 2.31. **Note**: cursory inspection indicates that the _actual_ min glibc version 2.29. However, we don't formally test that. The only test is done by `maturin` on our wheels, against the `manylinux_2_31` standard. Amongst other things, this PR: - updates our ci docker image to be compatible with aarch64 (#5543 – thanks @jleibs) - remove all instances of double GCS authentication (our setup-rust action auth to GCS, so an explicit auth isn't necessary, _and_ would break cleanup in linux-arm/cli build workflow—why there only is unclear) - use it for all linux-aarch64 builds - fixes `pixi.toml` for linux-aarch64 compatibility - bumps pixi to 0.16.1 everywhere in the ci - adds a manual trigger for building wheels - (mostly) unifies the target naming scheme #### Related - Follow-up to: - #5489 - #5503 - Closes #4136 - Fixes #5507 #### Further work - ~~support lower glibc version: #5512 - test more wheels: #5525 ### Checklist * [x] I have read and agree to [Contributor Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md) * [x] I've included a screenshot or gif (if applicable) * [x] I have tested the web demo (if applicable): * Using newly built examples: [app.rerun.io](https://app.rerun.io/pr/5511/index.html) * Using examples from latest `main` build: [app.rerun.io](https://app.rerun.io/pr/5511/index.html?manifest_url=https://app.rerun.io/version/main/examples_manifest.json) * Using full set of examples from `nightly` build: [app.rerun.io](https://app.rerun.io/pr/5511/index.html?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json) * [x] The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG * [x] If applicable, add a new check to the [release checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)! - [PR Build Summary](https://build.rerun.io/pr/5511) - [Docs preview](https://rerun.io/preview/c029b411730d035b9babdba3f9721dbe2905196b/docs) <!--DOCS-PREVIEW--> - [Examples preview](https://rerun.io/preview/c029b411730d035b9babdba3f9721dbe2905196b/examples) <!--EXAMPLES-PREVIEW--> - [Recent benchmark results](https://build.rerun.io/graphs/crates.html) - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html) --------- Co-authored-by: Jeremy Leibs <jeremy@rerun.io>
What
Had to use a buildjet runner because some of our
rerun_c
dependencies (ring
foremost) had trouble cross compiling after all.Artifact I built from CI by emulating push-to-main ci:
https://build.rerun.io/commit/04b1eb6/rerun_cpp_sdk.zip
Not properly tested, but evidently has arm64 linux static library in it.
Checklist
main
build: app.rerun.ionightly
build: app.rerun.io