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.
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
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:
Current Build Behavior
When attempting to build on ARM64 Linux:
error[E0425]: cannot find value
SYS_pollin modulelibc--> platform/linux/seccomp.rs:163:5
|
163 | SYS_poll as u32,
| ^^^^^^^^ not found in
libcWorkaround 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:
Suggested Path Forward
It would be valuable for the claudia project to investigate ARM64 Linux support, potentially through:
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.