[libc-commits] [libc] [libc] Enable unistd.h on linux/arm and aarch64 (PR #214429)
Pavel Labath via libc-commits
libc-commits at lists.llvm.org
Thu Aug 6 01:16:26 PDT 2026
https://github.com/labath created https://github.com/llvm/llvm-project/pull/214429
This enables the unistd.h header and all available entry points for linux/arm, making it consistent with the existing linux/x86_64 and linux/riscv configurations.
While comparing the unistd entry point lists across architectures, I noticed that linux/aarch64 was missing chown and getgid. I've added those as well so all four Linux targets now share the exact same set of unistd entry points.
Assisted by Gemini.
>From 7f322519ffc8e456f21234079052365dc0f3764e Mon Sep 17 00:00:00 2001
From: Pavel Labath <pavel at labath.sk>
Date: Thu, 6 Aug 2026 08:14:27 +0000
Subject: [PATCH] [libc] Enable unistd.h on linux/arm and aarch64
This enables the unistd.h header and all available entry points for linux/arm,
making it consistent with the existing linux/x86_64 and linux/riscv
configurations.
While comparing the unistd entry point lists across architectures, I noticed
that linux/aarch64 was missing chown and getgid. I've added those as well so all
four Linux targets now share the exact same set of unistd entry points.
Assisted by Gemini.
---
libc/config/linux/aarch64/entrypoints.txt | 2 +
libc/config/linux/arm/entrypoints.txt | 64 +++++++++++++++++++++++
libc/config/linux/arm/headers.txt | 2 +
3 files changed, 68 insertions(+)
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index 1d5244b9c443e..cd83ce800d0fd 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -376,6 +376,7 @@ set(TARGET_LIBC_ENTRYPOINTS
libc.src.unistd.alarm
libc.src.unistd.access
libc.src.unistd.chdir
+ libc.src.unistd.chown
libc.src.unistd.close
libc.src.unistd.dup
libc.src.unistd.dup2
@@ -396,6 +397,7 @@ set(TARGET_LIBC_ENTRYPOINTS
libc.src.unistd.getppid
libc.src.unistd.getsid
libc.src.unistd.gettid
+ libc.src.unistd.getgid
libc.src.unistd.getuid
libc.src.unistd.isatty
libc.src.unistd.link
diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt
index 1986d6a5347dc..ca777aa2b6cf3 100644
--- a/libc/config/linux/arm/entrypoints.txt
+++ b/libc/config/linux/arm/entrypoints.txt
@@ -211,6 +211,57 @@ set(TARGET_LIBC_ENTRYPOINTS
libc.src.sys.time.setitimer
libc.src.sys.time.getitimer
+ # unistd.h entrypoints
+ libc.src.unistd.alarm
+ libc.src.unistd.access
+ libc.src.unistd.chdir
+ libc.src.unistd.chown
+ libc.src.unistd.close
+ libc.src.unistd.dup
+ libc.src.unistd.dup2
+ libc.src.unistd.dup3
+ libc.src.unistd.execve
+ libc.src.unistd.faccessat
+ libc.src.unistd.fchdir
+ libc.src.unistd.fchown
+ libc.src.unistd.fpathconf
+ libc.src.unistd.fsync
+ libc.src.unistd.ftruncate
+ libc.src.unistd.getcwd
+ libc.src.unistd.getentropy
+ libc.src.unistd.geteuid
+ libc.src.unistd.gethostname
+ libc.src.unistd.getpagesize
+ libc.src.unistd.getpid
+ libc.src.unistd.getppid
+ libc.src.unistd.getsid
+ libc.src.unistd.gettid
+ libc.src.unistd.getgid
+ libc.src.unistd.getuid
+ libc.src.unistd.isatty
+ libc.src.unistd.link
+ libc.src.unistd.linkat
+ libc.src.unistd.lseek
+ libc.src.unistd.pathconf
+ libc.src.unistd.pipe
+ libc.src.unistd.pipe2
+ libc.src.unistd.pread
+ libc.src.unistd.pwrite
+ libc.src.unistd.read
+ libc.src.unistd.readlink
+ libc.src.unistd.readlinkat
+ libc.src.unistd.rmdir
+ libc.src.unistd.setsid
+ libc.src.unistd.sleep
+ libc.src.unistd.symlink
+ libc.src.unistd.symlinkat
+ libc.src.unistd.sysconf
+ libc.src.unistd.truncate
+ libc.src.unistd.unlink
+ libc.src.unistd.unlinkat
+ libc.src.unistd.usleep
+ libc.src.unistd.write
+
# wctype.h entrypoints
libc.src.wctype.iswalpha
libc.src.wctype.iswgraph
@@ -245,6 +296,19 @@ if(LLVM_LIBC_FULL_BUILD)
libc.src.dirent.opendir
libc.src.dirent.readdir
libc.src.dirent.fdopendir
+
+ # unistd.h entrypoints
+ libc.src.unistd.__llvm_libc_syscall
+ libc.src.unistd._exit
+ libc.src.unistd.environ
+ libc.src.unistd.execv
+ libc.src.unistd.fork
+ libc.src.unistd.getopt
+ libc.src.unistd.optarg
+ libc.src.unistd.opterr
+ libc.src.unistd.optind
+ libc.src.unistd.optopt
+ libc.src.unistd.swab
)
endif()
diff --git a/libc/config/linux/arm/headers.txt b/libc/config/linux/arm/headers.txt
index 42580bfb10b2a..193229b266479 100644
--- a/libc/config/linux/arm/headers.txt
+++ b/libc/config/linux/arm/headers.txt
@@ -22,10 +22,12 @@ set(TARGET_PUBLIC_HEADERS
libc.include.strings
libc.include.pwd
libc.include.uchar
+ libc.include.unistd
libc.include.wchar
libc.include.wctype
libc.include.sys_param
libc.include.sys_personality
+ libc.include.sys_unistd
# Disabled due to epoll_wait syscalls not being available on this platform.
# libc.include.sys_epoll
)
More information about the libc-commits
mailing list