]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - NEWS
Open master for development
[thirdparty/glibc.git] / NEWS
diff --git a/NEWS b/NEWS
index 63ff0afbc132fe36eb6c36da03723a4528555d73..b5a401c1e3808bbb09982deaf836759c0d7a7dee 100644 (file)
--- a/NEWS
+++ b/NEWS
 GNU C Library NEWS -- history of user-visible changes.
-Copyright (C) 1992-2015 Free Software Foundation, Inc.
+Copyright (C) 1992-2017 Free Software Foundation, Inc.
 See the end for copying conditions.
 
 Please send GNU C library bug reports via <http://sourceware.org/bugzilla/>
 using `glibc' in the "product" field.
 \f
-Version 2.23
+Version 2.26
 
-* The following bugs are resolved with this release:
+[Add important changes here]
+
+Security related changes:
+
+  [Add security related changes here]
+
+The following bugs are resolved with this release:
 
-  887, 2542, 2543, 2558, 2898, 4404, 6799, 6803, 10432, 14341, 14912, 15367,
-  15384, 15470, 15491, 15786, 15918, 16068, 16141, 16171, 16296, 16347,
-  16399, 16415, 16422, 16517, 16519, 16520, 16521, 16620, 16734, 16973,
-  16985, 17118, 17243, 17244, 17250, 17404, 17441, 17787, 17886, 17887,
-  17905, 18084, 18086, 18240, 18265, 18370, 18421, 18480, 18525, 18595,
-  18589, 18604, 18610, 18611, 18618, 18647, 18661, 18674, 18675, 18681,
-  18699, 18724, 18743, 18757, 18778, 18781, 18787, 18789, 18790, 18795,
-  18796, 18803, 18820, 18823, 18824, 18825, 18857, 18863, 18870, 18872,
-  18873, 18875, 18887, 18918, 18921, 18928, 18951, 18952, 18953, 18956,
-  18961, 18966, 18967, 18969, 18970, 18977, 18980, 18981, 18982, 18985,
-  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.
+  [The release manager will add the list generated by
+  scripts/list-fixed-bugs.py just before the release.]
+
+\f
+Version 2.25
+
+* The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR
+  24731-2:2010, is supported to enable declarations of functions from that
+  TR.  Note that not all functions from that TR are supported by the GNU C
+  Library.
+
+* The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS
+  18661-1:2014, is supported to enable declarations of functions and macros
+  from that TS.  Note that not all features from that TS are supported by
+  the GNU C Library.
+
+* The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS
+  18661-4:2015, is supported to enable declarations of functions and macros
+  from that TS.  Note that most features from that TS are not supported by
+  the GNU C Library.
+
+* The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are
+  now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L.
+  Since the GNU C Library defaults to a much newer revision of POSIX, this
+  will only affect programs that specifically request an old conformance
+  mode.  For instance, a program compiled with -std=c89 -D_REENTRANT will
+  see a change in the visible declarations, but a program compiled with
+  just -D_REENTRANT, or -std=c99 -D_POSIX_C_SOURCE=200809L -D_REENTRANT,
+  will not.
+
+  Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+  defined by all multithreaded code, but glibc has not required this for
+  many years.
+
+* The inclusion of <sys/sysmacros.h> by <sys/types.h> is deprecated.  This
+  means that in a future release, the macros “major”, “minor”, and “makedev”
+  will only be available from <sys/sysmacros.h>.
+
+  These macros are not part of POSIX nor XSI, and their names frequently
+  collide with user code; see for instance glibc bug 19239 and Red Hat bug
+  130601.  <stdlib.h> includes <sys/types.h> under _GNU_SOURCE, and C++ code
+  presently cannot avoid being compiled under _GNU_SOURCE, exacerbating the
+  problem.
+
+* New <fenv.h> features from TS 18661-1:2014 are added to libm: the
+  fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the
+  femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros.
+
+* Integer width macros from TS 18661-1:2014 are added to <limits.h>:
+  CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH,
+  UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to
+  <stdint.h>: INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH,
+  INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH,
+  UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH,
+  INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH,
+  UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH,
+  UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH,
+  UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH,
+  UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH,
+  WINT_WIDTH.
+
+* New <math.h> features are added from TS 18661-1:2014:
+
+  - Signaling NaN macros: SNANF, SNAN, SNANL.
+
+  - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp,
+    fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf,
+    fromfpxl, ufromfpx, ufromfpxf, ufromfpxl.
+
+  - llogb functions: the llogb, llogbf and llogbl functions, and the
+    FP_LLOGB0 and FP_LLOGBNAN macros.
+
+  - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag,
+    fminmagf, fminmagl.
+
+  - Comparison macros: iseqsig.
+
+  - Classification macros: iscanonical, issubnormal, iszero.
+
+  - Total order functions: totalorder, totalorderf, totalorderl,
+    totalordermag, totalordermagf, totalordermagl.
+
+  - Canonicalize functions: canonicalize, canonicalizef, canonicalizel.
+
+  - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload,
+    setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl.
+
+* The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014,
+  are added to libc.  They convert a floating-point number into string.
+
+* Most of glibc can now be built with the stack smashing protector enabled.
+  It is recommended to build glibc with --enable-stack-protector=strong.
+  Implemented by Nick Alcock (Oracle).
+
+* The function explicit_bzero, from OpenBSD, has been added to libc.  It is
+  intended to be used instead of memset() to erase sensitive data after use;
+  the compiler will not optimize out calls to explicit_bzero even if they
+  are "unnecessary" (in the sense that no _correct_ program can observe the
+  effects of the memory clear).
+
+* On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined
+  to float instead of double.  This does not affect the ABI of any libraries
+  that are part of the GNU C Library, but may affect the ABI of other
+  libraries that use this type in their interfaces.
+
+* On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the
+  float_t and double_t types are now defined to long double instead of float
+  and double.  These options are not the default, and this does not affect
+  the ABI of any libraries that are part of the GNU C Library, but it may
+  affect the ABI of other libraries that use this type in their interfaces,
+  if they are compiled or used with those options.
+
+* The getentropy and getrandom functions, and the <sys/random.h> header file
+  have been added.
+
+* The buffer size for byte-oriented stdio streams is now limited to 8192
+  bytes by default.  Previously, on Linux, the default buffer size on most
+  file systems was 4096 bytes (and thus remains unchanged), except on
+  network file systems, where the buffer size was unpredictable and could be
+  as large as several megabytes.
+
+* The <sys/quota.h> header now includes the <linux/quota.h> header.  Support
+  for the Linux quota interface which predates kernel version 2.4.22 has
+  been removed.
+
+* The malloc_get_state and malloc_set_state functions have been removed.
+  Already-existing binaries that dynamically link to these functions will
+  get a hidden implementation in which malloc_get_state is a stub.  As far
+  as we know, these functions are used only by GNU Emacs and this change
+  will not adversely affect already-built Emacs executables.  Any undumped
+  Emacs executables, which normally exist only during an Emacs build, should
+  be rebuilt by re-running “./configure; make” in the Emacs build tree.
+
+* The “ip6-dotint” and “no-ip6-dotint” resolver options, and the
+  corresponding RES_NOIP6DOTINT flag from <resolv.h> have been removed.
+  “no-ip6-dotint” had already been the default, and support for the
+  “ip6-dotint” option was removed from the Internet in 2006.
+
+* The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING
+  flag from <resolv.h> have been removed.  The option relied on a
+  backwards-incompatible DNS extension which was never deployed on the
+  Internet.
+
+* The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG,
+  RES_BLAST defined in the <resolv.h> header file have been deprecated.
+  They were already unimplemented.
+
+* The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for
+  _res.flags are deprecated.  The flag was standardized in RFC 2133, but
+  removed again from the IETF name lookup interface specification in RFC
+  2553.  Applications should use getaddrinfo instead.
+
+* DNSSEC-related declarations and definitions have been removed from the
+  <arpa/nameser.h> header file, and libresolv will no longer attempt to
+  decode the data part of DNSSEC record types.  Previous versions of glibc
+  only implemented minimal support for the previous version of DNSSEC, which
+  is incompatible with the currently deployed version.
+
+* The resource record type classification macros ns_t_qt_p, ns_t_mrr_p,
+  ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the
+  <arpa/nameser.h> header file because the distinction between RR types and
+  meta-RR types is not officially standardized, subject to revision, and
+  thus not suitable for encoding in a macro.
+
+* The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook
+  and rhook members of the res_state type in <resolv.h> have been removed.
+  The glibc stub resolver did not support these hooks, but the header file
+  did not reflect that.
+
+* For multi-arch support it is recommended to use a GCC which has
+  been built with support for GNU indirect functions.  This ensures
+  that correct debugging information is generated for functions
+  selected by IFUNC resolvers.  This support can either be enabled by
+  configuring GCC with '--enable-gnu-indirect-function', or by
+  enabling it by default by setting 'default_gnu_indirect_function'
+  variable for a particular architecture in the GCC source file
+  'gcc/config.gcc'.
+
+* GDB pretty printers have been added for mutex and condition variable
+  structures in POSIX Threads. When installed and loaded in gdb these pretty
+  printers show various pthread variables in human-readable form when read
+  using the 'print' or 'display' commands in gdb.
+
+* Tunables feature added to allow tweaking of the runtime for an application
+  program.  This feature can be enabled with the '--enable-tunables' configure
+  flag.  The GNU C Library manual has details on usage and README.tunables has
+  instructions on adding new tunables to the library.
+
+* A new version of condition variables functions have been implemented in
+  the NPTL implementation of POSIX Threads to provide stronger ordering
+  guarantees.
+
+* A new version of pthread_rwlock functions have been implemented to use a more
+  scalable algorithm primarily through not using a critical section anymore to
+  make state changes.
+
+Security related changes:
+
+* On ARM EABI (32-bit), generating a backtrace for execution contexts which
+  have been created with makecontext could fail to terminate due to a
+  missing .cantunwind annotation.  This has been observed to lead to a hang
+  (denial of service) in some Go applications compiled with gccgo.  Reported
+  by Andreas Schwab.  (CVE-2016-6323)
+
+* The DNS stub resolver functions would crash due to a NULL pointer
+  dereference when processing a query with a valid DNS question type which
+  was used internally in the implementation.  The stub resolver now uses a
+  question type which is outside the range of valid question type values.
+  (CVE-2015-5180)
+
+The following bugs are resolved with this release:
+
+  [4099] stdio: Overly agressive caching by stream i/o functions.
+  [7065] build: Support building glibc with -fstack-protector or -fstack-
+    protector-all
+  [9842] localedata: en_CA: incorrect date format
+  [13165] nptl: pthread_cond_wait() can consume a signal that was sent
+    before it started waiting
+  [14139] manual: Do not hardcode platform names in manual/libm-err-tab.pl
+  [15765] nptl: sem_open is wrongly a cancellation point
+  [16421] network: IN6_IS_ADDR_UNSPECIFIED can use undefined s6_addr32
+  [16458] libc: endian.h and netinet/in.h byte order macros return values of
+    wrong type
+  [16628] dynamic-link: Segfault after a binary without pthread dlopen()s a
+    library linked with pthread
+  [16630] nptl: Use SYSENTER for pthread_cond_broadcast/signal() (i.e. fix
+    "FIXME: Ingo" issue)
+  [16907] libc: <argp.h> compiled with --std=cXX disables __attribute__
+  [17252] libc: getrandom and getentropy syscall
+  [17730] malloc: thread-local storage is sometimes improperly free()'d
+    after being __libc_memalign()'d
+  [18241] stdio: failed fseek on memstream does not set errno and can fail
+    when it shouldnt
+  [18243] nptl: sem_wait, sem_timedwait are cancellation points shm_open is
+    not
+  [18463] nptl: pthread_cond_broadcast issue when surrounded by
+    PTHREAD_PRIO_INHERIT mutex on ARM
+  [18784] network: res_query and related function crash for special record
+    type queries (CVE-2015-5180)
+  [19380] math: strtod does not raise "inexact"
+  [19387] string: Integer overflow in memchr
+  [19390] string: Integer overflow in strncat
+  [19398] build: linknamespace tests fail with massively parallel build
+  [19402] nptl: Deadlock with robust shared mutex and asynchronous
+    termination
+  [19469] malloc: M_PERTURB in test-skeleton.c invalidates malloc tests
+  [19473] malloc: Turn malloc_get_state etc. in compatibility symbols
+  [19514] libc: [PATCH] Fix spelling errors in spelling
+    "implement"/"implementation" in several places
+  [19582] network: Deprecate RES_USE_INET6
+  [19673] manual: clog10 docs appear to be erroneous
+  [19810] dynamic-link: dlopen with both RTLD_NOLOAD and RTLD_NODELETE
+    causes a segmentation fault
+  [19826] libc: invalid pointer returned from __tls_get_addr with static
+    linking
+  [20016] network: resolv: Remove hooks support from the API
+  [20019] dynamic-link: NULL pointer dereference in libc.so.6 IFUNC due to
+    uninitialized GOT
+  [20033] math: [x86_64] vectorized math function don't call the __finite
+    versions
+  [20116] nptl: use after free in pthread_create
+  [20181] stdio: open_memstream(): writes not at end of stream corrupt data
+  [20292] dynamic-link: Comparison in elf/dl-open.c _dl_addr_inside_object
+    is always true.
+  [20311] nptl: please install proc_service.h
+  [20366] libc: Compilation errors in installed headers in strict-compliance
+    modes
+  [20370] malloc: malloc: Arena free list management is still racy
+    (incorrect fix in bug 19243)
+  [20386] libc: assert (X = 0) does not result in GCC warning
+  [20432] malloc: malloc: Minimize interface required for interposition
+  [20435] libc: Missing unwind info in __startcontext causes infinite loop
+    in _Unwind_Backtrace (CVE-2016-6323)
+  [20444] hurd: recvmsg: PF_LOCAL sockets and msg_name lead to SIGLOST
+  [20452] nptl: Addition of sysdep.o to libpthread.a breaks relinking
+    libpthread.a
+  [20455] math: [powerpc] fesetexceptflag fails to clear FE_INVALID
+  [20459] localedata: et_EE: locale has wrong {p,n}_cs_precedes value
+  [20477] network: resolv: incorrect double-checked locking related to
+    _res_hconf
+  [20478] libc: libc_ifunc macro and similar usages leads to false debug-
+    information.
+  [20495] math: x86_64 performance degradation due to AVX/SSE transition
+    penalty
+  [20497] localedata: lt_LT: LC_TIME d_fmt used is obsolete
+  [20508] dynamic-link: _dl_runtime_resolve_avx/_dl_runtime_profile_avx512
+    cause transition penalty
+  [20517] math: sparcv9 missing fdiml compat symbol
+  [20524] manual: strverscmp is inconsistent
+  [20525] libc: <sys/quota.h> should be based on kernel headers
+  [20539] math: GCC 7 -static -lm fails to link at -O3
+  [20554] libc: ld: bss-plt forced due to /usr/lib/libc_nonshared.a(ppc-
+    mcount.oS)
+  [20558] string: POSIX bcopy/bzero decls do not implement Object Size
+    Checking
+  [20591] network: Remove obsolete DNSSEC support
+  [20592] network: DNS resource record type classification macros in
+    <arpa/nameser.h> are incorrect
+  [20593] network: Update DNS RR type definitions
+  [20611] network: getaddrinfo accepts invalid numeric scope IDs
+  [20615] build: glibc build fails when using --with-cpu=power9 --enable-
+    multi-arch
+  [20629] network: libresolv: Remove support for bitstring labels
+    (RES_USEBSTRING)
+  [20647] libc: GLIBC quitting every program - glibc on Pentium-S leads to
+    assertion: "maxidx >= 2"
+  [20660] math: [arm] Use VSQRT
+  [20662] libc: checking whether x86_64-pc-linux-gnu-gcc implicitly enables
+    -fstack-protector no (32bit gcc 6.2.0 pie and ssp enable)
+  [20689] libc: Test for FMA should also check for AVX.
+  [20707] glob: gl_pathv entries not set to NULL with GLOB_DOOFFS
+  [20715] math: iszero macro breaks existing code
+  [20718] math: [powerpc] copysignl raises "invalid" for sNaN
+  [20728] libc: powerpc: Missing TOC stub in clone
+  [20729] build: glibc-2.24 fails to build for i486 with -Os
+  [20750] build: Build fails with default PIE enabled gcc-6.x
+  [20768] math: [alpha] sqrt fegetenv namespace
+  [20785] libc: binutils 2.28 fails to assemble power6/memset.S file in
+    glibc
+  [20787] math: float_t is defined as float incorrectly on x86_64 even if
+    __FLT_EVAL_METHOD__ is 2
+  [20790] network: rpcgen buffer overrun in get_prog_declaration
+  [20822] nptl: race condition in __lll_unlock_elision on powerpc
+  [20829] libc: crypt snprintf namespace
+  [20847] libc: tst-vfork3 failure
+  [20855] math: Default bits/mathdef.h has inappropriate float_t
+  [20859] math: [sh4] FP_ILOGB0 invalid
+  [20864] localedata: iconv: cp936 missing single-byte euro sign (0x80,
+    U+20AC), not same as GBK
+  [20915] dynamic-link: global-dynamic TLS broken on aarch64
+  [20916] math: pow handling of sNaN arguments
+  [20918] build: Building with --enable-nss-crypt fails tst-linkall-static.
+  [20919] math: Bad pow (qNaN, 0) result with -lieee
+  [20940] math: hypot sNaN handling
+  [20947] math: fmax, fmin sNaN handling
+  [20956] libc: debug/tst-backtrace3-6 don't work with -O3 anymore
+  [20964] network: sunrpc: Stack-based buffer overflow in getrpcport with
+    RES_USE_INET6
+  [20971] string: powerpc64/power7 memchr overflows internal pointer check
+  [20973] nptl: robust mutexes: Lost wake-ups
+  [20974] locale: bs_BA: yesexpr/noexpr regexes accept any character
+  [20978] nis: strlen on null pointer in nss_nisplus
+  [20985] nptl: robust mutexes: lowlevelrobustlock assembly on x86 blocks on
+    wrong condition
+  [21014] string: i686 memchr overflows internal pointer check
+  [21019] libc: [mips] n32 lseek incorrect on overflow
+  [21022] libc: [microblaze] __backtrace get_frame_size namespace
+  [21026] libc: [MIPS] readahead syscall is broken on n64
+  [21028] math: Fallback fesetexceptflag should always succeed
+  [21045] libc: [powerpc-nofpu] swapcontext does not restore signal mask
+  [21047] math: arm: fpu_control.h: _FPU_GETCW/_FPU_SETCW is rejected by
+    clang
+  [21053] libc: [SH] Namespace pollution from sys/ucontext.h
+  [21061] librt: [microblaze] librt lost clock_* exports
+  [21073] libc: tunables: insecure environment variables passed to
+    subprocesses with AT_SECURE
+  [21081] string: Missing vzeroupper in memset-vec-unaligned-erms.S
+\f
+Version 2.24
+
+* The minimum Linux kernel version that this version of the GNU C Library
+  can be used with is 3.2, except on i[4567]86 and x86_64, where Linux
+  kernel version 2.6.32 or later suffices (on architectures that already
+  required kernel versions more recent than 3.2, those requirements remain
+  unchanged).  Linux 3.2 or later kernel headers are required on all
+  architectures.
+
+* The pap_AN locale has been deleted.  This has been deprecated for a long
+  time.  It has been replaced by pap_AW & pap_CW, both of which have long
+  been included in previous releases.
+
+* The readdir_r and readdir64_r functions have been deprecated.  It is
+  recommended to use readdir and readdir64 instead.
+
+* The type “union wait” has been removed.  It was deprecated in the early
+  1990s and never part of POSIX.  Application code should use the int type
+  instead of “union wait”.
+
+* A new NSS action is added to facilitate large distributed system
+  administration.  The action, MERGE, allows remote user stores like LDAP
+  to be merged into local user stores like /etc/groups in order to provide
+  easy to use, updated, and managed sets of merged credentials.  The new
+  action can be used by configuring it in /etc/nsswitch.conf:
+  group: files [SUCCESS=merge] nis
+  Implemented by Stephen Gallagher (Red Hat).
+
+* The deprecated __malloc_initialize_hook variable has been removed from the
+  API.
+
+* The long unused localedef --old-style option has been removed.  It hasn't
+  done anything in over 16 years.  Scripts using this option can safely
+  drop it.
+
+* nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf are added to
+  libm.  They are defined by TS 18661 and IEEE754-2008.  The nextup functions
+  return the next representable value in the direction of positive infinity
+  and the nextdown functions return the next representable value in the
+  direction of negative infinity.  These are currently enabled as GNU
+  extensions.
+
+Security related changes:
+
+* An unnecessary stack copy in _nss_dns_getnetbyname_r was removed.  It
+  could result in a stack overflow when getnetbyname was called with an
+  overly long name.  (CVE-2016-3075)
+
+* Previously, getaddrinfo copied large amounts of address data to the stack,
+  even after the fix for CVE-2013-4458 has been applied, potentially
+  resulting in a stack overflow.  getaddrinfo now uses a heap allocation
+  instead.  Reported by Michael Petlan.  (CVE-2016-3706)
+
+* The glob function suffered from a stack-based buffer overflow when it was
+  called with the GLOB_ALTDIRFUNC flag and encountered a long file name.
+  Reported by Alexander Cherepanov.  (CVE-2016-1234)
+
+* The Sun RPC UDP client could exhaust all available stack space when
+  flooded with crafted ICMP and UDP messages.  Reported by Aldy Hernandez'
+  alloca plugin for GCC.  (CVE-2016-4429)
+
+* The IPv6 name server management code in libresolv could result in a memory
+  leak for each thread which is created, performs a failing naming lookup,
+  and exits.  Over time, this could result in a denial of service due to
+  memory exhaustion.  Reported by Matthias Schiffer.  (CVE-2016-5417)
+
+The following bugs are resolved with this release:
+
+  [1170] localedata: ne_NP: update Nepali locale definition file
+  [3629] manual: stpcpy description in string.texi refers to MS-DOG instead
+    of MS-DOS.
+  [6527] malloc: [powerpc] Malloc alignment insufficient for PowerPC
+  [6796] math: fdim() does not set errno on overflow
+  [10354] libc: posix_spawn should use vfork() in more cases than presently
+  [11213] localedata: localedata: add copyright disclaimer to locale files
+  [12143] localedata: chr_US: new Cherokee locale
+  [12450] localedata: sgs_LT: new locale
+  [12676] localedata: ln_CD: new locale
+  [13237] localedata: LC_ADDRESS.country_name: update all locales w/latest
+    CLDR data
+  [13304] math: fma, fmaf, fmal produce wrong results
+  [14259] build: --localedir arg to configure is ignored
+  [14499] nptl: Does posix_spawn invoke atfork handlers / use vfork?
+  [14750] libc: Race condition in posix_spawn vfork usage vs signal handlers
+  [14934] localedata: es_CL: wrong first weekday chilean locale
+  [15262] localedata: LC_MESSAGES.yesexpr/noexpr: inconsistent use of
+    romanisation
+  [15263] localedata: LC_MESSAGES.yesexpr/noexpr: inconsistent use of 1/0
+    and +/-
+  [15264] localedata: LC_MESSAGES.yesstr/nostr: lacking in many locales
+  [15368] nptl: raise() is not async-signal-safe
+  [15479] math: ceil, floor, round and trunc raise inexact exception
+  [15578] localedata: kk_KZ: various updates
+  [16003] localedata: pap_AN: punt old locale
+  [16137] localedata: iw_IL: punt old locale
+  [16190] localedata: eo: new esperanto locale
+  [16374] localedata: lv_LV: change currency symbol in LC_MONETARY to euro
+  [16742] malloc: race condition: pthread_atfork() called before first
+    malloc() results in unexpected locking behaviour/deadlocks
+  [16975] localedata: LC_MESSAGES.yesexpr/noexpr: revisit capitalization in
+    all locales
+  [16983] localedata: postal_fmt does not allow %l and %n modifiers
+  [17565] localedata: pt_PT: wrong (work-)week start
+  [17899] math: [powerpc] floorl returns negative zero with FE_DOWNWARD
+  [17950] build: Build fails with -msse
+  [18205] localedata: be_BY*: wrong first_weekday and first_workday
+  [18433] libc: posix_spawn does not return correctly upon failure to
+    execute
+  [18453] localedata: charmaps/IBM875: incorrect codes
+  [18712] string: bits/string2.h incompatible with -O2 -Werror=packed
+    -Wsystem-headers
+  [18896] localedata: he_IL: improvements for currency
+  [18911] localedata: ro_RO: Correcting week day name for "Tuesday" in
+    Romanian locale data
+  [18960] locale: s390: _nl_locale_subfreeres uses larl opcode on misaligned
+    symbol
+  [19056] libc: Deprecate readdir_r
+  [19133] localedata: pt_*: days & months should be lowercase in Portuguese
+    language
+  [19198] localedata: nl_NL: small improvements for Dutch locales
+  [19257] network: Per-thread memory leak in __res_vinit with IPv6
+    nameservers (CVE-2016-5417)
+  [19269] build: tst-audit4 and tst-audit10 failures with gcc-6 on non avx
+    machine
+  [19400] locale: Language missing in  "iso-639.def", trivial fix in
+    description
+  [19431] malloc: Deadlock between fflush, getdelim, and fork
+  [19505] libc: Incorrect file descriptor validity checks in
+    posix_spawn_file_actions_add{open,close,dup2}
+  [19509] dynamic-link: dlsym, dlvsym do not report errors through dlerror
+    when using RTLD_NEXT
+  [19512] locale: Stale `#ifndef HAVE_BUILTIN_EXPECT' in
+    `intl/{gettextP,loadinfo}.h'
+  [19534] libc: execle, execlp may use malloc
+  [19568] localedata: *_CH: Swiss locales have inconsistent start of week
+  [19573] network: res_nclose and __res_maybe_init disagree about name
+    server initialization, breaking Hesiod
+  [19575] localedata: Status of GB18030 tables
+  [19581] localedata: sr_* date_fmt string contains additional newline
+  [19583] string: SSSE3_Fast_Copy_Backward flag needs to be enabled for AMD
+    Excavator core
+  [19592] math: [ldbl-128ibm] ceill incorrect in non-default rounding modes
+  [19593] math: [ldbl-128ibm] truncl incorrect in non-default rounding modes
+  [19594] math: [ldbl-128ibm] roundl incorrect in non-default rounding modes
+  [19595] math: [ldbl-128ibm] fmodl incorrect for results in subnormal
+    double range
+  [19602] math: [ldbl-128ibm] fmodl handling of equal arguments with low
+    part zero incorrect
+  [19603] math: [ldbl-128ibm] remainderl, remquol incorrect sign handling in
+    equality tests
+  [19610] dynamic-link: ldconfig -X removes stale symbolic links
+  [19613] libc: s390x (64 bit) macro expansion WCOREDUMP and others
+  [19633] locale: strfmon_l applies global locale to number formatting
+  [19642] network: Memory leak in getnameinfo
+  [19648] libc: test-skeleton.c: Do not set RLIMIT_DATA
+  [19653] libc: Potential for NULL pointer dereference (CWE-476) in
+    glibc-2.22
+  [19654] math: [x86_64] Need testcase for BZ #19590 fix
+  [19671] localedata: Missing Sanity Check for malloc() in 'tst-fmon.c' &
+    'tst-numeric.c'
+  [19674] math: [ldbl-128ibm] powl incorrect overflow handling
+  [19677] math: [ldbl-128ibm] remainderl equality test incorrect for zero
+    low part
+  [19678] math: [ldbl-128ibm] nextafterl, nexttowardl incorrect sign of zero
+    result
+  [19679] dynamic-link: gcc-4.9.3 C++ exception handling broken due to
+    unaligned stack
+  [19726] locale: Converting UCS4LE to INTERNAL with iconv() does not update
+    pointers and lengths in error-case.
+  [19727] locale: Converting from/to UTF-xx with iconv() does not always
+    report errors on UTF-16 surrogates values.
+  [19755] nscd: nscd assertion failure in gc
+  [19758] dynamic-link: Typo in EXTRA_LD_ENVVARS for x86-64
+  [19759] libc: mempcpy shouldn't be inlined
+  [19762] dynamic-link: HAS_CPU_FEATURE/HAS_ARCH_FEATURE are easy to misuse
+  [19765] libc: s390 needs an optimized mempcpy
+  [19779] glob: glob: buffer overflow with GLOB_ALTDIRFUNC due to incorrect
+    NAME_MAX limit assumption (CVE-2016-1234)
+  [19783] build: benchtests don't support --enable-hardcoded-path-in-tests
+  [19787] network: Missing and incorrect truncation checks in getnameinfo
+  [19790] math: [ldbl-128ibm] nearbyintl incorrect in non-default rounding
+    modes
+  [19791] network: Assertion failure in res_query.c with un-connectable name
+    server addresses
+  [19792] libc: MIPS: backtrace yields infinite backtrace with makecontext
+  [19822] math: libm.so install clobbers old version
+  [19825] network: resolv: send_vc can return uninitialized data in second
+    response to getaddrinfo
+  [19830] network: nss_dns: should check RDATA length against buffer length
+  [19831] network: nss_dns: getaddrinfo returns uninitialized data when
+    confronted with A/AAAA records of invalid size
+  [19837] nss: nss_db: No retries for some long lines with a larger buffer
+  [19848] math: powl(10,n) for n=-4,-5,-6,-7 is off by more than 1 ULP
+  [19853] stdio: Printing IBM long double in decimal with high precision is
+    sometimes incorrect
+  [19860] build: x86_64: compile errors for tst-audit10 and tst-auditmod10b
+  [19861] nptl: libpthread IFUNC resolver for fork can lead to crash
+  [19862] network: resolv, nss_dns: Remove remaining logging of unexpected
+    record types
+  [19865] network: Assertion failure or memory leak in
+    _nss_dns_getcanonname_r
+  [19868] network: nss_dns: netent code does not skip over non-PTR records
+  [19879] network: nss_dns: Stack overflow in getnetbyname implementation
+    (CVE-2016-3075)
+  [19881] string: Improve x86-64 memset
+  [19907] string: Incorrect memcpy tests
+  [19916] dynamic-link: S390: fprs/vrs are not saved/restored while
+    resolving symbols
+  [19925] libc: termios.h XCASE namespace
+  [19928] string: memmove-vec-unaligned-erms.S is slow with large data size
+  [19929] libc: limits.h NL_NMAX namespace
+  [19931] stdio: Memory leak in vfprintf
+  [19957] libc: clone(CLONE_VM) access invalid parent memory
+  [19963] localedata: en_IL: New locale
+  [19989] stdio: stdio.h cuserid namespace
+  [19994] network: getaddrinfo does not restore RES_USE_INET6 flag in
+    gethosts
+  [19996] locale: langinfo.h nl_langinfo_l namespace
+  [20005] stdio: fflush on a file opened with fmemopen resets position to 0
+  [20010] network: getaddrinfo: Stack overflow in hostent translation
+    (CVE-2016-3706)
+  [20012] stdio: libio: fmemopen append mode failure
+  [20014] stdio: stdio.h namespace for pre-threads POSIX
+  [20017] network: resolv: Use gmtime_r instead of gmtime in p_secstodate
+  [20023] libc: fcntl.h timespec namespace
+  [20024] math: [x86_64] vectorized sincos trashes the stack
+  [20031] network: nss_hesiod: Heap overflow in get_txt_records
+  [20041] time: sys/time.h timespec namespace
+  [20043] libc: unistd.h missing cuserid for UNIX98 and before
+  [20044] libc: unistd.h missing pthread_atfork for UNIX98
+  [20051] libc: ttyslot in wrong header under wrong conditions
+  [20054] libc: gethostname not declared for XPG4
+  [20055] libc: termios.h missing tcgetsid for XPG4
+  [20072] dynamic-link: x86 init_cpu_features is called twice in static
+    executable
+  [20073] libc: sys/stat.h fchmod namespace
+  [20074] libc: stdlib.h rand_r namespace
+  [20076] libc: sys/stat.h missing S_IFSOCK, S_ISSOCK for XPG4
+  [20094] libc: stdlib.h should not declare grantpt, ptsname, unlockpt for
+    XPG3
+  [20111] libc: struct sockaddr_storage cannot be aggregate-copied
+  [20112] network: sunrpc: stack (frame) overflow in Sun RPC clntudp_call
+    (CVE-2016-4429)
+  [20115] string: Extra alignment in memset-vec-unaligned-erms.S
+  [20119] libc: Wrong mask for processors level type from CPUID
+  [20139] dynamic-link: Upper part of zmm is zeroed if Glibc is built with
+    AS not supporting AVX512
+  [20151] math: [ldbl-128/ldbl-128ibm] j0l, j1l, y0l, y1l return sNaN for
+    sNaN argument
+  [20153] math: [ldbl-128ibm] sqrtl (sNaN) returns sNaN
+  [20156] math: [ldbl-128ibm] ceill, rintl etc. return sNaN for sNaN
+    argument
+  [20157] math: [powerpc] fabsl (sNaN) wrongly raises "invalid"
+  [20160] math: [powerpc] ceil, rint etc. return sNaN for sNaN input
+  [20178] libc: posix_spawn{p} should not call exit
+  [20191] stdio: libio: vtables hardening
+  [20195] string: FMA4 detection requires CPUID execution with register
+    eax=0x80000001
+  [20198] libc: quick_exit incorrectly destroys C++11 thread objects.
+  [20205] math: [i386/x86_64] nextafterl incorrect incrementing negative
+    subnormals
+  [20212] math: acos (sNaN) returns sNaN
+  [20213] math: asin (sNaN) returns sNaN
+  [20214] network: Linux header sync with linux/in6.h and ipv6.h again.
+  [20218] math: [i386] asinhl (sNaN) returns sNaN
+  [20219] math: [i386] atanhl (sNaN) returns sNaN
+  [20222] stdio: fopencookie: Mangle function pointers
+  [20224] math: [i386] cbrtl (sNaN) returns sNaN
+  [20225] math: ldexp, scalbn, scalbln return sNaN for sNaN input
+  [20226] math: [i386/x86_64] expl, exp10l, expm1l return sNaN for sNaN
+    input
+  [20227] math: [i386/x86_64] logl (sNaN) returns sNaN
+  [20228] math: [i386/x86_64] log10l (sNaN) returns sNaN
+  [20229] math: [i386/x86_64] log1pl (sNaN) returns sNaN
+  [20232] math: [ldbl-128] expm1l (sNaN) returns sNaN
+  [20233] math: [ldbl-128ibm] expm1l (sNaN) returns sNaN
+  [20234] math: [ldbl-128ibm] log1pl (sNaN) returns sNaN
+  [20235] math: [i386/x86_64] log2l (sNaN) returns sNaN
+  [20237] nss: nss_db: get*ent segfaults without preceding set*ent
+  [20240] math: modf (sNaN) returns sNaN
+  [20248] libc: debug/tst-longjump_chk2 calls printf from a signal handler
+  [20250] math: frexp (sNaN) returns sNaN
+  [20252] math: atan2 (sNaN, qNaN) fails to raise "invalid"
+  [20255] math: [i386] fdim, fdimf return with excess range and precision /
+    double rounding
+  [20256] math: [i386/x86_64] fdiml returns sNaN for sNaN input
+  [20260] string: ../sysdeps/x86/bits/string.h:1092:3: error: array
+    subscript is below array bounds [-Werror=array-bounds]
+  [20262] nis: _nss_nis_initgroups_dyn always returns NSS_STATUS_NOTFOUND
+  [20263] nptl: robust mutex deadlocks if other thread requests timedlock
+    (Only arm/linux)
+  [20277] libc: $dp is not initialized correctly in sysdeps/hppa/start.S
+  [20284] malloc: malloc: Corrupt arena avoidance causes unnecessary mmap
+    fallbacks
+  [20296] math: [i386/x86_64] scalbl returns sNaN for sNaN input, missing
+    "invalid" exceptions
+  [20314] nptl: make[4]: *** [/usr/include/stdlib.h] Error 1
+  [20316] localedata: id_ID: Februari instead of Pebruari
+  [20327] string: POWER8 strcasecmp returns incorrect result
+  [20347] math: Failure: Test: j0_downward (0xap+0)
+  [20348] libc: FAIL: misc/tst-preadvwritev64
+  [20349] libc: 64-bit value is passed differently in p{readv,writev}{64}
+  [20350] libc: There is no test for p{read,write}64
+  [20357] math: Incorrect cos result for 1.5174239687223976
+  [20384] build: Don't run libmvec-sincos-avx* tests on non avx machines
+\f
+Version 2.23
+
+* Unicode 8.0.0 Support: Character encoding, character type info, and
+  transliteration tables are all updated to Unicode 8.0.0, using new
+  and/or improved generator scripts contributed by Mike FABIAN (Red Hat).
+  These updates cause user visible changes, such as the fixes for bugs
+  89, 16061, and 18568.
+
+* sched_setaffinity, pthread_setaffinity_np no longer attempt to guess the
+  kernel-internal CPU set size.  This means that requests that change the
+  CPU affinity which failed before (for example, an all-ones CPU mask) will
+  now succeed.  Applications that need to determine the effective CPU
+  affinities need to call sched_getaffinity or pthread_getaffinity_np after
+  setting it because the kernel can adjust it (and the previous size check
+  would not detect this in the majority of cases).
+
+* The fts.h header can now be used with -D_FILE_OFFSET_BITS=64.  With LFS
+  the following new symbols are used: fts64_children, fts64_close,
+  fts64_open, fts64_read and fts64_set.
+
+* getaddrinfo now detects certain invalid responses on an internal netlink
+  socket.  If such responses are received, an affected process will
+  terminate with an error message of "Unexpected error <number> on netlink
+  descriptor <number>" or "Unexpected netlink response of size <number> on
+  descriptor <number>".  The most likely cause for these errors is a
+  multi-threaded application which erroneously closes and reuses the netlink
+  file descriptor while it is used by getaddrinfo.
 
 * 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
   unnecessary serialization of memory allocation requests across threads.
   The defect is now corrected.  Users should see a substantial increase in
   the concurent throughput of allocation requests for applications which
-  trigger this bug.  Affected applications typically create create and
+  trigger this bug.  Affected applications typically create and
   destroy threads frequently.  (Bug 19048 was reported and analyzed by
   Ericsson.)
 
@@ -38,18 +721,330 @@ Version 2.23
   tzselect).  This is useful for people who build the timezone data and code
   independent of the GNU C Library.
 
-* The LD_POINTER_GUARD environment variable can no longer be used to
-  disable the pointer guard feature.  It is always enabled.
-
 * The obsolete header <regexp.h> has been removed.  Programs that require
   this header must be updated to use <regex.h> instead.
 
+* The obsolete functions bdflush, create_module, get_kernel_syms,
+  query_module and uselib are no longer available to newly linked binaries;
+  the header <sys/kdaemon.h> has been removed.  These functions and header
+  were specific to systems using the Linux kernel and could not usefully be
+  used with the GNU C Library on systems with version 2.6 or later of the
+  Linux kernel.
+
 * Optimized string, wcsmbs and memory functions for IBM z13.
   Implemented by Stefan Liebler.
 
+* Newly linked programs that define a variable called signgam will no longer
+  have it set by the lgamma, lgammaf and lgammal functions.  Programs that
+  require signgam to be set by those functions must ensure that they use the
+  variable provided by the GNU C Library and declared in <math.h>, without
+  defining their own copy.
+
 * The minimum GCC version that can be used to build this version of the GNU
   C Library is GCC 4.7.  Older GCC versions, and non-GNU compilers, can
   still be used to compile programs using the GNU C Library.
+
+Security related changes:
+
+* An out-of-bounds value in a broken-out struct tm argument to strftime no
+  longer causes a crash.  Reported by Adam Nielsen.  (CVE-2015-8776)
+
+* The LD_POINTER_GUARD environment variable can no longer be used to disable
+  the pointer guard feature.  It is always enabled.  Previously,
+  LD_POINTER_GUARD could be used to disable security hardening in binaries
+  running in privileged AT_SECURE mode.  Reported by Hector Marco-Gisbert.
+  (CVE-2015-8777)
+
+* An integer overflow in hcreate and hcreate_r could lead to an
+  out-of-bounds memory access.  Reported by Szabolcs Nagy.  (CVE-2015-8778)
+
+* The catopen function no longer has unbounded stack usage.  Reported by
+  Max.  (CVE-2015-8779)
+
+* The nan, nanf and nanl functions no longer have unbounded stack usage
+  depending on the length of the string passed as an argument to the
+  functions.  Reported by Joseph Myers.  (CVE-2014-9761)
+
+* A stack-based buffer overflow was found in libresolv when invoked from
+  libnss_dns, allowing specially crafted DNS responses to seize control
+  of execution flow in the DNS client.  The buffer overflow occurs in
+  the functions send_dg (send datagram) and send_vc (send TCP) for the
+  NSS module libnss_dns.so.2 when calling getaddrinfo with AF_UNSPEC
+  family.  The use of AF_UNSPEC triggers the low-level resolver code to
+  send out two parallel queries for A and AAAA.  A mismanagement of the
+  buffers used for those queries could result in the response of a query
+  writing beyond the alloca allocated buffer created by
+  _nss_dns_gethostbyname4_r.  Buffer management is simplified to remove
+  the overflow.  Thanks to the Google Security Team and Red Hat for
+  reporting the security impact of this issue, and Robert Holiday of
+  Ciena for reporting the related bug 18665. (CVE-2015-7547)
+
+The following bugs are resolved with this release:
+
+  [89] localedata: Locales nb_NO and nn_NO should transliterate æøå
+  [887] math: Math library function "logb" and "nextafter" inconsistent
+  [2542] math: Incorrect return from float gamma (-0X1.FA471547C2FE5P+1)
+  [2543] math: Incorrect return from float gamma (-0X1.9260DCP+1)
+  [2558] math: Incorrect return from double gamma (-0X1.FA471547C2FE5P+1)
+  [2898] libc: [improve]  warning: the use  of `mktemp' is dangerous, better
+    use `mkstemp'
+  [4404] localedata: German translation of "Alarm clock" is misleading
+  [6799] math: nextafter() and nexttoward() doen't set errno on
+    overflow/underflow errors
+  [6803] math: scalb(), scalbln(), scalbn() do not set errno on
+    overflow/underflow
+  [10432] nis: _nss_nis_setnetgrent assertion failure
+  [11460] libc: fts has no LFS support
+  [12926] network: getaddrinfo()/make_request() may spin forever
+  [13065] nptl: Race condition in pthread barriers
+  [13690] nptl: pthread_mutex_unlock potentially cause invalid access
+  [14341] dynamic-link: Dynamic linker crash when DT_JMPREL and DT_REL{,A}
+    are not contiguous
+  [14551] math: [ldbl-128ibm] strtold overflow handling for IBM long double
+  [14912] libc: Rename non-installed bits/*.h headers
+  [15002] libc: Avoid undefined behavior in posix_fallocate overflow check
+  [15367] math: Let gcc use __builtin_isinf
+  [15384] math: One constant fewer in ieee754/dbl-64/wordsize-64/s_finite.c
+  [15421] math: lgamma wrongly sets signgam for ISO C
+  [15470] math: [arm] On ARM llrintl() and llroundl() do not raise
+    FE_INVALID with argument out of range
+  [15491] math: [i386/x86_64] x86 nearbyint implementations wrongly clear
+    all exceptions
+  [15786] dynamic-link: ifunc resolver functions can smash function
+    arguments
+  [15918] math: Unnecessary check for equality in hypotf()
+  [16061] localedata: Review / update transliteration data
+  [16068] math: [i386/x86_64] x86 and x86_64 fesetenv exclude state they
+    should include
+  [16141] time: strptime %z offset restriction
+  [16171] math: drem should be alias of remainder
+  [16296] math: fegetround is pure?
+  [16347] math: [ldbl-128ibm] ldbl-128/e_lgammal_r.c may not be suitable.
+  [16364] libc: sleep may leave SIGCHLD blocked on sync cancellation on
+    GNU/Linux
+  [16399] math: [mips] lrint / llrint / lround / llround missing exceptions
+  [16415] math: Clean up ldbl-128 / ldbl-128ibm expm1l for large positive
+    arguments
+  [16422] math: [powerpc] math-float, math-double failing llrint tests with
+    "Exception "Inexact" set" on ppc32
+  [16495] localedata: nl_NL: date_fmt: shuffle year/month around
+  [16517] math: Missing underflow exception from tanf/tan/tanl
+  [16519] math: Missing underflow exception from sinhf
+  [16520] math: Missing underflow exception from tanhf
+  [16521] math: Missing underflow exception from exp2
+  [16620] math: [ldbl-128ibm] exp10l spurious overflows / bad directed
+    rounding results
+  [16734] stdio: fopen calls mmap to allocate its buffer
+  [16961] math: nan function incorrect handling of bad sequences
+  [16962] math: nan function unbounded stack allocation (CVE-2014-9761)
+  [16973] localedata: Fix lang_lib/lang_term as per ISO 639-2
+  [16985] locale: localedef: confusing error message when opening output
+    fails
+  [17118] math: ctanh(INFINITY + 2 * I) returns incorrect value
+  [17197] locale: Redundant shift character in iconv conversion output at
+    block boundary
+  [17243] libc: trunk/posix/execl.c:53: va_args problem ?
+  [17244] libc: trunk/sysdeps/unix/sysv/linux/semctl.c:116: va_args muxup ?
+  [17250] dynamic-link: static linking breaks nss loading
+    (getaddrinfo/getpwnam/etc...)
+  [17404] libc: atomic_exchange_rel lacking a barrier on MIPS16, GCC before
+    4.7?
+  [17441] math: isnan() should use __builtin_isnan() in GCC
+  [17514] nptl: Assert failure unlocking ERRORCHECK mutex after timedlock
+    (related to lock elision)
+  [17787] manual: Exponent on page 324 of the PDF ends prematurely
+  [17886] time: strptime should be able to parse "Z" as a timezone with %z
+  [17887] time: strptime should be able to parse "+01:00" style timezones
+  [17905] libc: catopen() Multiple unbounded stack allocations
+    (CVE-2015-8779)
+  [18084] libc: backtrace (..., 0) dumps core on x86
+  [18086] libc: nice() sets errno to 0 on success
+  [18240] libc: hcreate, hcreate_r should fail with ENOMEM if element count
+    is too large (CVE-2015-8778)
+  [18251] dynamic-link: SONAME missing when audit modules provides path
+  [18265] libc: add attributes for wchar string and memory functions
+  [18370] math: csqrt missing underflows
+  [18421] libc: [hppa] read-only segment has dynamic relocations
+  [18472] libc: Obsolete syscall wrappers should be compat symbols
+  [18480] libc: hppa glibc miscompilation in sched_setaffinity()
+  [18491] localedata: Update tr_TR LC_CTYPE as part of Unicode updates
+  [18525] localedata: Remove locale timezone information
+  [18560] libc: [powerpc] spurious bits/ipc.h definitions
+  [18568] localedata: Update locale data to Unicode 8.0
+  [18589] locale: sort-test.sh fails at random
+  [18595] math: ctan, ctanh missing underflows
+  [18604] libc: assert macro-expands its argument
+  [18610] math: S390: fetestexcept() reports any exception if DXC-code
+    contains a vector instruction exception.
+  [18611] math: j1, jn missing errno setting on underflow
+  [18618] localedata: sync Chechen locale definitions with other *_RU
+    locales
+  [18647] math: powf(-0x1.000002p0, 0x1p30) returns 0 instead of +inf
+  [18661] libc: Some x86-64 assembly codes don't align stack to 16 bytes
+  [18665] network: In send_dg, the recvfrom function is NOT always using the
+    buffer size of a newly created buffer (CVE-2015-7547)
+  [18674] libc: [i386] trunk/sysdeps/i386/tst-auditmod3b.c:84: possible
+    missing break ?
+  [18675] libc: fpathconf(_PC_NAME_MAX) fails against large filesystems for
+    32bit processes
+  [18681] libc: regexp.h is obsolete and buggy, and should be desupported
+  [18699] math: tilegx cproj() for various complex infinities does not yield
+    infinity
+  [18724] libc: Harden put*ent functions against data injection
+  [18743] nptl: PowerPC: findutils testcase fails with --enable-lock-elision
+  [18755] build: build errors with -DNDEBUG
+  [18757] stdio: fmemopen fails to set errno on failure
+  [18778] dynamic-link: ld.so crashes if failed dlopen causes libpthread to
+    be forced unloaded
+  [18781] libc: openat64 lacks O_LARGEFILE
+  [18787] libc: [hppa] sysdeps/unix/sysv/linux/hppa/bits/atomic.h:71:6:
+    error: can’t find a register in class ‘R1_REGS’ while reloading ‘asm’
+  [18789] math: [ldbl-128ibm] sinhl inaccurate near 0
+  [18790] math: [ldbl-128ibm] tanhl inaccurate
+  [18795] libc: stpncpy fortification misses buffer lengths that are
+    statically too large
+  [18796] build: build fails for --disable-mathvec
+  [18803] math: hypot missing underflows
+  [18820] stdio: fmemopen may leak memory on failure
+  [18823] math: csqrt spurious underflows
+  [18824] math: fma spurious underflows
+  [18825] math: pow missing underflows
+  [18857] math: [ldbl-128ibm] nearbyintl wrongly uses signaling comparisons
+  [18868] nptl: pthread_barrier_init typo has in-theory-undefined behavior
+  [18870] build: sem_open.c fails to compile with missing symbol
+    FUTEX_SHARED
+  [18872] stdio: Fix memory leak in printf_positional
+  [18873] libc: posix_fallocate overflow check ineffective
+  [18875] math: Excess precision leads incorrect libm
+  [18877] libc: arm: mmap offset regression
+  [18887] libc: memory corruption when using getmntent on blank lines
+  [18918] localedata: hu_HU: change time to HH:MM:SS format
+  [18921] libc: Regression: extraneous stat() and fstat() performed by
+    opendir()
+  [18928] dynamic-link: LD_POINTER_GUARD is not ignored for privileged
+    binaries (CVE-2015-8777)
+  [18951] math: tgamma missing underflows
+  [18952] math: [ldbl-128/ldbl-128ibm] lgammal spurious "invalid", incorrect
+    signgam
+  [18953] localedata: lt_LT: change currency symbol to the euro
+  [18956] math: powf inaccuracy
+  [18961] math: [i386] exp missing underflows
+  [18966] math: [i386] exp10 missing underflows
+  [18967] math: math.h XSI POSIX namespace (gamma, isnan, scalb)
+  [18969] build: multiple string test failures due to missing locale
+    dependencies
+  [18970] libc: Reference of pthread_setcancelstate in libc.a
+  [18977] math: float / long double Bessel functions not in XSI POSIX
+  [18980] math: i386 libm functions return with excess range and precision
+  [18981] math: i386 scalb*, ldexp return with excess range and precision
+  [18982] stdio: va_list and vprintf
+  [18985] time: Passing out of range data to strftime() causes a segfault
+    (CVE-2015-8776)
+  [19003] math: [x86_64] fma4 version of pow inappropriate contraction
+  [19007] libc: FAIL: elf/check-localplt with -z now and binutils 2.26
+  [19012] locale: iconv_open leaks memory on error path
+  [19016] math: clog, clog10 inaccuracy
+  [19018] nptl: Mangle function pointers in tls_dtor_list
+  [19032] math: [i386] acosh (-qNaN) spurious "invalid" exception
+  [19046] math: ldbl-128 / ldbl-128ibm lgamma bad overflow handling
+  [19048] malloc: malloc: arena free list can become cyclic, increasing
+    contention
+  [19049] math: [powerpc] erfc incorrect zero sign
+  [19050] math: [powerpc] log* incorrect zero sign
+  [19058] math: [x86_64] Link fail with -fopenmp and -flto
+  [19059] math: nexttoward overflow incorrect in non-default rounding modes
+  [19071] math: ldbl-96 lroundl incorrect just below powers of 2
+  [19074] network: Data race in _res_hconf_reorder_addrs
+  [19076] math: [ldbl-128ibm] log1pl (-1) wrong sign of infinity
+  [19077] math: [ldbl-128ibm] logl (1) incorrect sign of zero result
+  [19078] math: [ldbl-128ibm] expl overflow incorrect in non-default
+    rounding modes
+  [19079] math: dbl-64/wordsize-64 lround based on llround incorrect for
+    ILP32
+  [19085] math: ldbl-128 lrintl, lroundl missing exceptions for 32-bit long
+  [19086] manual: posix_fallocate64 documented argument order is wrong.
+  [19088] math: lround, llround missing exceptions close to overflow
+    threshold
+  [19094] math: lrint, llrint missing exceptions close to overflow threshold
+  [19095] math: dbl-64 lrint incorrect for 64-bit long
+  [19122] dynamic-link: Unnecessary PLT relocations in librtld.os
+  [19124] dynamic-link: ld.so failed to build with older assmebler
+  [19125] math: [powerpc32] llroundf, llround incorrect exceptions
+  [19129] dynamic-link: [arm] Concurrent lazy TLSDESC resolution can crash
+  [19134] math: [powerpc32] lround, lroundf spurious exceptions
+  [19137] libc: i386/epoll_pwait.S doesn't support cancellation
+  [19143] nptl: Remove CPU set size checking from sched_setaffinity,
+    pthread_setaffinity_np
+  [19156] math: [ldbl-128] j0l spurious underflows
+  [19164] nptl: tst-getcpu fails with many possible CPUs
+  [19168] math: math/test-ildoubl and math/test-ldouble failure
+  [19174] nptl: PowerPC: TLE enabled pthread mutex performs poorly.
+  [19178] dynamic-link: ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA confuses
+    prelink
+  [19181] math: [i386/x86_64] fesetenv (FE_DFL_ENV), fesetenv
+    (FE_NOMASK_ENV) do not clear SSE exceptions
+  [19182] malloc: malloc deadlock between ptmalloc_lock_all and
+    _int_new_arena/reused_arena
+  [19189] math: [ldbl-128] log1pl (-qNaN) spurious "invalid" exception
+  [19201] math: dbl-64 remainder incorrect sign of zero result
+  [19205] math: bits/math-finite.h conditions do not match math.h and
+    bits/mathcalls.h
+  [19209] math: bits/math-finite.h wrongly maps ldexp to scalbn
+  [19211] math: lgamma functions do not set signgam for -ffinite-math-only
+    for C99-based standards
+  [19212] libc: features.h not -Wundef clean
+  [19213] math: [i386/x86_64] log* (1) incorrect zero sign for -ffinite-
+    math-only
+  [19214] libc: Family and model identification for AMD CPU's are incorrect.
+  [19219] libc: GLIBC build fails for ia64 with missing __nearbyintl
+  [19228] math: [powerpc] nearbyint wrongly clears "inexact", leaves traps
+    disabled
+  [19235] math: [powerpc64] lround, lroundf, llround, llroundf spurious
+    "inexact" exceptions
+  [19238] math: [powerpc] round, roundf spurious "inexact" for integer
+    arguments
+  [19242] libc: strtol incorrect in Turkish locales
+  [19243] malloc: reused_arena can pick an arena on the free list, leading
+    to an assertion failure and reference count corruption
+  [19253] time: tzset() ineffective when temporary TZ did not include DST
+    rules
+  [19266] math: strtod ("NAN(I)") incorrect in Turkish locales
+  [19270] math: [hppa] Shared libm missing __isnanl
+  [19285] libc: [hppa] sysdeps/unix/sysv/linux/hppa/bits/mman.h: missing
+    MAP_HUGETLB and MAP_STACK defines
+  [19313] nptl: Wrong __cpu_mask for x32
+  [19347] libc: grantpt: try to force a specific gid even without pt_chown
+  [19349] math: [ldbl-128ibm] tanhl inaccurate for small arguments
+  [19350] math: [ldbl-128ibm] sinhl spurious overflows
+  [19351] math: [ldbl-128ibm] logl inaccurate near 1
+  [19363] time: x32: times() return value wrongly truncates/sign extends
+    from 32bit
+  [19367] dynamic-link: Improve branch prediction on Silvermont
+  [19369] network: Default domain name not reset by res_ninit when "search"
+    / "domain" entry is removed from resolv.conf
+  [19375] math: powerpc: incorrect results for POWER7 logb with negative
+    subnormals
+  [19385] localedata: bg_BG: time separator should be colon, not comma
+  [19408] libc: linux personality syscall wrapper may erroneously return an
+    error on 32-bit architectures
+  [19415] libc: dladdr returns wrong names on hppa
+  [19432] libc: iconv rejects redundant escape sequences in IBM900, IBM903,
+    IBM905, IBM907, and IBM909
+  [19439] math: Unix98 isinf and isnan functions conflict with C++11
+  [19443] build: build failures with -DDEBUG
+  [19451] build: Make check fails on test-double-vlen2
+  [19462] libc: Glibc failed to build with -Os
+  [19465] math: Wrong code with -Os
+  [19466] time: time/tst-mktime2.c is compiled into an infinite loop with
+    -Os
+  [19467] string: Fast_Unaligned_Load needs to be enabled for Excavator core
+    CPU's.
+  [19475] libc: Glibc 2.22 doesn't build on sparc [PATCH]
+  [19486] math: S390: Math tests fail with "Exception Inexact set".
+  [19529] libc: [ARM]: FAIL: stdlib/tst-makecontext
+  [19550] libc: [mips] mmap negative offset handling inconsistent with other
+    architectures
+  [19590] math: Fail to build shared objects that use libmvec.so functions.
 \f
 Version 2.22
 
@@ -851,7 +1846,7 @@ Version 2.14
 
   386, 6420, 7101, 9730, 9732, 9809, 10138, 10149, 10157, 11099, 11257,
   11258, 11487, 11532, 11558, 11578, 11634, 11653, 11668, 11697, 11724,
-  11781, 11799, 11820, 11837, 11857, 11869, 11892, 11895, 11901, 11945,
+  11781, 11799, 11820, 11837, 11857, 11884, 11892, 11895, 11901, 11945,
   11947, 11952, 11987, 12052, 12083, 12158, 12178, 12200, 12346, 12350,
   12393, 12420, 12432, 12445, 12449, 12453, 12454, 12460, 12469, 12489,
   12509, 12510, 12511, 12518, 12527, 12541, 12545, 12551, 12582, 12583,
@@ -2744,7 +3739,7 @@ Version 1.04
 ----------------------------------------------------------------------
 Copyright information:
 
-Copyright (C) 1992-2015 Free Software Foundation, Inc.
+Copyright (C) 1992-2017 Free Software Foundation, Inc.
 
    Permission is granted to anyone to make or distribute verbatim copies
    of this document as received, in any medium, provided that the