diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-11-05 21:19:37 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-11-05 21:19:37 +0000 |
commit | f248238cf43bd751db29e6f151d6da7645337ff5 (patch) | |
tree | a27ff09a2c76a490ee7642b03ddb39aa60e121bf | |
parent | 8fed86556b7e162d2926f0ba6a573ed193ff882f (diff) | |
download | glibc-f248238cf43bd751db29e6f151d6da7645337ff5.zip glibc-f248238cf43bd751db29e6f151d6da7645337ff5.tar.gz glibc-f248238cf43bd751db29e6f151d6da7645337ff5.tar.bz2 |
Fix features.h for -Wundef (bug 19212).
features.h is not clean with -Wundef (for the installed header, of
course this only appears with -Wsystem-headers). In ISO C standards
modes, you get a series of warnings / errors relating to
_POSIX_C_SOURCE and _XOPEN_SOURCE not being defined when tested in
standards mode and uses #undef _GNU_SOURCE to avoid the default
_GNU_SOURCE from libc-symbols.h. This patch changes the relevant #if
conditionals to avoid these warnings / errors.
Tested for x86_64 and x86 (testsuite, and that installed shared
libraries are unchanged by the patch).
[BZ #19212]
* include/features.h [(_XOPEN_SOURCE - 0) >= 500]: Change
conditional to [defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >=
500].
[_POSIX_C_SOURCE >= 1]: Change conditional to [defined
_POSIX_C_SOURCE && _POSIX_C_SOURCE >= 1].
[(_POSIX_C_SOURCE - 0) >= 199309L]: Change conditional to [defined
_POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L].
[(_POSIX_C_SOURCE - 0) >= 199506L]: Change conditional to [defined
_POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199506L].
[(_POSIX_C_SOURCE - 0) >= 200112L]: Change conditional to [defined
_POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200112L].
[(_POSIX_C_SOURCE - 0) >= 200809L]: Change conditional to [defined
_POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200809L].
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | include/features.h | 17 |
3 files changed, 26 insertions, 8 deletions
@@ -1,5 +1,20 @@ 2015-11-05 Joseph Myers <joseph@codesourcery.com> + [BZ #19212] + * include/features.h [(_XOPEN_SOURCE - 0) >= 500]: Change + conditional to [defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= + 500]. + [_POSIX_C_SOURCE >= 1]: Change conditional to [defined + _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 1]. + [(_POSIX_C_SOURCE - 0) >= 199309L]: Change conditional to [defined + _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L]. + [(_POSIX_C_SOURCE - 0) >= 199506L]: Change conditional to [defined + _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199506L]. + [(_POSIX_C_SOURCE - 0) >= 200112L]: Change conditional to [defined + _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200112L]. + [(_POSIX_C_SOURCE - 0) >= 200809L]: Change conditional to [defined + _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200809L]. + [BZ #19209] * math/bits/math-finite.h (ldexp): Remove declaration. (ldexpf): Likewise. @@ -22,7 +22,7 @@ Version 2.23 19003, 19007, 19012, 19016, 19018, 19032, 19046, 19048, 19049, 19050, 19059, 19071, 19074, 19076, 19077, 19078, 19079, 19085, 19086, 19088, 19094, 19095, 19124, 19125, 19129, 19134, 19137, 19156, 19174, 19181, - 19189, 19201, 19205, 19209. + 19189, 19201, 19205, 19209, 19212. * A defect in the malloc implementation, present since glibc 2.15 (2012) or glibc 2.10 via --enable-experimental-malloc (2009), could result in the diff --git a/include/features.h b/include/features.h index bb80610..774afdd 100644 --- a/include/features.h +++ b/include/features.h @@ -224,8 +224,9 @@ # undef _POSIX_C_SOURCE # define _POSIX_C_SOURCE 200809L #endif -#if ((!defined __STRICT_ANSI__ || (_XOPEN_SOURCE - 0) >= 500) && \ - !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE) +#if ((!defined __STRICT_ANSI__ \ + || (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500)) \ + && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE) # define _POSIX_SOURCE 1 # if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500 # define _POSIX_C_SOURCE 2 @@ -239,7 +240,9 @@ # define __USE_POSIX_IMPLICITLY 1 #endif -#if defined _POSIX_SOURCE || _POSIX_C_SOURCE >= 1 || defined _XOPEN_SOURCE +#if (defined _POSIX_SOURCE \ + || (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 1) \ + || defined _XOPEN_SOURCE) # define __USE_POSIX 1 #endif @@ -247,15 +250,15 @@ # define __USE_POSIX2 1 #endif -#if (_POSIX_C_SOURCE - 0) >= 199309L +#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L # define __USE_POSIX199309 1 #endif -#if (_POSIX_C_SOURCE - 0) >= 199506L +#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199506L # define __USE_POSIX199506 1 #endif -#if (_POSIX_C_SOURCE - 0) >= 200112L +#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200112L # define __USE_XOPEN2K 1 # undef __USE_ISOC95 # define __USE_ISOC95 1 @@ -263,7 +266,7 @@ # define __USE_ISOC99 1 #endif -#if (_POSIX_C_SOURCE - 0) >= 200809L +#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200809L # define __USE_XOPEN2K8 1 # undef _ATFILE_SOURCE # define _ATFILE_SOURCE 1 |