From 6d68ca995794a7d5f4fb04f97cc01768775e332c Mon Sep 17 00:00:00 2001 From: Anhad Singh Date: Mon, 1 Dec 2025 14:41:52 +1100 Subject: [PATCH] fix(platform/linux): use `FACCESSAT` to implement access(2) `ACCESS` syscall is not available on aarch64. Signed-off-by: Anhad Singh --- src/platform/linux/mod.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/platform/linux/mod.rs b/src/platform/linux/mod.rs index 6d6fe31e1c..84b18f93ec 100644 --- a/src/platform/linux/mod.rs +++ b/src/platform/linux/mod.rs @@ -79,10 +79,16 @@ impl Sys { } impl Pal for Sys { + #[cfg(any(target_arch = "x86_64", target_arch = "x86"))] fn access(path: CStr, mode: c_int) -> Result<()> { e_raw(unsafe { syscall!(ACCESS, path.as_ptr(), mode) }).map(|_| ()) } + #[cfg(target_arch = "aarch64")] + fn access(path: CStr, mode: c_int) -> Result<()> { + e_raw(unsafe { syscall!(FACCESSAT, AT_FDCWD, path.as_ptr(), mode, 0) }).map(|_| ()) + } + unsafe fn brk(addr: *mut c_void) -> Result<*mut c_void> { Ok(e_raw(unsafe { syscall!(BRK, addr) })? as *mut c_void) }