-
-
Notifications
You must be signed in to change notification settings - Fork 5.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
BUG: Segmentation fault when cross-compiling from amd64 to arm64 using qemu emulation #49474
Comments
JITting on aarch64-linux has a specific segfault because we aren't using JITLink on it just yet, when the upgrade to LLVM 15 we will turn on JITLink and hopefully it makes it more reliable. Because of the bug I just described aarch64-linux is a tier 2 platform currently. |
Thank you very much for the answer. A specific followup question regarding this problem: |
It should just work as expected, no need to cross compile anything. If the machine is low powered precompilation might take a while. Just download the official binaries and use them |
I just encountered this bug: https://discourse.julialang.org/t/julia-1-9-on-qemu-aarch64-docker-segfaults-whille-importing-unitful/98711 If this is related with JITLink problem than this hopefully helps: #45859 |
I've confirmed that #49745 makes Unitful compile:
|
@schlichtanders can you please test on master now that #49745 has been merged? But above messages are already encouraging. |
I can confirm that this problem still persists on GitHub Actions (in my test the runner ran out of disk space and the build was killed) |
|
1.9.4 (via
Not 100% sure but it is overfilling the disk during precompilation so I'm pretty confident it's related to this one. Back in August when I last tested, this bug used to manifest as a segfault during precompilation. |
Sorry @giordano, I somehow missed the fact that this fix isn't part of Julia 1.9. Testing with Julia 1.10 RC instead, |
This seems to be an old issue, already reported 1.5 years back at JuliaLang/PackageCompiler.jl#433
There is another issue which reports similar issues JuliaPy/Conda.jl#228
Concretely, Julia segfaults if qemu is used to build packages for arm64. I.e. if you want to build for instance julia docker containers on a normal laptop for an ARM64 target you are out of luck if you are not running one of the new macbooks which run on arm.
The consequence is that julia does not support ARM64 like it supports AMD64, which I guess is a crucial bug.
Minimal Reproducible Example
Setup multi-arch docker on your amd64 system (e.g. any non-mac-laptop) by following the official tutorial.
Here a summary of the steps
Then you can test that the following docker images does not compile
docker buildx build --platform=linux/arm64 .
The output should look something like this
The same happens when using
julia:1.9-rc2
I am really astonished, that julia's ARM support is that restricted. I really would like to recommend Julia for ARM processing, hence let me ask the question: What do you think how long does it take to solve this bug so that people can cross-compile julia from their laptop to arm64?
The text was updated successfully, but these errors were encountered: