Add #ifdefs to make POSIX header tests pass for musl
Bug: 265874089
Test: m USE_HOST_MUSL=true libbionic_tests_headers_posix
Change-Id: I6ae3ed3b91d5389f838b4a4f66c86bb00a27561a
diff --git a/tests/headers/posix/fcntl_h.c b/tests/headers/posix/fcntl_h.c
index a55fe89..418add0 100644
--- a/tests/headers/posix/fcntl_h.c
+++ b/tests/headers/posix/fcntl_h.c
@@ -84,7 +84,11 @@
// POSIX: "The <fcntl.h> header shall define the symbolic constants for
// file modes for use as values of mode_t as described in <sys/stat.h>."
+ // Musl only defines the file mode bits (S_IFUSR, etc.) and not the file
+ // type bits (S_IFMT, etc.).
+#if !defined(ANDROID_HOST_MUSL)
#include "sys_stat_h_mode_constants.h"
+#endif
MACRO(AT_FDCWD);
#if !defined(__BIONIC__) // See comment in "faccessat.cpp".
diff --git a/tests/headers/posix/limits_h.c b/tests/headers/posix/limits_h.c
index 143f717..7e92d81 100644
--- a/tests/headers/posix/limits_h.c
+++ b/tests/headers/posix/limits_h.c
@@ -32,15 +32,17 @@
static void limits_h() {
// These are only defined if they're constants.
-#if !defined(__BIONIC__) && !defined(__GLIBC__)
+#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
MACRO(AIO_LISTIO_MAX);
MACRO(AIO_MAX);
#endif
-#if !defined(__BIONIC__)
+#if !defined(__BIONIC__) && !defined(ANDROID_HOST_MUSL)
MACRO(AIO_PRIO_DELTA_MAX);
#endif
#if !defined(__BIONIC__) && !defined(__GLIBC__)
MACRO(ARG_MAX);
+#endif
+#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
MACRO(ATEXIT_MAX);
MACRO(CHILD_MAX);
#endif
@@ -50,14 +52,16 @@
MACRO(HOST_NAME_MAX);
MACRO(IOV_MAX);
MACRO(LOGIN_NAME_MAX);
-#if !defined(__BIONIC__) && !defined(__GLIBC__)
+#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
MACRO(MQ_OPEN_MAX);
#endif
#if !defined(__BIONIC__)
MACRO(MQ_PRIO_MAX);
#endif
-#if !defined(__BIONIC__) && !defined(__GLIBC__)
+#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
MACRO(OPEN_MAX);
+#endif
+#if !defined(__BIONIC__) && !defined(__GLIBC__)
MACRO(PAGESIZE);
MACRO(PAGE_SIZE);
#endif
@@ -66,19 +70,25 @@
#if !defined(__BIONIC__)
MACRO(PTHREAD_STACK_MIN);
#endif
-#if !defined(__BIONIC__) && !defined(__GLIBC__)
+#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
MACRO(PTHREAD_THREADS_MAX);
#endif
+#if !defined(ANDROID_HOST_MUSL)
MACRO(RTSIG_MAX);
+#endif
#if !defined(__BIONIC__) && !defined(__GLIBC__)
MACRO(SEM_NSEMS_MAX);
#endif
MACRO(SEM_VALUE_MAX);
-#if !defined(__BIONIC__) && !defined(__GLIBC__)
+#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
MACRO(SIGQUEUE_MAX);
MACRO(SS_REPL_MAX);
MACRO(STREAM_MAX);
+#endif
+#if !defined(__BIONIC__) && !defined(__GLIBC__)
MACRO(SYMLOOP_MAX);
+#endif
+#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
MACRO(TIMER_MAX);
#endif
#if !defined(__BIONIC__)
@@ -90,10 +100,14 @@
#if !defined(__BIONIC__) && !defined(__GLIBC__)
MACRO(FILESIZEBITS);
+#endif
+#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
MACRO(LINK_MAX);
#endif
+#if !defined(ANDROID_HOST_MUSL)
MACRO(MAX_CANON);
MACRO(MAX_INPUT);
+#endif
MACRO(NAME_MAX);
MACRO(PATH_MAX);
MACRO(PIPE_BUF);
@@ -104,7 +118,7 @@
MACRO(POSIX_REC_MIN_XFER_SIZE);
MACRO(POSIX_REC_XFER_ALIGN);
#endif
-#if !defined(__BIONIC__) && !defined(__GLIBC__)
+#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
MACRO(SYMLINK_MAX);
#endif
diff --git a/tests/headers/posix/unistd_h.c b/tests/headers/posix/unistd_h.c
index b713f53..0b2cee5 100644
--- a/tests/headers/posix/unistd_h.c
+++ b/tests/headers/posix/unistd_h.c
@@ -51,8 +51,10 @@
MACRO(_POSIX_MESSAGE_PASSING);
MACRO(_POSIX_MONOTONIC_CLOCK);
MACRO(_POSIX_NO_TRUNC);
+#if !defined(ANDROID_HOST_MUSL)
MACRO(_POSIX_PRIORITIZED_IO);
MACRO(_POSIX_PRIORITY_SCHEDULING);
+#endif
MACRO(_POSIX_RAW_SOCKETS);
MACRO(_POSIX_READER_WRITER_LOCKS);
MACRO(_POSIX_REALTIME_SIGNALS);
@@ -63,35 +65,51 @@
MACRO(_POSIX_SHELL);
MACRO(_POSIX_SPAWN);
MACRO(_POSIX_SPIN_LOCKS);
+#if !defined(ANDROID_HOST_MUSL)
MACRO(_POSIX_SPORADIC_SERVER);
MACRO(_POSIX_SYNCHRONIZED_IO);
+#endif
MACRO(_POSIX_THREAD_ATTR_STACKADDR);
MACRO(_POSIX_THREAD_ATTR_STACKSIZE);
MACRO(_POSIX_THREAD_CPUTIME);
+#if !defined(ANDROID_HOST_MUSL)
MACRO(_POSIX_THREAD_PRIO_INHERIT);
MACRO(_POSIX_THREAD_PRIO_PROTECT);
+#endif
MACRO(_POSIX_THREAD_PRIORITY_SCHEDULING);
MACRO(_POSIX_THREAD_PROCESS_SHARED);
+#if !defined(ANDROID_HOST_MUSL)
MACRO(_POSIX_THREAD_ROBUST_PRIO_INHERIT);
MACRO(_POSIX_THREAD_ROBUST_PRIO_PROTECT);
+#endif
MACRO(_POSIX_THREAD_SAFE_FUNCTIONS);
+#if !defined(ANDROID_HOST_MUSL)
MACRO(_POSIX_THREAD_SPORADIC_SERVER);
+#endif
MACRO(_POSIX_THREADS);
MACRO(_POSIX_TIMEOUTS);
MACRO(_POSIX_TIMERS);
+#if !defined(ANDROID_HOST_MUSL)
MACRO(_POSIX_TYPED_MEMORY_OBJECTS);
+#endif
MACRO(_POSIX2_C_BIND);
+#if !defined(ANDROID_HOST_MUSL)
MACRO(_POSIX2_CHAR_TERM);
MACRO(_POSIX2_LOCALEDEF);
MACRO(_POSIX2_SW_DEV);
+#endif
#if 0 // No libc I can find actually has this.
MACRO(_POSIX2_UPE);
#endif
+#if !defined(ANDROID_HOST_MUSL)
MACRO(_XOPEN_CRYPT);
+#endif
MACRO(_XOPEN_ENH_I18N);
+#if !defined(ANDROID_HOST_MUSL)
MACRO(_XOPEN_REALTIME);
MACRO(_XOPEN_REALTIME_THREADS);
MACRO(_XOPEN_SHM);
+#endif
MACRO(_XOPEN_UNIX);
#if defined(_XOPEN_UUCP)
#if _XOPEN_UUCP != -1 && _XOPEN_UUCP != 0 && _XOPEN_UUCP != 200809L