From patchwork Mon Feb 19 12:45:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rical Jasan X-Patchwork-Id: 25963 Received: (qmail 61667 invoked by alias); 19 Feb 2018 12:45:46 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 61648 invoked by uid 89); 19 Feb 2018 12:45:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.3 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy= X-HELO: smtp.pacific.net From: Rical Jasan To: libc-alpha Cc: Joseph Myers , Michael Kerrisk , Zack Weinberg , Carlos O'Donell Subject: [PATCH] manual: Update _DEFAULT_SOURCE. Date: Mon, 19 Feb 2018 04:45:31 -0800 Message-Id: <20180219124531.29958-1-ricaljasan@pacific.net> 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. * include/features.h: Add _ISOC11_SOURCE to test for whether to define _DEFAULT_SOURCE. * manual/creature.texi (_DEFAULT_SOURCE): Improve documentation. --- include/features.h | 2 +- manual/creature.texi | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/include/features.h b/include/features.h index 137a90b405..d22c32eee6 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 fe7a7790a2..8876b2ab77 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