dotnet / dotnet/android

linux-arm64 host build for Microsoft.Android.Sdk.Linux

Open
#11,184 3 comments 0 reactions 0 assignees View on GitHub
needs-triage
Dominant language
C#
Stars
2.1k
Forks
579
Avg merge
1d 19h
Merged PRs (30d)
252

Description

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//`:

- `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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.