|
@@ -1,4 +1,4 @@
|
|
-/* Copyright (C) 1991,92,93,95,96,97,98,99,2000,2001 Free Software Foundation, Inc.
|
|
+/* Copyright (C) 1991-1993,1995-2003,2004,2005 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
This file is part of the GNU C Library.
|
|
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
@@ -31,7 +31,8 @@
|
|
_POSIX_SOURCE IEEE Std 1003.1.
|
|
_POSIX_SOURCE IEEE Std 1003.1.
|
|
_POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
|
|
_POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
|
|
if >=199309L, add IEEE Std 1003.1b-1993;
|
|
if >=199309L, add IEEE Std 1003.1b-1993;
|
|
- if >=199506L, add IEEE Std 1003.1c-1995
|
|
+ if >=199506L, add IEEE Std 1003.1c-1995;
|
|
|
|
+ if >=200112L, all of IEEE 1003.1-2004
|
|
_XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
|
|
_XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
|
|
Single Unix conformance is wanted, to 600 for the
|
|
Single Unix conformance is wanted, to 600 for the
|
|
upcoming sixth revision.
|
|
upcoming sixth revision.
|
|
@@ -44,6 +45,8 @@
|
|
_GNU_SOURCE All of the above, plus GNU extensions.
|
|
_GNU_SOURCE All of the above, plus GNU extensions.
|
|
_REENTRANT Select additionally reentrant object.
|
|
_REENTRANT Select additionally reentrant object.
|
|
_THREAD_SAFE Same as _REENTRANT, often used by other systems.
|
|
_THREAD_SAFE Same as _REENTRANT, often used by other systems.
|
|
|
|
+ _FORTIFY_SOURCE If set to numeric value > 0 additional security
|
|
|
|
+ measures are defined, according to level.
|
|
|
|
|
|
The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__.
|
|
The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__.
|
|
If none of these are defined, the default is to have _SVID_SOURCE,
|
|
If none of these are defined, the default is to have _SVID_SOURCE,
|
|
@@ -72,6 +75,7 @@
|
|
__USE_MISC Define things common to BSD and System V Unix.
|
|
__USE_MISC Define things common to BSD and System V Unix.
|
|
__USE_GNU Define GNU extensions.
|
|
__USE_GNU Define GNU extensions.
|
|
__USE_REENTRANT Define reentrant/thread-safe *_r functions.
|
|
__USE_REENTRANT Define reentrant/thread-safe *_r functions.
|
|
|
|
+ __USE_FORTIFY_LEVEL Additional security measures used, according to level.
|
|
__FAVOR_BSD Favor 4.3BSD things in cases of conflict.
|
|
__FAVOR_BSD Favor 4.3BSD things in cases of conflict.
|
|
|
|
|
|
The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
|
|
The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
|
|
@@ -85,6 +89,7 @@
|
|
but are implied by the other feature-test macros defined (or by the
|
|
but are implied by the other feature-test macros defined (or by the
|
|
lack of any definitions) are defined by the file. */
|
|
lack of any definitions) are defined by the file. */
|
|
|
|
|
|
|
|
+
|
|
/* Undefine everything, so we get a clean slate. */
|
|
/* Undefine everything, so we get a clean slate. */
|
|
#undef __USE_ISOC99
|
|
#undef __USE_ISOC99
|
|
#undef __USE_POSIX
|
|
#undef __USE_POSIX
|
|
@@ -103,6 +108,7 @@
|
|
#undef __USE_MISC
|
|
#undef __USE_MISC
|
|
#undef __USE_GNU
|
|
#undef __USE_GNU
|
|
#undef __USE_REENTRANT
|
|
#undef __USE_REENTRANT
|
|
|
|
+#undef __USE_FORTIFY_LEVEL
|
|
#undef __FAVOR_BSD
|
|
#undef __FAVOR_BSD
|
|
#undef __KERNEL_STRICT_NAMES
|
|
#undef __KERNEL_STRICT_NAMES
|
|
|
|
|
|
@@ -115,6 +121,20 @@
|
|
/* Always use ISO C things. */
|
|
/* Always use ISO C things. */
|
|
#define __USE_ANSI 1
|
|
#define __USE_ANSI 1
|
|
|
|
|
|
|
|
+/* Convenience macros to test the versions of glibc and gcc.
|
|
|
|
+ Use them like this:
|
|
|
|
+ #if __GNUC_PREREQ (2,8)
|
|
|
|
+ ... code requiring gcc 2.8 or later ...
|
|
|
|
+ #endif
|
|
|
|
+ Note - they won't work for gcc1 or glibc1, since the _MINOR macros
|
|
|
|
+ were not defined then. */
|
|
|
|
+#if defined __GNUC__ && defined __GNUC_MINOR__
|
|
|
|
+# define __GNUC_PREREQ(maj, min) \
|
|
|
|
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
|
|
|
|
+#else
|
|
|
|
+# define __GNUC_PREREQ(maj, min) 0
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
|
|
/* If _BSD_SOURCE was defined by the user, favor BSD over POSIX. */
|
|
/* If _BSD_SOURCE was defined by the user, favor BSD over POSIX. */
|
|
#if defined _BSD_SOURCE && \
|
|
#if defined _BSD_SOURCE && \
|
|
@@ -165,8 +185,8 @@
|
|
|
|
|
|
/* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2
|
|
/* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2
|
|
(and IEEE Std 1003.1b-1993 unless _XOPEN_SOURCE is defined). */
|
|
(and IEEE Std 1003.1b-1993 unless _XOPEN_SOURCE is defined). */
|
|
-#if (!defined __STRICT_ANSI__ && !defined _POSIX_SOURCE && \
|
|
+#if ((!defined __STRICT_ANSI__ || (_XOPEN_SOURCE - 0) >= 500) && \
|
|
- !defined _POSIX_C_SOURCE)
|
|
+ !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE)
|
|
# define _POSIX_SOURCE 1
|
|
# define _POSIX_SOURCE 1
|
|
# if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500
|
|
# if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500
|
|
# define _POSIX_C_SOURCE 2
|
|
# define _POSIX_C_SOURCE 2
|
|
@@ -191,6 +211,10 @@
|
|
# define __USE_POSIX199506 1
|
|
# define __USE_POSIX199506 1
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+#if (_POSIX_C_SOURCE - 0) >= 200112L
|
|
|
|
+# define __USE_XOPEN2K 1
|
|
|
|
+#endif
|
|
|
|
+
|
|
#ifdef _XOPEN_SOURCE
|
|
#ifdef _XOPEN_SOURCE
|
|
# define __USE_XOPEN 1
|
|
# define __USE_XOPEN 1
|
|
# if (_XOPEN_SOURCE - 0) >= 500
|
|
# if (_XOPEN_SOURCE - 0) >= 500
|
|
@@ -242,6 +266,14 @@
|
|
# define __USE_REENTRANT 1
|
|
# define __USE_REENTRANT 1
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+#if _FORTIFY_SOURCE > 0 && __GNUC_PREREQ (4, 1) && __OPTIMIZE__ > 0
|
|
|
|
+# if _FORTIFY_SOURCE == 1
|
|
|
|
+# define __USE_FORTIFY_LEVEL 1
|
|
|
|
+# elif _FORTIFY_SOURCE > 1
|
|
|
|
+# define __USE_FORTIFY_LEVEL 2
|
|
|
|
+# endif
|
|
|
|
+#endif
|
|
|
|
+
|
|
/* We do support the IEC 559 math functionality, real and complex. */
|
|
/* We do support the IEC 559 math functionality, real and complex. */
|
|
#define __STDC_IEC_559__ 1
|
|
#define __STDC_IEC_559__ 1
|
|
#define __STDC_IEC_559_COMPLEX__ 1
|
|
#define __STDC_IEC_559_COMPLEX__ 1
|
|
@@ -280,20 +312,6 @@
|
|
# define __GLIBC_MINOR__ 2
|
|
# define __GLIBC_MINOR__ 2
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-/* Convenience macros to test the versions of glibc and gcc.
|
|
|
|
- Use them like this:
|
|
|
|
- #if __GNUC_PREREQ (2,8)
|
|
|
|
- ... code requiring gcc 2.8 or later ...
|
|
|
|
- #endif
|
|
|
|
- Note - they won't work for gcc1 or glibc1, since the _MINOR macros
|
|
|
|
- were not defined then. */
|
|
|
|
-#if defined __GNUC__ && defined __GNUC_MINOR__
|
|
|
|
-# define __GNUC_PREREQ(maj, min) \
|
|
|
|
- ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
|
|
|
|
-#else
|
|
|
|
-# define __GNUC_PREREQ(maj, min) 0
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
#define __GLIBC_PREREQ(maj, min) \
|
|
#define __GLIBC_PREREQ(maj, min) \
|
|
((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
|
|
((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
|
|
|
|
|