Move the meat of <features.h> into <sys/cdefs.h>.

This way it's a lot harder for us to screw up (since we should always
be including <sys/cdefs.h> anyway).

Bug: 14659579
Change-Id: I23070fff3296b0d1c683bb5e3a6e214146327d53
This commit is contained in:
Elliott Hughes
2014-08-19 11:16:41 -07:00
parent 17f83c93cb
commit f4c948a9e9
9 changed files with 19 additions and 16 deletions

View File

@@ -355,9 +355,23 @@
#define __RCSID(_s) /* nothing */
#define __SCCSID(_s) /* nothing */
/*
* _BSD_SOURCE and _GNU_SOURCE are expected to be defined by callers before
* any standard header file is included. In those header files we test
* against __USE_BSD and __USE_GNU. glibc does this in <features.h> but we
* 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.
*/
#if defined(_BSD_SOURCE)
# define __USE_BSD 1
#endif
#if defined(_GNU_SOURCE)
# define __USE_GNU 1
#endif
/*-
* The following definitions are an extension of the behavior originally
* implemented in <sys/_posix.h>, but with a different level of granularity.
* POSIX.1 requires that the macros we test be defined before any standard
* header file is included.
*

View File

@@ -29,7 +29,6 @@
#ifndef _SYS_STAT_H_
#define _SYS_STAT_H_
#include <features.h>
#include <sys/cdefs.h>
#include <sys/types.h>
#include <sys/time.h>