From af59a3cf9b03c52a5a3c3bbdf04bce6509649e3e Mon Sep 17 00:00:00 2001 From: Marcell Leleszi 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 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 )