This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.18-664-gc688b41


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  c688b4196014e0162a1ff11120f6c9516be0c6cb (commit)
      from  9f6e964c3a951b6e19ed934aec1f0c101c295987 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c688b4196014e0162a1ff11120f6c9516be0c6cb

commit c688b4196014e0162a1ff11120f6c9516be0c6cb
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Dec 19 13:32:42 2013 +0000

    Add _DEFAULT_SOURCE feature test macro.
    
    This patch adds a feature test macro _DEFAULT_SOURCE to enable the
    default set of header declarations.
    
    The intention is: if _DEFAULT_SOURCE is not used there is no change to
    the set of __USE_* macros glibc defines; if it's used on its own, and
    without compiler options such as -std=c99 that define __STRICT_ANSI__,
    again, there is no change; if it's used together with the macros it
    approximately (i.e., apart from __USE_POSIX_IMPLICITLY) implies
    (-D_BSD_SOURCE -D_SVID_SOURCE -D_POSIX_C_SOURCE=200809L), again, there
    is no change.  Otherwise, it causes the relevant features to be
    enabled, even if __STRICT_ANSI__, or another feature test macro, would
    cause them to be disabled.
    
    This macro deliberately bundles the POSIX.1-2008 (non-X/Open)
    functionality with the BSD/SVID/"misc" functionality, rather than
    defining a macro that gives just the latter, as many of the header
    cleanups resulting from removing _BSD_SOURCE and _SVID_SOURCE support
    are only possible when BSD/SVID/"misc" is always bundled with
    POSIX.1-2008.
    
    Tested x86_64.
    
    	* include/features.h: Update comment documenting feature test
    	macros.  Mention _DEFAULT_SOURCE in comment.
    	[_GNU_SOURCE] (_DEFAULT_SOURCE): Undefine and redefine.
    	[_DEFAULT_SOURCE]: Undefine and redefine _DEFAULT_SOURCE,
    	_BSD_SOURCE and _SVID_SOURCE.
    	[!__STRICT_ANSI__ && !_ISOC99_SOURCE && !_POSIX_SOURCE &&
    	!_POSIX_C_SOURCE && !_XOPEN_SOURCE && !_BSD_SOURCE &&
    	!_SVID_SOURCE]: Likewise.
    	[_DEFAULT_SOURCE && !_POSIX_SOURCE && !_POSIX_C_SOURCE]
    	(__USE_POSIX_IMPLICITLY): Define.
    	[_DEFAULT_SOURCE && !_POSIX_SOURCE && !_POSIX_C_SOURCE]
    	(_POSIX_SOURCE): Undefine and redefine.
    	[_DEFAULT_SOURCE && !_POSIX_SOURCE && !_POSIX_C_SOURCE]
    	(_POSIX_C_SOURCE): Likewise.
    	* manual/creature.texi (_DEFAULT_SOURCE): Document.
    	(Feature Test Macros): Update documentation of default features.

diff --git a/ChangeLog b/ChangeLog
index bee6f8b..727688e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2013-12-19  Joseph Myers  <joseph@codesourcery.com>
+
+	* include/features.h: Update comment documenting feature test
+	macros.  Mention _DEFAULT_SOURCE in comment.
+	[_GNU_SOURCE] (_DEFAULT_SOURCE): Undefine and redefine.
+	[_DEFAULT_SOURCE]: Undefine and redefine _DEFAULT_SOURCE,
+	_BSD_SOURCE and _SVID_SOURCE.
+	[!__STRICT_ANSI__ && !_ISOC99_SOURCE && !_POSIX_SOURCE &&
+	!_POSIX_C_SOURCE && !_XOPEN_SOURCE && !_BSD_SOURCE &&
+	!_SVID_SOURCE]: Likewise.
+	[_DEFAULT_SOURCE && !_POSIX_SOURCE && !_POSIX_C_SOURCE]
+	(__USE_POSIX_IMPLICITLY): Define.
+	[_DEFAULT_SOURCE && !_POSIX_SOURCE && !_POSIX_C_SOURCE]
+	(_POSIX_SOURCE): Undefine and redefine.
+	[_DEFAULT_SOURCE && !_POSIX_SOURCE && !_POSIX_C_SOURCE]
+	(_POSIX_C_SOURCE): Likewise.
+	* manual/creature.texi (_DEFAULT_SOURCE): Document.
+	(Feature Test Macros): Update documentation of default features.
+
 2013-12-19  Rajalakshmi Srinivasaraghavan  <raji@linux.vnet.ibm.com>
 
 	* benchtests/Makefile: Add bench-strtok.
diff --git a/NEWS b/NEWS
index d596349..d82cf95 100644
--- a/NEWS
+++ b/NEWS
@@ -101,6 +101,11 @@ Version 2.19
 
 * Support for STT_GNU_IFUNC symbols added for ppc32/power4+ and ppc64.
 
+* A new feature test macro _DEFAULT_SOURCE is available to enable the same
+  set of header declarations that are enabled by default, even when other
+  feature test macros or compiler options such as -std=c99 would otherwise
+  disable some of those declarations.
+
 * The _BSD_SOURCE feature test macro no longer enables BSD interfaces that
   conflict with POSIX.  The libbsd-compat library (which was a dummy library
   that did nothing) has also been removed.
diff --git a/include/features.h b/include/features.h
index cff8bfc..6acd5c8 100644
--- a/include/features.h
+++ b/include/features.h
@@ -41,17 +41,21 @@
    _SVID_SOURCE		ISO C, POSIX, and SVID things.
    _ATFILE_SOURCE	Additional *at interfaces.
    _GNU_SOURCE		All of the above, plus GNU extensions.
+   _DEFAULT_SOURCE	The default set of features (taking precedence over
+			__STRICT_ANSI__).
    _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
 			measures are defined, according to level.
 
