inttypes.h Conversion functions for wide-char strings are missing: intmax_t wcstoimax(const wchar_t *restrict, wchar_t **restrict, int); uintmax_t wcstoumax(const wchar_t *restrict, wchar_t **restrict, int); -------------------------------------------- langinfo.h The locale variant of nl_langinfo() is missing: char *nl_langinfo_l(nl_item, locale_t); -------------------------------------------- libgen.h is fine. -------------------------------------------- limits.h appears to miss a large number of definitions, but this behaviour is in fact fine as long as the missing limits are indeterminate in Haiku. -------------------------------------------- locale.h The following bitmasks for newlocale() are missing: LC_COLLATE_MASK, LC_CTYPE_MASK, LC_MESSAGES_MASK, LC_MONETARY_MASK, LC_NUMERIC_MASK, LC_TIME_MASK, and LC_ALL_MASK, which combines them all. The locale_t type, which represents a locale object, is missing. LC_GLOBAL_LOCALE, which is used by uselocale(), should be defined as a unique object of type locale_t. The following function declarations are missing: locale_t duplocale(locale_t); void freelocale(locale_t); locale_t newlocale(int, const char *, locale_t); locale_t uselocale (locale_t); -------------------------------------------- monetary.h The locale variant of strfmon() is missing: ssize_t strfmon_l(char *restrict, size_t, locale_t, const char *restrict, ...); -------------------------------------------- netdb.h is fine. -------------------------------------------- poll.h is fine. -------------------------------------------- pthread.h The following symbolic constants are missing: PTHREAD_MUTEX_ROBUST PTHREAD_MUTEX_STALLED PTHREAD_INHERIT_SCHED PTHREAD_RWLOCK_INITIALIZER is missing, and should expand to an expression suitable to initialize the pthread_rwlock_t type. The following types are missing: pthread_barrier_t pthread_barrierattr_t The following function declarations are missing: int pthread_mutex_consistent(pthread_mutex_t *); int pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict, int *restrict); int pthread_mutexattr_setrobust(pthread_mutexattr_t *, int); int pthread_condattr_getclock(const pthread_condattr_t *restrict, clockid_t *restrict); int pthread_condattr_setclock(pthread_condattr_t *, clockid_t); int pthread_getcpuclockid(pthread_t, clockid_t *); int pthread_setschedprio(pthread_t, int); as are all the barrier functions: int pthread_barrier_destroy(pthread_barrier_t *); int pthread_barrier_init(pthread_barrier_t *restrict, const pthread_barrierattr_t *restrict, unsigned); int pthread_barrier_wait(pthread_barrier_t *); int pthread_barrierattr_destroy(pthread_barrierattr_t *); int pthread_barrierattr_getpshared(const pthread_barrierattr_t *restrict, int *restrict); int pthread_barrierattr_init(pthread_barrierattr_t *); int pthread_barrierattr_setpshared(pthread_barrierattr_t *, int); and all the commented out pthread_attr_* functions. pthread_kill() should be moved to signal.h. -------------------------------------------- pwd.h is fine. -------------------------------------------- ivonv.h, iso646.h, mqueue.h, and ndbm.h are missing.