Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE).

<features.h> is supposed to take user-settable stuff like _GNU_SOURCE
and _BSD_SOURCE and turn them into __USE_GNU and __USE_BSD for use in
the C library headers. Instead, bionic used to unconditionally define
_BSD_SOURCE and _GNU_SOURCE, and then test _GNU_SOURCE in the header
files (which makes no sense whatsoever).

Bug: 14659579
Change-Id: Ice4cf21a364ea2e559071dc8329e995277d5b987
This commit is contained in:
Elliott Hughes
2014-08-18 16:04:03 -07:00
parent 205cc41556
commit 5f5cc45cf0
7 changed files with 20 additions and 16 deletions

View File

@@ -17,6 +17,7 @@
#ifndef _MATH_H_
#define _MATH_H_
#include <features.h>
#include <sys/cdefs.h>
#include <limits.h>
@@ -462,11 +463,11 @@ long double truncl(long double);
#endif /* __ISO_C_VISIBLE >= 1999 */
#if defined(_GNU_SOURCE)
#if defined(__USE_GNU)
void sincos(double, double*, double*);
void sincosf(float, float*, float*);
void sincosl(long double, long double*, long double*);
#endif /* _GNU_SOURCE */
#endif /* __USE_GNU */
#pragma GCC visibility pop
__END_DECLS