-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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 Python wheels for aarch64 using QEMU #7864
Conversation
Hey there, have you tested this on your fork at all? My tests using this technique last year ended up timing out after running for over six hours |
3afbce3
to
9fedac0
Compare
I ran into unrelated errors that I suspected (whether correctly or not) may be due to environment differences in GitHub Actions that might not occur in the main duckdb repo. So the results of the tests running against this PR will indicate its validity. At first glance, #4519 would appear to have been successful. Are there results available with details of the timeouts that have not expired? |
Your unrelated errors are due to tags missing from your fork I think? While I was able to successfully build in the end, the issue with those successful builds was that they didn't conform to the manylinux specifications, so would have been unusable by most people |
I think so, this should end up somewhere in the docs eventually, should be something like:
|
Thank you both for that info! I've pushed the tags to my fork accordingly. On my fork the job Python 3 Linux (x86_64, cp310-*, false) is failing the test Is there a straightforward resolution to this error? |
This appears to be resolved on the second attempt as a result of the tags being pushed: |
@adavis444 it looks like your builds timed out in the same way that my ones did unfortunately |
https://github.com/duckdb/duckdb/actions/runs/5201519274
Although that is unfortunate and consistent with past results, I'm encouraged by the completion of I'm experimenting with the separation of the manylinux builds from the musllinux builds on my fork here. |
Given that, when isolated, it would be reasonable to provide |
Okay, that does look promising, keep us in the loop! |
Well, this looks all green, consider me impressed! @Mytherin it'd be amazing to have this in the bug fix release 😉 |
Let's give it a shot on the nightly. Thanks for the contribution! |
I am able to use cross-compile via crossenv(https://crossenv.readthedocs.io/) and aarch64 toolchains in the x86_64 host. This compilation is fast. Here are steps:
then make && make install
As a result, this build the aarch64 wheel, it takes about 10 mins in my machine. The build package is tested in the ARM64 cortex-A35. |
Python linux wheels for aarch64 were originally introduced in #1678, then later removed in #3381.
As stated in issues #1677 and #4407, building from source is slow for developers and may not be possible on some machines.
These changes add aarch64 wheel support.
They do not introduce building extensions for aarch64, analogous to the current behavior for musllinux and i686 builds.
Resolves #1677
Resolves #4407