diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 1e656d831..f95dad423 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,8 @@ +2015-02-24 Jon TURNEY + + * libc/include/sys/cdefs.h (_GNU_SOURCE): Move check so it has an + effect when _XOPEN_SOURCE is also defined. + 2015-02-17 Hale Wang * libc/machine/arm/aeabi_memclr.c: New file to support diff --git a/newlib/libc/include/sys/cdefs.h b/newlib/libc/include/sys/cdefs.h index a5e613c63..f1747d0f1 100644 --- a/newlib/libc/include/sys/cdefs.h +++ b/newlib/libc/include/sys/cdefs.h @@ -606,6 +606,14 @@ * Our macros begin with two underscores to avoid namespace screwage. */ +/* Deal with _GNU_SOURCE, which implies everything and the kitchen sink */ +#ifdef _GNU_SOURCE +#undef _XOPEN_SOURCE +#define _XOPEN_SOURCE 700 +#define __BSD_VISIBLE 1 +#define __GNU_VISIBLE 1 +#endif + /* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */ #if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1 #undef _POSIX_C_SOURCE /* Probably illegal, but beyond caring now. */ @@ -693,12 +701,6 @@ #define __XSI_VISIBLE 0 #define __BSD_VISIBLE 0 #define __ISO_C_VISIBLE 2011 -#elif defined(_GNU_SOURCE) /* Everything and the kitchen sink. */ -#define __POSIX_VISIBLE 200809 -#define __XSI_VISIBLE 700 -#define __BSD_VISIBLE 1 -#define __ISO_C_VISIBLE 2011 -#define __GNU_VISIBLE 1 #else /* Default: everything except __GNU_VISIBLE. */ #define __POSIX_VISIBLE 200809 #define __XSI_VISIBLE 700