-   The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__.
-   If none of these are defined, the default is to have _SVID_SOURCE,
-   _BSD_SOURCE, and _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
-   200112L.  If more than one of these are defined, they accumulate.
-   For example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE
-   together give you ISO C, 1003.1, and 1003.2, but nothing else.
+   The `-ansi' switch to the GNU C compiler, and standards conformance
+   options such as `-std=c99', define __STRICT_ANSI__.  If none of
+   these are defined, or if _DEFAULT_SOURCE is defined, the default is
+   to have _SVID_SOURCE, _BSD_SOURCE, and _POSIX_SOURCE set to one and
+   _POSIX_C_SOURCE set to 200809L.  If more than one of these are
+   defined, they accumulate.  For example __STRICT_ANSI__,
+   _POSIX_SOURCE and _POSIX_C_SOURCE together give you ISO C, 1003.1,
+   and 1003.2, but nothing else.
 
    These are defined by this file and are used by the
    header files to decide what to declare or define:
@@ -160,6 +164,8 @@
 # define _XOPEN_SOURCE_EXTENDED	1
 # undef	 _LARGEFILE64_SOURCE
 # define _LARGEFILE64_SOURCE	1
+# undef  _DEFAULT_SOURCE
+# define _DEFAULT_SOURCE	1
 # undef  _BSD_SOURCE
 # define _BSD_SOURCE	1
 # undef  _SVID_SOURCE
@@ -168,12 +174,19 @@
 # define _ATFILE_SOURCE	1
 #endif
 
-/* If nothing (other than _GNU_SOURCE) is defined,
-   define _BSD_SOURCE and _SVID_SOURCE.  */
-#if (!defined __STRICT_ANSI__ && !defined _ISOC99_SOURCE && \
-     !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE && \
-     !defined _XOPEN_SOURCE && !defined _BSD_SOURCE && !defined _SVID_SOURCE)
+/* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
+   define _DEFAULT_SOURCE, _BSD_SOURCE and _SVID_SOURCE.  */
+#if (defined _DEFAULT_SOURCE					\
+     || (!defined __STRICT_ANSI__				\
+	 && !defined _ISOC99_SOURCE				\
+	 && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE	\
+	 && !defined _XOPEN_SOURCE				\
+	 && !defined _BSD_SOURCE && !defined _SVID_SOURCE))
+# undef  _DEFAULT_SOURCE
+# define _DEFAULT_SOURCE	1
+# undef  _BSD_SOURCE
 # define _BSD_SOURCE	1
+# undef  _SVID_SOURCE
 # define _SVID_SOURCE	1
 #endif
 
@@ -204,8 +217,18 @@
 # define __USE_ISOCXX11	1
 #endif
 
-/* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2
-   (and IEEE Std 1003.1b-1993 unless _XOPEN_SOURCE is defined).  */
+/* If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+   is defined, use POSIX.1-2008 (or another version depending on
+   _XOPEN_SOURCE).  */
+#ifdef _DEFAULT_SOURCE
+# if !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE
+#  define __USE_POSIX_IMPLICITLY	1
+# endif
+# undef  _POSIX_SOURCE
+# define _POSIX_SOURCE	1
+# undef  _POSIX_C_SOURCE
+# define _POSIX_C_SOURCE	200809L
+#endif
 #if ((!defined __STRICT_ANSI__ || (_XOPEN_SOURCE - 0) >= 500) && \
      !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE)
 # define _POSIX_SOURCE	1
diff --git a/manual/creature.texi b/manual/creature.texi
index 3b7e77c..bbf16b7 100644
--- a/manual/creature.texi
+++ b/manual/creature.texi
@@ -190,6 +190,21 @@ precedence.
 
 @comment (none)
 @comment GNU
+@defvr Macro _DEFAULT_SOURCE
+If you define this macro, most features are included apart from
+X/Open, LFS and GNU extensions; the effect is similar to defining
+@code{_POSIX_C_SOURCE} to @code{200809L} and @code{_POSIX_SOURCE},
+@code{_SVID_SOURCE}, and @code{_BSD_SOURCE} to 1.  Defining this
+macro, on its own and without using compiler options such as
+@option{-ansi} or @option{-std=c99}, has the same effect as not
+defining any feature test macros; defining it together with other
+feature test macros, or when options such as @option{-ansi} are used,
+enables those features even when the other options would otherwise
+cause them to be disabled.
+@end defvr
+
+@comment (none)
+@comment GNU
 @defvr Macro _REENTRANT
 @defvrx Macro _THREAD_SAFE
 If you define one of these macros, reentrant versions of several functions get
@@ -204,10 +219,10 @@ it must have been specified to compile as thread safe.
 @end defvr
 
 We recommend you use @code{_GNU_SOURCE} in new programs.  If you don't
-specify the @samp{-ansi} option to GCC and don't define any of these
-macros explicitly, the effect is the same as defining
-@code{_POSIX_C_SOURCE} to 2 and @code{_POSIX_SOURCE},
-@code{_SVID_SOURCE}, and @code{_BSD_SOURCE} to 1.
+specify the @samp{-ansi} option to GCC, or other conformance options
+such as @option{-std=c99}, and don't define any of these macros
+explicitly, the effect is the same as defining @code{_DEFAULT_SOURCE}
+to 1.
 
 When you define a feature test macro to request a larger class of features,
 it is harmless to define in addition a feature test macro for a subset of

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog            |   19 +++++++++++++++++++
 NEWS                 |    5 +++++
 include/features.h   |   49 ++++++++++++++++++++++++++++++++++++-------------
 manual/creature.texi |   23 +++++++++++++++++++----
 4 files changed, 79 insertions(+), 17 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]