Fix our _POSIX_* macros to declare barriers and spin locks.
We have these now.
Test: ran tests
Change-Id: Ie7b479061ecec19c8b35ea81e04debfd8323d94a
diff --git a/libc/include/bits/posix_limits.h b/libc/include/bits/posix_limits.h
index 1bd87f4..c498c69 100644
--- a/libc/include/bits/posix_limits.h
+++ b/libc/include/bits/posix_limits.h
@@ -32,13 +32,13 @@
#include <sys/cdefs.h>
/* Any constant values here other than -1 or 200809L are explicitly specified by POSIX.1-2008. */
-/* Keep it sorted. */
+/* Keep this list sorted by name. */
#define _POSIX_ADVISORY_INFO 200809L
#define _POSIX_AIO_LISTIO_MAX 2
#define _POSIX_AIO_MAX 1
#define _POSIX_ARG_MAX 4096
#define _POSIX_ASYNCHRONOUS_IO -1 /* not implemented */
-#define _POSIX_BARRIERS -1 /* not implemented */
+#define _POSIX_BARRIERS 200809L
#define _POSIX_CHILD_MAX 25
#define _POSIX_CHOWN_RESTRICTED 1 /* yes, chown requires appropriate privileges */
#define _POSIX_CLOCK_SELECTION 200809L
@@ -81,7 +81,7 @@
#define _POSIX_SHELL 1 /* system() supported */
#define _POSIX_SIGQUEUE_MAX 32
#define _POSIX_SPAWN -1 /* not implemented */
-#define _POSIX_SPIN_LOCKS -1 /* not implemented */
+#define _POSIX_SPIN_LOCKS 200809L
#define _POSIX_SPORADIC_SERVER -1 /* not implemented */
#define _POSIX_SSIZE_MAX 32767
#define _POSIX_STREAM_MAX 8
diff --git a/tests/unistd_test.cpp b/tests/unistd_test.cpp
index 6299469..80ebf6b 100644
--- a/tests/unistd_test.cpp
+++ b/tests/unistd_test.cpp
@@ -559,6 +559,8 @@
EXPECT_GT(_POSIX_AIO_LISTIO_MAX, 0);
EXPECT_GT(_POSIX_AIO_MAX, 0);
EXPECT_GT(_POSIX_ARG_MAX, 0);
+ EXPECT_GT(_POSIX_BARRIERS, 0);
+ EXPECT_GT(_POSIX_SPIN_LOCKS, 0);
EXPECT_GT(_POSIX_CHILD_MAX, 0);
EXPECT_NE(_POSIX_CHOWN_RESTRICTED, -1);
EXPECT_EQ(_POSIX_VERSION, _POSIX_CLOCK_SELECTION);
@@ -647,12 +649,10 @@
// These tests only pass on bionic, as bionic and glibc has different support on these macros.
// Macros like _POSIX_ASYNCHRONOUS_IO are not supported on bionic yet.
EXPECT_EQ(-1, _POSIX_ASYNCHRONOUS_IO);
- EXPECT_EQ(-1, _POSIX_BARRIERS);
EXPECT_EQ(-1, _POSIX_MESSAGE_PASSING);
EXPECT_EQ(-1, _POSIX_PRIORITIZED_IO);
EXPECT_EQ(-1, _POSIX_SHARED_MEMORY_OBJECTS);
EXPECT_EQ(-1, _POSIX_SPAWN);
- EXPECT_EQ(-1, _POSIX_SPIN_LOCKS);
EXPECT_EQ(-1, _POSIX_THREAD_PROCESS_SHARED);
EXPECT_EQ(-1, _POSIX_THREAD_ROBUST_PRIO_INHERIT);
@@ -692,6 +692,7 @@
TEST(UNISTD_TEST, sysconf) {
VERIFY_SYSCONF_POSIX_VERSION(_SC_ADVISORY_INFO);
VERIFY_SYSCONF_POSITIVE(_SC_ARG_MAX);
+ VERIFY_SYSCONF_POSIX_VERSION(_SC_BARRIERS);
VERIFY_SYSCONF_POSITIVE(_SC_BC_BASE_MAX);
VERIFY_SYSCONF_POSITIVE(_SC_BC_DIM_MAX);
VERIFY_SYSCONF_POSITIVE(_SC_BC_SCALE_MAX);
@@ -731,6 +732,7 @@
VERIFY_SYSCONF_POSITIVE(_SC_RTSIG_MAX);
VERIFY_SYSCONF_POSITIVE(_SC_SEM_NSEMS_MAX);
VERIFY_SYSCONF_POSITIVE(_SC_SEM_VALUE_MAX);
+ VERIFY_SYSCONF_POSIX_VERSION(_SC_SPIN_LOCKS);
VERIFY_SYSCONF_POSITIVE(_SC_TIMER_MAX);
VERIFY_SYSCONF_POSIX_VERSION(_SC_FSYNC);
VERIFY_SYSCONF_POSIX_VERSION(_SC_MAPPED_FILES);
@@ -810,12 +812,10 @@
// Tests can only run on bionic, as bionic and glibc have different support for these options.
// Below options are not supported on bionic yet.
VERIFY_SYSCONF_UNSUPPORTED(_SC_ASYNCHRONOUS_IO);
- VERIFY_SYSCONF_UNSUPPORTED(_SC_BARRIERS);
VERIFY_SYSCONF_UNSUPPORTED(_SC_MESSAGE_PASSING);
VERIFY_SYSCONF_UNSUPPORTED(_SC_PRIORITIZED_IO);
VERIFY_SYSCONF_UNSUPPORTED(_SC_SHARED_MEMORY_OBJECTS);
VERIFY_SYSCONF_UNSUPPORTED(_SC_SPAWN);
- VERIFY_SYSCONF_UNSUPPORTED(_SC_SPIN_LOCKS);
VERIFY_SYSCONF_UNSUPPORTED(_SC_THREAD_PROCESS_SHARED);
VERIFY_SYSCONF_UNSUPPORTED(_SC_THREAD_ROBUST_PRIO_INHERIT);
VERIFY_SYSCONF_UNSUPPORTED(_SC_THREAD_ROBUST_PRIO_PROTECT);