-
Notifications
You must be signed in to change notification settings - Fork 216
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Build for Linux on aarch64 #888
Comments
My understanding is that it would go against #823. It would be nice to be able to provide native binaries for linux-arm64, but I don't think GitHub action has any runner yet (see actions/runner-images#5631). |
I'm sorry that I do not specialize in native programming. So, I'm unsure if my build only requires glibc@2.12. But I built the project followed by the official workflow (https://github.com/apache/maven-mvnd/blob/1.0-m7/.github/workflows/release.yaml#L67) which contains #825 that solves #823. I just replaced all Then everything was fine, even the When I copy the target to another aarch64 machine that runs Kylin-OS (a Linux distribution that seems like CentOS 8), it still works fine. It is worth mentioning that my |
By the way, I built the project by Docker which runs on my Apple M1 Macbook. So, can we use the macOS runner to start up a container and then build the project for linux-aarch64? |
The mentioned runner is my laptop :-) If you can create a PR that would add provide a script that can generate the linux-aarch64 binaries, I should be able to upload those during the release process (please add the step to https://github.com/apache/maven-mvnd/blob/master/RELEASING.adoc in the PR...) |
For aarch64 arch, the oldest public released glibc is glibc-2.17 for CentOS7. It is reasonable that we limit the running glibc >= 2.17 on aarch64 cpu. But the resource should be upload for each hardware (x64/arm64). Also the UT in CI could be improved to check dependencies strictly for each arch. |
I used Windows to run the container and tried to build the project in the linux-aarch64 container, but the build time was too long and there were always errors in the mvnd-client build:["pool-1-thread-1" Id=47 in TIMED_WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5733b0b1], with some threads experiencing deadlocks. It has already taken a week. Could you please send me the mvnd of your aarch64 machine running on Kylin OS email or other means so that I can try using it.Thank you very much. |
@gnodet question: why we need to be compatible with this specific glibc 2.12 - seams to me that it's pretty old one like here: https://repology.org/project/glibc/versions |
glibc supports arm from 2.17, we could use different verify conditions for x64 and arm. |
I found some issues and resolved them when building mvnd for Linux on aarch64.
I'm using docker image
ubuntu:22.04
on aarch64 machine.This is my patch:
After the patch, it builds successfully and works fine on my machine.
I'm looking forward to the official release of Linux aarch64 pre-built distribution. But until then, this patch may help some people in need, so I share it.
The text was updated successfully, but these errors were encountered: