https://github.com/cseriildi updated 
https://github.com/llvm/llvm-project/pull/144748

From c4681dfa8da9ba90418525f32a3d1968366174d2 Mon Sep 17 00:00:00 2001
From: Ildiko Cseri <cseriild...@icloud.com>
Date: Wed, 18 Jun 2025 12:58:34 +0000
Subject: [PATCH] [include-cleaner] Add POSIX symbol mappings

Add POSIX symbol-to-header mappings (e.g., `timeval`, `strsignal`, `signal`, 
`errno`) in new dedicated mapping files to avoid mixing with standard library 
mappings.

Closes several related issues: #64336, #76567, #89844, #120830, #134818.

Co-authored-by: itislu <itislu....@gmail.com>
---
 .../Inclusions/Stdlib/CPosixSymbolMap.inc     | 347 +++++++++++++
 .../Inclusions/Stdlib/CxxPosixSymbolMap.inc   | 458 ++++++++++++++++++
 .../Inclusions/Stdlib/StandardLibrary.cpp     |  12 +
 3 files changed, 817 insertions(+)
 create mode 100644 clang/lib/Tooling/Inclusions/Stdlib/CPosixSymbolMap.inc
 create mode 100644 clang/lib/Tooling/Inclusions/Stdlib/CxxPosixSymbolMap.inc

