From 862b45026fa67277a554eb329538a7d536311eca Mon Sep 17 00:00:00 2001 From: Rical Jasan Date: Mon, 19 Feb 2018 04:37:16 -0800 Subject: [PATCH] manual: Update _DEFAULT_SOURCE. [BZ #22862] The description of the interplay between feature test macros and compiler options in the description of _DEFAULT_SOURCE is a little confusing, and dated, so clarify the situation, and don't assume a specific value for _DEFAULT_SOURCE. Also, _DEFAULT_SOURCE is supposed to be defined if none of the C/POSIX feature test macros are defined, but the condition was lacking a test for _ISOC11_SOURCE, so that is also addressed. [BZ #22862] * include/features.h: Add _ISOC11_SOURCE to test for whether to define _DEFAULT_SOURCE. * manual/creature.texi (_DEFAULT_SOURCE): Improve documentation. --- ChangeLog | 7 +++++++ include/features.h | 2 +- manual/creature.texi | 21 ++++++++++++++------- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 25b8e12..d6adafa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2018-02-21 Rical Jasan + + [BZ #22862] + * include/features.h: Add _ISOC11_SOURCE to test for whether to + define _DEFAULT_SOURCE. + * manual/creature.texi (_DEFAULT_SOURCE): Improve documentation. + 2018-02-21 Florian Weimer [BZ #20890] diff --git a/include/features.h b/include/features.h index 137a90b..d22c32e 100644 --- a/include/features.h +++ b/include/features.h @@ -214,7 +214,7 @@ define _DEFAULT_SOURCE. */ #if (defined _DEFAULT_SOURCE \ || (!defined __STRICT_ANSI__ \ - && !defined _ISOC99_SOURCE \ + && !defined _ISOC99_SOURCE && !defined _ISOC11_SOURCE \ && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE \ && !defined _XOPEN_SOURCE)) # undef _DEFAULT_SOURCE diff --git a/manual/creature.texi b/manual/creature.texi index fe7a779..8876b2a 100644 --- a/manual/creature.texi +++ b/manual/creature.texi @@ -221,13 +221,20 @@ precedence. If you define this macro, most features are included apart from X/Open, LFS and GNU extensions: the effect is to enable features from the 2008 edition of POSIX, as well as certain BSD and SVID features -without a separate feature test macro to control them. 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. +without a separate feature test macro to control them. + +Be aware that compiler options also affect included features: + +@itemize +@item +If you use a strict conformance option, features beyond those from the +compiler's language version will be disabled, though feature test +macros may be used to enable them. + +@item +Features enabled by compiler options are not overridden by feature +test macros. +@end itemize @end defvr @defvr Macro _ATFILE_SOURCE -- 2.7.4