[libc-commits] [libc] [libc] Add faccessat entrypoints for aarch64 and riscv (PR #165869)
Marcell Leleszi via libc-commits
libc-commits at lists.llvm.org
Fri Oct 31 11:20:50 PDT 2025
https://github.com/mleleszi updated https://github.com/llvm/llvm-project/pull/165869
>From af59a3cf9b03c52a5a3c3bbdf04bce6509649e3e Mon Sep 17 00:00:00 2001
From: Marcell Leleszi <mleleszi at google.com>
Date: Fri, 31 Oct 2025 14:34:59 +0000
Subject: [PATCH 1/2] Add faccessat entrypoints for aarch64 and riscv linux
---
libc/config/linux/aarch64/entrypoints.txt | 3 +--
libc/config/linux/aarch64/exclude.txt | 7 +++++++
libc/config/linux/riscv/entrypoints.txt | 1 +
libc/config/linux/riscv/exclude.txt | 7 +++++++
4 files changed, 16 insertions(+), 2 deletions(-)
create mode 100644 libc/config/linux/aarch64/exclude.txt
create mode 100644 libc/config/linux/riscv/exclude.txt
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index 714120a79e39a..e0dd15b803253 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -325,8 +325,7 @@ set(TARGET_LIBC_ENTRYPOINTS
libc.src.unistd.dup2
libc.src.unistd.dup3
libc.src.unistd.execve
- # Disabled while SYS_faccessat2 is unavailable on the buildbot.
- # libc.src.unistd.faccessat
+ libc.src.unistd.faccessat
libc.src.unistd.fchdir
libc.src.unistd.fpathconf
libc.src.unistd.fsync
diff --git a/libc/config/linux/aarch64/exclude.txt b/libc/config/linux/aarch64/exclude.txt
new file mode 100644
index 0000000000000..d3147686a7a9d
--- /dev/null
+++ b/libc/config/linux/aarch64/exclude.txt
@@ -0,0 +1,7 @@
+include(CheckSymbolExists)
+check_symbol_exists(SYS_faccessat2 "sys/syscall.h" HAVE_SYS_FACCESSAT2)
+if(NOT HAVE_SYS_FACCESSAT2)
+ list(APPEND TARGET_LLVMLIBC_REMOVED_ENTRYPOINTS
+ libc.src.unistd.faccessat
+ )
+endif()
diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt
index f6bbb346d10e5..0d031d8844f13 100644
--- a/libc/config/linux/riscv/entrypoints.txt
+++ b/libc/config/linux/riscv/entrypoints.txt
@@ -329,6 +329,7 @@ set(TARGET_LIBC_ENTRYPOINTS
libc.src.unistd.dup2
libc.src.unistd.dup3
libc.src.unistd.execve
+ libc.src.unistd.faccessat
libc.src.unistd.fchdir
libc.src.unistd.fpathconf
libc.src.unistd.fsync
diff --git a/libc/config/linux/riscv/exclude.txt b/libc/config/linux/riscv/exclude.txt
new file mode 100644
index 0000000000000..d3147686a7a9d
--- /dev/null
+++ b/libc/config/linux/riscv/exclude.txt
@@ -0,0 +1,7 @@
+include(CheckSymbolExists)
+check_symbol_exists(SYS_faccessat2 "sys/syscall.h" HAVE_SYS_FACCESSAT2)
+if(NOT HAVE_SYS_FACCESSAT2)
+ list(APPEND TARGET_LLVMLIBC_REMOVED_ENTRYPOINTS
+ libc.src.unistd.faccessat
+ )
+endif()
>From f0ac60e1186e8c2dadde678fb52e3c6afabaa280 Mon Sep 17 00:00:00 2001
From: Marcell Leleszi <mleleszi at google.com>
Date: Fri, 31 Oct 2025 18:20:33 +0000
Subject: [PATCH 2/2] Add logging
---
libc/config/linux/aarch64/exclude.txt | 1 +
libc/config/linux/riscv/exclude.txt | 1 +
libc/config/linux/x86_64/exclude.txt | 1 +
3 files changed, 3 insertions(+)
diff --git a/libc/config/linux/aarch64/exclude.txt b/libc/config/linux/aarch64/exclude.txt
index d3147686a7a9d..f2f553f78933c 100644
--- a/libc/config/linux/aarch64/exclude.txt
+++ b/libc/config/linux/aarch64/exclude.txt
@@ -1,6 +1,7 @@
include(CheckSymbolExists)
check_symbol_exists(SYS_faccessat2 "sys/syscall.h" HAVE_SYS_FACCESSAT2)
if(NOT HAVE_SYS_FACCESSAT2)
+ message(VERBOSE "unistd.faccessat excluded from build, faccessat2 syscall is not available on the system")
list(APPEND TARGET_LLVMLIBC_REMOVED_ENTRYPOINTS
libc.src.unistd.faccessat
)
diff --git a/libc/config/linux/riscv/exclude.txt b/libc/config/linux/riscv/exclude.txt
index d3147686a7a9d..f2f553f78933c 100644
--- a/libc/config/linux/riscv/exclude.txt
+++ b/libc/config/linux/riscv/exclude.txt
@@ -1,6 +1,7 @@
include(CheckSymbolExists)
check_symbol_exists(SYS_faccessat2 "sys/syscall.h" HAVE_SYS_FACCESSAT2)
if(NOT HAVE_SYS_FACCESSAT2)
+ message(VERBOSE "unistd.faccessat excluded from build, faccessat2 syscall is not available on the system")
list(APPEND TARGET_LLVMLIBC_REMOVED_ENTRYPOINTS
libc.src.unistd.faccessat
)
diff --git a/libc/config/linux/x86_64/exclude.txt b/libc/config/linux/x86_64/exclude.txt
index a0686310d21ac..31b60a9c3497c 100644
--- a/libc/config/linux/x86_64/exclude.txt
+++ b/libc/config/linux/x86_64/exclude.txt
@@ -23,6 +23,7 @@ endif()
include(CheckSymbolExists)
check_symbol_exists(SYS_faccessat2 "sys/syscall.h" HAVE_SYS_FACCESSAT2)
if(NOT HAVE_SYS_FACCESSAT2)
+ message(VERBOSE "unistd.faccessat excluded from build, faccessat2 syscall is not available on the system")
list(APPEND TARGET_LLVMLIBC_REMOVED_ENTRYPOINTS
libc.src.unistd.faccessat
)
More information about the libc-commits
mailing list