[uclibc-ng-devel] [PATCH] include/features.h: add _DEFAULT_SOURCE macro

Anthony G. Basile basile at freeharbor.net
Thu Jun 1 01:41:26 CEST 2017


From: "Anthony G. Basile" <blueness at gentoo.org>

man feature_test_macros(7) specifies that _BSD_SOURCE and _SVID_SOURCE have
been deprecated in favor of _DEFAULT_SOURCE since libc 2.20.  Specifying
either of the former is now equivalent to specifying just the latter.  We add
this macro to conform to this standard, but do not add the compiler warning
to maintain full backwards compatibility with earlier version of glibc and
uclibc.

Signed-off-by: Anthony G. Basile <blueness at gentoo.org>
---
 include/features.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/include/features.h b/include/features.h
index f9820791b..362b811fd 100644
--- a/include/features.h
+++ b/include/features.h
@@ -40,6 +40,7 @@
    _SVID_SOURCE		ISO C, POSIX, and SVID things.
    _ATFILE_SOURCE	Additional *at interfaces.
    _GNU_SOURCE		All of the above, plus GNU extensions.
+   _DEFAULT_SOURCE	Equivalent to defining _BSD_SOURCE and _SVID_SOURCE.
    _REENTRANT		Select additionally reentrant object.
    _THREAD_SAFE		Same as _REENTRANT, often used by other systems.
    _FORTIFY_SOURCE	If set to numeric value > 0 additional security
@@ -140,6 +141,19 @@
 # define __GNUC_PREREQ(maj, min) 0
 #endif
 
+/* _DEFAULT_SOURCE is equivalent to defining _BSD_SOURCE and _SVID_SOURCE
+ * and vice versa. */
+#ifdef _DEFAULT_SOURCE
+# undef  _BSD_SOURCE
+# define _BSD_SOURCE	1
+# undef  _SVID_SOURCE
+# define _SVID_SOURCE	1
+#endif
+
+#if defined _BSD_SOURCE || defined _SVID_SOURCE
+# undef _DEFAULT_SOURCE
+# define _DEFAULT_SOURCE	1
+#endif
 
 /* If _BSD_SOURCE was defined by the user, favor BSD over POSIX.  */
 #if defined _BSD_SOURCE && \
-- 
2.13.0



More information about the devel mailing list