diff options
-rw-r--r-- | libc/include/features.h | 9 | ||||
-rw-r--r-- | libc/include/sched.h | 1 | ||||
-rw-r--r-- | libc/include/sys/cdefs.h | 18 | ||||
-rw-r--r-- | libc/include/sys/stat.h | 1 | ||||
-rw-r--r-- | libc/include/unistd.h | 2 | ||||
-rw-r--r-- | libm/include/math.h | 1 | ||||
-rw-r--r-- | tests/getauxval_test.cpp | 1 | ||||
-rw-r--r-- | tests/time_test.cpp | 1 | ||||
-rw-r--r-- | tests/uchar_test.cpp | 1 |
9 files changed, 19 insertions, 16 deletions
diff --git a/libc/include/features.h b/libc/include/features.h index 52184a8..a279c7f 100644 --- a/libc/include/features.h +++ b/libc/include/features.h @@ -29,12 +29,7 @@ #ifndef _FEATURES_H_ #define _FEATURES_H_ -#if defined(_BSD_SOURCE) -# define __USE_BSD 1 -#endif - -#if defined(_GNU_SOURCE) -# define __USE_GNU 1 -#endif +/* Our <features.h> macro fun is all in <sys/cdefs.h>. */ +#include <sys/cdefs.h> #endif /* _FEATURES_H_ */ diff --git a/libc/include/sched.h b/libc/include/sched.h index 7624950..6155ab7 100644 --- a/libc/include/sched.h +++ b/libc/include/sched.h @@ -28,7 +28,6 @@ #ifndef _SCHED_H_ #define _SCHED_H_ -#include <features.h> #include <sys/cdefs.h> #include <sys/time.h> diff --git a/libc/include/sys/cdefs.h b/libc/include/sys/cdefs.h index c333823..79d8bca 100644 --- a/libc/include/sys/cdefs.h +++ b/libc/include/sys/cdefs.h @@ -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. * diff --git a/libc/include/sys/stat.h b/libc/include/sys/stat.h index d6044ae..b56ffa4 100644 --- a/libc/include/sys/stat.h +++ b/libc/include/sys/stat.h @@ -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> diff --git a/libc/include/unistd.h b/libc/include/unistd.h index c3e655e..34ae2bc 100644 --- a/libc/include/unistd.h +++ b/libc/include/unistd.h @@ -25,10 +25,10 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ + #ifndef _UNISTD_H_ #define _UNISTD_H_ -#include <features.h> #include <stddef.h> #include <sys/cdefs.h> #include <sys/types.h> diff --git a/libm/include/math.h b/libm/include/math.h index a808d8d..c51f3af 100644 --- a/libm/include/math.h +++ b/libm/include/math.h @@ -17,7 +17,6 @@ #ifndef _MATH_H_ #define _MATH_H_ -#include <features.h> #include <sys/cdefs.h> #include <limits.h> diff --git a/tests/getauxval_test.cpp b/tests/getauxval_test.cpp index 51c9db8..b331150 100644 --- a/tests/getauxval_test.cpp +++ b/tests/getauxval_test.cpp @@ -15,7 +15,6 @@ */ #include <sys/cdefs.h> -#include <features.h> #include <gtest/gtest.h> // getauxval() was only added as of glibc version 2.16. diff --git a/tests/time_test.cpp b/tests/time_test.cpp index 241c4a0..c9ead8d 100644 --- a/tests/time_test.cpp +++ b/tests/time_test.cpp @@ -17,7 +17,6 @@ #include <time.h> #include <errno.h> -#include <features.h> #include <gtest/gtest.h> #include <pthread.h> #include <signal.h> diff --git a/tests/uchar_test.cpp b/tests/uchar_test.cpp index eca3c5e..c887f8a 100644 --- a/tests/uchar_test.cpp +++ b/tests/uchar_test.cpp @@ -19,7 +19,6 @@ #if defined(__BIONIC__) #define HAVE_UCHAR 1 #elif defined(__GLIBC__) -#include <features.h> #define HAVE_UCHAR __GLIBC_PREREQ(2, 16) #endif |