Hi,
I've been trying to build Android apps on a Raspberry Pi 4 (linux-arm64) using the .NET 10 SDK and ran into the fact that Microsoft.Android.Sdk.Linux only ships x86_64 host binaries. I poked around and the missing pieces are pretty narrow — would it be possible to add a linux-arm64 host build to the workload pack matrix?
What's actually x86_64-only inside ~/.dotnet/packs/Microsoft.Android.Sdk.Linux/<version>/:
tools/Linux/aapt2
tools/libMono.Unix.so
tools/libZipSharpNative-3-3.so
tools/Linux/binutils/bin/{as,ld,llc,llvm-mc,llvm-objcopy,llvm-strip,...} and the matching lib*.so
Everything else under tools/lib/arm64-v8a/, tools/dsostubs/, tools/libstubs/ and the aarch64-linux-android-* cross binaries is already shipped as aarch64 (those are device payloads / cross-compilers, not host tools).
Why this matters now:
- The .NET SDK itself is published for linux-arm64.
- ARM dev hosts and CI runners are increasingly common (Pi 4/5, Apple Silicon Linux VMs, Ampere / Graviton).
- qemu-user emulating amd64 isn't a viable workaround — the .NET runtime hits threading / signal issues under it (PLINQ ETW init failure, segfaults on plain
dotnet new console), so you can't just run the existing pack through emulation.
I'd be happy to test any preview build on actual arm64 hardware if it helps. Is this on the radar, or is there a reason the host matrix is intentionally x86_64-only?
Thanks.
Hi,
I've been trying to build Android apps on a Raspberry Pi 4 (linux-arm64) using the .NET 10 SDK and ran into the fact that
Microsoft.Android.Sdk.Linuxonly ships x86_64 host binaries. I poked around and the missing pieces are pretty narrow — would it be possible to add a linux-arm64 host build to the workload pack matrix?What's actually x86_64-only inside
~/.dotnet/packs/Microsoft.Android.Sdk.Linux/<version>/:tools/Linux/aapt2tools/libMono.Unix.sotools/libZipSharpNative-3-3.sotools/Linux/binutils/bin/{as,ld,llc,llvm-mc,llvm-objcopy,llvm-strip,...}and the matchinglib*.soEverything else under
tools/lib/arm64-v8a/,tools/dsostubs/,tools/libstubs/and theaarch64-linux-android-*cross binaries is already shipped as aarch64 (those are device payloads / cross-compilers, not host tools).Why this matters now:
dotnet new console), so you can't just run the existing pack through emulation.I'd be happy to test any preview build on actual arm64 hardware if it helps. Is this on the radar, or is there a reason the host matrix is intentionally x86_64-only?
Thanks.