toolchain: glibc: bump to version 2.27
[openwrt/staging/yousong.git] / toolchain / glibc / patches / 0018-2.27-manual-Document-missing-feature-test-macros.patch
diff --git a/toolchain/glibc/patches/0018-2.27-manual-Document-missing-feature-test-macros.patch b/toolchain/glibc/patches/0018-2.27-manual-Document-missing-feature-test-macros.patch
new file mode 100644 (file)
index 0000000..c170b7c
--- /dev/null
@@ -0,0 +1,132 @@
+From b6c9b80e729455d268b52db02763970a946744cd Mon Sep 17 00:00:00 2001
+From: Rical Jasan <ricaljasan@pacific.net>
+Date: Mon, 19 Feb 2018 03:30:06 -0800
+Subject: [PATCH 18/39] manual: Document missing feature test macros.
+
+Several feature test macros are documented in features.h but absent in
+the manual, and some documented macros accept undocumented values.
+This commit updates the manual to mention all the accepted macros,
+along with any values that hold special meaning.
+
+       * manual/creature.texi (_POSIX_C_SOURCE): Document special
+       values of 199606L, 200112L, and 200809L.
+       (_XOPEN_SOURCE): Document special values of 600 and 700.
+       (_ISOC11_SOURCE): Document macro.
+       (_ATFILE_SOURCE): Likewise.
+       (_FORTIFY_SOURCE): Likewise.
+
+(cherry picked from commit 6a3962c4a408e8cbc305d2433711196107374e89)
+(cherry picked from commit da81ae645d8ee89052f109c814a68a9489f562e6)
+---
+ ChangeLog            | 10 ++++++++++
+ NEWS                 |  1 +
+ manual/creature.texi | 39 +++++++++++++++++++++++++++++++++++++--
+ 3 files changed, 48 insertions(+), 2 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index 3ae0ecd07a..911e0900b7 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,13 @@
++2018-02-20  Rical Jasan  <ricaljasan@pacific.net>
++
++      [BZ #16335]
++      * manual/creature.texi (_POSIX_C_SOURCE): Document special values
++      of 199606L, 200112L, and 200809L.
++      (_XOPEN_SOURCE): Document special values of 600 and 700.
++      (_ISOC11_SOURCE): Document macro.
++      (_ATFILE_SOURCE): Likewise.
++      (_FORTIFY_SOURCE): Likewise.
++
+ 2018-03-09  Aurelien Jarno  <aurelien@aurel32.net>
+       [BZ #22919]
+diff --git a/NEWS b/NEWS
+index e237227c9f..d3ca5289b0 100644
+--- a/NEWS
++++ b/NEWS
+@@ -10,6 +10,7 @@ Version 2.27.1
+ The following bugs are resolved with this release:
+   [6889] 'PWD' mentioned but not specified
++  [16335] Feature test macro documentation incomplete and out of date
+   [22638] sparc: static binaries are broken if glibc is built by gcc
+     configured with --enable-default-pie
+   [22735] Misleading typo in time.h source comment regarding CLOCKS_PER_SECOND
+diff --git a/manual/creature.texi b/manual/creature.texi
+index 2e05958756..483bf85ad7 100644
+--- a/manual/creature.texi
++++ b/manual/creature.texi
+@@ -61,13 +61,27 @@ If you define this macro to a value greater than or equal to @code{199309L},
+ then the functionality from the 1993 edition of the POSIX.1b standard
+ (IEEE Standard 1003.1b-1993) is made available.
++If you define this macro to a value greater than or equal to
++@code{199506L}, then the functionality from the 1995 edition of the
++POSIX.1c standard (IEEE Standard 1003.1c-1995) is made available.
++
++If you define this macro to a value greater than or equal to
++@code{200112L}, then the functionality from the 2001 edition of the
++POSIX standard (IEEE Standard 1003.1-2001) is made available.
++
++If you define this macro to a value greater than or equal to
++@code{200809L}, then the functionality from the 2008 edition of the
++POSIX standard (IEEE Standard 1003.1-2008) is made available.
++
+ Greater values for @code{_POSIX_C_SOURCE} will enable future extensions.
+ The POSIX standards process will define these values as necessary, and
+ @theglibc{} should support them some time after they become standardized.
+ The 1996 edition of POSIX.1 (ISO/IEC 9945-1: 1996) states that
+ if you define @code{_POSIX_C_SOURCE} to a value greater than
+ or equal to @code{199506L}, then the functionality from the 1996
+-edition is made available.
++edition is made available.  In general, in @theglibc{}, bugfixes to
++the standards are included when specifying the base version; e.g.,
++POSIX.1-2004 will always be included with a value of @code{200112L}.
+ @end defvr
+ @defvr Macro _XOPEN_SOURCE
+@@ -87,7 +101,10 @@ available which are necessary for the X/Open Unix brand.
+ If the macro @code{_XOPEN_SOURCE} has the value @math{500} this includes
+ all functionality described so far plus some new definitions from the
+-Single Unix Specification, @w{version 2}.
++Single Unix Specification, @w{version 2}.  The value @math{600}
++(corresponding to the sixth revision) includes definitions from SUSv3,
++and using @math{700} (the seventh revision) includes definitions from
++SUSv4.
+ @end defvr
+ @defvr Macro _LARGEFILE_SOURCE
+@@ -156,6 +173,11 @@ implementation of the new standard and to enable the new features the
+ macro @code{_ISOC99_SOURCE} should be defined.
+ @end defvr
++@defvr Macro _ISOC11_SOURCE
++@standards{C11, (none)}
++If this macro is defined, ISO C11 extensions to ISO C99 are included.
++@end defvr
++
+ @defvr Macro __STDC_WANT_LIB_EXT2__
+ @standards{ISO, (none)}
+ If you define this macro to the value @code{1}, features from ISO/IEC
+@@ -209,6 +231,19 @@ enables those features even when the other options would otherwise
+ cause them to be disabled.
+ @end defvr
++@defvr Macro _ATFILE_SOURCE
++@standards{GNU, (none)}
++If this macro is defined, additional @code{*at} interfaces are
++included.
++@end defvr
++
++@defvr Macro _FORTIFY_SOURCE
++@standards{GNU, (none)}
++If this macro is defined to @math{1}, security hardening is added to
++various library functions.  If defined to @math{2}, even stricter
++checks are applied.
++@end defvr
++
+ @defvr Macro _REENTRANT
+ @defvrx Macro _THREAD_SAFE
+ @standards{Obsolete, (none)}