diff --git a/clang/lib/Tooling/Inclusions/Stdlib/CPosixSymbolMap.inc 
b/clang/lib/Tooling/Inclusions/Stdlib/CPosixSymbolMap.inc
new file mode 100644
index 0000000000000..ab967dd193c4c
--- /dev/null
+++ b/clang/lib/Tooling/Inclusions/Stdlib/CPosixSymbolMap.inc
@@ -0,0 +1,347 @@
+//===-- CPosixSymbolMap.inc ---------------------------------------*- C 
-*-===//
+//
+// This is a hand-curated list for C POSIX symbols that cannot be
+// parsed/extracted via the include-mapping tool (gen_std.py).
+//
+//===----------------------------------------------------------------------===//
+
+// clang-format off
+// prevent breaking <sys/types.h> -> <sys / types.h>
+
+// errno.h
+SYMBOL(E2BIG, None, <errno.h>)
+SYMBOL(EACCES, None, <errno.h>)
+SYMBOL(EADDRINUSE, None, <errno.h>)
+SYMBOL(EADDRNOTAVAIL, None, <errno.h>)
+SYMBOL(EAFNOSUPPORT, None, <errno.h>)
+SYMBOL(EAGAIN, None, <errno.h>)
+SYMBOL(EALREADY, None, <errno.h>)
+SYMBOL(EBADE, None, <errno.h>)
+SYMBOL(EBADF, None, <errno.h>)
+SYMBOL(EBADFD, None, <errno.h>)
+SYMBOL(EBADMSG, None, <errno.h>)
+SYMBOL(EBADR, None, <errno.h>)
+SYMBOL(EBADRQC, None, <errno.h>)
+SYMBOL(EBADSLT, None, <errno.h>)
+SYMBOL(EBUSY, None, <errno.h>)
+SYMBOL(ECANCELED, None, <errno.h>)
+SYMBOL(ECHILD, None, <errno.h>)
+SYMBOL(ECHRNG, None, <errno.h>)
+SYMBOL(ECOMM, None, <errno.h>)
+SYMBOL(ECONNABORTED, None, <errno.h>)
+SYMBOL(ECONNREFUSED, None, <errno.h>)
+SYMBOL(ECONNRESET, None, <errno.h>)
+SYMBOL(EDEADLK, None, <errno.h>)
+SYMBOL(EDEADLOCK, None, <errno.h>)
+SYMBOL(EDESTADDRREQ, None, <errno.h>)
+SYMBOL(EDQUOT, None, <errno.h>)
+SYMBOL(EEXIST, None, <errno.h>)
+SYMBOL(EFAULT, None, <errno.h>)
+SYMBOL(EFBIG, None, <errno.h>)
+SYMBOL(EHOSTDOWN, None, <errno.h>)
+SYMBOL(EHOSTUNREACH, None, <errno.h>)
+SYMBOL(EHWPOISON, None, <errno.h>)
+SYMBOL(EIDRM, None, <errno.h>)
+SYMBOL(EINPROGRESS, None, <errno.h>)
+SYMBOL(EINTR, None, <errno.h>)
+SYMBOL(EINVAL, None, <errno.h>)
+SYMBOL(EIO, None, <errno.h>)
+SYMBOL(EISCONN, None, <errno.h>)
+SYMBOL(EISDIR, None, <errno.h>)
+SYMBOL(EISNAM, None, <errno.h>)
+SYMBOL(EKEYEXPIRED, None, <errno.h>)
+SYMBOL(EKEYREJECTED, None, <errno.h>)
+SYMBOL(EKEYREVOKED, None, <errno.h>)
+SYMBOL(EL2HLT, None, <errno.h>)
+SYMBOL(EL2NSYNC, None, <errno.h>)
+SYMBOL(EL3HLT, None, <errno.h>)
+SYMBOL(EL3RST, None, <errno.h>)
+SYMBOL(ELIBACC, None, <errno.h>)
+SYMBOL(ELIBBAD, None, <errno.h>)
+SYMBOL(ELIBMAX, None, <errno.h>)
+SYMBOL(ELIBSCN, None, <errno.h>)
+SYMBOL(ELIBEXEC, None, <errno.h>)
+SYMBOL(ELNRNG, None, <errno.h>)
+SYMBOL(ELOOP, None, <errno.h>)
+SYMBOL(EMEDIUMTYPE, None, <errno.h>)
+SYMBOL(EMFILE, None, <errno.h>)
+SYMBOL(EMLINK, None, <errno.h>)
+SYMBOL(EMSGSIZE, None, <errno.h>)
+SYMBOL(EMULTIHOP, None, <errno.h>)
+SYMBOL(ENAMETOOLONG, None, <errno.h>)
+SYMBOL(ENETDOWN, None, <errno.h>)
+SYMBOL(ENETRESET, None, <errno.h>)
+SYMBOL(ENETUNREACH, None, <errno.h>)
+SYMBOL(ENFILE, None, <errno.h>)
+SYMBOL(ENOANO, None, <errno.h>)
+SYMBOL(ENOBUFS, None, <errno.h>)
+SYMBOL(ENODATA, None, <errno.h>)
+SYMBOL(ENODEV, None, <errno.h>)
+SYMBOL(ENOENT, None, <errno.h>)
+SYMBOL(ENOEXEC, None, <errno.h>)
+SYMBOL(ENOKEY, None, <errno.h>)
+SYMBOL(ENOLCK, None, <errno.h>)
+SYMBOL(ENOLINK, None, <errno.h>)
+SYMBOL(ENOMEDIUM, None, <errno.h>)
+SYMBOL(ENOMEM, None, <errno.h>)
+SYMBOL(ENOMSG, None, <errno.h>)
+SYMBOL(ENONET, None, <errno.h>)
+SYMBOL(ENOPKG, None, <errno.h>)
+SYMBOL(ENOPROTOOPT, None, <errno.h>)
+SYMBOL(ENOSPC, None, <errno.h>)
+SYMBOL(ENOSR, None, <errno.h>)
+SYMBOL(ENOSTR, None, <errno.h>)
+SYMBOL(ENOSYS, None, <errno.h>)
+SYMBOL(ENOTBLK, None, <errno.h>)
+SYMBOL(ENOTCONN, None, <errno.h>)
+SYMBOL(ENOTDIR, None, <errno.h>)
+SYMBOL(ENOTEMPTY, None, <errno.h>)
+SYMBOL(ENOTRECOVERABLE, None, <errno.h>)
+SYMBOL(ENOTSOCK, None, <errno.h>)
+SYMBOL(ENOTSUP, None, <errno.h>)
+SYMBOL(ENOTTY, None, <errno.h>)
+SYMBOL(ENOTUNIQ, None, <errno.h>)
+SYMBOL(ENXIO, None, <errno.h>)
+SYMBOL(EOPNOTSUPP, None, <errno.h>)
+SYMBOL(EOVERFLOW, None, <errno.h>)
+SYMBOL(EOWNERDEAD, None, <errno.h>)
+SYMBOL(EPERM, None, <errno.h>)
+SYMBOL(EPFNOSUPPORT, None, <errno.h>)
+SYMBOL(EPIPE, None, <errno.h>)
+SYMBOL(EPROTO, None, <errno.h>)
+SYMBOL(EPROTONOSUPPORT, None, <errno.h>)
+SYMBOL(EPROTOTYPE, None, <errno.h>)
+SYMBOL(EREMCHG, None, <errno.h>)
+SYMBOL(EREMOTE, None, <errno.h>)
+SYMBOL(EREMOTEIO, None, <errno.h>)
+SYMBOL(ERESTART, None, <errno.h>)
+SYMBOL(ERFKILL, None, <errno.h>)
+SYMBOL(EROFS, None, <errno.h>)
+SYMBOL(ESHUTDOWN, None, <errno.h>)
+SYMBOL(ESPIPE, None, <errno.h>)
+SYMBOL(ESOCKTNOSUPPORT, None, <errno.h>)
+SYMBOL(ESRCH, None, <errno.h>)
+SYMBOL(ESTALE, None, <errno.h>)
+SYMBOL(ESTRPIPE, None, <errno.h>)
+SYMBOL(ETIME, None, <errno.h>)
+SYMBOL(ETIMEDOUT, None, <errno.h>)
+SYMBOL(ETOOMANYREFS, None, <errno.h>)
+SYMBOL(ETXTBSY, None, <errno.h>)
+SYMBOL(EUCLEAN, None, <errno.h>)
+SYMBOL(EUNATCH, None, <errno.h>)
+SYMBOL(EUSERS, None, <errno.h>)
+SYMBOL(EWOULDBLOCK, None, <errno.h>)
+SYMBOL(EXDEV, None, <errno.h>)
+SYMBOL(EXFULL, None, <errno.h>)
+
+// limits.h
+SYMBOL(SSIZE_MAX, None, <limits.h>)
+
+// pthread.h
+SYMBOL(pthread_attr_t, None, <pthread.h>)
+SYMBOL(pthread_attr_t, None, <sys/types.h>)
+SYMBOL(pthread_attr_t, None, <signal.h>)
+SYMBOL(pthread_barrier_t, None, <pthread.h>)
+SYMBOL(pthread_barrier_t, None, <sys/types.h>)
+SYMBOL(pthread_barrierattr_t, None, <pthread.h>)
+SYMBOL(pthread_barrierattr_t, None, <sys/types.h>)
+SYMBOL(pthread_cond_t, None, <pthread.h>)
+SYMBOL(pthread_cond_t, None, <sys/types.h>)
+SYMBOL(pthread_condattr_t, None, <pthread.h>)
+SYMBOL(pthread_condattr_t, None, <sys/types.h>)
+SYMBOL(pthread_key_t, None, <pthread.h>)
+SYMBOL(pthread_key_t, None, <sys/types.h>)
+SYMBOL(pthread_mutex_t, None, <pthread.h>)
+SYMBOL(pthread_mutex_t, None, <sys/types.h>)
+SYMBOL(pthread_mutexattr_t, None, <pthread.h>)
+SYMBOL(pthread_mutexattr_t, None, <sys/types.h>)
+SYMBOL(pthread_once_t, None, <pthread.h>)
+SYMBOL(pthread_once_t, None, <sys/types.h>)
+SYMBOL(pthread_rwlock_t, None, <pthread.h>)
+SYMBOL(pthread_rwlock_t, None, <sys/types.h>)
+SYMBOL(pthread_rwlockattr_t, None, <pthread.h>)
+SYMBOL(pthread_rwlockattr_t, None, <sys/types.h>)
+SYMBOL(pthread_spinlock_t, None, <pthread.h>)
+SYMBOL(pthread_spinlock_t, None, <sys/types.h>)
+SYMBOL(pthread_t, None, <pthread.h>)
+SYMBOL(pthread_t, None, <signal.h>)
+SYMBOL(pthread_t, None, <sys/types.h>)
+
+// signal.h - as of POSIX.1-2024
+// https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/signal.h.html
+SYMBOL(sigset_t, None, <signal.h>)
+SYMBOL(sigevent, None, <signal.h>)
+SYMBOL(SIGEV_NONE, None, <signal.h>)
+SYMBOL(SIGEV_SIGNAL, None, <signal.h>)
+SYMBOL(SIGEV_THREAD, None, <signal.h>)
+SYMBOL(sigval, None, <signal.h>)
+SYMBOL(SIGRTMIN, None, <signal.h>)
+SYMBOL(SIGRTMAX, None, <signal.h>)
+SYMBOL(SIG2STR_MAX, None, <signal.h>)
+// The ISO C standard only requires the signal names SIGABRT, SIGFPE, SIGILL,
+// SIGINT, SIGSEGV, and SIGTERM to be defined. Those are picked up by the
+// script.
+SYMBOL(SIGALRM, None, <signal.h>)
+SYMBOL(SIGBUS, None, <signal.h>)
+SYMBOL(SIGCHLD, None, <signal.h>)
+SYMBOL(SIGCONT, None, <signal.h>)
+SYMBOL(SIGHUP, None, <signal.h>)
+SYMBOL(SIGKILL, None, <signal.h>)
+SYMBOL(SIGPIPE, None, <signal.h>)
+SYMBOL(SIGQUIT, None, <signal.h>)
+SYMBOL(SIGSTOP, None, <signal.h>)
+SYMBOL(SIGTSTP, None, <signal.h>)
+SYMBOL(SIGTTIN, None, <signal.h>)
+SYMBOL(SIGTTOU, None, <signal.h>)
+SYMBOL(SIGUSR1, None, <signal.h>)
+SYMBOL(SIGUSR2, None, <signal.h>)
+SYMBOL(SIGWINCH, None, <signal.h>)
+SYMBOL(SIGSYS, None, <signal.h>)
+SYMBOL(SIGTRAP, None, <signal.h>)
+SYMBOL(SIGURG, None, <signal.h>)
+SYMBOL(SIGVTALRM, None, <signal.h>)
+SYMBOL(SIGXCPU, None, <signal.h>)
+SYMBOL(SIGXFSZ, None, <signal.h>)
+SYMBOL(SIG_BLOCK, None, <signal.h>)
+SYMBOL(SIG_UNBLOCK, None, <signal.h>)
+SYMBOL(SIG_SETMASK, None, <signal.h>)
+SYMBOL(SA_NOCLDSTOP, None, <signal.h>)
+SYMBOL(SA_ONSTACK, None, <signal.h>)
+SYMBOL(SA_RESETHAND, None, <signal.h>)
+SYMBOL(SA_RESTART, None, <signal.h>)
+SYMBOL(SA_SIGINFO, None, <signal.h>)
+SYMBOL(SA_NOCLDWAIT, None, <signal.h>)
+SYMBOL(SA_NODEFER, None, <signal.h>)
+SYMBOL(SS_ONSTACK, None, <signal.h>)
+SYMBOL(SS_DISABLE, None, <signal.h>)
+SYMBOL(MINSIGSTKSZ, None, <signal.h>)
+SYMBOL(SIGSTKSZ, None, <signal.h>)
+SYMBOL(mcontext_t, None, <signal.h>)
+SYMBOL(ucontext_t, None, <signal.h>)
+SYMBOL(stack_t, None, <signal.h>)
+SYMBOL(siginfo_t, None, <signal.h>)
+SYMBOL(ILL_ILLOPC, None, <signal.h>)
+SYMBOL(ILL_ILLOPN, None, <signal.h>)
+SYMBOL(ILL_ILLADR, None, <signal.h>)
+SYMBOL(ILL_ILLTRP, None, <signal.h>)
+SYMBOL(ILL_PRVOPC, None, <signal.h>)
+SYMBOL(ILL_PRVREG, None, <signal.h>)
+SYMBOL(ILL_COPROC, None, <signal.h>)
+SYMBOL(ILL_BADSTK, None, <signal.h>)
+SYMBOL(FPE_INTDIV, None, <signal.h>)
+SYMBOL(FPE_INTOVF, None, <signal.h>)
+SYMBOL(FPE_FLTDIV, None, <signal.h>)
+SYMBOL(FPE_FLTOVF, None, <signal.h>)
+SYMBOL(FPE_FLTUND, None, <signal.h>)
+SYMBOL(FPE_FLTRES, None, <signal.h>)
+SYMBOL(FPE_FLTINV, None, <signal.h>)
+SYMBOL(FPE_FLTSUB, None, <signal.h>)
+SYMBOL(SEGV_MAPERR, None, <signal.h>)
+SYMBOL(SEGV_ACCERR, None, <signal.h>)
+SYMBOL(BUS_ADRALN, None, <signal.h>)
+SYMBOL(BUS_ADRERR, None, <signal.h>)
+SYMBOL(BUS_OBJERR, None, <signal.h>)
+SYMBOL(TRAP_BRKPT, None, <signal.h>)
+SYMBOL(TRAP_TRACE, None, <signal.h>)
+SYMBOL(CLD_EXITED, None, <signal.h>)
+SYMBOL(CLD_KILLED, None, <signal.h>)
+SYMBOL(CLD_DUMPED, None, <signal.h>)
+SYMBOL(CLD_TRAPPED, None, <signal.h>)
+SYMBOL(CLD_STOPPED, None, <signal.h>)
+SYMBOL(CLD_CONTINUED, None, <signal.h>)
+SYMBOL(SI_USER, None, <signal.h>)
+SYMBOL(SI_QUEUE, None, <signal.h>)
+SYMBOL(SI_TIMER, None, <signal.h>)
+SYMBOL(SI_ASYNCIO, None, <signal.h>)
+SYMBOL(SI_MESGQ, None, <signal.h>)
+SYMBOL(kill, None, <signal.h>)
+SYMBOL(killpg, None, <signal.h>)
+SYMBOL(psiginfo, None, <signal.h>)
+SYMBOL(psignal, None, <signal.h>)
+SYMBOL(pthread_kill, None, <signal.h>)
+SYMBOL(pthread_sigmask, None, <signal.h>)
+SYMBOL(sigaction, None, <signal.h>)
+SYMBOL(sigaddset, None, <signal.h>)
+SYMBOL(sigaltstack, None, <signal.h>)
+SYMBOL(sigdelset, None, <signal.h>)
+SYMBOL(sigemptyset, None, <signal.h>)
+SYMBOL(sigfillset, None, <signal.h>)
+SYMBOL(sighold, None, <signal.h>)
+SYMBOL(sigignore, None, <signal.h>)
+SYMBOL(siginterrupt, None, <signal.h>)
+SYMBOL(sigismember, None, <signal.h>)
+SYMBOL(sigpause, None, <signal.h>)
+SYMBOL(sigpending, None, <signal.h>)
+SYMBOL(sigprocmask, None, <signal.h>)
+SYMBOL(sigqueue, None, <signal.h>)
+SYMBOL(sigrelse, None, <signal.h>)
+SYMBOL(sigset, None, <signal.h>)
+SYMBOL(sigsuspend, None, <signal.h>)
+SYMBOL(sigtimedwait, None, <signal.h>)
+SYMBOL(sigwait, None, <signal.h>)
+SYMBOL(sigwaitinfo, None, <signal.h>)
+// Not in POSIX.1-2024 anymore
+SYMBOL(SIG_HOLD, None, <signal.h>)
+SYMBOL(sigstack, None, <signal.h>)
+SYMBOL(bsd_signal, None, <signal.h>)
+SYMBOL(sigmask, None, <signal.h>)
+SYMBOL(SIGPOLL, None, <signal.h>)
+SYMBOL(SIGPROF, None, <signal.h>)
+SYMBOL(POLL_IN, None, <signal.h>)
+SYMBOL(POLL_OUT, None, <signal.h>)
+SYMBOL(POLL_MSG, None, <signal.h>)
+SYMBOL(POLL_ERR, None, <signal.h>)
+SYMBOL(POLL_PRI, None, <signal.h>)
+SYMBOL(POLL_HUP, None, <signal.h>)
+
+// sys/time.h
+SYMBOL(timeval, None, <sys/time.h>)
+SYMBOL(timeval, None, <sys/select.h>)
+
+// sys/types.h
+SYMBOL(gid_t, None, <sys/types.h>)
+SYMBOL(gid_t, None, <grp.h>)
+SYMBOL(gid_t, None, <pwd.h>)
+SYMBOL(gid_t, None, <signal.h>)
+SYMBOL(gid_t, None, <stropts.h>)
+SYMBOL(gid_t, None, <sys/ipc.h>)
+SYMBOL(gid_t, None, <sys/stat.h>)
+SYMBOL(gid_t, None, <unistd.h>)
+SYMBOL(id_t, None, <sys/types.h>)
+SYMBOL(id_t, None, <sys/resource.h>)
+SYMBOL(pid_t, None, <sys/types.h>)
+SYMBOL(pid_t, None, <fcntl.h>)
+SYMBOL(pid_t, None, <sched.h>)
+SYMBOL(pid_t, None, <signal.h>)
+SYMBOL(pid_t, None, <spawn.h>)
+SYMBOL(pid_t, None, <sys/msg.h>)
+SYMBOL(pid_t, None, <sys/sem.h>)
+SYMBOL(pid_t, None, <sys/shm.h>)
+SYMBOL(pid_t, None, <sys/wait.h>)
+SYMBOL(pid_t, None, <termios.h>)
+SYMBOL(pid_t, None, <time.h>)
+SYMBOL(pid_t, None, <unistd.h>)
+SYMBOL(pid_t, None, <utmpx.h>)
+SYMBOL(uid_t, None, <sys/types.h>)
+SYMBOL(uid_t, None, <pwd.h>)
+SYMBOL(uid_t, None, <signal.h>)
+SYMBOL(uid_t, None, <stropts.h>)
+SYMBOL(uid_t, None, <sys/ipc.h>)
+SYMBOL(uid_t, None, <sys/stat.h>)
+SYMBOL(uid_t, None, <unistd.h>)
+
+// sys/wait.h
+SYMBOL(idtype_t, None, <sys/wait.h>)
+
+// time.h
+SYMBOL(clockid_t, None, <time.h>)
+SYMBOL(clockid_t, None, <sys/types.h>)
+SYMBOL(timer_t, None, <time.h>)
+SYMBOL(timer_t, None, <sys/types.h>)
+SYMBOL(CLOCK_MONOTONIC, None, <time.h>)
+SYMBOL(CLOCK_PROCESS_CPUTIME_ID, None, <time.h>)
+SYMBOL(CLOCK_REALTIME, None, <time.h>)
+SYMBOL(CLOCK_THREAD_CPUTIME_ID, None, <time.h>)
+SYMBOL(TIMER_ABSTIME, None, <time.h>)
+
+// clang-format on
diff --git a/clang/lib/Tooling/Inclusions/Stdlib/CxxPosixSymbolMap.inc 
b/clang/lib/Tooling/Inclusions/Stdlib/CxxPosixSymbolMap.inc
new file mode 100644
index 0000000000000..f1f0190779f5a
--- /dev/null
+++ b/clang/lib/Tooling/Inclusions/Stdlib/CxxPosixSymbolMap.inc
@@ -0,0 +1,458 @@
+//===-- CxxPosixSymbolMap.inc -----------------------------------*- C++ 
-*-===//
+//
+// This is a hand-curated list for C++ POSIX symbols that cannot be
+// parsed/extracted via the include-mapping tool (gen_std.py).
+//
+//===----------------------------------------------------------------------===//
+
+// clang-format off
+// prevent breaking <sys/types.h> -> <sys / types.h>
+
+// errno.h / cerrno
+SYMBOL(EBADE, None, <cerrno>)
+SYMBOL(EBADE, None, <errno.h>)
+SYMBOL(EBADFD, None, <cerrno>)
+SYMBOL(EBADFD, None, <errno.h>)
+SYMBOL(EBADR, None, <cerrno>)
+SYMBOL(EBADR, None, <errno.h>)
+SYMBOL(EBADRQC, None, <cerrno>)
+SYMBOL(EBADRQC, None, <errno.h>)
+SYMBOL(EBADSLT, None, <cerrno>)
+SYMBOL(EBADSLT, None, <errno.h>)
+SYMBOL(ECHRNG, None, <cerrno>)
+SYMBOL(ECHRNG, None, <errno.h>)
+SYMBOL(ECOMM, None, <cerrno>)
+SYMBOL(ECOMM, None, <errno.h>)
+SYMBOL(EDEADLOCK, None, <cerrno>)
+SYMBOL(EDEADLOCK, None, <errno.h>)
+SYMBOL(EDQUOT, None, <cerrno>)
+SYMBOL(EDQUOT, None, <errno.h>)
+SYMBOL(EHOSTDOWN, None, <cerrno>)
+SYMBOL(EHOSTDOWN, None, <errno.h>)
+SYMBOL(EHWPOISON, None, <cerrno>)
+SYMBOL(EHWPOISON, None, <errno.h>)
+SYMBOL(EISNAM, None, <cerrno>)
+SYMBOL(EISNAM, None, <errno.h>)
+SYMBOL(EKEYEXPIRED, None, <cerrno>)
+SYMBOL(EKEYEXPIRED, None, <errno.h>)
+SYMBOL(EKEYREJECTED, None, <cerrno>)
+SYMBOL(EKEYREJECTED, None, <errno.h>)
+SYMBOL(EKEYREVOKED, None, <cerrno>)
+SYMBOL(EKEYREVOKED, None, <errno.h>)
+SYMBOL(EL2HLT, None, <cerrno>)
+SYMBOL(EL2HLT, None, <errno.h>)
+SYMBOL(EL2NSYNC, None, <cerrno>)
+SYMBOL(EL2NSYNC, None, <errno.h>)
+SYMBOL(EL3HLT, None, <cerrno>)
+SYMBOL(EL3HLT, None, <errno.h>)
+SYMBOL(EL3RST, None, <cerrno>)
+SYMBOL(EL3RST, None, <errno.h>)
+SYMBOL(ELIBACC, None, <cerrno>)
+SYMBOL(ELIBACC, None, <errno.h>)
+SYMBOL(ELIBBAD, None, <cerrno>)
+SYMBOL(ELIBBAD, None, <errno.h>)
+SYMBOL(ELIBMAX, None, <cerrno>)
+SYMBOL(ELIBMAX, None, <errno.h>)
+SYMBOL(ELIBSCN, None, <cerrno>)
+SYMBOL(ELIBSCN, None, <errno.h>)
+SYMBOL(ELIBEXEC, None, <cerrno>)
+SYMBOL(ELIBEXEC, None, <errno.h>)
+SYMBOL(ELNRNG, None, <cerrno>)
+SYMBOL(ELNRNG, None, <errno.h>)
+SYMBOL(EMEDIUMTYPE, None, <cerrno>)
+SYMBOL(EMEDIUMTYPE, None, <errno.h>)
+SYMBOL(EMULTIHOP, None, <cerrno>)
+SYMBOL(EMULTIHOP, None, <errno.h>)
+SYMBOL(ENOANO, None, <cerrno>)
+SYMBOL(ENOANO, None, <errno.h>)
+SYMBOL(ENOKEY, None, <cerrno>)
+SYMBOL(ENOKEY, None, <errno.h>)
+SYMBOL(ENOMEDIUM, None, <cerrno>)
+SYMBOL(ENOMEDIUM, None, <errno.h>)
+SYMBOL(ENONET, None, <cerrno>)
+SYMBOL(ENONET, None, <errno.h>)
+SYMBOL(ENOPKG, None, <cerrno>)
+SYMBOL(ENOPKG, None, <errno.h>)
+SYMBOL(ENOTBLK, None, <cerrno>)
+SYMBOL(ENOTBLK, None, <errno.h>)
+SYMBOL(ENOTUNIQ, None, <cerrno>)
+SYMBOL(ENOTUNIQ, None, <errno.h>)
+SYMBOL(EPFNOSUPPORT, None, <cerrno>)
+SYMBOL(EPFNOSUPPORT, None, <errno.h>)
+SYMBOL(EREMCHG, None, <cerrno>)
+SYMBOL(EREMCHG, None, <errno.h>)
+SYMBOL(EREMOTE, None, <cerrno>)
+SYMBOL(EREMOTE, None, <errno.h>)
+SYMBOL(EREMOTEIO, None, <cerrno>)
+SYMBOL(EREMOTEIO, None, <errno.h>)
+SYMBOL(ERESTART, None, <cerrno>)
+SYMBOL(ERESTART, None, <errno.h>)
+SYMBOL(ERFKILL, None, <cerrno>)
+SYMBOL(ERFKILL, None, <errno.h>)
+SYMBOL(ESHUTDOWN, None, <cerrno>)
+SYMBOL(ESHUTDOWN, None, <errno.h>)
+SYMBOL(ESOCKTNOSUPPORT, None, <cerrno>)
+SYMBOL(ESOCKTNOSUPPORT, None, <errno.h>)
+SYMBOL(ESTALE, None, <cerrno>)
+SYMBOL(ESTALE, None, <errno.h>)
+SYMBOL(ESTRPIPE, None, <cerrno>)
+SYMBOL(ESTRPIPE, None, <errno.h>)
+SYMBOL(ETOOMANYREFS, None, <cerrno>)
+SYMBOL(ETOOMANYREFS, None, <errno.h>)
+SYMBOL(EUCLEAN, None, <cerrno>)
+SYMBOL(EUCLEAN, None, <errno.h>)
+SYMBOL(EUNATCH, None, <cerrno>)
+SYMBOL(EUNATCH, None, <errno.h>)
+SYMBOL(EUSERS, None, <cerrno>)
+SYMBOL(EUSERS, None, <errno.h>)
+SYMBOL(EXFULL, None, <cerrno>)
+SYMBOL(EXFULL, None, <errno.h>)
+
+// limits.h / climits
+SYMBOL(SSIZE_MAX, None, <climits>)
+SYMBOL(SSIZE_MAX, None, <limits.h>)
+
+// pthread.h
+SYMBOL(pthread_attr_t, None, <pthread.h>)
+SYMBOL(pthread_attr_t, None, <sys/types.h>)
+SYMBOL(pthread_attr_t, None, <csignal>)
+SYMBOL(pthread_attr_t, None, <signal.h>)
+SYMBOL(pthread_barrier_t, None, <pthread.h>)
+SYMBOL(pthread_barrier_t, None, <sys/types.h>)
+SYMBOL(pthread_barrierattr_t, None, <pthread.h>)
+SYMBOL(pthread_barrierattr_t, None, <sys/types.h>)
+SYMBOL(pthread_cond_t, None, <pthread.h>)
+SYMBOL(pthread_cond_t, None, <sys/types.h>)
+SYMBOL(pthread_condattr_t, None, <pthread.h>)
+SYMBOL(pthread_condattr_t, None, <sys/types.h>)
+SYMBOL(pthread_key_t, None, <pthread.h>)
+SYMBOL(pthread_key_t, None, <sys/types.h>)
+SYMBOL(pthread_mutex_t, None, <pthread.h>)
+SYMBOL(pthread_mutex_t, None, <sys/types.h>)
+SYMBOL(pthread_mutexattr_t, None, <pthread.h>)
+SYMBOL(pthread_mutexattr_t, None, <sys/types.h>)
+SYMBOL(pthread_once_t, None, <pthread.h>)
+SYMBOL(pthread_once_t, None, <sys/types.h>)
+SYMBOL(pthread_rwlock_t, None, <pthread.h>)
+SYMBOL(pthread_rwlock_t, None, <sys/types.h>)
+SYMBOL(pthread_rwlockattr_t, None, <pthread.h>)
+SYMBOL(pthread_rwlockattr_t, None, <sys/types.h>)
+SYMBOL(pthread_spinlock_t, None, <pthread.h>)
+SYMBOL(pthread_spinlock_t, None, <sys/types.h>)
+SYMBOL(pthread_t, None, <pthread.h>)
+SYMBOL(pthread_t, None, <csignal>)
+SYMBOL(pthread_t, None, <signal.h>)
+SYMBOL(pthread_t, None, <sys/types.h>)
+
+// signal.h / csignal - as of POSIX.1-2024
+// https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/signal.h.html
+SYMBOL(sigset_t, None, <csignal>)
+SYMBOL(sigset_t, None, <signal.h>)
+SYMBOL(sigevent, None, <csignal>)
+SYMBOL(sigevent, None, <signal.h>)
+SYMBOL(SIGEV_NONE, None, <csignal>)
+SYMBOL(SIGEV_NONE, None, <signal.h>)
+SYMBOL(SIGEV_SIGNAL, None, <csignal>)
+SYMBOL(SIGEV_SIGNAL, None, <signal.h>)
+SYMBOL(SIGEV_THREAD, None, <csignal>)
+SYMBOL(SIGEV_THREAD, None, <signal.h>)
+SYMBOL(sigval, None, <csignal>)
+SYMBOL(sigval, None, <signal.h>)
+SYMBOL(SIGRTMIN, None, <csignal>)
+SYMBOL(SIGRTMIN, None, <signal.h>)
+SYMBOL(SIGRTMAX, None, <csignal>)
+SYMBOL(SIGRTMAX, None, <signal.h>)
+SYMBOL(SIG2STR_MAX, None, <csignal>)
+SYMBOL(SIG2STR_MAX, None, <signal.h>)
+// The ISO C standard only requires the signal names SIGABRT, SIGFPE, SIGILL,
+// SIGINT, SIGSEGV, and SIGTERM to be defined. Those are picked up by the
+// script.
+SYMBOL(SIGALRM, None, <csignal>)
+SYMBOL(SIGALRM, None, <signal.h>)
+SYMBOL(SIGBUS, None, <csignal>)
+SYMBOL(SIGBUS, None, <signal.h>)
+SYMBOL(SIGCHLD, None, <csignal>)
+SYMBOL(SIGCHLD, None, <signal.h>)
+SYMBOL(SIGCONT, None, <csignal>)
+SYMBOL(SIGCONT, None, <signal.h>)
+SYMBOL(SIGHUP, None, <csignal>)
+SYMBOL(SIGHUP, None, <signal.h>)
+SYMBOL(SIGKILL, None, <csignal>)
+SYMBOL(SIGKILL, None, <signal.h>)
+SYMBOL(SIGPIPE, None, <csignal>)
+SYMBOL(SIGPIPE, None, <signal.h>)
+SYMBOL(SIGQUIT, None, <csignal>)
+SYMBOL(SIGQUIT, None, <signal.h>)
+SYMBOL(SIGSTOP, None, <csignal>)
+SYMBOL(SIGSTOP, None, <signal.h>)
+SYMBOL(SIGTSTP, None, <csignal>)
+SYMBOL(SIGTSTP, None, <signal.h>)
+SYMBOL(SIGTTIN, None, <csignal>)
+SYMBOL(SIGTTIN, None, <signal.h>)
+SYMBOL(SIGTTOU, None, <csignal>)
+SYMBOL(SIGTTOU, None, <signal.h>)
+SYMBOL(SIGUSR1, None, <csignal>)
+SYMBOL(SIGUSR1, None, <signal.h>)
+SYMBOL(SIGUSR2, None, <csignal>)
+SYMBOL(SIGUSR2, None, <signal.h>)
+SYMBOL(SIGWINCH, None, <csignal>)
+SYMBOL(SIGWINCH, None, <signal.h>)
+SYMBOL(SIGSYS, None, <csignal>)
+SYMBOL(SIGSYS, None, <signal.h>)
+SYMBOL(SIGTRAP, None, <csignal>)
+SYMBOL(SIGTRAP, None, <signal.h>)
+SYMBOL(SIGURG, None, <csignal>)
+SYMBOL(SIGURG, None, <signal.h>)
+SYMBOL(SIGVTALRM, None, <csignal>)
+SYMBOL(SIGVTALRM, None, <signal.h>)
+SYMBOL(SIGXCPU, None, <csignal>)
+SYMBOL(SIGXCPU, None, <signal.h>)
+SYMBOL(SIGXFSZ, None, <csignal>)
+SYMBOL(SIGXFSZ, None, <signal.h>)
+SYMBOL(SIG_BLOCK, None, <csignal>)
+SYMBOL(SIG_BLOCK, None, <signal.h>)
+SYMBOL(SIG_UNBLOCK, None, <csignal>)
+SYMBOL(SIG_UNBLOCK, None, <signal.h>)
+SYMBOL(SIG_SETMASK, None, <csignal>)
+SYMBOL(SIG_SETMASK, None, <signal.h>)
+SYMBOL(SA_NOCLDSTOP, None, <csignal>)
+SYMBOL(SA_NOCLDSTOP, None, <signal.h>)
+SYMBOL(SA_ONSTACK, None, <csignal>)
+SYMBOL(SA_ONSTACK, None, <signal.h>)
+SYMBOL(SA_RESETHAND, None, <csignal>)
+SYMBOL(SA_RESETHAND, None, <signal.h>)
+SYMBOL(SA_RESTART, None, <csignal>)
+SYMBOL(SA_RESTART, None, <signal.h>)
+SYMBOL(SA_SIGINFO, None, <csignal>)
+SYMBOL(SA_SIGINFO, None, <signal.h>)
+SYMBOL(SA_NOCLDWAIT, None, <csignal>)
+SYMBOL(SA_NOCLDWAIT, None, <signal.h>)
+SYMBOL(SA_NODEFER, None, <csignal>)
+SYMBOL(SA_NODEFER, None, <signal.h>)
+SYMBOL(SS_ONSTACK, None, <csignal>)
+SYMBOL(SS_ONSTACK, None, <signal.h>)
+SYMBOL(SS_DISABLE, None, <csignal>)
+SYMBOL(SS_DISABLE, None, <signal.h>)
+SYMBOL(MINSIGSTKSZ, None, <csignal>)
+SYMBOL(MINSIGSTKSZ, None, <signal.h>)
+SYMBOL(SIGSTKSZ, None, <csignal>)
+SYMBOL(SIGSTKSZ, None, <signal.h>)
+SYMBOL(mcontext_t, None, <csignal>)
+SYMBOL(mcontext_t, None, <signal.h>)
+SYMBOL(ucontext_t, None, <csignal>)
+SYMBOL(ucontext_t, None, <signal.h>)
+SYMBOL(stack_t, None, <csignal>)
+SYMBOL(stack_t, None, <signal.h>)
+SYMBOL(siginfo_t, None, <csignal>)
+SYMBOL(siginfo_t, None, <signal.h>)
+SYMBOL(ILL_ILLOPC, None, <csignal>)
+SYMBOL(ILL_ILLOPC, None, <signal.h>)
+SYMBOL(ILL_ILLOPN, None, <csignal>)
+SYMBOL(ILL_ILLOPN, None, <signal.h>)
+SYMBOL(ILL_ILLADR, None, <csignal>)
+SYMBOL(ILL_ILLADR, None, <signal.h>)
+SYMBOL(ILL_ILLTRP, None, <csignal>)
+SYMBOL(ILL_ILLTRP, None, <signal.h>)
+SYMBOL(ILL_PRVOPC, None, <csignal>)
+SYMBOL(ILL_PRVOPC, None, <signal.h>)
+SYMBOL(ILL_PRVREG, None, <csignal>)
+SYMBOL(ILL_PRVREG, None, <signal.h>)
+SYMBOL(ILL_COPROC, None, <csignal>)
+SYMBOL(ILL_COPROC, None, <signal.h>)
+SYMBOL(ILL_BADSTK, None, <csignal>)
+SYMBOL(ILL_BADSTK, None, <signal.h>)
+SYMBOL(FPE_INTDIV, None, <csignal>)
+SYMBOL(FPE_INTDIV, None, <signal.h>)
+SYMBOL(FPE_INTOVF, None, <csignal>)
+SYMBOL(FPE_INTOVF, None, <signal.h>)
+SYMBOL(FPE_FLTDIV, None, <csignal>)
+SYMBOL(FPE_FLTDIV, None, <signal.h>)
+SYMBOL(FPE_FLTOVF, None, <csignal>)
+SYMBOL(FPE_FLTOVF, None, <signal.h>)
+SYMBOL(FPE_FLTUND, None, <csignal>)
+SYMBOL(FPE_FLTUND, None, <signal.h>)
+SYMBOL(FPE_FLTRES, None, <csignal>)
+SYMBOL(FPE_FLTRES, None, <signal.h>)
+SYMBOL(FPE_FLTINV, None, <csignal>)
+SYMBOL(FPE_FLTINV, None, <signal.h>)
+SYMBOL(FPE_FLTSUB, None, <csignal>)
+SYMBOL(FPE_FLTSUB, None, <signal.h>)
+SYMBOL(SEGV_MAPERR, None, <csignal>)
+SYMBOL(SEGV_MAPERR, None, <signal.h>)
+SYMBOL(SEGV_ACCERR, None, <csignal>)
+SYMBOL(SEGV_ACCERR, None, <signal.h>)
+SYMBOL(BUS_ADRALN, None, <csignal>)
+SYMBOL(BUS_ADRALN, None, <signal.h>)
+SYMBOL(BUS_ADRERR, None, <csignal>)
+SYMBOL(BUS_ADRERR, None, <signal.h>)
+SYMBOL(BUS_OBJERR, None, <csignal>)
+SYMBOL(BUS_OBJERR, None, <signal.h>)
+SYMBOL(TRAP_BRKPT, None, <csignal>)
+SYMBOL(TRAP_BRKPT, None, <signal.h>)
+SYMBOL(TRAP_TRACE, None, <csignal>)
+SYMBOL(TRAP_TRACE, None, <signal.h>)
+SYMBOL(CLD_EXITED, None, <csignal>)
+SYMBOL(CLD_EXITED, None, <signal.h>)
+SYMBOL(CLD_KILLED, None, <csignal>)
+SYMBOL(CLD_KILLED, None, <signal.h>)
+SYMBOL(CLD_DUMPED, None, <csignal>)
+SYMBOL(CLD_DUMPED, None, <signal.h>)
+SYMBOL(CLD_TRAPPED, None, <csignal>)
+SYMBOL(CLD_TRAPPED, None, <signal.h>)
+SYMBOL(CLD_STOPPED, None, <csignal>)
+SYMBOL(CLD_STOPPED, None, <signal.h>)
+SYMBOL(CLD_CONTINUED, None, <csignal>)
+SYMBOL(CLD_CONTINUED, None, <signal.h>)
+SYMBOL(SI_USER, None, <csignal>)
+SYMBOL(SI_USER, None, <signal.h>)
+SYMBOL(SI_QUEUE, None, <csignal>)
+SYMBOL(SI_QUEUE, None, <signal.h>)
+SYMBOL(SI_TIMER, None, <csignal>)
+SYMBOL(SI_TIMER, None, <signal.h>)
+SYMBOL(SI_ASYNCIO, None, <csignal>)
+SYMBOL(SI_ASYNCIO, None, <signal.h>)
+SYMBOL(SI_MESGQ, None, <csignal>)
+SYMBOL(SI_MESGQ, None, <signal.h>)
+SYMBOL(kill, None, <csignal>)
+SYMBOL(kill, None, <signal.h>)
+SYMBOL(killpg, None, <csignal>)
+SYMBOL(killpg, None, <signal.h>)
+SYMBOL(psiginfo, None, <csignal>)
+SYMBOL(psiginfo, None, <signal.h>)
+SYMBOL(psignal, None, <csignal>)
+SYMBOL(psignal, None, <signal.h>)
+SYMBOL(pthread_kill, None, <csignal>)
+SYMBOL(pthread_kill, None, <signal.h>)
+SYMBOL(pthread_sigmask, None, <csignal>)
+SYMBOL(pthread_sigmask, None, <signal.h>)
+SYMBOL(sigaction, None, <csignal>)
+SYMBOL(sigaction, None, <signal.h>)
+SYMBOL(sigaddset, None, <csignal>)
+SYMBOL(sigaddset, None, <signal.h>)
+SYMBOL(sigaltstack, None, <csignal>)
+SYMBOL(sigaltstack, None, <signal.h>)
+SYMBOL(sigdelset, None, <csignal>)
+SYMBOL(sigdelset, None, <signal.h>)
+SYMBOL(sigemptyset, None, <csignal>)
+SYMBOL(sigemptyset, None, <signal.h>)
+SYMBOL(sigfillset, None, <csignal>)
+SYMBOL(sigfillset, None, <signal.h>)
+SYMBOL(sighold, None, <csignal>)
+SYMBOL(sighold, None, <signal.h>)
+SYMBOL(sigignore, None, <csignal>)
+SYMBOL(sigignore, None, <signal.h>)
+SYMBOL(siginterrupt, None, <csignal>)
+SYMBOL(siginterrupt, None, <signal.h>)
+SYMBOL(sigismember, None, <csignal>)
+SYMBOL(sigismember, None, <signal.h>)
+SYMBOL(sigpause, None, <csignal>)
+SYMBOL(sigpause, None, <signal.h>)
+SYMBOL(sigpending, None, <csignal>)
+SYMBOL(sigpending, None, <signal.h>)
+SYMBOL(sigprocmask, None, <csignal>)
+SYMBOL(sigprocmask, None, <signal.h>)
+SYMBOL(sigqueue, None, <csignal>)
+SYMBOL(sigqueue, None, <signal.h>)
+SYMBOL(sigrelse, None, <csignal>)
+SYMBOL(sigrelse, None, <signal.h>)
+SYMBOL(sigset, None, <csignal>)
+SYMBOL(sigset, None, <signal.h>)
+SYMBOL(sigsuspend, None, <csignal>)
+SYMBOL(sigsuspend, None, <signal.h>)
+SYMBOL(sigtimedwait, None, <csignal>)
+SYMBOL(sigtimedwait, None, <signal.h>)
+SYMBOL(sigwait, None, <csignal>)
+SYMBOL(sigwait, None, <signal.h>)
+SYMBOL(sigwaitinfo, None, <csignal>)
+SYMBOL(sigwaitinfo, None, <signal.h>)
+// Not in POSIX.1-2024 anymore
+SYMBOL(SIG_HOLD, None, <csignal>)
+SYMBOL(SIG_HOLD, None, <signal.h>)
+SYMBOL(sigstack, None, <csignal>)
+SYMBOL(sigstack, None, <signal.h>)
+SYMBOL(bsd_signal, None, <csignal>)
+SYMBOL(bsd_signal, None, <signal.h>)
+SYMBOL(sigmask, None, <csignal>)
+SYMBOL(sigmask, None, <signal.h>)
+SYMBOL(SIGPOLL, None, <csignal>)
+SYMBOL(SIGPOLL, None, <signal.h>)
+SYMBOL(SIGPROF, None, <csignal>)
+SYMBOL(SIGPROF, None, <signal.h>)
+SYMBOL(POLL_IN, None, <csignal>)
+SYMBOL(POLL_IN, None, <signal.h>)
+SYMBOL(POLL_OUT, None, <csignal>)
+SYMBOL(POLL_OUT, None, <signal.h>)
+SYMBOL(POLL_MSG, None, <csignal>)
+SYMBOL(POLL_MSG, None, <signal.h>)
+SYMBOL(POLL_ERR, None, <csignal>)
+SYMBOL(POLL_ERR, None, <signal.h>)
+SYMBOL(POLL_PRI, None, <csignal>)
+SYMBOL(POLL_PRI, None, <signal.h>)
+SYMBOL(POLL_HUP, None, <csignal>)
+SYMBOL(POLL_HUP, None, <signal.h>)
+
+// string.h / cstring
+SYMBOL(strsignal, None, <cstring>)
+SYMBOL(strsignal, None, <string.h>)
+
+// sys/time.h
+SYMBOL(timeval, None, <sys/time.h>)
+SYMBOL(timeval, None, <sys/select.h>)
+
+// sys/types.h
+SYMBOL(gid_t, None, <sys/types.h>)
+SYMBOL(gid_t, None, <grp.h>)
+SYMBOL(gid_t, None, <pwd.h>)
+SYMBOL(gid_t, None, <signal.h>)
+SYMBOL(gid_t, None, <stropts.h>)
+SYMBOL(gid_t, None, <sys/ipc.h>)
+SYMBOL(gid_t, None, <sys/stat.h>)
+SYMBOL(gid_t, None, <unistd.h>)
+SYMBOL(id_t, None, <sys/types.h>)
+SYMBOL(id_t, None, <sys/resource.h>)
+SYMBOL(pid_t, None, <sys/types.h>)
+SYMBOL(pid_t, None, <fcntl.h>)
+SYMBOL(pid_t, None, <sched.h>)
+SYMBOL(pid_t, None, <csignal>)
+SYMBOL(pid_t, None, <signal.h>)
+SYMBOL(pid_t, None, <spawn.h>)
+SYMBOL(pid_t, None, <sys/msg.h>)
+SYMBOL(pid_t, None, <sys/sem.h>)
+SYMBOL(pid_t, None, <sys/shm.h>)
+SYMBOL(pid_t, None, <sys/wait.h>)
+SYMBOL(pid_t, None, <termios.h>)
+SYMBOL(pid_t, None, <ctime>)
+SYMBOL(pid_t, None, <time.h>)
+SYMBOL(pid_t, None, <unistd.h>)
+SYMBOL(pid_t, None, <utmpx.h>)
+SYMBOL(uid_t, None, <sys/types.h>)
+SYMBOL(uid_t, None, <pwd.h>)
+SYMBOL(uid_t, None, <csignal>)
+SYMBOL(uid_t, None, <signal.h>)
+SYMBOL(uid_t, None, <stropts.h>)
+SYMBOL(uid_t, None, <sys/ipc.h>)
+SYMBOL(uid_t, None, <sys/stat.h>)
+SYMBOL(uid_t, None, <unistd.h>)
+
+// sys/wait.h
+SYMBOL(idtype_t, None, <sys/wait.h>)
+
+// time.h / ctime
+SYMBOL(clockid_t, None, <ctime>)
+SYMBOL(clockid_t, None, <time.h>)
+SYMBOL(clockid_t, None, <sys/types.h>)
+SYMBOL(timer_t, None, <ctime>)
+SYMBOL(timer_t, None, <time.h>)
+SYMBOL(timer_t, None, <sys/types.h>)
+SYMBOL(CLOCK_MONOTONIC, None, <ctime>)
+SYMBOL(CLOCK_MONOTONIC, None, <time.h>)
+SYMBOL(CLOCK_PROCESS_CPUTIME_ID, None, <ctime>)
+SYMBOL(CLOCK_PROCESS_CPUTIME_ID, None, <time.h>)
+SYMBOL(CLOCK_REALTIME, None, <ctime>)
+SYMBOL(CLOCK_REALTIME, None, <time.h>)
+SYMBOL(CLOCK_THREAD_CPUTIME_ID, None, <ctime>)
+SYMBOL(CLOCK_THREAD_CPUTIME_ID, None, <time.h>)
+SYMBOL(TIMER_ABSTIME, None, <ctime>)
+SYMBOL(TIMER_ABSTIME, None, <time.h>)
+
+// clang-format on
diff --git a/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp 
b/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp
index b88e6db7cceb7..969833adbd446 100644
--- a/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp
+++ b/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp
@@ -60,6 +60,9 @@ static int countSymbols(Lang Language) {
   switch (Language) {
   case Lang::C: {
     static constexpr const char *CSymbols[] = {
+#if __has_include(<unistd.h>)
+#include "CPosixSymbolMap.inc"
+#endif
 #include "CSpecialSymbolMap.inc"
 #include "CSymbolMap.inc"
     };
@@ -68,6 +71,9 @@ static int countSymbols(Lang Language) {
   }
   case Lang::CXX: {
     static constexpr const char *CXXSymbols[] = {
+#if __has_include(<unistd.h>)
+#include "CxxPosixSymbolMap.inc"
+#endif
 #include "StdSpecialSymbolMap.inc"
 #include "StdSymbolMap.inc"
 #include "StdTsSymbolMap.inc"
@@ -148,6 +154,9 @@ static int initialize(Lang Language) {
   switch (Language) {
   case Lang::C: {
     static constexpr Symbol CSymbols[] = {
+#if __has_include(<unistd.h>)
+#include "CPosixSymbolMap.inc"
+#endif
 #include "CSpecialSymbolMap.inc"
 #include "CSymbolMap.inc"
     };
@@ -157,6 +166,9 @@ static int initialize(Lang Language) {
   }
   case Lang::CXX: {
     static constexpr Symbol CXXSymbols[] = {
+#if __has_include(<unistd.h>)
+#include "CxxPosixSymbolMap.inc"
+#endif
 #include "StdSpecialSymbolMap.inc"
 #include "StdSymbolMap.inc"
 #include "StdTsSymbolMap.inc"

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to