-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
Issue Summary
Claudia currently cannot build on ARM64/aarch64 Linux systems due to syscall compatibility limitations in the gaol sandboxing library
dependency. This affects users on ARM64 Linux platforms who would like to use Claudia.
Environment Details
- Platform: ARM64/aarch64 Linux
- OS: Ubuntu 24.04 LTS (likely affects other ARM64 Linux distributions)
- Architecture: aarch64-unknown-linux-gnu
- Claudia Version: Current main branch
Technical Background
The challenge stems from ARM64 Linux using a different syscall architecture than x86/x86_64. ARM64 doesn't provide many "legacy" syscalls and
instead uses modernized variants:
Syscall Differences on ARM64:
- poll → ppoll
- epoll_wait → epoll_pwait
- open → openat
- access → faccessat
- readlink → readlinkat
- stat → fstat
Current Build Behavior
When attempting to build on ARM64 Linux:
error[E0425]: cannot find value SYS_poll
in module libc
--> platform/linux/seccomp.rs:163:5
|
163 | SYS_poll as u32,
| ^^^^^^^^ not found in libc
Workaround Available
For those needing ARM64 support currently, there's a fork of gaol that addresses these syscall compatibility issues I made:
Temporary workaround in src-tauri/Cargo.toml
[patch.crates-io]
gaol = { git = "https://github.com/ZacharyArthur/gaol", branch = "fix-aarch64-syscalls" }
This patch adds conditional compilation for ARM64-specific syscall mappings and resolves the build issues.
Impact & User Base
Potentially Affected Users:
- ARM64 Linux developers
- Apple Silicon Mac users running Linux
- Raspberry Pi and edge computing developers
- ARM-based server deployments
Suggested Path Forward
It would be valuable for the claudia project to investigate ARM64 Linux support, potentially through:
- Research: Evaluating the syscall compatibility requirements for ARM64
- Upstream collaboration: Working with the gaol maintainers on proper ARM64 support
- Alternative approaches: Exploring other sandboxing solutions that have native ARM64 support
- CI integration: Adding ARM64 testing to catch future compatibility issues
Priority Consideration
With the growing adoption of ARM64 in development environments (Apple Silicon, AWS Graviton instances, etc.), ARM64 Linux support could
benefit a significant portion of the developer community.