-
Notifications
You must be signed in to change notification settings - Fork 213
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 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 [email protected]. 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. |
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: