Bug 19048 - malloc: arena free list can become cyclic, increasing contention
Summary: malloc: arena free list can become cyclic, increasing contention
Status: RESOLVED FIXED
Alias: None
Product: glibc
Classification: Unclassified
Component: malloc (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: 2.23
Assignee: Florian Weimer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-10-01 21:13 UTC by Paulo Andrade
Modified: 2017-01-27 15:32 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:
fweimer: security-


Attachments
0001-Avoid-corruption-of-free_list.patch (768 bytes, patch)
2015-10-01 21:13 UTC, Paulo Andrade
Details | Diff
arena_test.c (966 bytes, text/plain)
2015-10-01 21:14 UTC, Paulo Andrade
Details
arena_test.pl (260 bytes, text/plain)
2015-10-01 21:18 UTC, Paulo Andrade
Details
test.c (1.13 KB, text/plain)
2015-10-01 21:24 UTC, Paulo Andrade
Details
0001-Avoid-corruption-of-free_list.patch (810 bytes, patch)
2015-10-02 13:14 UTC, Paulo Andrade
Details | Diff
0001-Avoid-corruption-of-free_list.patch (839 bytes, patch)
2015-10-02 14:33 UTC, Paulo Andrade
Details | Diff
glibc-arena.patch (409 bytes, patch)
2015-10-09 16:26 UTC, Paulo Andrade
Details | Diff
check-free_list.sh (414 bytes, text/plain)
2015-10-15 08:40 UTC, Florian Weimer
Details
check-free_list.sh (507 bytes, text/plain)
2015-10-15 09:41 UTC, Florian Weimer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Paulo Andrade 2015-10-01 21:13:04 UTC
Created attachment 8666 [details]
0001-Avoid-corruption-of-free_list.patch

When a thread leaves, arena_thread_freeres is called, the malloc
arena associated with the thread is added to the head of free_list,
and free_list set to the arena of the exiting thread.

  A common problem can be described as:
1. thread "t1" uses arena "a"
2. thread "t2" uses arena "a"
3. "t1" exit, making:
	a->next_free = free_list;
	free_list = a;
4. "t2" exits, but since free_list == a, it ends with
   free_list->next_free = free_list;

  When a program has several short lived threads, and most commonly
when there are more threads than arenas, one arena will end up being
used by most threads, causing significant contention.
Comment 1 Paulo Andrade 2015-10-01 21:14:48 UTC
Created attachment 8667 [details]
arena_test.c
Comment 2 Paulo Andrade 2015-10-01 21:18:45 UTC
Created attachment 8668 [details]
arena_test.pl

arena_test.c creates several threads in a loop:

2 threads for 32 sec
4 threads for 16 sec
8 threads for 8 sec
16 threads for 4 sec
32 threads for 2 sec
64 threads for 1 sec

every thread allocates some memory. When a thread leaves,
it attaches gdb and reads the value of the arena "key",
__libc_tsd_MALLOC for every thread, using arena_test.pl,
and prints a summary for every loop.

It shows that the proposed patch better distributes the
arenas among threads, while current glibc, and older versions,
at least as of the original commit in 2009 creating
arena_thread_freeres will use the same arena for most
threads.
Comment 3 Paulo Andrade 2015-10-01 21:24:51 UTC
Created attachment 8669 [details]
test.c

This is an alternate test case (older, from before detecting
the actual problem), that also shows how the patch makes a
significant difference.

Sample usage of this alternate test case:

$ gcc -pthread test.c -o test
$ ./test 1000 10000 1000 10

will cause all passes to run very slowly, while:

$ MALLOC_ARENA_MAX=1000 ./test 1000 10000 1000 10

allocating one arena per thread, will only be slow
in the first pass, but, with the proposed patch, it
is "fast" in all passes.
Comment 4 Paulo Andrade 2015-10-01 21:27:46 UTC
  I have an alternate patch, using/updating where
applicable, a global "tail" pointer, but I prefer the
simpler, proposed one, as it is very unlikely to have
unexpected side effects, while the other needs to handle
free_list (re)construction after or during fork, and may
have other side effects that I could not think of.
Comment 5 Paulo Andrade 2015-10-02 13:14:46 UTC
Created attachment 8672 [details]
0001-Avoid-corruption-of-free_list.patch

Patch updated to make sure to not "break" the linked list,
and corrupt free_list in a patch to avoid (other) corruption...
Comment 6 Paulo Andrade 2015-10-02 14:33:46 UTC
Created attachment 8674 [details]
0001-Avoid-corruption-of-free_list.patch

Also properly handle the case of the arena associated
with the exiting thread already being the head of free_list.

The idea is to put the arena as last to be reused, in
a round robin manner. Other more complex "scheduling"
could be implemented, but could require maintaining a
reference counter of arenas, increased when set as
thread arena, reset when unset as thread arena, or
thread exits.
Comment 7 Florian Weimer 2015-10-07 18:02:37 UTC
Can you clarify if you mean “corruption” or “contention”?  These two are very different things.
Comment 8 Florian Weimer 2015-10-08 15:59:43 UTC
(In reply to Florian Weimer from comment #7)
> Can you clarify if you mean “corruption” or “contention”?  These two are
> very different things.

Disregard that, its corruption which leads to contention.

I looked at the downstream bug report (rhbz#1264189), and it is now clear that free_list (in malloc/arena.c) is corrupted.  It eventually turns into a circular list, instead of being a stack.  Once this happens, the code that should pop an element from the stack in get_free_list keeps returning the same arena again and again.

arena_thread_freeres makes free_list circular if the same arena is pushed on the stack again because the next pointer is overwritten.  This can happen if threads share the same arena.

I think we need to go the arena reference counter route and push the arena on the stack only if the reference counter hits zero.  list_lock is global, so we should avoid doing a list traversal while holding it.

I don't think this is a correctness issue.  Observed malloc behavior is still compliant, it's just much slower than it could be.
Comment 9 Paulo Andrade 2015-10-09 16:26:45 UTC
Created attachment 8700 [details]
glibc-arena.patch

Alternate simpler patch (from a test rpm build) that that makes
the exiting thread arena the free_list, like in current glibc,
with the following checks:

o if the thread arena it is already free_list do nothing
o if the thread arena is in free_list remove it

After the above checks, do as current glibc, making the arena
the first one to be reused.

The previous patch did put the exiting thread arena at the tail
of the free_list, the new one puts it in the head, and, in the
common case of it already being in free_list, exits early the
traversal, as it should be at most once in the list.

The speed improvement, with either patch makes some tests run
more than 100 times faster, making glibc malloc speed comparable
to jemallc (that was the user complaint, jemalloc running 100
times faster than glibc).
Comment 10 Florian Weimer 2015-10-09 16:34:14 UTC
I posted a completely different patch which avoids the list traversal (and allows us to return arenas to free_list before thread exit if we want to make that optimization):

<https://sourceware.org/ml/libc-alpha/2015-10/msg00270.html>
Comment 11 Florian Weimer 2015-10-15 08:40:13 UTC
Created attachment 8718 [details]
check-free_list.sh

Test script which examines a running process to see if its arena free list has become cyclic.

Usage:

$ bash 5995 6984
5995 no cycle
6984 CYCLE
Comment 12 Florian Weimer 2015-10-15 09:41:24 UTC
Created attachment 8719 [details]
check-free_list.sh

New script which adds a check for availability of glibc debugging information.
Comment 13 Sourceware Commits 2015-10-28 20:37:04 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  a62719ba90e2fa1728890ae7dc8df9e32a622e7b (commit)
      from  0b9af583a5c2d68085e88cece13952bf05dc4882 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a62719ba90e2fa1728890ae7dc8df9e32a622e7b

commit a62719ba90e2fa1728890ae7dc8df9e32a622e7b
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Oct 28 19:32:46 2015 +0100

    malloc: Prevent arena free_list from turning cyclic [BZ #19048]
    
    	[BZ# 19048]
    	* malloc/malloc.c (struct malloc_state): Update comment.  Add
    	attached_threads member.
    	(main_arena): Initialize attached_threads.
    	* malloc/arena.c (list_lock): Update comment.
    	(ptmalloc_lock_all, ptmalloc_unlock_all): Likewise.
    	(ptmalloc_unlock_all2): Reinitialize arena reference counts.
    	(deattach_arena): New function.
    	(_int_new_arena): Initialize arena reference count and deattach
    	replaced arena.
    	(get_free_list, reused_arena): Update reference count and deattach
    	replaced arena.
    	(arena_thread_freeres): Update arena reference count and only put
    	unreferenced arenas on the free list.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog       |   17 +++++++++++++
 NEWS            |   15 +++++++++--
 malloc/arena.c  |   70 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 malloc/malloc.c |   11 +++++++-
 4 files changed, 103 insertions(+), 10 deletions(-)
Comment 14 Florian Weimer 2015-10-28 20:41:03 UTC
Fixed in 2.23.
Comment 15 Florian Weimer 2015-11-13 20:42:59 UTC
If you backport this, you also need to fix bug 19243.
Comment 16 Sourceware Commits 2016-02-18 18:07:30 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The annotated tag, glibc-2.23 has been created
        at  10ed3a0ffbb43ce0b0739da4addc747733be5e63 (tag)
   tagging  ab30899d880f9741a409cbc0d7a28399bdac21bf (commit)
  replaces  glibc-2.22
 tagged by  Adhemerval Zanella
        on  Thu Feb 18 16:04:58 2016 -0200

- Log -----------------------------------------------------------------
The GNU C Library
=================

The GNU C Library version 2.23 is now available.

The GNU C Library is used as *the* C library in the GNU system and
in GNU/Linux systems, as well as many other systems that use Linux
as the kernel.

The GNU C Library is primarily designed to be a portable
and high performance C library.  It follows all relevant
standards including ISO C11 and POSIX.1-2008.  It is also
internationalized and has one of the most complete
internationalization interfaces known.

The GNU C Library webpage is at http://www.gnu.org/software/libc/

Packages for the 2.23 release may be downloaded from:
        http://ftpmirror.gnu.org/libc/
        http://ftp.gnu.org/gnu/libc/

The mirror list is at http://www.gnu.org/order/ftp.html

NEWS for 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
  destroy threads frequently.  (Bug 19048 was reported and analyzed by
  Ericsson.)

* There is now a --disable-timezone-tools configure option for disabling the
  building and installing of the timezone related utilities (zic, zdump, and
  tzselect).  This is useful for people who build the timezone data and code
  independent of the GNU C Library.

* 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.

Contributors
============

This release was made possible by the contributions of many people.
The maintainers are grateful to everyone who has contributed
changes or bug reports.  These include:

Adhemerval Zanella
Alan Modra
Amit Pawar
Andreas Schwab
Andrew Bennett
Andrew Senkevich
Andrew Stubbs
Anton Blanchard
Arjun Shankar
Arslanbek Astemirov
Aurelien Jarno
Brett Neumeier
Carlos Eduardo Seo
Carlos O'Donell
Chris Metcalf
Chung-Lin Tang
Damyan Ivanov
Daniel Marjamäki
David Kastrup
David Lamparter
David S. Miller
Dmitry V. Levin
Egmont Koblinger
Evert
Flavio Cruz
Florian Weimer
Gabriel F. T. Gomes
Geoffrey Thomas
Gleb Fotengauer-Malinovskiy
Gunnar Hjalmarsson
H.J. Lu
Helge Deller
James Perkins
John David Anglin
Joseph Myers
Justus Winter
Khem Raj
Ludovic Courtès
Maciej W. Rozycki
Manolis Ragkousis
Marcin Kościelnicki
Mark Wielaard
Marko Myllynen
Martin Sebor
Maxim Ostapenko
Mike FABIAN
Mike Frysinger
Namhyung Kim
Ondrej Bilka
Ondřej Bílka
Paul E. Murphy
Paul Eggert
Paul Murphy
Paul Pluzhnikov
Petar Jovanovic
Phil Blundell
Rajalakshmi Srinivasaraghavan
Rasmus Villemoes
Richard Henderson
Rob Wu
Roland McGrath
Samuel Thibault
Siddhesh Poyarekar
Stan Shebs
Stefan Liebler
Steve Ellcey
Szabolcs Nagy
Thomas Schwinge
Torvald Riegel
Tulio Magno Quites Machado Filho
Vincent Bernat
Wilco Dijkstra
Zack Weinberg
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAABCAAGBQJWxgfKAAoJEPpQRMoru+a1Hj0P/0urXX1af98BQBApibOYj0E9
j1hQT0+WFrCSY45kjZY8uHwhbW0IkR5zztnUVMJ0dFM67tnIiKArxF6hS6qSef/c
7q1xeVdiEj4RpiZYeiYB2OKEXr09FAMC91Htn9pFQXeiePkcIDSXZ4WNsOSbJwAI
8eWh4/Q5MZMEreFIKJxI3LJQQAzBjXtpT7WNp0yawMDajX3mqAc011Xqq0aNL8a3
Uh5Y7dw7LfyvNHdEOaXnOX9CPdflKK86vHLBEWIksMN8Igd+2fAs9nIGw0gPJ+25
gLxnss4jvb2svS0hnsneFsR1E+Ro3f81DBEf9I96kH+uhsquoUts34HvBIZPsqNZ
emdWLxwjUKv27cNeK86H2RvRMUKf10UayIOaYBB8cUMfq/FRvqSH6GwTMBtKUeEC
Pgs/wclmyg1ZFHPdHppNYAF8p4HCkkwNduTA6xUpOjL72Tn7yh4nwK3hX9nu9osU
yh1F7UqAnm/yJAeGcQZSa9PMg2fuGWc1YycCkYDAMDl2qTNXG5xMlut5HySxDysE
SPCmi+JzgP8JCOb4NZ+31vNUR60t+FXACmTCqFp9bs6xoUZnY9RMNAEBStFXWrev
w+8WlHC8dYjSJnjcHyGyx0CSqLfCodT0gW1zg8+EDv7EXnAwvWLGKdcKvl2tpkwg
J46W6DhHwprOjfQQ0dyn
=Zx43
-----END PGP SIGNATURE-----

Adhemerval Zanella (18):
      arm: Assembly implementation cleanup
      powerpc: Fix strstr/power7 build
      powerpc: Fix strnlen/power7 build
      powerpc: Use default strcpy optimization for POWER7
      powerpc: Fix PPC64/POWER7 conform tests
      Fix wordsize-32 mmap offset for negative value (BZ#18877)
      Mark lseek/llseek as non-cancellable
      nptl: Add NPTL cases for cancellation failures cases
      Cleanup sync_file_range implementation
      Fix nearbyintl linkage for ia64 (bug 19219)
      Remove signal handling for nanosleep (bug 16364)
      nptl: Fix racy pipe closing in tst-cancel{20,21}
      Fix POWER7 logb results for negative subnormals (bug 19375)
      Fix SYSCALL_CANCEL for empty argumetns
      powerpc: Regenerate libm-test-ulps
      Fix isinf/isnan declaration conflict with C++11
      Update NEWS with fixed bugs for 2.23 release
      Update version.h and include/features.h for 2.23 release

Alan Modra (1):
      hppa: start.S: rework references to fix PIE TEXTRELs [BZ #18421]

Amit Pawar (1):
      Set index_Fast_Unaligned_Load for Excavator family CPUs

Andreas Schwab (17):
      Properly terminate FDE in makecontext for m68k (bug 18635)
      Remove unused variables from timezone/Makefile
      Readd O_LARGEFILE flag for openat64 (bug 18781)
      Remove unused definition of __openat(64)_nocancel
      Add version set GLIBC_2.19 for linux/powerpc
      Remove __ASSUME_IPC64
      Terminate FDE before return trampoline in makecontext for powerpc (bug 18635)
      Add missing va_end calls (bug 17243)
      Remove extra va_start/va_end calls (bug 17244)
      Restore sparc64 implementation of semctl
      Add dependencies on needed locales in each subdir tests (bug 18969)
      Add bug reference
      Always use INTERNAL_SYSCALL_ERRNO with INTERNAL_SYSCALL
      Don't emit invalid extra shift character at block boundary by iconv (bug 17197)
      Force rereading TZDEFRULES after it was used to set DST rules only (bug #19253)
      Don't do lock elision on an error checking mutex (bug 17514)
      Remove unused variables

Andrew Bennett (1):
      MIPS: Only use .set mips* assembler directives when necessary

Andrew Senkevich (10):
      [BZ #18796]
      Mention BZ #18796 fix in NEWS.
      Better workaround for aliases of *_finite symbols in vector math library.
      Corrected path to installed libmvec_nonshared.a
      Utilize x86_64 vector math functions w/o -fopenmp.
      Added memset optimized with AVX512 for KNL hardware.
      Added memcpy/memmove family optimized with AVX512 for KNL hardware.
      Fixed typos in __memcpy_chk.
      Fixed build with assembler w/o AVX-512 support.
      Use PIC relocation in ALIAS_IMPL

Andrew Stubbs (1):
      longlong: add SH FDPIC support

Anton Blanchard (1):
      Eliminate redundant sign extensions in pow()

Arjun Shankar (1):
      Modify several tests to use test-skeleton.c

Arslanbek Astemirov (1):
      locales/ce_RU: sync with other *_RU locales

Aurelien Jarno (6):
      Fix grantpt basename namespace bug
      mips: fix testsuite build for O32 FPXX ABI on pre-R2 CPU
      grantpt: trust the kernel about pty group and permission mode
      Cleanup ARM ioperm implementation
      i386: move ULPs to i686/multiarch and regenerate new ones for i386
      Cleanup ARM ioperm implementation (step 2)

Brett Neumeier (1):
      Fix non-v9 32-bit sparc build.

Carlos Eduardo Seo (11):
      powerpc: Add missing hwcap strings.
      powerpc: make memchr use memchr-power7.
      powerpc: Fix memchr for powerpc32.
      powerpc: Sync hwcap.h with kernel
      powerpc: Fix compiler warning in some syscalls.
      Add AT_PLATFORM to _dl_aux_init ()
      powerpc: Provide __tls_get_addr () in static libc
      powerpc: Add hwcap/hwcap2/platform data to TCB.
      powerpc: Add basic support for POWER9 sans hwcap.
      powerpc: Export __parse_hwcap_and_convert_at_platform to libc.a.
      powerpc: Add hwcap2 bits for POWER9.

Carlos O'Donell (22):
      Open development for 2.23.
      Prevent check-local-headers.sh hang.
      Use ALIGN_DOWN in systrim.
      Use ALIGN_* macros in _dl_map_object_from_fd.
      Fix error messages in elf/tst-dlmopen1.c.
      Files open O_WRONLY not supported in fallocate emulation.
      Fix manual argument order for posix_fallocate64 (Bug 19086).
      malloc: Consistently apply trim_threshold to all heaps (Bug 17195)
      Add BZ#19086 to NEWS.
      strcoll: Remove incorrect STRDIFF-based optimization (Bug 18589).
      strcoll: Add bug-strcoll2 to testsuite (Bug 18589).
      Fix typo in bug-strcoll2 (Bug 18589)
      include/stap-probe.h: Fix formatting.
      Rename localedir to complocaledir (bug 14259).
      Comment on IBM930, IBM933, IBM935, IBM937, IBM939.
      Regenerate locale/C-translit.h.
      Update transliteration support to Unicode 7.0.0.
      Document best practice for disconnected NSS modules.
      Use $(PYTHON) to run benchtests python files.
      Ensure isinff, isinfl, isnanf, and isnanl are defined (Bug 19439)
      Update INSTALL with latest versions tested to work.
      CVE-2015-7547: getaddrinfo() stack-based buffer overflow (Bug 18665).

Chris Metcalf (7):
      tile: avoid preprocessor redefinition warnings
      tile: regenerate libm-test-ulps
      Update NEWS to mention drive-by fix for bug 18699.
      tile: define __NO_LONG_DOUBLE_MATH
      misc/tst-tsearch.c: bump up TIMEOUT to 10 seconds.
      math: add LDBL_CLASSIFY_COMPAT support
      Silence some false positive warnings for gcc 4.7

Chung-Lin Tang (1):
      Maintainence patch for nios2: update ULPS file and localplt.data changes.

Damyan Ivanov (1):
      localedata: bg_BG: use colon as time separator [BZ #19385]

Daniel Marjamäki (1):
      Updated __nonnull annotations for wcscat, wcsncat, wcscmp and wcsncmp [BZ #18265]

David Kastrup (1):
      Don't macro-expand failed assertion expression [BZ #18604]

David Lamparter (1):
      arm: setjmp/longjmp: fix PIC vs SHARED thinkos

David S. Miller (5):
      Update sparc ULPS.
      Fix missing __sqrtl_finite symbol in libm on sparc 32-bit.
      Adjust sparc 32-bit __sqrtl_finite version tag.
      Define __sqrtl_finite on sparc 32-bit with correct symbol version.
      Update localplt.data for 32-bit sparc.

Dmitry V. Levin (2):
      Fix getaddrinfo bug number in ChangeLog and NEWS files
      Fix linux personality syscall wrapper

Egmont Koblinger (1):
      hu_HU: change time separator to colon [BZ #18918]

Evert (1):
      localedata: nl_NL: date_fmt: rewrite to match standards [BZ #16495]

Flavio Cruz (1):
      Fix O_DIRECTORY lookup on trivial translators

Florian Weimer (42):
      nptl: Document crash due to incorrect use of locks
      Amend ChangeLog to reflect deletion of elf/tst-znodelete-zlib.cc
      Add test case for bug 18287
      Test in commit e07aabba73ea62e7dfa0512507c92efb851fbdbe is for bug 17079
      Fix inconsistent passwd compensation in nss/bug17079.c
      Harden putpwent, putgrent, putspent, putspent against injection [BZ #18724]
      Harden tls_dtor_list with pointer mangling [BZ #19018]
      nss_nis: Do not call malloc_usable_size [BZ #10432]
      Add a test case for C++11 thread_local support
      iconvdata: Add missing const to lookup table definitions
      Fix double-checked locking in _res_hconf_reorder_addrs [BZ #19074]
      Always enable pointer guard [BZ #18928]
      vfscanf: Use struct scratch_buffer instead of extend_alloca
      The va_list pointer is unspecified after a call to vfprintf [BZ #18982]
      Assume that SOCK_CLOEXEC is available and works
      vfprintf: Rewrite printf_positional to use struct scratch_buffer
      malloc: Rewrite with explicit TLS access using __thread
      sunrpc: Rewrite with explicit TLS access using __thread
      Use the CXX compiler only if it can create dynamic and static programs
      x86_64: Regenerate ulps [BZ #19168]
      malloc: Prevent arena free_list from turning cyclic [BZ #19048]
      _dl_fini: Rewrite to use VLA instead of extend_alloca
      Add bug 18604 to NEWS
      Remove a spurious attribution
      Add bug 18604 to the correct section
      Simplify the abilist format
      Terminate process on invalid netlink response from kernel [BZ #12926]
      ld.so: Add original DSO name if overridden by audit module [BZ #18251]
      Work around conflicting declarations of math functions
      Replace MUTEX_INITIALIZER with _LIBC_LOCK_INITIALIZER in generic code
      Implement "make update-all-abi"
      Remove CPU set size checking from affinity functions [BZ #19143]
      tst-res_hconf_reorder: Set RESOLV_REORDER environment variable
      Revert "tst-res_hconf_reorder: Set RESOLV_REORDER environment variable"
      Fix aliasing violation in tst-rec-dlopen
      malloc: Fix attached thread reference count handling [BZ #19243]
      malloc: Fix list_lock/arena lock deadlock [BZ #19182]
      malloc: Update comment for list_lock
      malloc: Test various special cases related to allocation failures
      Improve check against integer wraparound in hcreate_r [BZ #18240]
      hsearch_r: Apply VM size limit in test case
      NEWS: List additional fixed security bugs

Gabriel F. T. Gomes (3):
      PowerPC: Extend Program Priority Register support
      PowerPC: Fix operand prefixes
      PowerPC: Add comments to optimized strncpy

Geoffrey Thomas (1):
      pt_chown: Clear any signal mask inherited from the parent process.

Gleb Fotengauer-Malinovskiy (2):
      Mention mkdtemp as another secure alternative to mktemp
      malloc: remove redundant getenv call

Gunnar Hjalmarsson (1):
      lt_LT: change currency symbol to the euro [BZ #18953]

H.J. Lu (95):
      Also check dead->data[category] != NULL
      Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
      Align stack to 16 bytes when calling __setcontext
      Align stack to 16 bytes when calling __gettimeofday
      Align stack to 16 bytes when calling __errno_location
      Add a missing break in tst-auditmod3b.c
      Add _dl_x86_cpu_features to rtld_global
      Update x86_64 multiarch functions for <cpu-features.h>
      Update i686 multiarch functions for <cpu-features.h>
      Update libmvec multiarch functions for <cpu-features.h>
      Update x86 elision-conf.c for <cpu-features.h>
      Don't include <cpuid.h> in elision-conf.h
      Check if cpuid is available in init_cpu_features
      Define HAS_CPUID/HAS_I586/HAS_I686 from -march=
      Also check __i586__/__i686__ for HAS_I586/HAS_I686
      Use x86-64 cacheinfo.c and sysconf.c for x86
      Call __setcontext with HIDDEN_JUMPTARGET
      Mark __xstatXX_conv as hidden
      Add BZ #14341 to NEWS
      Remove x86 init-arch.c
      Move x86_64 init-arch.h to sysdeps/x86/init-arch.h
      Remove the unused IFUNC files
      Add missing ChangeLog entry for the last commit
      Add INLINE_SYSCALL_RETURN/INLINE_SYSCALL_ERROR_RETURN
      Fix a typo in linux lxstat.c
      Revert "Fix a typo in linux lxstat.c"
      Revert "Add INLINE_SYSCALL_RETURN/INLINE_SYSCALL_ERROR_RETURN"
      Save and restore vector registers in x86-64 ld.so
      Replace %xmm8 with %xmm0
      Remove x86-64 rtld-xxx.c and rtld-xxx.S
      Replace %xmm[8-12] with %xmm[0-4]
      Don't run tst-getpid2 with LD_BIND_NOW=1
      Use SSE2 optimized strcmp in x86-64 ld.so
      Don't disable SSE in x86-64 ld.so
      Replace MEMPCPY_P/PIC with USE_AS_MEMPCPY/SHARED
      Replace BZERO_P/PIC with USE_AS_BZERO/SHARED
      Remove sysdeps/i386/i486/Versions
      Move i486/bits/atomic.h to bits/atomic.h
      Move i486/htonl.S to htonl.S
      Move i486/string-inlines.c to string-inlines.c
      Move i486/pthread_spin_trylock.S to pthread_spin_trylock.S
      Move i486/strcat.S to strcat.S
      Move i486/strlen.S to strlen.S
      Remove i486 subdirectory
      Add i386 memset and memcpy assembly functions
      Detect and select i586/i686 implementation at run-time
      Mention 15786 in NEWS
      Use __pthread_setcancelstate in libc.a
      Use __libc_ptf_call in _longjmp_unwind
      Remove ignored symbols from nptl/Versions
      Move sysdeps/unix/sysv/linux/i386/i486/*.? to i386
      Update lrint/lrintf/lrintl for x32
      Support x86-64 assmebler without AVX512
      Add INLINE_SYSCALL_ERROR_RETURN_VALUE
      Use INLINE_SYSCALL_ERROR_RETURN_VALUE
      Use INTERNAL_SYSCALL and INLINE_SYSCALL_ERROR_RETURN_VALUE
      Support PLT and GOT references in local PIC check
      Avoid PLT when calling __sched_getaffinity_new
      i386: Remove syscall assembly codes with 6 arguments
      Optimize i386 syscall inlining for GCC 5
      Remove i386/epoll_pwait.S
      Add comments for GCC 5 requirement
      Mark x86 _dl_unmap/_dl_make_tlsdesc_dynamic hidden
      Mark _wordcopy_XXX functions hidden
      Mark internal _dl_XXX functions hidden
      Mark internal _itoa functions hidden
      Mark _dl_catch_error hidden
      Mark internal dirent functions hidden
      Mark internal fcntl functions hidden
      Mark ld.so internel __profile_frequency hidden
      Mark internal setjmp functions hidden
      Mark ld.so internel sigaction functions hidden
      Mark ld.so internel stdlib functions hidden
      Mark ld.so internel string functions hidden
      Mark ld.so internel __uname hidden
      Mark ld.so internel __fxstatat64 hidden
      Apply -fomit-frame-pointer only to .o/.os files
      Disable GCC 5 optimization when PROF is defined
      Build i386 __libc_do_syscall when PROF is defined
      Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits for prelink
      Add a test for prelink output
      Run tst-prelink test for GLOB_DAT reloc
      Update family and model detection for AMD CPUs
      Add __CPU_MASK_TYPE for __cpu_mask
      Enable Silvermont optimizations for Knights Landing
      Add Prefer_MAP_32BIT_EXEC to map executable pages with MAP_32BIT
      Add missing ChangeLog entries
      Add REGISTERS_CLOBBERED_BY_SYSCALL for x86-64
      Provide x32 times
      Mark ld.so internal mmap functions hidden in ld.so
      Mark internal unistd functions hidden in ld.so
      Update copyright dates committed in 2016
      Use TIME_T_MAX and TIME_T_MIN in tst-mktime2.c
      Call math_opt_barrier inside if
      Add _STRING_INLINE_unaligned and string_private.h

Helge Deller (1):
      hppa: Add MAP_HUGETLB and MAP_STACK defines [BZ #19285]

James Perkins (2):
      strptime %z: fix rounding, extend range to +/-9959 [BZ #16141]
      time/tst-strptime2.c: test full input range +/- 0-9999

John David Anglin (5):
      hppa: Fix reload error with atomic code [BZ #18787]
      hppa: Fix miscompilation of sched_setaffinity() [BZ #18480]
      hppa: Define __NO_LONG_DOUBLE_MATH so headers are consistent with libm build [BZ #19270]
      hppa: fix pthread spinlock
      hppa: fix dladdr [BZ #19415]

Joseph Myers (212):
      Fix powf (close to -1, large) (bug 18647).
      Fix sinh missing underflows (bug 16519).
      Fix tan missing underflows (bug 16517).
      Resort bug numbers in NEWS into ascending order.
      Fix ldbl-128ibm sinhl inaccuracy near 0 (bug 18789).
      Fix ldbl-128ibm tanhl inaccuracy (bug 18790).
      Add more tests of various libm functions.
      Fix tanh missing underflows (bug 16520).
      Add more random libm-test inputs.
      Fix fma spurious underflows (bug 18824).
      Fix csqrt spurious underflows (bug 18823).
      Fix MIPS -Wundef warnings for __mips_isa_rev.
      Fix -Wundef warnings in login/tst-utmp.c.
      Fix -Wundef warnings in elf/tst-execstack.c.
      Fix csqrt missing underflows (bug 18370).
      Fix uninitialized variable use in ldbl-128ibm nearbyintl.
      Don't use -Wno-uninitialized in math/.
      Don't use -Wno-error=undef.
      Don't use -Wno-strict-prototypes in timezone/.
      Note bug 10882 as having been fixed in 2.16.
      Note bug 14941 as having been fixed in 2.18.
      Add more TCP_* values to netinet/tcp.h.
      Add netinet/in.h values from Linux 4.2.
      Don't include <bits/stdio-lock.h> from installed <libio.h>.
      Don't install bits/libc-lock.h or bits/stdio-lock.h.
      Rename bits/libc-tsd.h to libc-tsd.h (bug 14912).
      Rename bits/m68k-vdso.h to m68k-vdso.h (bug 14912).
      Rename bits/stdio-lock.h to stdio-lock.h (bug 14912).
      Rename bits/linkmap.h to linkmap.h (bug 14912).
      Move bits/libc-lock.h and bits/libc-lockP.h out of bits/ (bug 14912).
      Fix lgamma (negative) inaccuracy (bug 2542, bug 2543, bug 2558).
      Add more randomly-generated libm tests.
      Fix ldbl-128/ldbl-128ibm lgamma spurious "invalid", incorrect signgam (bug 18952).
      Update libm-test-ulps for MIPS.
      Move bits/atomic.h to atomic-machine.h (bug 14912).
      Add more random libm test inputs (mainly for ldbl-128).
      Fix exp2 missing underflows (bug 16521).
      Fix i386 exp missing underflows (bug 18961).
      Fix i386 exp10 missing underflows (bug 18966).
      Simplify hypotf infinity handling (bug 15918).
      Fix ctan, ctanh missing underflows (bug 18595).
      Mark fegetround pure (bug 16296).
      Fix ldbl-128ibm nearbyintl use of signaling comparisons on NaNs (bug 18857).
      Fix math.h, tgmath.h XSI POSIX namespace (gamma, isnan, scalb) (bug 18967).
      Clean up ldbl-128 / ldbl-128ibm expm1l dead code (bug 16415).
      Update de.po from Translation Project (bug 4404).
      Make scalbn set errno (bug 6803).
      Don't declare float / long double Bessel functions for XSI POSIX (bug 18977).
      Fix tgamma missing underflows (bug 18951).
      Reduce number of constants in __finite* (bug 15384).
      Fix sign of zero part from ctan / ctanh when argument infinite (bug 17118).
      Test for weak undefined symbols in linknamespace.pl.
      Avoid excess range overflowing results from cosh, sinh, lgamma (bug 18980).
      Avoid excess range in results from i386 scalb functions (bug 18981).
      Avoid excess range in results from i386 exp, hypot, pow functions (bug 18980).
      Revert timezone/Makefile change.
      Use math_narrow_eval more consistently.
      Refactor code forcing underflow exceptions.
      Don't use volatile in exp2f.
      Fix x86_64 fma4 pow inappropriate contraction (bug 19003).
      Refactor i386 libm code forcing underflow exceptions.
      Use LOAD_PIC_REG in i386 atanh.
      Refactor x86_64 libm code forcing underflow exceptions.
      Fix hypot missing underflows (bug 18803).
      Use soft-fp fma for MicroBlaze (bug 13304).
      Use soft-fp fma for no-FPU ColdFire (bug 13304).
      Fix pow missing underflows (bug 18825).
      Fix powf inaccuracy (bug 18956).
      Fix clog, clog10 inaccuracy (bug 19016).
      Refine errno / "inexact" expectations in libm-test.inc.
      Improve test coverage of real libm functions [a-e]*.
      Fix i386 acosh (-qNaN) spurious "invalid" exception.
      Fix ldbl-128ibm exp10l spurious overflows (bug 16620).
      Use type-specific precision when printing results in libm-test.inc.
      Fix ldbl-128 / ldbl-128ibm lgamma overflow handling (bug 16347, bug 19046).
      Fix i386 build after put*ent hardening changes.
      Fix nexttoward overflow in non-default rounding modes (bug 19059).
      Work around powerpc32 integer 0 converting to -0 (bug 887, bug 19049, bug 19050).
      Don't list bug 887 as fixed for glibc 2.16.
      Fix ldbl-96 lroundl just below powers of 2 (bug 19071).
      Fix ldbl-128ibm log1pl (-1) sign of infinity (bug 19076).
      Fix ldbl-128ibm logl (1) sign of zero result (bug 19077).
      Add more scalb test expectations for "inexact" exception.
      Fix ldbl-128ibm expl overflow in non-default rounding modes (bug 19078).
      Remove scripts/rpm2dynsym.sh.
      Remove configure tests for SSE4 support.
      Use same test inputs for lrint and llrint.
      Add more tests of lrint, llrint, lround, llround.
      Don't use dbl-64/wordsize-64 lround based on llround for ILP32 (bug 19079).
      Use dbl-64/wordsize-64 for MIPS64.
      Fix ldbl-128 lrintl, lroundl missing exceptions for 32-bit long (bug 19085).
      Fix lround, llround missing exceptions close to overflow threshold (bug 19088).
      Remove configure tests for AVX support.
      Correct "inexact" expectations in lround, llround tests.
      Fix lrint, llrint missing exceptions close to overflow threshold (bug 19094).
      Fix dbl-64 lrint for 64-bit long (bug 19095).
      Remove configure tests for FMA4 support.
      Remove configure tests for -mno-vzeroupper support.
      Fix lrint, llrint, lround, llround missing exceptions for MIPS (bug 16399).
      Fix llrint, llround missing exceptions for ARM (bug 15470).
      Regenerate ARM libm-test-ulps.
      Regenerate MIPS libm-test-ulps.
      Fix powerpc32 llrint, llrintf bad exceptions (bug 16422).
      Move powerpc llround implementations to powerpc32 directory.
      Fix powerpc32 llround, llroundf exceptions (bug 19125).
      Fix powerpc32 lround, lroundf spurious exceptions (bug 19134).
      Remove stddef.h configure test.
      Remove -static-libgcc configure test.
      Remove .previous, .popsection configure tests.
      Remove assembler -mtune=i686 configure test.
      Do not leave files behind in /tmp from testing.
      Remove -fexceptions configure test.
      Remove sizeof (long double) configure test.
      Remove -Bgroup configure test.
      Remove NPTL configure errors based on top-level configure tests.
      Fix i386 build for lll_unlock_elision change.
      Convert 703 function definitions to prototype style.
      Add more tests for ceil, floor, round, trunc.
      Add more libm tests (fabs, fdim, fma, fmax, fmin, fmod).
      Convert 231 sysdeps function definitions to prototype style.
      Remove .weak, .weakext configure tests.
      Remove -fgnu89-inline configure test.
      Convert 69 more function definitions to prototype style (line wrap cases).
      Do not use -Wno-strict-prototypes.
      Remove gnu_unique_object configure test.
      Convert 24 more function definitions to prototype style (array parameters).
      Convert 29 more function definitions to prototype style (multiple parameters in one K&R parameter declaration).
      Convert 113 more function definitions to prototype style (files with assertions).
      Convert miscellaneous function definitions to prototype style.
      Add more libm tests (fmod, fpclassify, frexp, hypot, ilogb, j0, j1, jn, log, log10, log2).
      Convert a few more function definitions to prototype style.
      Use -Wold-style-definition.
      Fix ldbl-128 j0l spurious underflows (bug 19156).
      Make io/ftwtest-sh remove temporary files on early exit.
      Move io/tst-fcntl temporary file creation to do_prepare.
      Fix i386 / x86_64 nearbyint exception clearing (bug 15491).
      Fix j1, jn missing errno setting on underflow (bug 18611).
      Add more libm tests (ilogb, is*, j0, j1, jn, lgamma, log*).
      Remove libm-test.inc special-casing of errors up to 0.5 ulp.
      Remove configure test for assembler .text directive.
      Remove support for removing glibc 2.0 headers.
      Remove configure test for needing -P for .S files.
      Remove TLS configure tests.
      Require GCC 4.7 or later to build glibc.
      Use -std=c11 for C11 conform/ tests.
      Remove pre-GCC-4.7 conform/ test XFAILs.
      Remove sysdeps/nptl/configure.ac.
      Use -std=gnu11 instead of -std=gnu99.
      Add -std=gnu11 and -std=c11 NPTL initializers tests.
      Remove GCC version conditionals on -Wmaybe-uninitialized pragmas.
      Remove MIPS16 atomics using __sync_* (bug 17404).
      Remove configure test for ARM TLS descriptors support.
      Remove -mavx2 configure tests.
      Use C11 *_DECIMAL_DIG macros in libm-test.inc.
      Fix i386/x86_64 fesetenv SSE exception clearing (bug 19181).
      Use C11 *_TRUE_MIN macros where applicable.
      Use C11 CMPLX* macros in libm tests.
      Handle more state in i386/x86_64 fesetenv (bug 16068).
      Use max_align_t from <stddef.h>.
      Remove configure tests for visibility support.
      Remove cpuid.h configure tests.
      Make drem an alias of remainder (bug 16171).
      Do not test sign of zero result from infinite argument to Bessel functions.
      Fix ldbl-128 log1pl (-qNaN) spurious "invalid" exception (bug 19189).
      Remove init_array / fini_array configure test.
      Make nextafter, nexttoward set errno (bug 6799).
      Fix dbl-64 remainder sign of zero result (bug 19201).
      Add more libm tests (modf, nearbyint, nextafter, nexttoward, pow, remainder, remquo, rint).
      Remove --no-whole-archive configure test.
      Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
      Refactor libm-test inline tests disabling.
      Remove miscellaneous GCC >= 4.7 version conditionals.
      Make bits/math-finite.h conditions match other headers (bug 19205).
      Don't redirect ldexp to scalbn in bits/math-finite.h (bug 19209).
      Fix features.h for -Wundef (bug 19212).
      Fix finite-math-only lgamma functions signgam setting (bug 19211).
      Fix i386/x86_64 log* (1) zero sign for -ffinite-math-only (bug 19213).
      Add script to list fixed bugs for the NEWS file.
      Run libm-test tests for finite-math-only functions.
      Remove configure tests for some linker -z options.
      Fix typo in signgam test messages.
      Add more tests of pow.
      Fix powerpc nearbyint wrongly clearing "inexact" and leaving traps disabled (bug 19228).
      Fix powerpc64 lround, lroundf, llround, llroundf spurious "inexact" exceptions (bug 19235).
      Fix powerpc round, roundf spurious "inexact" (bug 19238).
      Fix ldbl-128ibm strtold overflow handling (bug 14551).
      Fix lgamma setting signgam for ISO C (bug 15421).
      Fix math_private.h multiple include guards.
      Fix strtol in Turkish locales (bug 19242).
      Update <netpacket/packet.h> for Linux 4.3.
      Update <sys/ptrace.h> for Linux 4.3.
      Fix strtod ("NAN(I)") in Turkish locales (bug 19266).
      Refactor strtod parsing of NaN payloads.
      Use hex float constants in sysdeps/ieee754/dbl-64/e_sqrt.c.
      Fix nan functions handling of payload strings (bug 16961, bug 16962).
      Use direct socket syscalls for new kernels on i386, m68k, microblaze, sh.
      Fix ldbl-128ibm tanhl inaccuracy for small arguments (bug 19349).
      Fix ldbl-128ibm sinhl spurious overflows (bug 19350).
      Fix ldbl-128ibm logl inaccuracy near 1 (bug 19351).
      Automate LC_CTYPE generation for tr_TR, update to Unicode 8.0.0 (bug 18491).
      Make obsolete syscall wrappers into compat symbols (bug 18472).
      Update copyright dates with scripts/update-copyrights.
      Update copyright dates not handled by scripts/update-copyrights.
      Update miscellaneous files from upstream sources.
      Add new header definitions from Linux 4.4 (plus older ptrace definitions).
      Regenerate ARM libm-test-ulps.
      Regenerate powerpc-nofpu libm-test-ulps.
      Regenerate MIPS libm-test-ulps.
      Fix ulps regeneration for *-finite tests.
      Update localplt.data for powerpc-nofpu.
      Fix __finitel libm compat symbol version.
      Fix MIPS mmap negative offset handling for consistency (bug 19550).

Justus Winter (1):
      Cache the host port like we cache the task port

Khem Raj (1):
      argp: Use fwrite_unlocked instead of __fxprintf when !_LIBC

Ludovic Courtès (2):
      Gracefully handle incompatible locale data
      Use shell's builtin pwd.

Maciej W. Rozycki (3):
      [BZ #17250] Fix static dlopen default library search path
      MIPS: Wire FCSR.ABS2008 to FCSR.NAN2008
      MIPS: Set the required Linux kernel version to 4.5.0 for 2008 NaN

Manolis Ragkousis (1):
      Check sysheaders when looking for Mach and Hurd headers

Marcin Kościelnicki (1):
      Add __private_ss to s390 struct tcbhead.

Mark Wielaard (3):
      Add LFS support for fts functions (bug 11460)
      elf/elf.h: Add new 386 and X86_64 relocations from binutils.
      Revert "elf/elf.h: Add new 386 and X86_64 relocations from binutils."

Marko Myllynen (4):
      localedata: remove timezone information [BZ #18525]
      Fix lang_lib/lang_term as per ISO 639-2 [BZ #16973]
      Make shebang interpreter directives consistent
      Make shebang interpreter directives consistent

Martin Sebor (4):
      Let 'make check subdirs=string' succeed even when it's invoked
      Fix build errors with -DNDEBUG.
      Fix build failures with -DDEBUG.
      Have iconv accept redundant escape sequences in IBM900, IBM903, IBM905,

Maxim Ostapenko (1):
      Clear DF_1_NODELETE flag only for failed to load library.

Mike FABIAN (3):
      Generic updates to transliterations.
      Update da, nb, nn, and sv locales (Bug 89)
      Update to Unicode 8.0.0.

Mike Frysinger (44):
      nptl: fix set-but-unused warning w/_STACK_GROWS_UP
      mmap64: fix undef warnings
      test-skeleton: add usage information
      fix missing ctype.h include
      hppa: _dl_symbol_address: add missing hidden def
      microblaze: include unix/sysdep.h
      hppa: put custom madvise defines behind __USE_MISC
      fix non-portable `echo -n` usage
      gawk: fix gensub usage
      stpncpy: fix bug number [BZ #18795]
      hppa: assume TLS everywhere
      hppa: drop __ASSUME_LWS_CAS define
      hppa: shm.h: add SHM_EXEC
      hppa: sigaction.h: update define export based on __USE_XOPEN2K8
      hppa: epoll.h: move to common sys/epoll.h
      hppa: eventfd.h: move to common sys/eventfd.h
      hppa: inotify.h: move to common sys/inotify.h
      hppa: signalfd.h: move to common sys/signalfd.h
      hppa: timerfd.h: move to common sys/timerfd.h
      NEWS: note fixed bug
      relocate localedata ChangeLog entries
      manual: skip build when perl is unavailable
      mips: siginfo.h: add SIGSYS details [BZ #18863]
      de.po: fix SIGALRM typo [BZ #4404]
      getmntent: fix memory corruption w/blank lines [BZ #18887]
      NEWS: add #18887
      localedef: improve error message [BZ #16985]
      alpha: drop __ASSUME_FDATASYNC
      timezone: fix parallel check failures
      timezone: add a configure flag to disable program install
      timezone: document new --disable-timezone-tools option
      timezone: polish grammar a bit in documentation
      use -fstack-protector-strong when available
      pylintrc: disable reports
      ia64: fpu: fix gammaf typo [BZ #15421]
      list-fixed-bugs: use argparse for the commandline
      localedata: nl_NL@euro: copy measurement from nl_NL [BZ #19198]
      ia64: fpu: fix gamma definition handling [BZ #15421]
      xstat: only check to see if __ASSUME_ST_INO_64_BIT is defined
      longlong: fix sh -Wundef builds
      sparc: mman.h: fix bad comment insertion
      configure: make the unsupported error message less hostile
      localedata: convert all files to utf-8
      Revert "ChangeLogs: convert to utf-8"

Namhyung Kim (1):
      manual/argp.texi (Specifying Argp Parsers): Fix typo.

Ondrej Bilka (1):
      powerpc: Fix stpcpy performance for power8

Ondřej Bílka (4):
      Fix exponents in manual.
      Fix strcpy_chk and stpcpy_chk performance.
      Handle overflow in __hcreate_r
      add bug 18240 to news.

Paul E. Murphy (6):
      powerpc: Fix tabort usage in syscalls
      powerpc: Revert to default atomic ops in elision code
      Fix race in tst-mqueue5
      powerpc: Fix macro usage of htm builtins
      Fix nptl/tst-setuid3.c
      Cleanup ppc bits/ipc.h

Paul Eggert (8):
      Port the 0x7efe...feff pattern to GCC 6.
      Fix broken overflow check in posix_fallocate [BZ 18873]
      Consistency about byte vs character in string.texi
      Fix typo in strncat, wcsncat manual entries
      Split large string section; add truncation advice
      Update timezone code from tzcode 2015g.
      Fix doc quoting problems with Texinfo 5
      ChangeLogs: convert to utf-8

Paul Murphy (6):
      nptl: Add adapt_count parameter to lll_unlock_elision
      powerpc: Optimize lock elision for pthread_mutex_t
      powerpc: Fix usage of elision transient failure adapt param
      Shuffle includes in ldbl-128ibm/mpn2ldl.c
      powerpc: More elision improvements
      powerpc: Spinlock optimization and cleanup

Paul Pluzhnikov (19):
      Add #include <unistd.h> to libio/oldfileops.c for write.
      Fix BZ #17905
      Fix trailing space.
      In preparation for fixing BZ#16734, fix failure in misc/tst-error1-mem
      Fix BZ #18086 -- nice resets errno to 0.
      Fix BZ #16734 -- fopen calls mmap to allocate its buffer
      Fix BZ #18820 -- fmemopen may leak memory on failure.
      Regenerated sysdeps/x86_64/fpu/libm-test-ulps with AVX2.
      Fix BZ #18084 -- backtrace (..., 0) dumps core on x86.
      Filter out NULL entries.
      Fix BZ #18757.
      To fix BZ #18675, use __fstatvfs64 in __fpathconf.
      Fix BZ #18872 -- memory leak in printf_positional.
      Fix BZ #18985 -- out of range data to strftime() causes a segfault
      sysdeps/x86_64/fpu/libm-test-ulps: Regenerated on Haswell.
      Fix BZ #19012 -- iconv_open leaks memory on error path.
      stdio-common/tst-printf-bz18872.sh: Use attribute optimize instead of
      [BZ #19451]
      2016-01-20  Paul Pluzhnikov  <ppluzhnikov@google.com>

Petar Jovanovic (1):
      Fix dynamic linker issue with bind-now

Phil Blundell (1):
      ChangeLog: Fix incorrect email address

Rajalakshmi Srinivasaraghavan (3):
      powerpc: Handle worstcase behavior in strstr() for POWER7
      Call direct system calls for socket operations
      powerpc: Regenerate libm-test-ulps

Rasmus Villemoes (1):
      linux/getsysstats.c: use sysinfo() instead of parsing /proc/meminfo

Richard Henderson (2):
      longlong.h: Disable alpha umul_ppmm for old g++
      Update Alpha libm-test-ulps

Rob Wu (1):
      resolv: Reset defdname before use in __res_vinit [BZ #19369]

Roland McGrath (12):
      NaCl: Call __nacl_main in preference to main.
      Meaningless ChangeLog cleanup to trigger buildbot.
      Mark elf/tst-protected1[ab] as XFAIL.
      BZ#18921: Fix opendir inverted o_directory_works test.
      BZ#18921: Mark fixed in NEWS.
      NaCl: Do not install <sys/mtio.h>.
      Use HOST_NAME_MAX for MAXHOSTNAMELEN in <sys/param.h>.
      BZ#18872: Don't conditionalize build rules for test program.
      Fix some stub prototypes missing ... after K&R conversion
      NaCl: Use open_resource API for shared objects
      NaCl: Use allocate_code_data after dyncode_create
      NaCl: Fix unused variable errors in lowlevellock-futex.h macros.

Samuel Thibault (20):
      Fix gcrt0.o compilation
      Fix sysdeps/i386/fpu/s_scalbn.S build
      Fix rules generating headers in hurd/ and mach/
      Fix parallel build of before-compile targets.
      Fix typo
      Fix typo
      Really fix sysdeps/i386/fpu/s_scalbn.S build
      Fix vm_page_size visibility
      Add missing __mach_host_self_ symbol in Versions
      Add task_notify to mach_interface_list
      Make _hurd_raise_signal return errors
      Make _hurd_raise_signal directly return the error
      Remove unusued variable
      Fix RPC breakage when longjumping from signal handler
      Fix hurd build with hidden support
      Revert not defining NO_HIDDEN on hurd
      Do not add relro attribute to __libc_stack_end
      hurd: Initialize __libc_stack_end for hidden support
      hurd: Make mmap64 use vm_offset_t for overflow check
      Harmonize generic stdio-lock support with nptl

Siddhesh Poyarekar (12):
      Remove incorrect register mov in floorf/nearbyint on x86_64
      Drop unused first argument from arena_get2
      Don't use the main arena in retry path if it is corrupt
      benchtests: Mark output variables as used
      Remove redundant else clauses in s_sin.c
      Include s_sin.c in s_sincos.c
      benchtests: Add inputs from sin and cos to sincos
      benchtests: ffs and ffsll are string functions, not math
      Fix up ChangeLog
      Consolidate range reduction in sincos for x > 281474976710656
      Consolidate sin and cos code for 105414350 <|x|< 281474976710656
      Consolidate sincos computation for 2.426265 < |x| < 105414350

Stan Shebs (1):
      Disable uninitialized warning with GCC 4.8

Stefan Liebler (37):
      S390: Fix handling of DXC-byte in FPC-register.
      S390: Refactor ifunc implementations and enable ifunc-test-framework.
      S390: Add hwcaps value for vector facility.
      S390: Add new s390 platform.
      S390: configure check for vector instruction support in assembler.
      S390: Ifunc resolver macro for vector instructions.
      S390: Optimize strlen and wcslen.
      S390: Optimize strnlen and wcsnlen.
      S390: Optimize strcpy and wcscpy.
      S390: Optimize stpcpy and wcpcpy.
      S390: Optimize strncpy and wcsncpy.
      S390: Optimize stpncpy and wcpncpy.
      S390: Optimize strcat and wcscat.
      S390: Optimize strncat wcsncat.
      S390: Optimize strcmp and wcscmp.
      S390: Optimize strncmp and wcsncmp.
      S390: Optimize strchr and wcschr.
      S390: Optimize strchrnul and wcschrnul.
      S390: Optimize strrchr and wcsrchr.
      S390: Optimize strspn and wcsspn.
      S390: Optimize strpbrk and wcspbrk.
      S390: Optimize strcspn and wcscspn.
      S390: Optimize memchr, rawmemchr and wmemchr.
      S390: Optimize memccpy.
      S390: Optimize wmemset.
      S390: Optimize wmemcmp.
      S390: Optimize memrchr.
      S390: Optimize string, wcsmbs and memory functions.
      S390: Fix build error with gcc6 in utf8_utf16-z9.c.
      Adjust _Unwind_Word in unwind.h to version in libgcc.
      S390: Call direct system calls for socket operations.
      S390: Clean setjmp, longjmp, getcontext symbols.
      S390: Use __asm__ instead of asm.
      S/390: Do not raise inexact exception in lrint/lround. [BZ #19486]
      S390: Regenerate ULPs
      S390: Fix build error in iconvdata/bug-iconv11.c.
      S390: Fix build failure in test string/tst-endian.c with gcc 6.

Steve Ellcey (9):
      Fix undefined warning messages in GCC 6.
      Add unused attribute to declaration for mips16 builds.
      Add missing ChangeLog entry.
      Update timezone/Makefile to use -Wno-unused-variable
      Make performance improvement to MIPS memcpy for small copies.
      Fix indentation.
      Fix indentation.
      Fix indentation.
      Fix MIPS64 memcpy regression.

Szabolcs Nagy (4):
      Regenerate aarch64 libm-test-ulps
      [BZ #19129][ARM] Fix _dl_tlsdesc_resolve_hold to save r0
      [AArch64] Regenerate libm-test-ulps
      [ARM] add missing -funwind-tables to test case (bug 19529)

Thomas Schwinge (1):
      hurd: install correct number of send rights on fork

Torvald Riegel (5):
      Remove unused variable in math/atest-exp2.c.
      Do not violate mutex destruction requirements.
      New pthread_barrier algorithm to fulfill barrier destruction requirements.
      Fix pthread_barrier_init typo.
      nptl: Add first-line description for barrier tests.

Tulio Magno Quites Machado Filho (3):
      PowerPC: Fix a race condition when eliding a lock
      tst-backtrace4: fix a warning message
      powerpc: Enforce compiler barriers on hardware transactions

Vincent Bernat (2):
      time: in strptime(), make %z accept Z as a time zone [BZ #17886]
      time: in strptime(), make %z accept [+-]HH:MM tz [BZ #17887]

Wilco Dijkstra (17):
      Improve fesetenv performance by avoiding unnecessary FPSR/FPCR reads/writes.
      Improve feenableexcept performance - avoid an unnecessary FPCR read in case
      This patch improves strncpy performance by using strnlen/memcpy rather than a byte loop. Performance
      Improve memccpy performance by using memchr/memcpy/mempcpy rather than
      Improve performance of mempcpy by inlining and using memcpy. Enable
      Improve stpncpy performance by using __strnlen/memcpy/memset rather than a
      2015-08-24  Wilco Dijkstra  <wdijkstr@arm.com>
      2015-08-24  Wilco Dijkstra  <wdijkstr@arm.com>
      Add a new benchmark for isinf/isnan/isnormal/isfinite/fpclassify. The test uses 2 arrays with 1024 doubles, one with 99% finite FP numbers (10% zeroes, 10% negative) and 1% inf/NaN, the other with 50% inf, and 50% Nan.
      Add inlining of the C99 math functions isinf/isnan/signbit/isfinite/isnormal/fpclassify using GCC
      Use the GCC builtin functions for the non-inlined signbit implementations.
      Fix several build failures with GCC6 due to unused static variables.
      Since we now inline isinf, isnan and isfinite in math.h, replace uses of __isinf_ns(l/f)
      Cleanup a few cases where isinf is used to get the signbit to improve the readability and maintainability and allow inlining.
      Undo build error fixes to timezone/private.h, change makefile instead to
      Remove __signbit* from localplt.data as they are no longer called from within GLIBC.
      Enable _STRING_ARCH_unaligned on AArch64.

Zack Weinberg (4):
      Correct comments about the history of <regexp.h>
      stpncpy: fix size checking [BZ #18975]
      Desupport regexp.h (bug 18681)
      regexp.h: update Versions to match file usage [BZ #18681]

-----------------------------------------------------------------------
Comment 17 Sourceware Commits 2016-02-25 03:05:43 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  de51ff8c0516e66554044b27656c6855a9c2ef25 (commit)
      from  314f6deec991e8239ad3fb15aeed186fabe3483f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=de51ff8c0516e66554044b27656c6855a9c2ef25

commit de51ff8c0516e66554044b27656c6855a9c2ef25
Author: Carlos O'Donell <carlos@systemhalted.org>
Date:   Wed Feb 24 22:04:13 2016 -0500

    NEWS (2.23): Fix typo in bug 19048 text.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog |    4 ++++
 NEWS      |    2 +-
 2 files changed, 5 insertions(+), 1 deletions(-)
Comment 18 Sourceware Commits 2016-02-25 20:27:58 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, release/2.23/master has been updated
       via  d27dabc9964e37a41b9f195b98d652e4508a6307 (commit)
      from  591b7e37e6be2a2d6672b683ba1191095b10d6d5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d27dabc9964e37a41b9f195b98d652e4508a6307

commit d27dabc9964e37a41b9f195b98d652e4508a6307
Author: Carlos O'Donell <carlos@systemhalted.org>
Date:   Wed Feb 24 22:04:13 2016 -0500

    NEWS (2.23): Fix typo in bug 19048 text.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog |    4 ++++
 NEWS      |    2 +-
 2 files changed, 5 insertions(+), 1 deletions(-)
Comment 19 Sourceware Commits 2016-04-13 19:27:46 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, release/2.22/master has been updated
       via  f95984beb2d3d61c71c14c10cdc5ab8fda321dec (commit)
       via  13a601a0dfb468552c1eebf5c225392260f0bda2 (commit)
       via  eb8c932bac2e6c1273107b8a2721f382575b002a (commit)
       via  00cd4dad175f648783f808aef681d16c10fc34fa (commit)
       via  c252c193e2583e4506b141d052df29a0987ac290 (commit)
      from  f664b663118642490b8776dcf4f30524a646dcbc (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f95984beb2d3d61c71c14c10cdc5ab8fda321dec

commit f95984beb2d3d61c71c14c10cdc5ab8fda321dec
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Apr 13 14:11:42 2016 -0500

    malloc: Update comment for list_lock
    
    (cherry picked from commit 7962541a32eff5597bc4207e781cfac8d1bb0d87)

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=13a601a0dfb468552c1eebf5c225392260f0bda2

commit 13a601a0dfb468552c1eebf5c225392260f0bda2
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Apr 13 14:11:27 2016 -0500

    tst-malloc-thread-exit: Use fewer system resources
    
    (cherry picked from commit 2a38688932243b5b16fb12d84c7ac1138ce50363)

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=eb8c932bac2e6c1273107b8a2721f382575b002a

commit eb8c932bac2e6c1273107b8a2721f382575b002a
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Apr 13 14:10:49 2016 -0500

    malloc: Fix list_lock/arena lock deadlock [BZ #19182]
    
    	* malloc/arena.c (list_lock): Document lock ordering requirements.
    	(free_list_lock): New lock.
    	(ptmalloc_lock_all): Comment on free_list_lock.
    	(ptmalloc_unlock_all2): Reinitialize free_list_lock.
    	(detach_arena): Update comment.  free_list_lock is now needed.
    	(_int_new_arena): Use free_list_lock around detach_arena call.
    	Acquire arena lock after list_lock.  Add comment, including FIXME
    	about incorrect synchronization.
    	(get_free_list): Switch to free_list_lock.
    	(reused_arena): Acquire free_list_lock around detach_arena call
    	and attached threads counter update.  Add two FIXMEs about
    	incorrect synchronization.
    	(arena_thread_freeres): Switch to free_list_lock.
    	* malloc/malloc.c (struct malloc_state): Update comments to
    	mention free_list_lock.
    
    (cherry picked from commit 90c400bd4904b0240a148f0b357a5cbc36179239)

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=00cd4dad175f648783f808aef681d16c10fc34fa

commit 00cd4dad175f648783f808aef681d16c10fc34fa
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Apr 13 14:08:24 2016 -0500

    malloc: Fix attached thread reference count handling [BZ #19243]
    
    reused_arena can increase the attached thread count of arenas on the
    free list.  This means that the assertion that the reference count is
    zero is incorrect.  In this case, the reference count initialization
    is incorrect as well and could cause arenas to be put on the free
    list too early (while they still have attached threads).
    
    	* malloc/arena.c (get_free_list): Remove assert and adjust
    	reference count handling.  Add comment about reused_arena
    	interaction.
    	(reused_arena): Add comments abount get_free_list interaction.
    	* malloc/tst-malloc-thread-exit.c: New file.
    	* malloc/Makefile (tests): Add tst-malloc-thread-exit.
    	(tst-malloc-thread-exit): Link against libpthread.
    
    (cherry picked from commit 3da825ce483903e3a881a016113b3e59fd4041de)

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c252c193e2583e4506b141d052df29a0987ac290

commit c252c193e2583e4506b141d052df29a0987ac290
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Apr 13 14:07:58 2016 -0500

    malloc: Prevent arena free_list from turning cyclic [BZ #19048]
    
    	[BZ# 19048]
    	* malloc/malloc.c (struct malloc_state): Update comment.  Add
    	attached_threads member.
    	(main_arena): Initialize attached_threads.
    	* malloc/arena.c (list_lock): Update comment.
    	(ptmalloc_lock_all, ptmalloc_unlock_all): Likewise.
    	(ptmalloc_unlock_all2): Reinitialize arena reference counts.
    	(deattach_arena): New function.
    	(_int_new_arena): Initialize arena reference count and deattach
    	replaced arena.
    	(get_free_list, reused_arena): Update reference count and deattach
    	replaced arena.
    	(arena_thread_freeres): Update arena reference count and only put
    	unreferenced arenas on the free list.
    
    (cherry picked from commit a62719ba90e2fa1728890ae7dc8df9e32a622e7b)

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                       |   58 ++++++++++
 NEWS                            |   13 ++-
 malloc/Makefile                 |    4 +-
 malloc/arena.c                  |  129 +++++++++++++++++++++--
 malloc/malloc.c                 |   11 ++-
 malloc/tst-malloc-thread-exit.c |  218 +++++++++++++++++++++++++++++++++++++++
 6 files changed, 418 insertions(+), 15 deletions(-)
 create mode 100644 malloc/tst-malloc-thread-exit.c
Comment 20 Sourceware Commits 2016-08-02 02:51:40 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The annotated tag, glibc-2.24 has been created
        at  beb0f59498c3e0337df298f9d7a3f8f77eb39842 (tag)
   tagging  fdfc9260b61d3d72541f18104d24c7bcb0ce5ca2 (commit)
  replaces  glibc-2.23
 tagged by  Carlos O'Donell
        on  Mon Aug 1 22:46:26 2016 -0400

- Log -----------------------------------------------------------------
The GNU C Library
=================

The GNU C Library version 2.24 is now available.

The GNU C Library is used as *the* C library in the GNU system and
in GNU/Linux systems, as well as many other systems that use Linux
as the kernel.

The GNU C Library is primarily designed to be a portable
and high performance C library.  It follows all relevant
standards including ISO C11 and POSIX.1-2008.  It is also
internationalized and has one of the most complete
internationalization interfaces known.

The GNU C Library webpage is at http://www.gnu.org/software/libc/

Packages for the 2.24 release may be downloaded from:
        http://ftpmirror.gnu.org/libc/
        http://ftp.gnu.org/gnu/libc/

The mirror list is at http://www.gnu.org/order/ftp.html

NEWS for 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

Contributors
============

This release was made possible by the contributions of many people.
The maintainers are grateful to everyone who has contributed
changes or bug reports.  These include:

Adhemerval Zanella
Andreas Schwab
Andrew Senkevich
Anton Blanchard
Arnas Udovičius
Aurelien Jarno
Carlos Eduardo Seo
Carlos O'Donell
Chris Metcalf
Chung-Lin Tang
Claude Paroz
Dimitris Pappas
Dmitry V. Levin
Dylan Alex Simon
Eduardo Trápani
Florian Weimer
Gabriel F. T. Gomes
Gunnar Hjalmarsson
Gustavo Romero
Guy Rutenberg
H.J. Lu
Hongjiu Zhang
Jiyoung Yun
John David Anglin
Joseph Myers
Khem Raj
Maciej W. Rozycki
Mark Wielaard
Marko Myllynen
Martin Galvan
Matthew Fortune
Matthias Wallnoefer
Mike FABIAN
Mike Frysinger
Neskie Manuel
Nick Alcock
Paras pradhan
Paul E. Murphy
Paul Pluzhnikov
Rajalakshmi Srinivasaraghavan
Rical Jasan
Richard Henderson
Robin van der Vliet
Roland McGrath
Samuel Thibault
Siddhesh Poyarekar
Simion Onea
Stefan Liebler
Stephen Gallagher
Szabolcs Nagy
Timur Birsh
Torvald Riegel
Tulio Magno Quites Machado Filho
Wilco Dijkstra
Will Newton
Yvan Roux
Zack Weinberg
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAABAgAGBQJXoAmUAAoJEBZ5K06iU0D4Nx8P/3EGutqtVg6OubIKw9izzWMO
6pNj7Iy569Bk+ER2ElR5xvTeumpVS05A8r94oXX0rzCNsFIAVct7Ocr62r/OQz8A
+p6W+USpORha6m+SzY1bkI1109RR6Q4jpbENkhk/JKcBXJ7AHWHeW72QKMP0+JJu
QBavQ8b3ZLJQ4X+Be10bjseTaqAn4XNYj6fmajQC2x7F0sL32+xFjSktw8hn9AFs
A32yS3c2v/GfqKIyNj4Yz/akZzffACZ+8twVkJGDK5eoMGGQ/Obr3yttzKSNsN+O
n73HyyP4O8dG/U+v5k0IR4drT6mnUFRHUvkN10VahCHiTSG5AFQut30lwvVKzhF6
VYylPzbhOcVnSuJqdT4xJ6sumvQl5W4IAb/GKSso62MrcKFYPFdnx0wgMX6Arlgm
wkuSkSQCOfj/be2/R88alRJYNTW39vsPqKPop5ov/uXbfHqIoFcQitS0vDFJqGIC
zOhJSlV0cS/StKkw0xNgQ6Ay/dnHMm2Hzg5lqRzaQblkDVrNfN7TqyeZBEhwh3N5
KifvkdKSO6L6N7dM3nLsT+qJWoSp8dNsQ+qCHL6A/hL0SA4nxJ3hmC5hanCL+7D8
MrO5m+Z5yjpdSWFDmJv2LZsIzYX2UGZmUO19c7zvZoIrXuJE4bQXEmM4rylrNXGS
Lcke/0PPdvDeSW7iWjjP
=j7Oo
-----END PGP SIGNATURE-----

Adhemerval Zanella (40):
      Open development for 2.24.
      Updated translations for 2.23.
      Regenerate libc.pot for 2.23.
      Regenerated configure scripts.
      Update NEWS with 2.24 template
      posix: Remove dynamic memory allocation from execl{e,p}
      posix: execvpe cleanup
      posix: New Linux posix_spawn{p} implementation
      posix: Fix tst-execvpe5 for --enable-hardcoded-path-in-tests
      posix: Fix posix_spawn invalid memory access
      posix: Fix posix_spawn implict check style
      Fix tst-dlsym-error build
      Improve generic strspn performance
      Improve generic strpbrk performance
      Remove powerpc64 strspn, strcspn, and strpbrk implementation
      Use PTR_ALIGN_DOWN on strcspn and strspn
      Define __ASSUME_ALIGNED_REGISTER_PAIRS for missing ports
      Consolidate off_t/off64_t syscall argument passing
      Consolidate pread/pread64 implementations
      Consolidate pwrite/pwrite64 implementations
      Fix pread consolidation on ports that require argument alignment
      libio: Update internal fmemopen position after write (BZ #20005)
      Fix clone (CLONE_VM) pid/tid reset (BZ#19957)
      libio: Fix fmemopen append mode failure (BZ# 20012)
      powerpc: Fix clone CLONE_VM compare
      Adjust kernel-features.h defaults for recvmsg and sendmsg
      network: recvmsg and sendmsg standard compliance (BZ#16919)
      network: recvmmsg and sendmmsg standard compliance (BZ#16919)
      network: Fix missing bits from {recv,send}{m}msg standard com,pliance
      posix: Call _exit in failure case for posix_spawn{p} (BZ#20178)
      Consolidate preadv/preadv64 implementation
      Consolidate pwritev/pwritev64 implementations
      Revert {send,sendm,recv,recvm}msg conformance changes
      Remove __ASSUME_FUTEX_LOCK_PI
      nptl: Add sendmmsg and recvmmsg cancellation tests
      Fix p{readv,writev}{64} consolidation implementation
      nptl: Add more coverage in tst-cancel4
      Remove __ASSUME_OFF_DIFF_OFF64 definition
      Fix LO_HI_LONG definition
      Refactor Linux raise implementation (BZ#15368)

Andreas Schwab (13):
      Don't use long double math functions if NO_LONG_DOUBLE
      Fix min/max needed for ascii to INTERNAL conversion
      Fix compilation of test-signgam-* tests
      Fix resource leak in resolver (bug 19257)
      Register extra test objects
      m68k: avoid local labels in symbol table
      m68k: use large PIC model for gcrt1.o
      Use __typeof instead of typeof
      Fix nscd assertion failure in gc (bug 19755)
      Avoid array-bounds warning for strncat on i586 (bug 20260)
      Return proper status from _nss_nis_initgroups_dyn (bug 20262)
      m68k: suppress -Wframe-address warning
      Add test case for bug 20263

Andrew Senkevich (2):
      Added tests to ensure linkage through libmvec *_finite aliases which are
      Fixed wrong vector sincos/sincosf ABI to have it compatible with

Anton Blanchard (1):
      powerpc: Add a POWER8-optimized version of sinf()

Arnas Udovičius (1):
      localedata: sgs_LT: new locale [BZ #12450]

Aurelien Jarno (17):
      Add placeholder libnsl.abilist and libutil.abilist files
      Add sys/auxv.h wrapper to include/sys/
      mips: terminate the FDE before the return trampoline in makecontext
      Assume __NR_openat is always defined
      Assume __NR_utimensat is always defined
      Synchronize <sys/personality.h> with kernel headers
      MIPS, SPARC: fix wrong vfork aliases in libpthread.so
      MIPS, SPARC: more fixes to the vfork aliases in libpthread.so
      MIPS: run tst-mode-switch-{1,2,3}.c using test-skeleton.c
      i686/multiarch: Regenerate ulps
      SPARC64: update localplt.data
      SPARC: fix nearbyint on sNaN input
      New locale de_LI
      localedata: fix de_LI locale
      ppc: Fix modf (sNaN) for pre-POWER5+ CPU (bug 20240).
      Define __USE_KERNEL_IPV6_DEFS macro for non-Linux kernels
      sparc: remove ceil, floor, trunc sparc specific implementations

Carlos Eduardo Seo (2):
      powerpc: Fix dl-procinfo HWCAP
      powerpc: Optimization for strlen for POWER8.

Carlos O'Donell (16):
      nptl: support thread stacks that grow up
      GB 18030-2005: Document non-rountrip and PUA mappings (bug 19575).
      Enable --localedir to set message catalog directory (Bug 14259)
      NEWS (2.23): Fix typo in bug 19048 text.
      Removed unused timezone/checktab.awk.
      Remove mention of checktab.awk in timezone/README.
      Fix building glibc master with NDEBUG and --with-cpu.
      localedata: an_ES: fix case of lang_ab
      Fix macro API for __USE_KERNEL_IPV6_DEFS.
      Fix include/wchar.h for C++
      Bug 20198: quick_exit should not call destructors.
      Bug 20214: Fix linux/in6.h and netinet/in.h sync.
      Bug 20215: Always undefine __always_inline before defining it.
      Expand comments in Linux times() implementation.
      Update libc.pot and NEWS.
      Update for glibc 2.24 release.

Chris Metcalf (2):
      Bump up tst-malloc-thread-fail timeout from 20 to 30s
      tile: only define __ASSUME_ALIGNED_REGISTER_PAIRS for 32-bit

Chung-Lin Tang (2):
      Fix stdlib/tst-makecontext regression for Nios II
      Nios II localplt.data update: remove __eqsf2

Claude Paroz (1):
      localedata: ln_CD: new locale [BZ #12676]

Dimitris Pappas (1):
      charmaps: IBM875: fix mapping of iota/upsilon variants [BZ #18453]

Dmitry V. Levin (1):
      intl: reintroduce unintentionally disabled optimization

Dylan Alex Simon (1):
      math: don't clobber old libm.so on install [BZ #19822]

Eduardo Trápani (1):
      localedata: eo: new Esperanto locale [BZ #16190]

Florian Weimer (91):
      tst-malloc-thread-exit: Use fewer system resources
      Remove trailing newline from date_fmt in Serbian locales [BZ #19581]
      Improve file descriptor checks for posix_spawn actions [BZ #19505]
      res_ninit: Update comment
      malloc: Remove arena_mem variable
      malloc: Remove max_total_mem member form struct malloc_par
      malloc: Remove NO_THREADS
      Deprecate readdir_r, readdir64_r [BZ #19056]
      test-skeleton.c: Do not set RLIMIT_DATA [BZ #19648]
      tst-audit4, tst-audit10: Compile AVX/AVX-512 code separately [BZ #19269]
      libio: Clean up _IO_file_doallocate and _IO_wfile_doallocate
      ldconfig: Do not remove stale symbolic links with -X [BZ #19610]
      sunrpc: In key_call_keyenvoy, use int status instead of union wait
      tst-audit10: Fix compilation on compilers without bit_AVX512F [BZ #19860]
      resolv: Always set *resplen2 out parameter in send_dg [BZ #19791]
      nss_db: Propagate ERANGE error if parse_line fails [BZ #19837]
      CVE-2016-3075: Stack overflow in _nss_dns_getnetbyname_r [BZ #19879]
      Report dlsym, dlvsym lookup errors using dlerror [BZ #19509]
      strfmon_l: Use specified locale for number formatting [BZ #19633]
      scratch_buffer_set_array_size: Include <limits.h>
      hsearch_r: Include <limits.h>
      Add missing bug number to ChangeLog
      nss_dns: Fix assertion failure in _nss_dns_getcanonname_r [BZ #19865]
      Remove union wait [BZ #19613]
      malloc: Run fork handler as late as possible [BZ #19431]
      malloc: Remove unused definitions of thread_atfork, thread_atfork_static
      malloc: Remove malloc hooks from fork handler
      malloc: Add missing internal_function attributes on function definitions
      vfprintf: Fix memory with large width and precision [BZ #19931]
      resolv: Always set *resplen2 out parameter in send_vc [BZ #19825]
      nss_dns: Validate RDATA length against packet length [BZ #19830]
      resolv, nss_dns: Remove remaining syslog logging [BZ #19862]
      nss_dns: Check address length before creating addrinfo result [BZ #19831]
      nss_dns: Remove custom offsetof macro definition
      nss_dns: Skip over non-PTR records in the netent code [BZ #19868]
      Fix ChangeLog date to reflect commit date
      resolv: Remove SCCS and RCS keywords
      resolv: Remove _LIBC conditionals
      inet: Remove SCCS keywords
      resolv: Remove BIND_UPDATE preprocessor conditionals
      resolv: Remove RESOLVSORT preprocess conditionals
      resolv: Remove RFC1535 conditionals
      resolv: Remove traces of ULTRIX support
      resolv: Remove __BIND_NOSTATIC conditionals
      resolv: Remove BSD compatibility conditionals and header
      resolv: Remove SUNSECURITY preprocessor conditionals
      resolv: Assorted preprocessor cleanups
      resolv: Reindent preprocessor conditionals following cleanups
      getnameinfo: Do not preserve errno
      glob: Simplify the interface for the GLOB_ALTDIRFUNC callback gl_readdir
      CVE-2016-3706: getaddrinfo: stack overflow in hostent conversion [BZ #20010]
      NEWS entry for CVE-2016-3075
      getnameinfo: Refactor and fix memory leak [BZ #19642]
      hesiod: Remove RCS keywords
      hesiod: Remove DEF_RHS
      hesiod: Always use thread-local resolver state [BZ #19573]
      hesiod: Avoid heap overflow in get_txt_records [BZ #20031]
      CVE-2016-1234: glob: Do not copy d_name field of struct dirent [BZ #19779]
      getnameinfo: Reduce line length and add missing comments
      getnameinfo: Avoid calling strnlen on uninitialized buffer
      getnameinfo: Return EAI_OVERFLOW in more cases [BZ #19787]
      malloc: Adjust header file guard in malloc-internal.h
      getaddrinfo: Restore RES_USE_INET6 flag on error path [BZ #19994]
      resolv: Call gmtime_r instead of gmtime in p_secstodate [BZ #20017]
      localedef: Do not compile with mcheck
      getaddrinfo: Convert from extend_alloca to struct scratch_buffer
      Increase fork signal safety for single-threaded processes [BZ #19703]
      malloc: Rewrite dumped heap for compatibility in __malloc_set_state
      tst-mallocfork2: Fix race condition, use fewer resources
      Make padding in struct sockaddr_storage explicit [BZ #20111]
      CVE-2016-4429: sunrpc: Do not use alloca in clntudp_call [BZ #20112]
      malloc: Correct malloc alignment on 32-bit architectures [BZ #6527]
      fork in libpthread cannot use IFUNC resolver [BZ #19861]
      libio: Use wmemset instead of __wmemset to avoid linknamespace issue
      tst-rec-dlopen: Use interposed malloc instead of hooks
      malloc: Correct size computation in realloc for dumped fake mmapped chunks
      quick_exit tests: Do not use C++ headers
      malloc: Remove __malloc_initialize_hook from the API [BZ #19564]
      fopencookie: Mangle function pointers stored on the heap [BZ #20222]
      malloc_usable_size: Use correct size for dumped fake mapped chunks
      nss_db: Fix initialization of iteration position [BZ #20237]
      debug/tst-longjmp_chk2: Make signal handler more conservative [BZ #20248]
      Revert __malloc_initialize_hook symbol poisoning
      elf: Consolidate machine-agnostic DTV definitions in <dl-dtv.h>
      malloc: Avoid premature fallback to mmap [BZ #20284]
      test-skeleton.c: Add write_message function
      test-skeleton.c: xmalloc, xcalloc, xrealloc are potentially unused
      test-skeleton.c (xrealloc): Support realloc-as-free
      libio: Implement vtable verification [BZ #20191]
      Correct bug number in ChangeLog [BZ #18960]
      CVE-2016-5417 was assigned to bug 19257

Gabriel F. T. Gomes (3):
      powerpc: Remove uses of operand modifier (%s) in inline asm
      powerpc: Zero pad using memset in strncpy/stpncpy
      powerpc: Fix operand prefixes

Gunnar Hjalmarsson (1):
      localedata: id_ID: Februari instead of Pebruari [BZ #20316]

Gustavo Romero (1):
      powerpc: Fix missing verb and typo in comment about AT_HWCAP entry

Guy Rutenberg (1):
      localedata: en_IL: new English locale [BZ #19963]

H.J. Lu (68):
      [x86_64] Set DL_RUNTIME_UNALIGNED_VEC_SIZE to 8
      Call x86-64 __setcontext directly
      Call x86-64 __mcount_internal/__sigjmp_save directly
      Copy x86_64 _mcount.op from _mcount.o
      Or bit_Prefer_MAP_32BIT_EXEC in EXTRA_LD_ENVVARS
      x86-64: Fix memcpy IFUNC selection
      Add a comment in sysdeps/x86_64/Makefile
      Replace @PLT with @GOTPCREL(%rip) in call
      Replace PREINIT_FUNCTION@PLT with *%rax in call
      Use HAS_ARCH_FEATURE with Fast_Rep_String
      Group AVX512 functions in .text.avx512 section
      Support --enable-hardcoded-path-in-tests in benchtests
      Define _HAVE_STRING_ARCH_mempcpy to 1 for x86
      Add _arch_/_cpu_ to index_*/bit_* in x86 cpu-features.h
      Use JUMPTARGET in x86-64 mathvec
      Use JUMPTARGET in x86-64 pthread
      Set index_arch_AVX_Fast_Unaligned_Load only for Intel processors
      Don't set %rcx twice before "rep movsb"
      [x86] Add a feature bit: Fast_Unaligned_Copy
      Implement x86-64 multiarch mempcpy in memcpy
      Make __memcpy_avx512_no_vzeroupper an alias
      Initial Enhanced REP MOVSB/STOSB (ERMS) support
      Add x86-64 memmove with unaligned load/store and rep movsb
      Add x86-64 memset with unaligned store and rep stosb
      Test 64-byte alignment in memcpy benchtest
      Test 64-byte alignment in memmove benchtest
      Test 64-byte alignment in memset benchtest
      Remove Fast_Copy_Backward from Intel Core processors
      Fix memmove-vec-unaligned-erms.S
      Don't put SSE2/AVX/AVX512 memmove/memset in ld.so
      Add a comment in memset-sse2-unaligned-erms.S
      Force 32-bit displacement in memset-vec-unaligned-erms.S
      Add memcpy/memmove/memset benchmarks with large data
      X86-64: Prepare memset-vec-unaligned-erms.S
      X86-64: Prepare memmove-vec-unaligned-erms.S
      X86-64: Use non-temporal store in memcpy on large data
      Detect Intel Goldmont and Airmont processors
      Reduce number of mmap calls from __libc_memalign in ld.so
      Move sysdeps/x86_64/cacheinfo.c to sysdeps/x86
      Remove x86 ifunc-defines.sym and rtld-global-offsets.sym
      Support non-inclusive caches on Intel processors
      Call init_cpu_features only if SHARED is defined
      Clear destination buffer updated by the previous run
      Don't call internal __pthread_unwind via PLT
      Don't call internal _Unwind_Resume via PLT
      Remove alignments on jump targets in memset
      Check the HTT bit before counting logical threads
      Correct Intel processor level type mask from CPUID
      Remove special L2 cache case for Knights Landing
      Avoid an extra branch to PLT for -z now
      Count number of logical processors sharing L2 cache
      Fix a typo in comments in memmove-vec-unaligned-erms.S
      Check FMA after COMMON_CPUID_INDEX_80000001
      X86-64: Remove the previous SSE2/AVX2 memsets
      X86-64: Remove previous default/SSE2/AVX2 memcpy/memmove
      X86-64: Add dummy memcopy.h and wordcopy.c
      Always indirect branch to __libc_start_main via GOT
      Compile tst-cleanupx4 test with -fexceptions
      Check Prefer_ERMS in memmove/memcpy/mempcpy/memset
      Require binutils 2.24 to build x86-64 glibc [BZ #20139]
      Make copies of cstdlib/cmath and use them [BZ #20314]
      X86-64: Define LO_HI_LONG to skip pos_h [BZ #20349]
      x86-64: Properly align stack in _dl_tlsdesc_dynamic [BZ #20309]
      Test p{read,write}64 with offset > 4GB
      x86-64: Add p{read,write}[v]64 to syscalls.list [BZ #20348]
      Regenerate i686 libm-test-ulps with GCC 6.1 at -O3 [BZ #20347]
      i386: Compile rtld-*.os with -mno-sse -mno-mmx -mfpmath=387
      Don't compile do_test with -mavx/-mavx/-mavx512

Hongjiu Zhang (1):
      sln: use stat64

Jiyoung Yun (1):
      Fix robust mutex daedlock [BZ #20263]

John David Anglin (2):
      hppa: fix loading of global pointer in _start [BZ #20277]
      hppa: Update libm-test-ulps.

Joseph Myers (107):
      Fix ldbl-128ibm floorl for non-default rounding modes (bug 17899).
      Fix ldbl-128ibm ceill for non-default rounding modes (bug 19592).
      Fix ldbl-128ibm truncl for non-default rounding modes (bug 19593).
      Fix ldbl-128ibm roundl for non-default rounding modes (bug 19594).
      Fix ldbl-128ibm fmodl handling of subnormal results (bug 19595).
      Fix ldbl-128ibm fmodl handling of equal arguments with low part zero (bug 19602).
      Fix ldbl-128ibm remainderl, remquol equality tests (bug 19603).
      Fix ldbl-128ibm powl overflow handling (bug 19674).
      Fix ldbl-128ibm nextafterl, nexttowardl sign of zero result (bug 19678).
      Require Linux 3.2 except on x86 / x86_64, 3.2 headers everywhere.
      Remove linux/fanotify.h configure test.
      Remove kernel-features.h conditionals on pre-3.2 kernels.
      Fix ldbl-128ibm remainderl equality test for zero low part (bug 19677).
      Fix ldbl-128ibm nearbyintl in non-default rounding modes (bug 19790).
      Allow spurious underflow / inexact for ldbl-128ibm.
      Update glibc headers for Linux 4.5.
      Adjust kernel-features.h defaults for socket syscalls.
      Remove __ASSUME_PPOLL.
      Remove __ASSUME_FALLOCATE.
      Remove __ASSUME_EVENTFD2, move eventfd to syscalls.list.
      Remove __ASSUME_SIGNALFD4.
      Remove __ASSUME_GETDENTS64_SYSCALL.
      Fix x86_64 / x86 powl inaccuracy for integer exponents (bug 19848).
      [microblaze] Remove __ASSUME_FUTIMESAT.
      Fix termios.h XCASE namespace (bug 19925).
      Fix limits.h NL_NMAX namespace (bug 19929).
      Fix stdio.h cuserid namespace (bug 19989).
      Define off_t in stdio.h for XOPEN2K.
      conformtest: Correct XOPEN2K stdarg.h expectations.
      Fix langinfo.h nl_langinfo_l namespace (bug 19996).
      conformtest: Correct some signal.h expectations for XOPEN2K.
      conformtest: Correct some stdio.h expectations for UNIX98.
      conformtest: Correct stdio.h expectations for fdopen.
      Also define off_t in stdio.h for UNIX98.
      conformtest: Add langinfo.h expectations for YESSTR, NOSTR.
      Fix stdio.h namespace for pre-threads POSIX (bug 20014).
      Fix fcntl.h timespec namespace (bug 20023).
      Fix sys/time.h timespec namespace (bug 20041).
      conformtest: Remove some bogus sys/types.h expectations for XPG3 and XPG4.
      Declare cuserid in unistd.h for UNIX98 and before (bug 20043).
      Declare pthread_atfork in unistd.h for UNIX98 (bug 20044).
      conformtest: Fix st_blksize, st_blocks expectations for XPG3, XPG4.
      conformtest: Correct some sys/stat.h expectations for XPG3.
      Fix sys/stat.h fchmod namespace (bug 20073).
      Declare tcgetsid for XPG4 (bug 20055).
      conformtest: Do not expect S_IF* in fcntl.h.
      Declare gethostname for XPG4 (bug 20054).
      conformtest: Correct some unistd.h expectations for XPG3, XPG4.
      conformtest: Correct time.h XPG3 expectations.
      conformtest: Do not expect strdup in string.h for XPG3.
      conformtest: Correct some stdlib.h expectations for XPG3.
      Correct ttyslot header declaration conditions (bug 20051).
      Fix stdlib.h rand_r namespace (bug 20074).
      Make sys/stat.h define S_IFSOCK, S_ISSOCK for XPG4 (bug 20076).
      Do not declare grantpt, ptsname, unlockpt in stdlib.h for XPG3 (bug 20094).
      Add Q_GETNEXTQUOTA from Linux 4.6 to sys/quota.h.
      Add CLONE_NEWCGROUP from Linux 4.6 to bits/sched.h.
      Update libm-test.inc comment about NaN signs.
      conformtest: Correct search.h expectations for XPG3.
      conformtest: Correct pwd.h expectations for XPG3.
      Implement proper fmal for ldbl-128ibm (bug 13304).
      conformtest: Correct ftw.h expectations for XPG3, XPG4.
      Update sysdeps/unix/sysv/linux/bits/socket.h for Linux 4.6.
      conformtest: Correct some limits.h expectations for XPG3, XPG4.
      Do not raise "inexact" from generic ceil (bug 15479).
      Do not raise "inexact" from generic floor (bug 15479).
      Do not raise "inexact" from generic round (bug 15479).
      Do not raise "inexact" from x86_64 SSE4.1 ceil, floor (bug 15479).
      Do not raise "inexact" from powerpc32 ceil, floor, trunc (bug 15479).
      Do not raise "inexact" from powerpc64 ceil, floor, trunc (bug 15479).
      Support sNaN testing in libm-test.inc.
      Add more sNaN tests to libm-test.inc.
      Fix ldbl-128 j0l, j1l, y0l, y1l for sNaN argument (bug 20151).
      Fix ldbl-128ibm sqrtl (sNaN) (bug 20153).
      Fix ldbl-128ibm ceill, rintl etc. for sNaN arguments (bug 20156).
      Remove unused macros from libm-test.inc.
      Avoid "invalid" exceptions from powerpc fabsl (sNaN) (bug 20157).
      Fix powerpc32 ceil, rint etc. on sNaN input (bug 20160).
      Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160).
      Fix x86/x86_64 nextafterl incrementing negative subnormals (bug 20205).
      Fix dbl-64 acos (sNaN) (bug 20212).
      Fix dbl-64 asin (sNaN) (bug 20213).
      Fix i386 asinhl (sNaN) (bug 20218).
      Fix i386 atanhl (sNaN) (bug 20219).
      Fix i386 cbrtl (sNaN) (bug 20224).
      Fix ldexp, scalbn, scalbln for sNaN input (bug 20225).
      Fix i386/x86_64 expl, exp10l, expm1l for sNaN input (bug 20226).
      Fix i386/x86_64 logl (sNaN) (bug 20227).
      Fix i386/x86_64 log10l (sNaN) (bug 20228).
      Fix i386/x86_64 log1pl (sNaN) (bug 20229).
      Fix ldbl-128 expm1l (sNaN) (bug 20232).
      Fix ldbl-128ibm expm1l (sNaN) (bug 20233).
      Fix ldbl-128ibm log1pl (sNaN) (bug 20234).
      Fix i386/x86_64 log2l (sNaN) (bug 20235).
      Fix modf (sNaN) (bug 20240).
      Fix frexp (NaN) (bug 20250).
      Add more sNaN tests (cimag, conj, copysign, creal, fma, fmod).
      Fix dbl-64 atan2 (sNaN, qNaN) (bug 20252).
      Simplify generic fdim implementations.
      Use generic fdim on more architectures (bug 6796, bug 20255, bug 20256).
      Fix i386 fdim double rounding (bug 20255).
      Simplify x86 nearbyint functions.
      Add more sNaN tests (most remaining real functions).
      Fix i386/x86_64 scalbl with sNaN input (bug 20296).
      Avoid "inexact" exceptions in i386/x86_64 ceil functions (bug 15479).
      Avoid "inexact" exceptions in i386/x86_64 floor functions (bug 15479).
      Avoid "inexact" exceptions in i386/x86_64 trunc functions (bug 15479).

Khem Raj (2):
      When disabling SSE, make sure -fpmath is not set to use SSE either
      elf: Define missing Meta architecture specific relocations

Maciej W. Rozycki (1):
      Treat STV_HIDDEN and STV_INTERNAL symbols as STB_LOCAL

Mark Wielaard (2):
      elf/elf.h: Add new 386 and X86_64 relocations from binutils.
      elf.h: Add NT_ARM_SYSTEM_CALL constant.

Marko Myllynen (1):
      localedef: drop unused --old-style

Martin Galvan (1):
      Add pretty printers for the NPTL lock types

Matthew Fortune (1):
      VDSO support for MIPS

Matthias Wallnoefer (2):
      localedata: de_{AT,CH}: copy data from de_DE
      localedata: de_IT: new locale

Mike FABIAN (1):
      localedata: i18n: fix typos in tel_int_fmt

Mike Frysinger (44):
      locledata: trim trailing blank lines/comments
      localedata: dz_BT/ps_AF: reformat data
      localedata: CLDRv28: update LC_TELEPHONE.int_prefix
      locales: pap_AN: delete old/deprecated locale [BZ #16003]
      test-skeleton: increase default TIMEOUT to 20 seconds
      localedata: an_ES: fix lang_ab value
      localedata: es_PR: change LC_MEASUREMENT to metric
      localedata: clear LC_IDENTIFICATION tel/fax fields
      link sln fix to bugzilla [BZ #15333]
      localedata: use same comment_char/escape_char in these files
      add ChangeLog entry
      localedata: standardize first few lines
      localedata: standardize copyright/license information [BZ #11213]
      localedata: iw_IL: delete old/deprecated locale [BZ #16137]
      configure: fix `test ==` usage
      localedata: CLDRv28: update LC_PAPER values
      localedata: LC_TIME.date_fmt: delete entries same as the default value
      localedata: CLDRv29: update LC_IDENTIFICATION language/territory fields
      localedata: LC_MEASUREMENT: use copy directives everywhere
      localedata: LC_PAPER: use copy directives everywhere
      localedata: CLDRv29: update LC_ADDRESS.country_num values
      localedata: fix LC_ADDRESS.country_car entries
      localedata: CLDRv29: update LC_ADDRESS.country_name translations
      localedata: LC_IDENTIFICATION.category: set to ISO 30112 2014 standard
      localedef: check LC_IDENTIFICATION.category values
      localedata: CLDRv29: update LC_MONETARY int_curr_symbol & currency_symbol
      localedata: LC_IDENTIFICATION: delete uncommon fields
      locale: ld-telephone: update to ISO-30112 2014
      localedef: allow %l/%n in postal_fmt [BZ #16983]
      localedata: fix LC_TELEPHONE in a few locales
      localedata: CLDRv29: update LC_TIME week/first_week,workday fields
      localedef: change week_1stweek default to 7
      localedata: standard LC_MESSAGES string regexes a bit
      localedata: LC_MESSAGES.{yes,no}expr: add +1/-0 to all regexes [BZ #15263]
      localedata: LC_MESSAGES.{yes,no}expr: standardize yY/nN [BZ #15262]
      localedata: CLDRv29: update LC_MESSAGES yes/no strings [BZ #15264] [BZ #16975]
      tst-langinfo: update yesexpr/noexpr baselines
      tst-fmon/tst-numeric: switch malloc to static stack space [BZ #19671]
      localedata: add more translit entries
      localedata: pt_BR/pt_PT: make days/months lowercase [BZ #19133]
      unicode-gen: include standard comment file header
      NEWS: clarify localedef --old-style update
      manual: fix spelling typos
      microblaze: fix variable name collision with syscall macros

Neskie Manuel (1):
      localedata: chr_US: new Cherokee locale [BZ #12143]

Nick Alcock (2):
      x86, pthread_cond_*wait: Do not depend on %eax not being clobbered
      Allow overriding of CFLAGS as well as CPPFLAGS for rtld.

Paras pradhan (1):
      localedata: ne_NP: misc updates [BZ #1170]

Paul E. Murphy (22):
      Increase internal precision of ldbl-128ibm decimal printf [BZ #19853]
      powerpc: Add optimized P8 strspn
      powerpc: Add optimized strcspn for P8
      powerpc: Add missing insn in swapcontext [BZ #20004]
      Refactor bug-strtod.c to better test new types.
      Refactor bug-strtod2.c to be type generic
      Refactor tst-strtod6.c
      Refactor tst-strtod-round.c
      Fixup usage of MANT_DIG in libm-test.inc
      Fixup usage of MIN_EXP in libm-test.inc
      Refactor tst-strtod-round.c for type-generic-ness
      Begin refactor of libm-test.inc
      Refactor type specific macros using regexes
      Refactor M_ macros defined in libm-test.inc
      Replace M_PI2l with lit_pi_2_d in libm-test.inc
      Replace M_PIl with lit_pi in libm-test.inc
      Replace M_PI_4l with lit_pi_4_d in libm-test.inc
      Replace M_El with lit_e in libm-test.inc
      Apply LIT(x) to floating point literals in libm-test.c
      Remove CHOOSE() macro from libm-tests.inc
      Remove type specific information from auto-libm-test-in
      Generate new format names in auto-libm-test-out

Paul Pluzhnikov (7):
      2016-03-03  Paul Pluzhnikov  <ppluzhnikov@google.com>
      2016-05-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
      Merge branch 'master' of ssh://sourceware.org/git/glibc
      2016-06-05  Paul Pluzhnikov  <ppluzhnikov@google.com>
      2016-06-09  Paul Pluzhnikov  <ppluzhnikov@gmail.com>
      2016-06-11  Paul Pluzhnikov  <ppluzhnikov@google.com>
      Fix rt/tst-aio64.c as well, and mention login/tst-utmp.c in ChangeLog

Rajalakshmi Srinivasaraghavan (4):
      powerpc: Rearrange cfi_offset calls
      powerpc: strcasestr optmization for power8
      Add nextup and nextdown math functions
      powerpc: Fix return code of strcasecmp for unaligned inputs

Rical Jasan (9):
      manual: fix typos in the memory chapter
      manual: fix typos in the character handling chapter
      manual: fix typos in the string chapters
      manual: fix typos in character set handling
      manual: fix typos in the locale chapter
      manual: fix typos in the locale chapter
      manual: fix typos in the message chapter
      manual: fix typos in the search chapter
      manual: fix typos in the pattern chapter

Richard Henderson (2):
      elf.h: Sync with the gabi webpage
      elf.h: Add declarations for BPF

Robin van der Vliet (1):
      locale: iso-639: add Talossan language [BZ #19400]

Roland McGrath (9):
      Add fts64_* to sysdeps/arm/nacl/libc.abilist
      Typo fixes.
      Gratuitous change to poke buildbot.
      Fix c++-types-check conditionalization.
      Omit test-math-isinff when no C++ compiler.
      Conditionalize c++-types-check.out addition to tests-special.
      Fix edito in last change.
      Fix tst-audit10 build when -mavx512f is not supported.
      stpcpy is part of POSIX.1-2008 [BZ #3629]

Samuel Thibault (23):
      Fix flag test in waitid compatibility layer
      Fix hurd build
      hurd: Break errnos.d / libc-modules.h dependency loop
      Fix mach-syscalls.mk build
      hurd: Do not hide rtld symbols which need to be preempted
      hurd: Allow inlining IO locks
      hurd: Add c++-types expected result
      Fix malloc threaded tests link on non-Linux
      Fix crash on getauxval call without HAVE_AUX_VECTOR
      Fix build with HAVE_AUX_VECTOR
      hurd: fix profiling short-living processes
      Fix gprof timing
      non-linux: Apply RFC3542 obsoletion of RFC2292 macros
      non-linux: Apply RFC3542 obsoletion of RFC2292 macros
      aio: fix newp->running data race
      Revert "aio: fix newp->running data race"
      hurd: fix _hurd_self_sigstate reference from ____longjmp_chk
      Add more hurd exception to local headers list
      hurd: disable ifunc for now
      mach: Add mach_print sycsall declaration
      hurd: Fix PTR_{,DE}MANGLE calls
      Add missing changelog part
      Fix TABDLY value

Siddhesh Poyarekar (10):
      New make target to only build benchmark binaries
      Fix up ChangeLog formatting
      benchtests: Update README to include instructions for bench-build target
      Fix up ChangeLog
      benchtests: Clean up extra-objs
      benchtests: Support for cross-building benchmarks
      Avoid attempt for runtime checks if all environments are defined
      Fix up ChangeLog
      Revert "Add pretty printers for the NPTL lock types"
      Fix cos computation for multiple precision fallback (bz #20357)

Simion Onea (1):
      localedata: ro_RO: update Tuesday translation [BZ #18911]

Stefan Liebler (31):
      Add missing inclusion of libc-internal.h.
      S390: Save and restore fprs/vrs while resolving symbols.
      S390: Extend structs La_s390_regs / La_s390_retval with vector-registers.
      S390: Use ahi instead of aghi in 32bit _dl_runtime_resolve.
      Mention Bug in ChangeLog for S390: Save and restore fprs/vrs while resolving symbols.
      Fix strfmon_l: Use specified locale for number formatting [BZ #19633]
      Add missing iucv related defines.
      S390: Add support for vdso getcpu symbol.
      S390: Use fPIC to avoid R_390_GOT12 relocation in gcrt1.o.
      Fix tst-cancel17/tst-cancelx17, which sometimes segfaults while exiting.
      S390: Use mvcle for copies > 1MB on 32bit with default memcpy variant.
      S390: Use 64bit instruction to check for copies of > 1MB with mvcle.
      S390: Do not call memcpy, memcmp, memset within libc.so via ifunc-plt.
      S390: Implement mempcpy with help of memcpy. [BZ #19765]
      S390: Get rid of make warning: overriding recipe for target gconv-modules.
      S390: Configure check for vector support in gcc.
      S390: Optimize 8bit-generic iconv modules.
      S390: Optimize builtin iconv-modules.
      S390: Optimize iso-8859-1 to ibm037 iconv-module.
      S390: Optimize utf8-utf32 module.
      S390: Optimize utf8-utf16 module.
      S390: Optimize utf16-utf32 module.
      S390: Use s390-64 specific ionv-modules on s390-32, too.
      S390: Fix utf32 to utf8 handling of low surrogates (disable cu41).
      S390: Fix utf32 to utf16 handling of low surrogates (disable cu42).
      Fix ucs4le_internal_loop in error case. [BZ #19726]
      Fix UTF-16 surrogate handling. [BZ #19727]
      tst-rec-dlopen: Fix build fail due to missing inclusion of string.h
      S390: Fix relocation of _nl_current_LC_CATETORY_used in static build. [BZ #19860]
      S390: Use DT_JUMPREL in prelink undo code.
      S390: Do not clobber r13 with memcpy on 31bit with copies >1MB.

Stephen Gallagher (1):
      NSS: Implement group merging support.

Szabolcs Nagy (4):
      [AArch64] Fix libc internal asm profiling code
      [AArch64] Add bits/hwcap.h for aarch64 linux
      [AArch64] Regenerate libm-test-ulps
      [AArch64] Update libm-test-ulps

Timur Birsh (1):
      localedata: kk_KZ: various updates [BZ #15578]

Torvald Riegel (1):
      Remove atomic_compare_and_exchange_bool_rel.

Tulio Magno Quites Machado Filho (3):
      Fix type of parameter passed by malloc_consolidate
      powerpc: Fix --disable-multi-arch build on POWER8
      powerpc: Add a POWER8-optimized version of expf()

Wilco Dijkstra (7):
      Improve generic strcspn performance
      Remove pre GCC3.2 optimizations from string/bits/string2.h.
      Move mempcpy, strcpy and stpcpy inlines to string/string-inlines.c as compatibility
      This is an optimized memset for AArch64.  Memset is split into 4 main cases:
      This is an optimized memcpy/memmove for AArch64.  Copies are split into 3 main
      Add a simple rawmemchr implementation.  Use strlen for rawmemchr(s, '\0') as it
      This patch further tunes memcpy - avoid one branch for sizes 1-3,

Will Newton (1):
      elf/elf.h: Add missing Meta relocations

Yvan Roux (1):
      Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses

Zack Weinberg (3):
      Move sysdeps/generic/bits/hwcap.h to top-level bits/
      Move sysdeps/generic/bits/hwcap.h to top-level bits/
      Don't install the internal header grp-merge.h

raji (1):
      powerpc: strcasecmp/strncasecmp optmization for power8

ricaljasan@pacific.net (2):
      manual: fix typo in the introduction
      manual: fix typos in error reporting

-----------------------------------------------------------------------
Comment 21 Sourceware Commits 2017-01-27 15:32:42 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, linaro/2.21/master has been updated
       via  1b248392fbadaa5a81ed220fdf2f7ec3b9939b9e (commit)
       via  cf161d39113047a81f969f277707b9d1679ecf69 (commit)
       via  a274119b0e6b4800163d8d1870995e597a55cb8b (commit)
       via  a18c25e0ee00bb37c724123d8b187050e9a367a0 (commit)
       via  124ea50584d3d21fe4c2fe9383508efd0ac9010a (commit)
       via  5a8692a64640bb648de6be9877dc072d728859bd (commit)
       via  6a277a415c127f6ee9a70548c899a7ac536f4288 (commit)
       via  9e1e8f68d59e33baa0eef9e8690d3cbaa5f67a24 (commit)
       via  dd08634b37f81f01441d842087b123d12b4003d4 (commit)
       via  749c94d44c9aa063dfc7ad2b505c8e6d35e57345 (commit)
       via  b533edfeedf66e971b1b29affd8e2f1619987dc9 (commit)
       via  4b31bd831ab205ff24ae3a2b8c4f8135c182c7d7 (commit)
       via  50992336ac40625c363e1514890f92774c65054a (commit)
       via  39ad1d12448adf0682ffb8b8ac146e99b68279bf (commit)
       via  7f2efd6c269a2ab2eee80bffa5bcb2538aa89641 (commit)
      from  a68cafa11c500d8a49a3014c43c5152859d037ae (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1b248392fbadaa5a81ed220fdf2f7ec3b9939b9e

commit 1b248392fbadaa5a81ed220fdf2f7ec3b9939b9e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 11:57:54 2015 -0700

    Extend local PLT reference check
    
    On x86, linker in binutils 2.26 and newer consolidates R_*_JUMP_SLOT with
    R_*_GLOB_DAT relocation against the same symbol.  This patch extends
    local PLT reference check to support alternate relocations.
    
    	[BZ #18078]
    	* scripts/check-localplt.awk: Support alternate relocations.
    	* scripts/localplt.awk: Also check relocations in DT_RELA/DT_REL
    	sections.
    	* sysdeps/unix/sysv/linux/i386/localplt.data: Mark free and
    	malloc entries with + REL R_386_GLOB_DAT.
    	* sysdeps/x86_64/localplt.data: New file.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cf161d39113047a81f969f277707b9d1679ecf69

commit cf161d39113047a81f969f277707b9d1679ecf69
Author: Alan Modra <amodra@gmail.com>
Date:   Fri Feb 20 15:23:28 2015 +1030

    Fix localplt test breakage with new readelf
    
    Since 2014-11-24 binutils git commit bb4d2ac2, readelf has appended
    the symbol version to symbols shown in reloc dumps.
    
    	[BZ #16512]
    	* scripts/localplt.awk: Strip off symbol version.
    	* NEWS: Mention bug fix.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a274119b0e6b4800163d8d1870995e597a55cb8b

commit a274119b0e6b4800163d8d1870995e597a55cb8b
Author: Florian Weimer <fweimer@redhat.com>
Date:   Fri Aug 26 22:40:27 2016 +0200

    malloc: Simplify static malloc interposition [BZ #20432]
    
    Existing interposed mallocs do not define the glibc-internal
    fork callbacks (and they should not), so statically interposed
    mallocs lead to link failures because the strong reference from
    fork pulls in glibc's malloc, resulting in multiple definitions
    of malloc-related symbols.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a18c25e0ee00bb37c724123d8b187050e9a367a0

commit a18c25e0ee00bb37c724123d8b187050e9a367a0
Author: Florian Weimer <fweimer@redhat.com>
Date:   Tue Aug 16 11:06:13 2016 +0200

    nptl/tst-tls3-malloc: Force freeing of thread stacks
    
    It turns out that due to the reduced stack size in tst-tls3 and the
    (fixed) default stack cache size, allocated TLS variables are never
    freed, so the test coverage for tst-tls3-malloc is less than complete.
    This change increases the thread stack size for tst-tls3-malloc only,
    to make sure thread stacks and TLS variables are freed.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=124ea50584d3d21fe4c2fe9383508efd0ac9010a

commit 124ea50584d3d21fe4c2fe9383508efd0ac9010a
Author: Florian Weimer <fweimer@redhat.com>
Date:   Tue Aug 2 17:01:02 2016 +0200

    malloc: Run tests without calling mallopt [BZ #19469]
    
    The compiled tests no longer refer to the mallopt symbol
    from their main functions.  (Some tests still call mallopt
    explicitly, which is fine.)

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5a8692a64640bb648de6be9877dc072d728859bd

commit 5a8692a64640bb648de6be9877dc072d728859bd
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Aug 3 16:16:57 2016 +0200

    elf: Do not use memalign for TCB/TLS blocks allocation [BZ #17730]
    
    Instead, call malloc and explicitly align the pointer.
    
    There is no external location to store the original (unaligned)
    pointer, and this commit increases the allocation size to store
    the pointer at a fixed location relative to the TCB pointer.
    
    The manual alignment means that some space goes unused which
    was previously made available for subsequent allocations.
    However, in the TLS_DTV_AT_TP case, the manual alignment code
    avoids aligning the pre-TCB to the TLS block alignment.  (Even
    while using memalign, the allocation had some unused padding
    in front.)
    
    This concludes the removal of memalign calls from the TLS code,
    and the new tst-tls3-malloc test verifies that only core malloc
    routines are used.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6a277a415c127f6ee9a70548c899a7ac536f4288

commit 6a277a415c127f6ee9a70548c899a7ac536f4288
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Aug 3 16:15:38 2016 +0200

    elf: Avoid using memalign for TLS allocations [BZ #17730]
    
    Instead of a flag which indicates the pointer can be freed, dtv_t
    now includes the pointer which should be freed.  Due to padding,
    the size of dtv_t does not increase.
    
    To avoid using memalign, the new allocate_dtv_entry function
    allocates a sufficiently large buffer so that a sub-buffer
    can be found in it which starts with an aligned pointer.  Both
    the aligned and original pointers are kept, the latter for calling
    free later.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9e1e8f68d59e33baa0eef9e8690d3cbaa5f67a24

commit 9e1e8f68d59e33baa0eef9e8690d3cbaa5f67a24
Author: Alexandre Oliva <aoliva@redhat.com>
Date:   Tue Mar 17 01:14:11 2015 -0300

    Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage
    
    for  ChangeLog
    
    	[BZ #17090]
    	[BZ #17620]
    	[BZ #17621]
    	[BZ #17628]
    	* NEWS: Update.
    	* elf/dl-tls.c (_dl_update_slotinfo): Clean up outdated DTV
    	entries with Static TLS too.  Skip entries past the end of the
    	allocated DTV, from Alan Modra.
    	(tls_get_addr_tail): Update to glibc_likely/unlikely.  Move
    	Static TLS DTV entry set up from...
    	 (_dl_allocate_tls_init): ... here (fix modid assertion), ...
    	* elf/dl-reloc.c (_dl_nothread_init_static_tls): ... here...
    	* nptl/allocatestack.c (init_one_static_tls): ... and here...
    	* elf/dlopen.c (dl_open_worker): Drop l_tls_modid upper bound
    	for Static TLS.
    	* elf/tlsdeschtab.h (map_generation): Return size_t.  Check
    	that the slot we find is associated with the given map before
    	using its generation count.
    	* nptl_db/db_info.c: Include ldsodefs.h.
    	(rtld_global, dtv_slotinfo_list, dtv_slotinfo): New typedefs.
    	* nptl_db/structs.def (DB_RTLD_VARIABLE): New macro.
    	(DB_MAIN_VARIABLE, DB_RTLD_GLOBAL_FIELD): Likewise.
    	(link_map::l_tls_offset): New struct field.
    	(dtv_t::counter): Likewise.
    	(rtld_global): New struct.
    	(_rtld_global): New rtld variable.
    	(dl_tls_dtv_slotinfo_list): New rtld global field.
    	(dtv_slotinfo_list): New struct.
    	(dtv_slotinfo): Likewise.
    	* nptl_db/td_symbol_list.c: Drop gnu/lib-names.h include.
    	(td_lookup): Rename to...
    	(td_mod_lookup): ... this.  Use new mod parameter instead of
    	LIBPTHREAD_SO.
    	* nptl_db/td_thr_tlsbase.c: Include link.h.
    	(dtv_slotinfo_list, dtv_slotinfo): New functions.
    	(td_thr_tlsbase): Check DTV generation.  Compute Static TLS
    	addresses even if the DTV is out of date or missing them.
    	* nptl_db/fetch-value.c (_td_locate_field): Do not refuse to
    	index zero-length arrays.
    	* nptl_db/thread_dbP.h: Include gnu/lib-names.h.
    	(td_lookup): Make it a macro implemented in terms of...
    	(td_mod_lookup): ... this declaration.
    	* nptl_db/db-symbols.awk (DB_RTLD_VARIABLE): Override.
    	(DB_MAIN_VARIABLE): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dd08634b37f81f01441d842087b123d12b4003d4

commit dd08634b37f81f01441d842087b123d12b4003d4
Author: Florian Weimer <fweimer@redhat.com>
Date:   Mon Jun 20 14:31:40 2016 +0200

    elf: Consolidate machine-agnostic DTV definitions in <dl-dtv.h>
    
    Identical definitions of dtv_t and TLS_DTV_UNALLOCATED were
    repeated for all architectures using DTVs.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=749c94d44c9aa063dfc7ad2b505c8e6d35e57345

commit 749c94d44c9aa063dfc7ad2b505c8e6d35e57345
Author: Florian Weimer <fweimer@redhat.com>
Date:   Thu Apr 14 09:17:02 2016 +0200

    malloc: Run fork handler as late as possible [BZ #19431]
    
    Previously, a thread M invoking fork would acquire locks in this order:
    
      (M1) malloc arena locks (in the registered fork handler)
      (M2) libio list lock
    
    A thread F invoking flush (NULL) would acquire locks in this order:
    
      (F1) libio list lock
      (F2) individual _IO_FILE locks
    
    A thread G running getdelim would use this order:
    
      (G1) _IO_FILE lock
      (G2) malloc arena lock
    
    After executing (M1), (F1), (G1), none of the threads can make progress.
    
    This commit changes the fork lock order to:
    
      (M'1) libio list lock
      (M'2) malloc arena locks
    
    It explicitly encodes the lock order in the implementations of fork,
    and does not rely on the registration order, thus avoiding the deadlock.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b533edfeedf66e971b1b29affd8e2f1619987dc9

commit b533edfeedf66e971b1b29affd8e2f1619987dc9
Author: Florian Weimer <fweimer@redhat.com>
Date:   Mon Dec 21 16:42:46 2015 +0100

    malloc: Fix list_lock/arena lock deadlock [BZ #19182]
    
    	* malloc/arena.c (list_lock): Document lock ordering requirements.
    	(free_list_lock): New lock.
    	(ptmalloc_lock_all): Comment on free_list_lock.
    	(ptmalloc_unlock_all2): Reinitialize free_list_lock.
    	(detach_arena): Update comment.  free_list_lock is now needed.
    	(_int_new_arena): Use free_list_lock around detach_arena call.
    	Acquire arena lock after list_lock.  Add comment, including FIXME
    	about incorrect synchronization.
    	(get_free_list): Switch to free_list_lock.
    	(reused_arena): Acquire free_list_lock around detach_arena call
    	and attached threads counter update.  Add two FIXMEs about
    	incorrect synchronization.
    	(arena_thread_freeres): Switch to free_list_lock.
    	* malloc/malloc.c (struct malloc_state): Update comments to
    	mention free_list_lock.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4b31bd831ab205ff24ae3a2b8c4f8135c182c7d7

commit 4b31bd831ab205ff24ae3a2b8c4f8135c182c7d7
Author: Florian Weimer <fweimer@redhat.com>
Date:   Tue Nov 24 16:37:15 2015 +0100

    Replace MUTEX_INITIALIZER with _LIBC_LOCK_INITIALIZER in generic code
    
    	* sysdeps/mach/hurd/libc-lock.h (_LIBC_LOCK_INITIALIZER): Define.
    	(__libc_lock_define_initialized): Use it.
    	* sysdeps/nptl/libc-lockP.h (_LIBC_LOCK_INITIALIZER): Define.
    	* malloc/arena.c (list_lock): Use _LIBC_LOCK_INITIALIZER.
    	* malloc/malloc.c (main_arena): Likewise.
    	* sysdeps/generic/malloc-machine.h (MUTEX_INITIALIZER): Remove.
    	* sysdeps/nptl/malloc-machine.h (MUTEX_INITIALIZER): Remove.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=50992336ac40625c363e1514890f92774c65054a

commit 50992336ac40625c363e1514890f92774c65054a
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Oct 28 19:32:46 2015 +0100

    malloc: Prevent arena free_list from turning cyclic [BZ #19048]
    
    	[BZ# 19048]
    	* malloc/malloc.c (struct malloc_state): Update comment.  Add
    	attached_threads member.
    	(main_arena): Initialize attached_threads.
    	* malloc/arena.c (list_lock): Update comment.
    	(ptmalloc_lock_all, ptmalloc_unlock_all): Likewise.
    	(ptmalloc_unlock_all2): Reinitialize arena reference counts.
    	(deattach_arena): New function.
    	(_int_new_arena): Initialize arena reference count and deattach
    	replaced arena.
    	(get_free_list, reused_arena): Update reference count and deattach
    	replaced arena.
    	(arena_thread_freeres): Update arena reference count and only put
    	unreferenced arenas on the free list.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=39ad1d12448adf0682ffb8b8ac146e99b68279bf

commit 39ad1d12448adf0682ffb8b8ac146e99b68279bf
Author: Florian Weimer <fweimer@redhat.com>
Date:   Sat Oct 17 12:06:48 2015 +0200

    malloc: Rewrite with explicit TLS access using __thread

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7f2efd6c269a2ab2eee80bffa5bcb2538aa89641

commit 7f2efd6c269a2ab2eee80bffa5bcb2538aa89641
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date:   Wed Feb 18 11:06:05 2015 +0530

    Consolidate arena_lookup and arena_lock into a single arena_get
    
    This seems to have been left behind as an artifact of some old changes
    and can now be merged.  Verified that the only generated code change
    on x86_64 is that of line numbers in asserts, like so:
    
    @@ -27253,7 +27253,7 @@ Disassembly of section .text:
       416f09:      48 89 42 20             mov    %rax,0x20(%rdx)
       416f0d:      e9 7e f6 ff ff          jmpq   416590 <_int_free+0x230>
       416f12:      b9 3f 9f 4a 00          mov    $0x4a9f3f,%ecx
    -  416f17:      ba d5 0f 00 00          mov    $0xfd5,%edx
    +  416f17:      ba d6 0f 00 00          mov    $0xfd6,%edx
       416f1c:      be a8 9b 4a 00          mov    $0x4a9ba8,%esi
       416f21:      bf 6a 9c 4a 00          mov    $0x4a9c6a,%edi
       416f26:      e8 45 e8 ff ff          callq  415770 <__malloc_assert>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                  |  298 ++++++++++++++++++++++++++++
 NEWS                                       |    4 +-
 csu/libc-tls.c                             |    2 +-
 elf/dl-open.c                              |   12 +-
 elf/dl-reloc.c                             |    6 -
 elf/dl-tls.c                               |  209 ++++++++++++--------
 elf/tlsdeschtab.h                          |    4 +-
 include/libc-symbols.h                     |   15 ++
 malloc/Makefile                            |   33 +++-
 malloc/arena.c                             |  211 +++++++++++++-------
 malloc/malloc-internal.h                   |   32 +++
 malloc/malloc.c                            |   20 ++-
 malloc/tst-interpose-aux-nothread.c        |   20 ++
 malloc/tst-interpose-aux-thread.c          |   20 ++
 malloc/tst-interpose-aux.c                 |  270 +++++++++++++++++++++++++
 malloc/tst-interpose-aux.h                 |   30 +++
 malloc/tst-interpose-nothread.c            |   20 ++
 malloc/tst-interpose-skeleton.c            |  210 ++++++++++++++++++++
 malloc/tst-interpose-static-nothread.c     |   19 ++
 malloc/tst-interpose-static-thread.c       |   19 ++
 malloc/tst-interpose-thread.c              |   20 ++
 malloc/tst-malloc-fork-deadlock.c          |  220 ++++++++++++++++++++
 manual/memory.texi                         |   12 --
 nptl/Makefile                              |    8 +-
 nptl/allocatestack.c                       |   13 +-
 nptl/tst-tls3-malloc.c                     |   31 +++
 nptl/tst-tls3.c                            |   10 +-
 nptl_db/db-symbols.awk                     |    2 +
 nptl_db/db_info.c                          |    4 +
 nptl_db/fetch-value.c                      |    3 +-
 nptl_db/structs.def                        |   39 ++++
 nptl_db/td_symbol_list.c                   |    7 +-
 nptl_db/td_thr_tlsbase.c                   |  172 ++++++++++++++++-
 nptl_db/thread_dbP.h                       |   11 +-
 scripts/check-localplt.awk                 |   40 ++++-
 scripts/localplt.awk                       |   51 +++++-
 sysdeps/aarch64/dl-tls.h                   |    3 -
 sysdeps/aarch64/nptl/tls.h                 |   12 +-
 sysdeps/alpha/dl-tls.h                     |    3 -
 sysdeps/alpha/nptl/tls.h                   |   12 +-
 sysdeps/arm/dl-tls.h                       |    3 -
 sysdeps/arm/nptl/tls.h                     |   12 +-
 sysdeps/generic/dl-dtv.h                   |   38 ++++
 sysdeps/generic/malloc-machine.h           |    8 -
 sysdeps/hppa/dl-tls.h                      |    3 -
 sysdeps/hppa/nptl/tls.h                    |   12 +-
 sysdeps/i386/dl-tls.h                      |    3 -
 sysdeps/i386/nptl/tls.h                    |   14 +--
 sysdeps/ia64/dl-tls.h                      |    3 -
 sysdeps/ia64/nptl/tls.h                    |   14 +--
 sysdeps/m68k/dl-tls.h                      |    3 -
 sysdeps/m68k/nptl/tls.h                    |   12 +-
 sysdeps/mach/hurd/bits/libc-lock.h         |    3 +-
 sysdeps/mach/hurd/fork.c                   |   13 ++
 sysdeps/mach/hurd/i386/tls.h               |   12 +-
 sysdeps/mach/hurd/malloc-machine.h         |   10 -
 sysdeps/microblaze/dl-tls.h                |    3 -
 sysdeps/microblaze/nptl/tls.h              |   12 +-
 sysdeps/mips/dl-tls.h                      |    3 -
 sysdeps/mips/nptl/tls.h                    |   13 +-
 sysdeps/nios2/dl-tls.h                     |    3 -
 sysdeps/nios2/nptl/tls.h                   |   12 +-
 sysdeps/nptl/bits/libc-lockP.h             |    1 +
 sysdeps/nptl/fork.c                        |   14 ++-
 sysdeps/nptl/malloc-machine.h              |   11 -
 sysdeps/powerpc/dl-tls.h                   |    3 -
 sysdeps/powerpc/nptl/tls.h                 |   12 +-
 sysdeps/s390/dl-tls.h                      |    3 -
 sysdeps/s390/nptl/tls.h                    |   14 +--
 sysdeps/sh/dl-tls.h                        |    3 -
 sysdeps/sh/nptl/tls.h                      |   12 +-
 sysdeps/sparc/dl-tls.h                     |    3 -
 sysdeps/sparc/nptl/tls.h                   |   12 +-
 sysdeps/tile/dl-tls.h                      |    3 -
 sysdeps/tile/nptl/tls.h                    |   12 +-
 sysdeps/unix/sysv/linux/i386/localplt.data |    8 +-
 sysdeps/x86_64/dl-tls.h                    |    3 -
 sysdeps/x86_64/localplt.data               |   19 ++
 sysdeps/x86_64/nptl/tls.h                  |   13 +--
 test-skeleton.c                            |    2 +
 80 files changed, 1979 insertions(+), 505 deletions(-)
 create mode 100644 malloc/malloc-internal.h
 create mode 100644 malloc/tst-interpose-aux-nothread.c
 create mode 100644 malloc/tst-interpose-aux-thread.c
 create mode 100644 malloc/tst-interpose-aux.c
 create mode 100644 malloc/tst-interpose-aux.h
 create mode 100644 malloc/tst-interpose-nothread.c
 create mode 100644 malloc/tst-interpose-skeleton.c
 create mode 100644 malloc/tst-interpose-static-nothread.c
 create mode 100644 malloc/tst-interpose-static-thread.c
 create mode 100644 malloc/tst-interpose-thread.c
 create mode 100644 malloc/tst-malloc-fork-deadlock.c
 create mode 100644 nptl/tst-tls3-malloc.c
 create mode 100644 sysdeps/generic/dl-dtv.h
 create mode 100644 sysdeps/x86_64/localplt.data