cross-rs / cross

“Zero setup” cross compilation and “cross testing” of Rust crates
Apache License 2.0
6.8k stars 379 forks source link

arm64-gnu to arm64-musl issues #1584

Open senpro-ingwersenk opened 2 weeks ago

senpro-ingwersenk commented 2 weeks ago

Checklist

Describe your request

I ran into an issue where I am trying to use a more powerful server to cross-compile SurrealDB to my RaspberryPi 4 - and, as I tried it, this happened:

root@birb /o/surrealdb (main)# cross build --target aarch64-unknown-linux-musl -r
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2024-10-17, rust version 1.82.0 (f6e511eec 2024-10-15)
info: downloading component 'cargo'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: installing component 'cargo'
info: installing component 'rust-std'
 26.0 MiB /  26.0 MiB (100 %)  15.3 MiB/s in  1s ETA:  0s
info: installing component 'rustc'
 70.8 MiB /  70.8 MiB (100 %)  16.2 MiB/s in  4s ETA:  0s

  stable-x86_64-unknown-linux-gnu installed - (error reading rustc version)

info: checking for self-update
info: downloading component 'rust-std' for 'aarch64-unknown-linux-musl'
info: installing component 'rust-std' for 'aarch64-unknown-linux-musl'
 25.8 MiB /  25.8 MiB (100 %)  15.8 MiB/s in  1s ETA:  0s
Unable to find image 'ghcr.io/cross-rs/aarch64-unknown-linux-musl:main' locally
main: Pulling from cross-rs/aarch64-unknown-linux-musl
d9802f032d67: Pull complete
84e68b366b33: Pull complete
1c0655ec1fa3: Pull complete
c8db26c352f3: Pull complete
5113a443ef0a: Pull complete
8a287e72ee77: Pull complete
0c4667a3edfd: Pull complete
32fdcffb41d6: Pull complete
c3a3ce655159: Pull complete
63f158e0225e: Pull complete
2869f9335c0b: Pull complete
82a7a4c3ba0e: Pull complete
1ae5e81955dd: Pull complete
1eb0a2de0cc2: Pull complete
3887d053be72: Pull complete
c570d6e1631c: Pull complete
c2e75171d04f: Pull complete
Digest: sha256:0a6c6b05b7cebf61ede2ca41b54d70bb267f7619829f03165cf8427abad680e7
Status: Downloaded newer image for ghcr.io/cross-rs/aarch64-unknown-linux-musl:main
exec /usr/bin/sh: exec format error

Specs: CPU: 4 vCPU cores on Ampere Altra Max RAM: 8GB + 16GB swap Storage: 70GB

#  uname -a
Linux birb 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:26:41 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

Therefore, I'd love for cross to better support "libc to libc" compiles.

Describe why this would be a good inclusion for cross

Most devices that I know that run on Alpine are small and embedded devices that couldn't support building a huge project like SurrealDB. So this would help them a lot!