aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-09-04 17:02:10 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-09-04 17:02:10 +0000
commit071bed8091cab4e070a1f5e6b2eb0dd1141f0498 (patch)
tree99432e14bf4e1c087041b6aa51b03bccc3034f7e
parent1737b159374468a21859d97d8be70a726af0ec9e (diff)
parentfc8974b7aabd2e7c9884e8d5e3d84395461396ff (diff)
downloadbionic-071bed8091cab4e070a1f5e6b2eb0dd1141f0498.tar.gz
Merge "_GNU_SOURCE implies _BSD_SOURCE and the latest _POSIX_C_SOURCE."
-rw-r--r--libc/include/sys/cdefs.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/libc/include/sys/cdefs.h b/libc/include/sys/cdefs.h
index b223afd05..5082327dc 100644
--- a/libc/include/sys/cdefs.h
+++ b/libc/include/sys/cdefs.h
@@ -362,13 +362,22 @@
* do it in <sys/cdefs.h> instead because that's where our existing
* _POSIX_C_SOURCE tests were, and we're already confident that <sys/cdefs.h>
* is included everywhere it should be.
+ *
+ * The _GNU_SOURCE test needs to come before any _BSD_SOURCE or _POSIX* tests
+ * because _GNU_SOURCE implies everything else.
*/
-#if defined(_BSD_SOURCE)
-# define __USE_BSD 1
-#endif
-
#if defined(_GNU_SOURCE)
# define __USE_GNU 1
+# undef _POSIX_SOURCE
+# define _POSIX_SOURCE 1
+# undef _POSIX_C_SOURCE
+# define _POSIX_C_SOURCE 200809L
+# undef _BSD_SOURCE
+# define _BSD_SOURCE 1
+#endif
+
+#if defined(_BSD_SOURCE)
+# define __USE_BSD 1
#endif
/*-