| Summary: | excessive heap trimming in threaded programs even when disabled with mallopt | ||
|---|---|---|---|
| Product: | glibc | Reporter: | Julian Taylor <jtaylor.debian> |
| Component: | malloc | Assignee: | Not yet assigned to anyone <unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | fweimer, neleai, siddhesh |
| Priority: | P2 | Flags: | fweimer:
security-
|
| Version: | 2.19 | ||
| Target Milestone: | --- | ||
| See Also: | https://sourceware.org/bugzilla/show_bug.cgi?id=18502 | ||
| Host: | Target: | ||
| Build: | Last reconfirmed: | ||
| Project(s) to access: | ssh public key: | ||
Yes that is known issue *** This bug has been marked as a duplicate of bug 1128 *** my issue is not with sbrk but with madvise in threaded applications which cannot be worked around by using mallopt like in the other bug. the trimming can be disabled in single threaded applications but not multithreaded ones. a patch has been posted on the list (not by me): https://sourceware.org/ml/libc-alpha/2015-02/msg00168.html I still think the duplicate is wrong, this is about madvise in threads, not sbrk. Right, it's not a duplicate. I'll have the patch pushed soon. 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 c26efef9798914e208329c0e8c3c73bb1135d9e3 (commit)
from a3d9ab5070b56b49aa91be2887fa5b118012b2cd (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=c26efef9798914e208329c0e8c3c73bb1135d9e3
commit c26efef9798914e208329c0e8c3c73bb1135d9e3
Author: Mel Gorman <mgorman@suse.de>
Date: Thu Apr 2 12:14:14 2015 +0530
malloc: Consistently apply trim_threshold to all heaps [BZ #17195]
Trimming heaps is a balance between saving memory and the system overhead
required to update page tables and discard allocated pages. The malloc
option M_TRIM_THRESHOLD is a tunable that users are meant to use to decide
where this balance point is but it is only applied to the main arena.
For scalability reasons, glibc malloc has per-thread heaps but these are
shrunk with madvise() if there is one page free at the top of the heap.
In some circumstances this can lead to high system overhead if a thread
has a control flow like
while (data_to_process) {
buf = malloc(large_size);
do_stuff();
free(buf);
}
For a large size, the free() will call madvise (pagetable teardown, page
free and TLB flush) every time followed immediately by a malloc (fault,
kernel page alloc, zeroing and charge accounting). The kernel overhead
can dominate such a workload.
This patch allows the user to tune when madvise gets called by applying
the trim threshold to the per-thread heaps and using similar logic to the
main arena when deciding whether to shrink. Alternatively if the dynamic
brk/mmap threshold gets adjusted then the new values will be obeyed by
the per-thread heaps.
Bug 17195 was a test case motivated by a problem encountered in scientific
applications written in python that performance badly due to high page fault
overhead. The basic operation of such a program was posted by Julian Taylor
https://sourceware.org/ml/libc-alpha/2015-02/msg00373.html
With this patch applied, the overhead is eliminated. All numbers in this
report are in seconds and were recorded by running Julian's program 30
times.
pyarray
glibc madvise
2.21 v2
System min 1.81 ( 0.00%) 0.00 (100.00%)
System mean 1.93 ( 0.00%) 0.02 ( 99.20%)
System stddev 0.06 ( 0.00%) 0.01 ( 88.99%)
System max 2.06 ( 0.00%) 0.03 ( 98.54%)
Elapsed min 3.26 ( 0.00%) 2.37 ( 27.30%)
Elapsed mean 3.39 ( 0.00%) 2.41 ( 28.84%)
Elapsed stddev 0.14 ( 0.00%) 0.02 ( 82.73%)
Elapsed max 4.05 ( 0.00%) 2.47 ( 39.01%)
glibc madvise
2.21 v2
User 141.86 142.28
System 57.94 0.60
Elapsed 102.02 72.66
Note that almost a minutes worth of system time is eliminted and the
program completes 28% faster on average.
To illustrate the problem without python this is a basic test-case for
the worst case scenario where every free is a madvise followed by a an alloc
/* gcc bench-free.c -lpthread -o bench-free */
static int num = 1024;
void __attribute__((noinline,noclone)) dostuff (void *p)
{
}
void *worker (void *data)
{
int i;
for (i = num; i--;)
{
void *m = malloc (48*4096);
dostuff (m);
free (m);
}
return NULL;
}
int main()
{
int i;
pthread_t t;
void *ret;
if (pthread_create (&t, NULL, worker, NULL))
exit (2);
if (pthread_join (t, &ret))
exit (3);
return 0;
}
Before the patch, this resulted in 1024 calls to madvise. With the patch applied,
madvise is called twice because the default trim threshold is high enough to avoid
this.
This a more complex case where there is a mix of frees. It's simply a different worker
function for the test case above
void *worker (void *data)
{
int i;
int j = 0;
void *free_index[num];
for (i = num; i--;)
{
void *m = malloc ((i % 58) *4096);
dostuff (m);
if (i % 2 == 0) {
free (m);
} else {
free_index[j++] = m;
}
}
for (; j >= 0; j--)
{
free(free_index[j]);
}
return NULL;
}
glibc 2.21 calls malloc 90305 times but with the patch applied, it's
called 13438. Increasing the trim threshold will decrease the number of
times it's called with the option of eliminating the overhead.
ebizzy is meant to generate a workload resembling common web application
server workloads. It is threaded with a large working set that at its core
has an allocation, do_stuff, free loop that also hits this case. The primary
metric of the benchmark is records processed per second. This is running on
my desktop which is a single socket machine with an I7-4770 and 8 cores.
Each thread count was run for 30 seconds. It was only run once as the
performance difference is so high that the variation is insignificant.
glibc 2.21 patch
threads 1 10230 44114
threads 2 19153 84925
threads 4 34295 134569
threads 8 51007 183387
Note that the saving happens to be a concidence as the size allocated
by ebizzy was less than the default threshold. If a different number of
chunks were specified then it may also be necessary to tune the threshold
to compensate
This is roughly quadrupling the performance of this benchmark. The difference in
system CPU usage illustrates why.
ebizzy running 1 thread with glibc 2.21
10230 records/s 306904
real 30.00 s
user 7.47 s
sys 22.49 s
22.49 seconds was spent in the kernel for a workload runinng 30 seconds. With the
patch applied
ebizzy running 1 thread with patch applied
44126 records/s 1323792
real 30.00 s
user 29.97 s
sys 0.00 s
system CPU usage was zero with the patch applied. strace shows that glibc
running this workload calls madvise approximately 9000 times a second. With
the patch applied madvise was called twice during the workload (or 0.06
times per second).
2015-02-10 Mel Gorman <mgorman@suse.de>
[BZ #17195]
* malloc/arena.c (free): Apply trim threshold to per-thread heaps
as well as the main arena.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
NEWS | 12 ++++++------
malloc/arena.c | 13 ++++++++++---
3 files changed, 22 insertions(+), 9 deletions(-)
Fixed in master. 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.22 has been created
at be75ddf5e4dfab2aa4ceb2428cc146e7ea26a346 (tag)
tagging 78bd7499af46d739ce94410eaeea006e874ca9e5 (commit)
replaces glibc-2.21
tagged by Carlos O'Donell
on Wed Aug 5 02:45:12 2015 -0400
- Log -----------------------------------------------------------------
The GNU C Library
=================
The GNU C Library version 2.22 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.22 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.22
=====================
* The following bugs are resolved with this release:
438, 4719, 6544, 6792, 11216, 12836, 13028, 13064, 13151, 13152, 14094,
14292, 14841, 14906, 14958, 15319, 15467, 15790, 15969, 16159, 16339,
16350, 16351, 16352, 16353, 16361, 16512, 16526, 16538, 16559, 16560,
16704, 16783, 16850, 17053, 17090, 17195, 17269, 17293, 17322, 17403,
17475, 17523, 17542, 17569, 17581, 17588, 17596, 17620, 17621, 17628,
17631, 17692, 17711, 17715, 17776, 17779, 17792, 17833, 17836, 17841,
17912, 17916, 17930, 17932, 17944, 17949, 17964, 17965, 17967, 17969,
17977, 17978, 17987, 17991, 17996, 17998, 17999, 18007, 18019, 18020,
18029, 18030, 18032, 18034, 18036, 18038, 18039, 18042, 18043, 18046,
18047, 18049, 18068, 18080, 18093, 18100, 18104, 18110, 18111, 18116,
18125, 18128, 18134, 18138, 18185, 18196, 18197, 18206, 18210, 18211,
18217, 18219, 18220, 18221, 18234, 18244, 18245, 18247, 18287, 18319,
18324, 18333, 18346, 18371, 18383, 18397, 18400, 18409, 18410, 18412,
18418, 18422, 18434, 18444, 18457, 18468, 18469, 18470, 18479, 18483,
18495, 18496, 18497, 18498, 18502, 18507, 18508, 18512, 18513, 18519,
18520, 18522, 18527, 18528, 18529, 18530, 18532, 18533, 18534, 18536,
18539, 18540, 18542, 18544, 18545, 18546, 18547, 18549, 18553, 18557,
18558, 18569, 18583, 18585, 18586, 18592, 18593, 18594, 18602, 18612,
18613, 18619, 18633, 18641, 18643, 18648, 18657, 18676, 18694, 18696.
* Cache information can be queried via sysconf() function on s390 e.g. with
_SC_LEVEL1_ICACHE_SIZE as argument.
* A buffer overflow in gethostbyname_r and related functions performing DNS
requests has been fixed. If the NSS functions were called with a
misaligned buffer, the buffer length change due to pointer alignment was
not taken into account. This could result in application crashes or,
potentially arbitrary code execution, using crafted, but syntactically
valid DNS responses. (CVE-2015-1781)
* The time zone file parser has been made more robust against crafted time
zone files, avoiding heap buffer overflows related to the processing of
the tzh_ttisstdcnt and tzh_ttisgmtcnt fields, and a stack overflow due to
large time zone data files. Overly long time zone specifiers in the TZ
variable no longer result in stack overflows and crashes.
* A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors
for LD and GD on x86 and x86-64, has been implemented. You will need
binutils-2.24 or later to enable this optimization.
* Character encoding and ctype tables were updated to Unicode 7.0.0, using
new generator scripts contributed by Pravin Satpute and Mike FABIAN (Red
Hat). These updates cause user visible changes, such as the fix for bug
17998.
* CVE-2014-8121 The NSS backends shared internal state between the getXXent
and getXXbyYY NSS calls for the same database, causing a denial-of-service
condition in some applications.
* Added vector math library named libmvec with the following vectorized x86_64
implementations: cos, cosf, sin, sinf, sincos, sincosf, log, logf, exp, expf,
pow, powf.
The library can be disabled with --disable-mathvec. Use of the functions is
enabled with -fopenmp -ffast-math starting from -O1 for GCC version >= 4.9.0.
Shared library libmvec.so is linked in as needed when using -lm (no need to
specify -lmvec explicitly for not static builds).
Visit <https://sourceware.org/glibc/wiki/libmvec> for detailed information.
* A new fmemopen implementation has been added with the goal of POSIX
compliance. The new implementation fixes the following long-standing
issues: BZ#6544, BZ#11216, BZ#12836, BZ#13151, BZ#13152, and BZ#14292. The
old implementation is still present for use be by existing binaries.
* The 32-bit sparc sigaction ABI was inadvertently broken in the 2.20 and 2.21
releases. It has been fixed to match 2.19 and older, but binaries built
against 2.20 and 2.21 might need to be recompiled. See BZ#18694.
* Port to Native Client running on ARMv7-A (--host=arm-nacl).
Contributed by Roland McGrath (Google).
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
Alexandre Oliva
Andreas Schwab
Andrew Senkevich
Andriy Rysin
Arjun Shankar
Aurelien Jarno
Benno Schulenberg
Brad Hubbard
Carlos O'Donell
Chris Metcalf
Christian Schmidt
Chung-Lin Tang
Cong Wang
Cyril Hrubis
Daniel Marjamäki
David S. Miller
Dmitry V. Levin
Eric Rannaud
Evangelos Foutras
Feng Gao
Florian Weimer
Gleb Fotengauer-Malinovskiy
H.J. Lu
Igor Zamyatin
J William Piggott
James Cowgill
James Lemke
John David Anglin
Joseph Myers
Kevin Easton
Khem Raj
Leonhard Holz
Mark Wielaard
Marko Myllynen
Martin Galvan
Martin Sebor
Matthew Fortune
Mel Gorman
Mike Frysinger
Miroslav Lichvar
Nathan Lynch
Ondřej Bílka
Paul Eggert
Paul Pluzhnikov
Pavel Kopyl
Pravin Satpute
Rajalakshmi Srinivasaraghavan
Rical Jasan
Richard Henderson
Roland McGrath
Rüdiger Sonderfeld
Samuel Thibault
Siddhesh Poyarekar
Stefan Liebler
Steve Ellcey
Szabolcs Nagy
Torvald Riegel
Tulio Magno Quites Machado Filho
Vincent Bernat
Wilco Dijkstra
Yaakov Selkowitz
Zack Weinberg
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABAgAGBQJVwbEHAAoJECXvCkNsKkr//nwH/RbC+AmWbbrY7POeygVVxZVv
6ww/s4WOx3MJc0VNhQucelDCmRVRfKdoqtiex2bcysOiK2mv6K4efgYV7dkilT5O
NhpjENGE2qCvRIeplmDdGDBTLwhxwcQoQXrFYtcayEXpeCHoJjSzY9PyeNWGvmLM
eEah8kVPh6FsNf/YD28MXtChCpfoZf5IrVhXvn7+f2zPjUEy1PuHmo2kU9LzoCRu
q3xtd8ICpVkAvFCoUnN7YEOITj3g9Qd+zGebfj8LpVL5zoQs9n2egSv+jIdNGQVI
XuQ+oVXuMd9ho1p6LayZpTsY19jALxgk8ysnTzBofi+1Zkc8FTEB0fFdplDIwMg=
=9uQ7
-----END PGP SIGNATURE-----
Adhemerval Zanella (36):
powerpc: multiarch Makefile cleanup for powerpc64
powerpc: Simplify bcopy default implementation
powerpc: Remove POWER7 wordcopy ifunc
powerpc: wordcopy/memmove cleanup for ppc64
powerpc: multiarch Makefile cleanup for powerpc32
powerpc: wordcopy/memmove cleanup for ppc32
powerpc: sysdeps/powerpc configure cleanup
powerpc: drop R_PPC_REL16 check
powerpc: Fix TABORT encoding for little endian
powerpc: Fix memmove static build
powerpc: Fix inline feraiseexcept, feclearexcept macros
Update powerpc-fpu ULPs.
powerpc: Fix incorrect results for pow when using FMA
powerpc: Remove HAVE_ASM_GLOBAL_DOT_NAME define
powerpc: Fix __wcschr static build
libc-vdso.h place consolidation
Fix non-portable echo usage in sysdeps/unix/make-syscalls.sh
Add BZ #16704 as fixed
Fix stdlib/tst-setcontext3 with dash [BZ#18418]
i386: Remove six-argument specialized implementations
Remove socket.S implementation
Consolidate vDSO macros and usage
Consolidate gettimeofday across aarch64/s390/tile
Update powerpc-fpu libm-test-ulps.
Fix ChangeLog entry
x86: clock_gettime and timespec_get vDSO cleanup
Use inline syscalls for non-cancellable versions
nptl: Rewrite cancellation macros
Consolidate sched_getcpu
x86: Remove vsyscall usage
libio: fmemopen rewrite to POSIX compliance
libio: Update tst-fmemopen2.c
libio: Update powerpc64le libc.abilist
Avoid C++ tests when the C++ cannot be linked
libio: Fix fmemopen 'w' mode with provided buffer
Update powerpc-fpu libm-test-ulps.
Alan Modra (5):
Fix localplt test breakage with new readelf
Remove HAVE_ASM_PPC_REL16 references
powerpc64 configure message
powerpc __tls_get_addr call optimization
Harden powerpc64 elf_machine_fixup_plt
Alexandre Oliva (6):
Unicode 7.0.0 update; added generator scripts.
Amendments to Unicode 7 update.
BZ #15969: search locale archive again after alias expansion
Fix constness error just introduced in findlocale.
Avoid unsafe loc_name type casts with additional variable
Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage
Andreas Schwab (16):
Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (bug 17912)
Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790)
Fix failure of elf/tst-audit2 when compiled with GCC-5
Fix read past end of pattern in fnmatch (bug 18032)
Fix parallel build error
Don't define __CORRECT_ISO_CPP_STRING_H_PROTO for non-GCC compilers (bug 17631)
m68k: fix 64-bit arithmetic in atomic operations (bug 18128)
aarch64: Increase MINSIGSTKSZ and SIGSTKSZ (bug 16850)
Separate internal state between getXXent and getXXbyYY NSS calls (bug 18007)
Simplify handling of nameserver configuration in resolver
Record TTL also for DNS PTR queries (bug 18513)
Fix buffer overflow for writes to memory buffer stream (bug 18549)
Update NEWS
m68k: update libm test ULPs
Fix spurious conform test failures
Properly terminate FDE in makecontext for ix86 (bug 18635)
Andrew Senkevich (29):
This is the beginning of series of patches with addition
Refactoring of START for conditions in individual tests
Last part of changes regarding to libm-test.inc: addition
This patch adds infrastructure for addition of SIMD
This is update for configure, build and install of vector math library.
Localplt testing for vector math library and libmvec_hidden_* macro series.
This patch adds detection of availability for AVX512F and AVX512DQ ISAs.
Start of series of patches with x86_64 vector math functions.
Addition of testing infrastructure for vector math functions.
Vector cosf for x86_64.
This patch adds vector cosf tests.
More strict check of AVX512 support in assembler.
Vector sin for x86_64 and tests.
Vector sinf for x86_64 and tests.
Vector log for x86_64 and tests.
Vector logf for x86_64 and tests.
Vector exp for x86_64 and tests.
Vector expf for x86_64 and tests.
Vector pow for x86_64 and tests.
Vector powf for x86_64 and tests.
Vector sincos for x86_64 and tests.
Vector sincosf for x86_64 and tests.
Fixed powerpc64 build.
Combination of data tables for x86_64 vector functions sin, cos and sincos.
Combination of data tables for x86_64 vector functions sinf, cosf and sincosf.
More correct description of linking with vector math library.
Fixed several libmvec bugs found during testing on KNL hardware.
Added runtime check for AVX vector math tests.
Prevent runtime fail of SSE vector math tests on non SSE4.1 machine.
Andriy Rysin (1):
Fix sorting order for Ukrainian locale (BZ 17293)
Arjun Shankar (4):
CVE-2015-1781: resolv/nss_dns/dns-host.c buffer overflow [BZ#18287]
Ensure `wint_t' is defined before use in include/stdio.h
Modify elf/tst-audit9.c to use test-skeleton.c
Modify several tests to use test-skeleton.c
Aurelien Jarno (1):
Fix ldconfig segmentation fault with corrupted cache (Bug 18093).
Benno Schulenberg (1):
sprof: Make an error message identical to two others, and more accurate.
Brad Hubbard (1):
Use calloc to allocate xports (BZ #17542)
Carlos O'Donell (15):
Open development for 2.22.
Fix missing ChangeLog attribution.
NEWS: Fix spelling.
Use alignment macros, pagesize and powerof2.
hppa: Update libm-test-ulps.
hppa: Fix feupdateenv and fesetexceptflag (Bug 18111).
Enhance nscd's inotify support (Bug 14906).
Bug 18125: Call exit after last linked context.
Fail locale installation if localedef fails.
Add sprintf benchmark.
Fix ruserok scalability with large ~/.rhosts file.
Add missing Advanced API (RFC3542) (1) defines.
Regenerate libc.pot for 2.22 release.
Updated translations for 2.22.
Update version.h and include/features.h for 2.22 release
Chris Metcalf (8):
linux-generic: add a README
tile: Enable PI_STATIC_AND_HIDDEN
tile: use better variable naming in INLINE_SYSCALL
math/test-fenvinline: avoid compiler warning
tile: Regenerate ULPs.
tst-leaks: raise timeout to 5 seconds
tile: Fix BZ #18508 (makecontext yield infinite backtrace)
tilepro: fix warnings in sysdeps/tile/tilepro/bits/atomic.h
Christian Schmidt (1):
Update currency_symbol in da_DK
Chung-Lin Tang (5):
Adjust timeouts for some tests, to accommodate slow processors,
Fix order of arguments to rt_sigprocmask syscall when setting the signal mask
Update Nios II ulps file.
Add #include <string.h> to nptl/tst-join7mod.c to silence GCC warnings.
Fixes extern protected data handling testcases elf/tst-protected1a
Cong Wang (1):
in.h: Coordinate in6_pktinfo and ip6_mtuinfo for kernel and glibc [BZ #15850]
Cyril Hrubis (1):
Set errno to ENOMEM on overflow in sbrk (bug 18592)
Daniel Marjamäki (1):
Add __nonnull attribute to wcscpy and wcsncpy [BZ#18265]
David S. Miller (7):
Update SPARC ulps.
Rebuilt fresh sparc ULPS to get rid of removed tests.
Convert sparc over to lowlevellock-futex.h
Sparc memchr/memcmp/strncmp fixes from Il'ya Malakhov.
Update sparc localplt.data
Fix sparc build.
Regenerate SPARC ULPs.
Dmitry V. Levin (3):
Prepare for restoration of .interp section in libpthread.so
_res_hconf_reorder_addrs: fix typo in comment
Fix potential hanging of gethostbyaddr_r/gethostbyname_r
Eric Rannaud (1):
linux: open and openat ignore 'mode' with O_TMPFILE in flags
Evangelos Foutras (1):
Fix __memcpy_chk on non-SSE2 CPUs
Feng Gao (1):
Use "|" instead of "+" when combine the _IO_LINE_BUF and _IO_UNBUFFERED flags
Florian Weimer (32):
NEWS: Also mention CVE-2015-1473
_nss_nis_initgroups_dyn: Return status instead of NSS_STATUS_SUCCESS
vfprintf: Introduce THOUSANDS_SEP_T
vfprintf: Introduce JUMP_TABLE_BASE_LABEL
vfprintf: Define WORK_BUFFER_SIZE
Avoid SIGFPE in wordexp [BZ #18100]
pthread_setaffinity (Linux variant): Rewrite to use VLA instead of alloca
Define libc_max_align_t for internal use
Add struct scratch_buffer and its internal helper functions
scratch_buffer_grow_preserve: Add missing #include <string.h>
pldd: Use struct scratch_buffer instead of extend_alloca
grp: Rewrite to use struct scratch_buffer instead of extend_alloca
_nss_compat_initgroups_dyn: Use struct scratch_buffer instead of extend_alloca
getnameinfo: Use struct scratch_buffer instead of extend_alloca
nscd_getgr_r: Use struct scratch_buffer instead of extend_alloca
scratch_buffer: Suppress truncation warning on 32-bit
Do not build with -Winline
Make time zone file parser more robust [BZ #17715]
posix_fallocate, posix_fallocate64 stub: Do not set errno
test-skeleton: Support temporary files without memory leaks [BZ#18333]
CVE-2014-8121: Do not close NSS files database during iteration [BZ #18007]
NEWS: BZ#18319 was fixed in commit ed159672eb3cd650a32b7e5cb4d5ec1fe0e63802
i386: Remove fallocate, fallocate64, posix_fallocate, posix_fallocate64
__ASSUME_FALLOCATE is always true on 32-bit architectures
vfprintf: Move jump table definition and the macros out of function
vfprintf: Introduce printf_positional function
vfprintf: Remove label name switching for the jump table
Avoid some aliasing violations in libio
Fix indentation to match nesting in previous commit
posix_fallocate: Emulation fixes and documentation [BZ #15661]
Commit 7fe9e2e089f4990b7d18d0798f591ab276b15f2b fixes [BZ# 17322]
pthread_key_create: Fix typo in comment
Gleb Fotengauer-Malinovskiy (1):
nptl: restore .interp section in libpthread.so
H.J. Lu (23):
Compile gcrt1.o with -fPIC
Compile vismain with -fPIE and link with -pie
Replace ELF_RTYPE_CLASS_NOCOPY with ELF_RTYPE_CLASS_COPY
Replace __attribute__((visibility("protected")))
Preserve bound registers in _dl_runtime_resolve
Add ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA to x86
Add a testcase for copy reloc against protected data
Limit threads sharing L2 cache to 2 for SLM/KNL
Check tzspec_len == 0 in __tzfile_read
Remove a trailing `\' in make-syscalls.sh
Don't issue an error if DT_PLTRELSZ is missing
Make sure that calloc is called at least once
Don't issue errors on GDB Python files
Align TCB offset to the maximum alignment
Support compilers defaulting to PIE
Add a testcase for i386 LD_AUDIT
Add and use sysdeps/i386/link-defines.sym
Add la_symbind32 to x86-64 audit tests
Improve bndmov encoding with zero displacement
Replace %ld with %jd and cast to intmax_t
Sort NEWS
Add si_addr_bnd to _sigfault in x86 struct siginfo
Extend local PLT reference check
Igor Zamyatin (1):
Preserve bound registers for pointer pass/return
J William Piggott (1):
[BZ #17969]
James Cowgill (1):
[BZ #17930] MIPS: Define SHM_NORESERVE.
James Lemke (1):
Fix for test "malloc_usable_size: expected 7 but got 11"
John David Anglin (2):
hppa: fix __O_SYNC to match the kernel
hppa: Fix feholdexcpt and fesetenv (Bug 18110).
Joseph Myers (162):
soft-fp: Support floating-point extensions without quieting sNaNs.
soft-fp: Refine FP_EX_DENORM handling for comparisons.
soft-fp: Fix _FP_FMA when product is zero and third argument is finite (bug 17932).
Remove sysdeps/mips soft-fp subdirectories.
Fix sincos errno setting (bug 15467).
Fix exp2 spurious underflows (bug 16560).
Fix powerpc software sqrt (bug 17964).
Fix powerpc software sqrtf (bug 17967).
Fix dbl-64/wordsize-64 remquo (bug 17569).
Fix MIPS __mips_isa_rev -Werror=undef build.
Fix MIPS _COMPILING_NEWLIB -Werror=undef build.
Fix MIPS _ABIO64 -Werror=undef build.
Fix remquo spurious overflows (bug 17978).
Fix sign of remquo zero remainder in round-downward mode (bug 17987).
Refine documentation of libm exceptions goals.
Fix posix_spawn getrlimit64 namespace (bug 17991).
Fix search.h namespace (bug 17996).
Fix atan / atan2 missing underflows (bug 15319).
Fix scandir scandirat namespace (bug 17999).
soft-fp: Adjust call to abort for kernel use.
Fix x86/x86_64 scalb (qNaN, -Inf) (bug 16783).
Fix ldbl-128ibm acoshl inaccuracy (bug 18019).
Fix ldbl-128ibm asinhl inaccuracy (bug 18020).
Fix ldbl-128ibm ilogbl near powers of 2 (bug 18029).
Fix ldbl-128ibm logbl near powers of 2 (bug 18030).
Fix asin missing underflows (bug 16351).
Fix ldbl-128/ldbl-128ibm acosl inaccuracy (bug 18038, bug 18039).
Avoid uninitialized warnings in Bessel functions.
Avoid -Wno-write-strings for k_standard.c.
Add comment to CSTR macro in k_standard.c.
Fix ldbl-96, ldbl-128ibm atanhl inaccuracy (bug 18046, bug 18047).
Correct __ASSUME_PRLIMIT64 for hppa/microblaze/sh (bug 17779).
soft-fp: Condition sfp-machine.h include path on __KERNEL__.
Fix /* in comment in previous commit.
soft-fp: Support conditional zero-initialization in declarations.
soft-fp: Use multiple-include guards.
Add test for bug 18104.
soft-fp: Add _FP_UNREACHABLE.
soft-fp: Define and use _FP_STATIC_ASSERT.
Make sem_timedwait use FUTEX_CLOCK_REALTIME (bug 18138).
Note old commit as having resolved bug 11505.
Add more tests of log2.
Regenerate x86_64, x86 ulps from scratch.
Add more tests of cosh, sinh.
Add more tests of expm1.
Add more tests of acos.
Support six-argument syscalls from C for 32-bit x86, use generic lowlevellock-futex.h (bug 18138).
Add more tests of asin.
Remove unused macros from i386 lowlevellock.h.
Add another test of asin.
Add more tests of acosh, asinh and atanh.
Fix dbl-64 atan in non-default rounding modes (bug 18197).
Fix dbl-64 atan2 in non-default rounding modes (bug 18210, bug 18211).
Add more tests of cabs.
Add more tests of cbrt.
Add more tests of atan.
Add more tests of atanh.
Add more tests of clog and clog10.
Fix strtof decimal rounding close to half least subnormal (bug 18247).
Fix ldbl-128 roundl for exponents in [31, 47] (bug 18346).
Remove MIPS version of waitid.c.
Add further tests of cosh and sinh.
Add more tests of csqrt.
Add more tests of erf, erfc.
Add more tests of exp, exp10, exp2, expm1.
Add more tests of log, log10, log1p, log2.
Add more tests of lgamma.
Add another test of pow.
Add more tests of cos, sin, sincos.
Add more tests of tan.
Add more tests of tanh.
Add more tests of tgamma.
Add more tests of libm functions.
Add further tests of libm functions.
Add more tests of acosh, atanh, cos, csqrt, erfc, sin, sincos.
Add more tests of csqrt, lgamma, log10, sinh.
Fix mips16 __fpu_control static linking (bug 18397).
Fix linknamespace test handling of architecture-specific st_other.
Fix log1p missing underflows (bug 16339).
Fix atanf spurious underflows (bug 18196).
Fix erfcf spurious underflows (bug 18217).
Fix lgammaf spurious underflows (bug 18220).
Fix tanf spurious underflows (bug 18221).
Fix atanhl missing underflows (bug 16352).
Fix i386 atanhl spurious underflows (bug 18049).
Fix ldbl-96 remquol (finite, Inf) (bug 18244).
conformtest: clean up POSIX expectations for unistd.h.
conformtest: correct POSIX expectations for locale.h.
conformtest: use proper _POSIX_C_SOURCE value for POSIX.
linknamespace: whitelist re_syntax_options.
Fix sysdeps/ieee754/dbl-64/mpa.c for -Wuninitialized.
Fix lgamma implementations for -Wuninitialized.
Fix pathconf basename namespace (bug 18444).
Restore _POSIX2_C_VERSION definition (bug 438).
Fix ldbl-128 / ldbl-128ibm asinl for -Wuninitialized.
Fix ldbl-128 / ldbl-128ibm erfcl for -Wuninitialized
Fix ldbl-128 / ldbl-128ibm tanl for -Wuninitialized.
Fix soft-fp fma for -Wuninitialized.
Fix fnmatch towlower namespace (bug 18469).
Use libc_hidden_proto / libc_hidden_def with __strnlen.
Use better variable names in MIPS syscall macros.
Fix fnmatch wmemchr namespace (bug 18468).
Fix fnmatch strnlen namespace (bug 18470).
Fix regex wctype namespace (bug 18495).
Fix psignal, psiginfo declaration conditions (bug 18483).
Fix regex wcrtomb namespace (bug 18496).
Fix open_memstream namespace (bug 18498).
Say "C++ tests" in comment on __open_memstream declaration.
Fix pathconf statvfs namespace (bug 18507).
Fix regcomp wcscoll, wcscmp namespace (bug 18497).
Fix h_errno namespace (bug 18520).
Fix ecvt_r, fcvt_r namespace (bug 18522).
Fix aio_* pread namespace (bug 18519).
Fix getlogin_r namespace (bug 18527).
Fix grp.h endgrent, getgrent namespace (bug 18528).
Fix netdb.h addrinfo namespace (bug 18529).
Fix syslog fputs_unlocked namespace (bug 18530).
Fix linknamespace expectations for in6addr_any, in6addr_loopback.
Fix gethostbyaddr in6addr_any, in6addr_loopback namespace (bug 18532).
Fix vsyslog namespace (bug 18533).
Fix syslog dprintf namespace (bug 18534).
Fix sem_* tdelete, tfind, tsearch, twalk namespace (bug 18536).
Fix fmtmsg addseverity namespace (bug 18539).
Fix getpass fflush_unlocked namespace (bug 18540).
Fix swscanf vswscanf namespace (bug 18542).
Fix mq_notify pthread_barrier_* namespace (bug 18544).
Create hidden aliases for non-libc syscalls automatically.
Fix mq_receive, mq_send mq_timed* namespace (bug 18545).
Fix mq_notify socket, recv namespace (bug 18546).
Fix ttyslot namespace (bug 18547).
Fix nice getpriority, setpriority namespace (bug 18553).
Remove ldbl-128ibm variants of complex math functions.
Fix netinet/in.h MCAST_* namespace (bug 18558).
Remove stray spurious-underflow markings from cexp test.
Remove include/bits/ipc.h.
Fix asinh missing underflows (bug 16350).
conformtest: Support xfail markers on individual assertions.
conformtest: Fix pselect expectations.
Fix x86 / x86_64 expl, exp10l missing underflows (bug 16361).
Correct ChangeLog syntax for conditional change within function.
Fix x86_64 / x86 expm1l (-min_subnorm) result sign (bug 18569).
Fix expm1 missing underflows (bug 16353).
Fix exp2, exp2f spurious underflows (bug 18219).
Fix csqrt spurious underflows (bug 18371).
Fix math/Makefile dependency on libm-test.stmp for libmvec tests.
Fix spurious "inexact" exceptions from __kernel_standard_l (bug 18245, bug 18583).
Fix sin, sincos missing underflows (bug 16526, bug 16538).
Fix ldbl-128 expl missing underflows (bug 18586).
Fix csin, csinh overflow in directed rounding modes (bug 18593).
Move csin, csinh tests to auto-libm-test-in.
Fix cexp, ccos, ccosh, csin, csinh spurious underflows (bug 18594).
Refactor libm tests.
Use round-to-nearest internally in jn, test with ALL_RM_TEST (bug 18602).
Update headers for Linux 4.0, 4.1 definitions.
Fix j1, jn missing underflows (bug 16559).
Fix ldbl-128 j1l spurious underflows (bug 18612).
Improve tgamma accuracy (bug 18613).
Regenerate MIPS libm-test-ulps.
Regenerate ARM libm-test-ulps.
Regenerate powerpc-nofpu libm-test-ulps.
Fix ldbl-128 expm1l (-min_subnorm) result sign (bug 18619).
Mark bug 2981 (elf/tst-audit* fail on MIPS) as fixed.
Kevin Easton (1):
Reduce lock contention in __tz_convert() [BZ #16145] (partial fix)
Khem Raj (2):
Reflect renaming of bh_IN and tu_IN in SUPPORTED file [BZ #17475]
locale: Do not define lang_ab for tcy_IN and bhb_IN
Leonhard Holz (6):
Remove unused definitions
Improve strcoll with strdiff.
Split locale generation snippet into a separate file
Add strcoll benchmark
remove now unused idxnow in strcoll
remove unnecessary memset in strcoll
Mark Wielaard (2):
elf.h SHF_EXCLUDE signed int 31 bit shift triggers undefined behaviour.
elf.h: Add section compression constants and structures.
Marko Myllynen (4):
Fix bo_CN and bo_IN.
Fix monetary.h comment
Remove unused PREDEFINED_CLASSES code
locale: Remove obsolete repertoire map references
Martin Galvan (2):
NPTL: swap comments for THREAD_SETMEM and THREAD_SETMEM_NC for i386 and x86_64
NPTL: Remove duplicate definition of PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
Martin Sebor (4):
powerpc: setcontext.S uses power6 mtfsf when not supported [BZ #18116]
Attempting to install glibc configured with --prefix=/usr into
The C++ 2011 std::call_once function is specified to allow
The patch committed to fix bug #18435 caused regressions on aarch64
Matthew Fortune (2):
ia64: remove fixed page size macros and others [BZ #17792]
Add support for DT_MIPS_RLD_MAP_REL.
Mel Gorman (2):
malloc: Consistently apply trim_threshold to all heaps [BZ #17195]
malloc: Do not corrupt the top of a threaded heap if top chunk is MINSIZE [BZ #18502]
Mike Frysinger (27):
ia64: drop custom getpagesize
hppa: fix build failure with RTLD_PRIVATE_ERRNO
add changelog for previous commit
alloca: fix buf interaction
manual: drop strerror C89 compatibility note
hppa: update __O_SYNC fix with [BZ #18068]
pwd.h: add __nonnull markings [BZ #18641]
nscd: drop selinux/flask.h include
tst-tzset: raise timeout to 5 seconds
hppa/ia64: _dl_symbol_address: add PLT bypass for rtld
hppa/ia64: _dl_unmap: make it hidden
sparc: fix sigaction for 32bit builds [BZ #18694]
ia64: siginfo.h: delete siginfo name
ia64: sifaction.h: change sa_flags to an int
ia64: stat.h: rename pad0 to __glibc_reserved0
ia64: msg.h: fix msg_qnum/msg_qbytes types
ia64: sigaction.h: fix sa_flags ordering
conform/linknamespace: whitelist matherrf/matherrl
pwd.h: revert __nonnull markings on putpwent [BZ #18641]
ia64: clean up old kernel headers cruft
ia64: atomic.h: fix atomic_exchange_and_add 64bit handling
ia64: drop __tls_get_addr from expected ld.so plt usage
hppa: rewrite INLINE_SYSCALL
hppa: fix sysdep.h header setup
hppa: sigaction.h: change sa_flags to an int
hppa: fix pthreadtypes.h namespace failures
hppa: add bz entry for pthreadtypes.h fix
Miroslav Lichvar (1):
Update timex.h for ADJ_SETOFFSET.
Nathan Lynch (1):
ARM: VDSO support
Ondřej Bílka (2):
Handle mblen return code when n is zero.
Use strspn/strcspn/strpbrk ifunc in internal calls.
Paul Eggert (6):
Add ersatz _Static_assert on older C hosts
* manual/time.texi (TZ Variable): glibc no longer comes with tzdata.
* stdlib/setenv.c (__add_to_environ):
* stdlib/setenv.c (__add_to_environ): Revert previous change.
Better fix for setenv (..., NULL, ...)
Remove obsolete aliases that broke 'locale -a'
Paul Pluzhnikov (13):
Cleanup: add missing #include's
Fix BZ #17269 -- _IO_wstr_overflow integer overflow
Fix BZ #17916 - fopen unbounded stack usage for ccs= modes
Fix minor formatting violation.
Fix BZ 18036 buffer overflow (read past end of buffer) in internal_fnmatch
Fix BZ #18043: buffer-overflow (read past the end) in wordexp/parse_dollars/parse_param
Cleanup: in preparation for fixing BZ #16734, fix memory leaks exposed by
Refactor wordexp-test.c such that words always ends at the edge of
Fix off-by-one which caused BZ #18042 and add a test for it.
Mention BZ #18042 in NEWS.
Fix BZ #18043 (c4): buffer-overflow (read past the end) in wordexp/parse_dollars/parse_param
Minor refactoring:
Fix BZ #18043 comment # 19: don't call undefined setenv(..., NULL, 1).
Pavel Kopyl (1):
Add forced deletion support to _dl_close_worker
Pravin Satpute (1):
Correcting language code for Bhili and Tulu locales (bug 17475)
Rajalakshmi Srinivasaraghavan (2):
powerpc: POWER7 strncpy optimization for unaligned string
powerpc: strstr optimization
Rical Jasan (1):
manual: complete example in error message documentation
Richard Henderson (5):
alpha: Unconditionally include dl-sysdep.h in sysdep.h
alpha: Update libm-test-ulps
math/test-fenvinline: Cast fe_exc to unsigned int before printing
alpha: Update libm-test-ulps
soft-fp: Fix alpha kernel build problem
Roland McGrath (97):
Clean up sysdep-dl-routines variable.
Exclude rpcent functions and NSS backends for rpc, key when excluding sunrpc.
x86: Clean up __vdso_clock_gettime variable.
Clean up NPTL fork to be compat-only.
Clean up NPTL longjmp to be compat-only.
Clean up NPTL system to be compat-only.
Clean up nptl/tst-join5 use of nanosleep.
Fix nptl/tst-kill5 not to presume SIGRTMAX exists.
Fix dirent/tst-fdopendir not to presume O_NOATIME exists.
Fix libio/tst-atime not to presume ST_NOATIME exists.
Move tst-getlogin to login/ subdirectory.
Do not use SA_NOCLDWAIT in tst-pselect.
Conditionalize some tests' use of SA_SIGINFO.
Use signal rather than sigaction in nptl/tst-cleanup2.
NPTL: Build tests using clone directly only for Linux.
Don't set unused field in rt/tst-timer2.
Conditionalize use of SIGRTMIN in nptl/tst-locale1.c.
NPTL: Conditionalize some sanity tests for SIGCANCEL/SIGSETXID.
ARM: Add missing sfi_breg in LDR_GLOBAL macro.
Clean up math/test-snan.
Pointless update in README.
Another pointless update in README.
Support after-link variable to run a final step on binaries.
Use -Werror=undef for assembly code.
NPTL: Initializer for .init_array-only configurations.
Add placeholder c++-types.data and *.abilist files.
Don't crash in iconv setup when getcwd fails.
Convert tst-iconv5 to use test-skeleton.
Convert tst-iconv3 to use test-skeleton.
Convert dlfcn/tststatic2 to use test-skeleton.
Deglobalize internal variables in timer_routines.c.
Avoid C++ tests when the C++ cannot be linked.
Avoid more C++ tests.
Conditionalize some test code for SIGRTMIN, SA_SIGINFO.
Split rpcent tests out of tst-netdb.
Define ETH_ALEN in generic <netinet/if_ether.h>.
Avoid re-exec-self in bug-setlocale1.
ChangeLog format
Document test-wrapper-env-only in INSTALL.
Harmonize posix/regcomp.c with gnulib: comment formatting
Let tests result in UNSUPPORTED; use that for unbuildable C++ cases
ARM: Rewrite sysdeps/arm/tls-macros.h
ARM: Fix memcpy & memmove for [ARM_ALWAYS_BX]
Minor cleanups in libio/iofdopen.c
Convert dlfcn/tststatic to use test-skeleton.
Make test-skeleton.c grok TEST_DIRECT magic environment variable.
Let non-add-on preconfigure scripts set libc_config_ok.
Omit libc-modules.h for all .v.i files.
Add arm-nacl port.
Fuller check for invalid NSID in _dl_open.
Avoid confusing compiler with dynamically impossible statically invalid dereference in _dl_close_worker.
ARM: Define PI_STATIC_AND_HIDDEN.
NaCl: Make __suseconds_t be long int rather than int32_t.
NaCl: Fix symbol names for euidaccess.
NaCl: Change clock_t to long int.
NaCl: Fix elf_loader file name in nacl-test-wrapper.sh
BZ#18383: Add test case for large alignment in TLS blocks.
NaCl: Implement gethostname.
NaCl: Provide non-default values for uname.
Add a test case for scandir.
Break __scandir_cancel_handler out into its own file.
Refactor scandir/scandirat to use common tail.
Nit fixes in last change.
NaCl: Make fdopendir skip fcntl check.
Refactor opendir.
BZ#18434: Fix sem_post EOVERFLOW check for [!__HAVE_64B_ATOMICS].
BZ#18434: Mark fixed in NEWS.
Move usleep.c using nanosleep to sysdeps/posix.
NaCl: Set tid field to a unique value.
Fix nptl-init.c use of INTERNAL_SYSCALL_DECL.
Split timed-wait functions out of nptl/lowlevellock.c.
NaCl: Add NaCl-specific __lll_timedlock_wait.
NaCl: Fix thinko in last change.
NaCl: Fix lll_futex_timed_wait timeout calculation.
NaCl: Make thread exit wake pthread_join.
Fix setenv.c diagnostic pragma to be compatible with GCC 4.6
BZ#18383: Another test case, with TLS refs and defs in separate TUs.
NaCl: Implement nacl_interface_ext_supply entry point.
Line-wrap some log entries.
Print more information in tst-getcpu failure case.
NaCl: Fix glob.c build after getlogin_r -> __getlogin_r.
Use unsigned types for counters in AIO code.
Use unsigned types for counters in getaddrinfo_a code.
NPTL: Use unsigned type for setxid_futex.
Install a dummy <rpc/netdb.h> when not building sunrpc/.
Fix some places to use $(LN_S) makefile variable.
BZ#18383: Conditionalize test-xfail-tst-tlsalign{,-static} on ARM assembler bug.
PLT avoidance for _exit in rtld.
Provide __libc_fatal for rtld.
NaCl: Make pthread_condattr_setclock reject CLOCK_MONOTONIC.
Factor file identity rules out of generic rtld code.
Add abilist files and NEWS item for arm-nacl port.
NaCl: Use only nacl_irt_dev_filename, never nacl_irt_filename.
NaCl: Fix missing getdtablesize symbol.
Add SIGWINCH to generic <bits/signum.h>.
Make sysdeps/posix bring in login subdir.
NaCl: Remove bogus O_SHLOCK, O_EXLOCK definitions.
Rüdiger Sonderfeld (1):
Document tv_sec is of type time_t:
Samuel Thibault (28):
hurd: fix build with pthread aio
hurd: fix f?chflags prototypes, declare them and their flags
hurd: allow poll() array bigger than FD_SETSIZE
hurd: map nice levels 1-to-1 with Mach prio levels
hurdselect: Let select get interrupted by signals
hurd: fix sigstate locking
hurdselect: remove dead code.
hurd: support mmap with PROT_NONE
hurd: add basic types for ioctls
hurd: fix compilation of signal.h in C++
hurd: fix compilation of signal.h in C++
hurd: Ignore bytes beyond sockaddr length for AF_UNIX
hurd: fix tls.h build
hurd: Fix abi-tag, following ba90e05
Fix time/getdate.c build.
add hurd/hurdsocket.h file missing from a5eb23d
hurd: fix unwind-resume.c build
hurd: fix unwind-resume.c build
Add fixed bug numbers to NEWS
Revert "hurd: Fix abi-tag, following ba90e05"
Fix aio_error thread-safety.
hurd: Make libc able to call pthread stubs
Add missing dependency
Fix warnings
Fix visibility of EXTPROC macro
Add more exception to local headers list
mach: fix typo
hurd: permit to use mlock from non-root process
Siddhesh Poyarekar (25):
Consolidate arena_lookup and arena_lock into a single arena_get
Skip logging for DNSSEC responses [BZ 14841]
Fix up NEWS merge goof-up
Update NEWS
Minor changelog fixup
Add *.pyc to .gitignore
Add envz_remove to the libc manual
Succeed if make check does not report any errors
Avoid deadlock in malloc on backtrace (BZ #16159)
Fix typo in safety annotations in envz_remove
Fix monetary.h comment
New module to import and process benchmark output
benchtest: script to compare two benchmarks
Avoid boolean coercion in tst-tls-atexit test case
Remove unnecessary mutex locks from tst-tls-atexit test case
Whitespace fix in tst-tls-atexit.c
Fix up ChangeLog
Fix up typo in tst-tls-atexit
Set NODELETE flag when opening already open objects with RTLD_NODELETE
Whitespace fixup in cxa_thread_atexit_impl.c
Add comment to clarify how the test can fail
Remove Linuxism from tst-tls-atexit
Also use l_tls_dtor_count to decide on object unload (BZ #18657)
Mention dl_load_lock by name in the comments
Use IE model for static variables in libc.so, libpthread.so and rtld
Stefan Liebler (18):
S390: Build failure due to nptl/pt-longjmp.c changes.
s390: Use generic lowlevellock-futex.h
S/390: Regenerate ULPs
S/390: Fix setcontext/swapcontext which are not restoring sigmask.
Update tst_mbrlen/tst_mbrtowc for mblen change
Set errno for log1p on pole/domain error.
Use correct signedness in wcsncmp
S/390: Get cache information via sysconf
S/390: Regenerate ULPs
Adjust tst-strfmon1 after da_DK locale change.
S/390: Regenerate ULPs
Fix timezone tests run in parallel.
Fix benchtests build failure after 'add benchmark for strcoll'
S390: Fix sem.h conformance test failures.
S390: Regenerate ULPs.
S390: Fix "backtrace() returns infinitely deep stack frames with makecontext()" [BZ #18508].
S390: Regenerate ULPs
i686: Mark stdlib/tst-makecontext as XFAIL.
Steve Ellcey (6):
2015-02-13 Steve Ellcey <sellcey@imgtec.com>
2015-02-17 Steve Ellcey <sellcey@imgtec.com>
2015-02-17 Steve Ellcey <sellcey@imgtec.com>
2015-02-18 Steve Ellcey <sellcey@imgtec.com>
* inet/rcmd.c (rresvport_af): Change ss to anonymous union
* resolv/res_hconf.c (_res_hconf_reorder_addrs): Use a union to
Szabolcs Nagy (11):
[AArch64] Fix the big endian loader name.
[AArch64] Fix inline asm clobber list in tls-macros.h
struct stat is not posix conform
[BZ 18034][AArch64] Lazy TLSDESC relocation data race fix
[AArch64] Fix cfi_adjust_cfa_offset usage in dl-tlsdesc.S
Regenerate aarch64 libm-test-ulps
[AArch64] make setcontext etc functions consistent with the kernel
[AArch64][BZ 18400] fix elf_prpsinfo in procfs.h
[AArch64][BZ 18648] change greg_t definition in ucontext.h
[AArch64][BZ #17711] Fix extern protected data handling
[ARM][BZ #17711] Fix extern protected data handling
Torvald Riegel (11):
Make error checking effective in nptl/tst-cond25.c.
ia64: Remove custom lowlevellock.h
Fix lost wake-up when pthread_rwlock_timedrwlock times out.
Fix missing wake-ups in pthread_rwlock_rdlock.
Fix atomic_full_barrier on x86 and x86_64.
Clean up BUSY_WAIT_NOP and atomic_delay.
Remove documentation of lowlevellock systemtap probes.
Do not create invalid pointers in C code of string functions.
Add and use new glibc-internal futex API.
Clean up semaphore EINTR handling after Linux futex docs clarification.
hppa: Remove custom lowlevellock.h.
Tulio Magno Quites Machado Filho (2):
BZ #18116: Mark fixed in NEWS.
Avoid outputting to TTY after an expected memory corruption in testcase
Vincent Bernat (1):
time: ensure failing strptime() tests are reported correctly
Wilco Dijkstra (14):
Rather than using a C implementation of memset, directly call memset, which
Rather than using a C implementation of memmove, directly call memmove, which
Use __copysign rather than copysign.
2015-05-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
Remove various ABS macros and replace uses with fabs (or in one case abs)
Add missing math_private includes.
2015-05-28 Wilco Dijkstra <wdijkstr@arm.com>
2015-06-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
This patch renames all uses of __isinf*, __isnan*, __finite* and __signbit* to use standard C99 macros. This has no effect on generated code.
Replace finite with isfinite.
Remove unused file sysdeps/ieee754/support.c
Inline __ieee754_sqrt and __ieee754_sqrtf. Also add external definitions.
Optimize the strlen implementation by using a page cross check and a fast check
Add AArch64 versions of math_opt_barrier and math_force_eval that avoid going via memory.
Yaakov Selkowitz (1):
manual: fix XPG basename prototype
Zack Weinberg (1):
Deprecate the use of regexp.h
-----------------------------------------------------------------------
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 e4bc326dbbf7328775fe7dd39de1178821363e0a (commit)
from 58a3a98d8f3488b659318b1a1c6efc169a6f06bf (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=e4bc326dbbf7328775fe7dd39de1178821363e0a
commit e4bc326dbbf7328775fe7dd39de1178821363e0a
Author: Carlos O'Donell <carlos@systemhalted.org>
Date: Wed Oct 7 22:21:36 2015 -0400
malloc: Consistently apply trim_threshold to all heaps (Bug 17195)
In the per-thread arenas we apply trim_threshold-based checks
to the extra space between the pad and the top_area. This isn't
quite accurate and instead we should be harmonizing with the way
in which trim_treshold is applied everywhere else like sysrtim
and _int_free. The trimming check should be based on the size of
the top chunk and only the size of the top chunk. The following
patch harmonizes the trimming and make it consistent for the main
arena and thread arenas.
In the old code a large padding request might have meant that
trimming was not triggered. Now trimming is considered first based
on the chunk, then the pad is subtracted, and the remainder trimmed.
This is how all the other trimmings operate. I didn't measure the
performance difference of this change because it corrects what I
consider to be a behavioural anomaly. We'll need some profile driven
optimization to make this code better, and even there Ondrej and
others have better ideas on how to speedup malloc.
Tested on x86_64 with no regressions. Already reviewed by Siddhesh
Poyarekar and Mel Gorman here and discussed here:
https://sourceware.org/ml/libc-alpha/2015-05/msg00002.html
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
malloc/arena.c | 10 ++++++++--
2 files changed, 14 insertions(+), 2 deletions(-)
Commit c26efef9798914e208329c0e8c3c73bb1135d9e3 introduced a regression, see bug 18502. 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]
-----------------------------------------------------------------------
|
using glibc 2.19 from ubuntu 14.04 amd64 the following simple program causes a huge amount of page faults due to the heap being trimmed on every second free() even though heap trimming was disabled and the mmap threshold is set to the maximum: #include <stdlib.h> #include <string.h> #include <stdio.h> #include <malloc.h> int main(int argc, const char *argv[]) { mallopt (M_TRIM_THRESHOLD, -1); mallopt (M_MMAP_THRESHOLD, 1024*1024*32); #pragma omp parallel for num_threads(2) for (size_t i = 0; i < 1000; i++) { size_t n = 1024*1024*16; double * m = malloc(n); memset(m, 1, n); free(m); } return 0; } gcc test.c -std=c99 -g -O2 -fopenmp perf stat -e page-faults ./a.out 2,036,312 page-faults strace -f -e madvise ./a.out 2>&1 | grep MADV_DONTNEED | wc -l 500 when setting the number of threads to 1 it reuses the memory as expected: perf stat -e page-faults ./a.out 4,271 page-faults