[libc-commits] [libc] [libc] Enable unistd.h on linux/arm and aarch64 (PR #214429)
via libc-commits
libc-commits at lists.llvm.org
Thu Aug 6 01:17:11 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: Pavel Labath (labath)
<details>
<summary>Changes</summary>
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.
---
Full diff: https://github.com/llvm/llvm-project/pull/214429.diff
3 Files Affected:
- (modified) libc/config/linux/aarch64/entrypoints.txt (+2)
- (modified) libc/config/linux/arm/entrypoints.txt (+64)
- (modified) libc/config/linux/arm/headers.txt (+2)
``````````diff
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
)
``````````
</details>
https://github.com/llvm/llvm-project/pull/214429
More information about the libc-commits
mailing list