mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 07:20:11 +00:00
d5c3fafc43
* config.make.in: Enable experimental malloc option. * configure.ac: Likewise. * configure: Regenerate. * manual/install.texi: Document it. * INSTALL: Regenerate. * malloc/Makefile: Likewise. * malloc/malloc.c: Add per-thread cache (tcache). (tcache_put): New. (tcache_get): New. (tcache_thread_freeres): New. (tcache_init): New. (__libc_malloc): Use cached chunks if available. (__libc_free): Initialize tcache if needed. (__libc_realloc): Likewise. (__libc_calloc): Likewise. (_int_malloc): Prefill tcache when appropriate. (_int_free): Likewise. (do_set_tcache_max): New. (do_set_tcache_count): New. (do_set_tcache_unsorted_limit): New. * manual/probes.texi: Document new probes. * malloc/arena.c: Add new tcache tunables. * elf/dl-tunables.list: Likewise. * manual/tunables.texi: Document them. * NEWS: Mention the per-thread cache.
3937 lines
170 KiB
Plaintext
3937 lines
170 KiB
Plaintext
GNU C Library NEWS -- history of user-visible changes.
|
||
Copyright (C) 1992-2017 Free Software Foundation, Inc.
|
||
See the end for copying conditions.
|
||
|
||
Please send GNU C library bug reports via <http://sourceware.org/bugzilla/>
|
||
using `glibc' in the "product" field.
|
||
|
||
Version 2.26
|
||
|
||
Major new features:
|
||
|
||
* A per-thread cache has been added to malloc. Access to the cache requires
|
||
no locks and therefore significantly accelerates the fast path to allocate
|
||
and free small amounts of memory. Refilling an empty cache requires locking
|
||
the underlying arena. Performance measurements show significant gains in a
|
||
wide variety of user workloads. Workloads were captured using a special
|
||
instrumented malloc and analyzed with a malloc simulator. Contributed by
|
||
DJ Delorie with the help of Florian Weimer, and Carlos O'Donell.
|
||
|
||
* Unicode 10.0.0 Support: Character encoding, character type info, and
|
||
transliteration tables are all updated to Unicode 10.0.0, using
|
||
generator scripts contributed by Mike FABIAN (Red Hat).
|
||
|
||
* Collation of Hungarian has been overhauled and is now consistent with "The
|
||
Rules of Hungarian Orthography, 12th edition" (Bug 18934). Contributed by
|
||
Egmont Koblinger.
|
||
|
||
* Improvements to the DNS stub resolver, contributed by Florian Weimer:
|
||
|
||
- The GNU C Library will now detect when /etc/resolv.conf has been
|
||
modified and reload the changed configuration. The new resolver option
|
||
“no-reload” (RES_NORELOAD) disables this behavior.
|
||
|
||
- The GNU C Library now supports an arbitrary number of search domains
|
||
(configured using the “search” directive in /etc/resolv.conf);
|
||
previously, there was a hard limit of six domains. For backward
|
||
compatibility, applications that directly modify the ‘_res’ global
|
||
object are still limited to six search domains.
|
||
|
||
- When the “rotate” (RES_ROTATE) resolver option is active, the GNU C
|
||
Library will now randomly pick a name server from the configuration as a
|
||
starting point. (Previously, the second name server was always used.)
|
||
|
||
* The tunables feature is now enabled by default. This allows users to tweak
|
||
behavior of the GNU C Library using the GLIBC_TUNABLES environment variable.
|
||
|
||
* New function reallocarray, which resizes an allocated block (like realloc)
|
||
to the product of two sizes, with a guaranteed clean failure upon integer
|
||
overflow in the multiplication. Originally from OpenBSD, contributed by
|
||
Dennis Wölfing and Rüdiger Sonderfeld.
|
||
|
||
* New wrappers for the Linux-specific system calls preadv2 and pwritev2.
|
||
These are extended versions of preadv and pwritev, respectively, taking an
|
||
additional flags argument. The set of supported flags depends on the
|
||
running kernel; full support currently requires kernel 4.7 or later.
|
||
|
||
* posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to
|
||
create a new session ID for the spawned process. This feature is
|
||
scheduled to be added to the next major revision of POSIX; for the time
|
||
being, it is available under _GNU_SOURCE.
|
||
|
||
* errno.h is now safe to use from C-preprocessed assembly language on all
|
||
supported operating systems. In this context, it will only define the
|
||
Exxxx constants, as preprocessor macros expanding to integer literals.
|
||
|
||
* On ia64, powerpc64le, x86-32, and x86-64, the math library now implements
|
||
128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE
|
||
754-2008) and ISO/IEC TS 18661-3:2015. Contributed by Paul E. Murphy,
|
||
Gabriel F. T. Gomes, Tulio Magno Quites Machado Filho, and Joseph Myers.
|
||
|
||
To compile programs that use this feature, the compiler must support
|
||
128-bit floating point with the type name _Float128 (as defined by TS
|
||
18661-3) or __float128 (the nonstandard name used by GCC for C++, and for
|
||
C prior to version 7). _GNU_SOURCE or __STDC_WANT_IEC_60559_TYPES_EXT__
|
||
must be defined to make the new interfaces visible.
|
||
|
||
The new functions and macros correspond to those present for other
|
||
floating-point types (except for a few obsolescent interfaces not
|
||
supported for the new type), with F128 or f128 suffixes; for example,
|
||
strtof128, HUGE_VAL_F128 and cosf128. Following TS 18661-3, there are no
|
||
printf or scanf formats for the new type; the strfromf128 and strtof128
|
||
interfaces should be used instead.
|
||
|
||
Deprecated and removed features, and other changes affecting compatibility:
|
||
|
||
* The synchronization that pthread_spin_unlock performs has been changed to
|
||
now be equivalent to a C11 atomic store with release memory order to the
|
||
spin lock's memory location. Previously, several (but not all)
|
||
architectures used stronger synchronization (e.g., containing what is
|
||
often called a full barrier). This change can improve performance, but
|
||
may affect odd fringe uses of spin locks that depend on the previous
|
||
behavior (e.g., using spin locks as atomic variables to try to implement
|
||
Dekker's mutual exclusion algorithm).
|
||
|
||
* The port to Native Client running on ARMv7-A (--host=arm-nacl) has been
|
||
removed.
|
||
|
||
* Sun RPC is deprecated. The rpcgen program, librpcsvc, and Sun RPC headers
|
||
will only be built and installed when the GNU C Library is configured with
|
||
--enable-obsolete-rpc. This allows alternative RPC implementations, such
|
||
as TIRPC or rpcsvc-proto, to be used.
|
||
|
||
* The NIS(+) name service modules, libnss_nis, libnss_nisplus, and
|
||
libnss_compat, are deprecated, and will not be built or installed by
|
||
default.
|
||
|
||
The NIS(+) support library, libnsl, is also deprecated. By default, a
|
||
compatibility shared library will be built and installed, but not headers
|
||
or development libraries. Only a few NIS-related programs require this
|
||
library. (In particular, the GNU C Library has never required programs
|
||
that use 'gethostbyname' to be linked with libnsl.)
|
||
|
||
Replacement implementations based on TIRPC, which additionally support
|
||
IPv6, are available from <https://github.com/thkukuk/>. The configure
|
||
option --enable-obsolete-nsl will cause libnsl's headers, and the NIS(+)
|
||
name service modules, to be built and installed.
|
||
|
||
* The DNS stub resolver no longer performs EDNS fallback. If EDNS or DNSSEC
|
||
support is enabled, the configured recursive resolver must support EDNS.
|
||
(Responding to EDNS-enabled queries with responses which are not
|
||
EDNS-enabled is fine, but FORMERR responses are not.)
|
||
|
||
* res_mkquery and res_nmkquery no longer support the IQUERY opcode. DNS
|
||
servers have not supported this opcode for a long time.
|
||
|
||
* The _res_opcodes variable has been removed from libresolv. It had been
|
||
exported by accident.
|
||
|
||
* <string.h> no longer includes inline versions of any string functions,
|
||
as this kind of optimization is better done by the compiler. The macros
|
||
__USE_STRING_INLINES and __NO_STRING_INLINES no longer have any effect.
|
||
|
||
* The nonstandard header <xlocale.h> has been removed. Most programs should
|
||
use <locale.h> instead. If you have a specific need for the definition of
|
||
locale_t with no other declarations, please contact
|
||
libc-alpha@sourceware.org and explain.
|
||
|
||
* The obsolete header <sys/ultrasound.h> has been removed.
|
||
|
||
* The obsolete signal constant SIGUNUSED is no longer defined by <signal.h>.
|
||
|
||
* The obsolete function cfree has been removed. Applications should use
|
||
free instead.
|
||
|
||
* The stack_t type no longer has the name struct sigaltstack. This changes
|
||
the C++ name mangling for interfaces involving this type.
|
||
|
||
* The ucontext_t type no longer has the name struct ucontext. This changes
|
||
the C++ name mangling for interfaces involving this type.
|
||
|
||
* On M68k GNU/Linux and MIPS GNU/Linux, the fpregset_t type no longer has
|
||
the name struct fpregset. On Nios II GNU/Linux, the mcontext_t type no
|
||
longer has the name struct mcontext. On SPARC GNU/Linux, the struct
|
||
mc_fq, struct rwindow, struct fpq and struct fq types are no longer
|
||
defined in sys/ucontext.h, the mc_fpu_t type no longer has the name struct
|
||
mc_fpu, the gwindows_t type no longer has the name struct gwindows and the
|
||
fpregset_t type no longer has the name struct fpu. This changes the C++
|
||
name mangling for interfaces involving those types.
|
||
|
||
* On S/390 GNU/Linux, the constants defined by <sys/ptrace.h> have been
|
||
synced with the kernel:
|
||
|
||
- PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS and PTRACE_SETFPREGS
|
||
are not supported on this architecture and have been removed.
|
||
|
||
- PTRACE_SINGLEBLOCK, PTRACE_SECCOMP_GET_FILTER, PTRACE_PEEKUSR_AREA,
|
||
PTRACE_POKEUSR_AREA, PTRACE_GET_LAST_BREAK, PTRACE_ENABLE_TE,
|
||
PTRACE_DISABLE_TE and PTRACE_TE_ABORT_RAND have been added.
|
||
|
||
Programs that assume the GET/SETREGS ptrace requests are universally
|
||
available will now fail to build, instead of malfunctioning at runtime.
|
||
|
||
Changes to build and runtime requirements:
|
||
|
||
* Linux kernel 3.2 or later is required at runtime, on all architectures
|
||
supported by that kernel. (This is a change from version 2.25 only for
|
||
x86-32 and x86-64.)
|
||
|
||
* GNU Binutils 2.25 or later is now required to build the GNU C Library.
|
||
|
||
* On most architectures, GCC 4.9 or later is required to build the GNU C
|
||
Library. On powerpc64le, GCC 6.2 or later is required.
|
||
|
||
Older GCC versions and non-GNU compilers are still supported when
|
||
compiling programs that use the GNU C Library. (We do not know exactly
|
||
how old, and some GNU extensions to C may be _de facto_ required. If you
|
||
are interested in helping us make this statement less vague, please
|
||
contact libc-alpha@sourceware.org.)
|
||
|
||
Security related changes:
|
||
|
||
* The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes,
|
||
to avoid fragmentation-based spoofing attacks.
|
||
|
||
The following bugs are resolved with this release:
|
||
|
||
[The release manager will add the list generated by
|
||
scripts/list-fixed-bugs.py just before the release.]
|
||
|
||
|
||
Version 2.25
|
||
|
||
* The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR
|
||
24731-2:2010, is supported to enable declarations of functions from that
|
||
TR. Note that not all functions from that TR are supported by the GNU C
|
||
Library.
|
||
|
||
* The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS
|
||
18661-1:2014, is supported to enable declarations of functions and macros
|
||
from that TS. Note that not all features from that TS are supported by
|
||
the GNU C Library.
|
||
|
||
* The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS
|
||
18661-4:2015, is supported to enable declarations of functions and macros
|
||
from that TS. Note that most features from that TS are not supported by
|
||
the GNU C Library.
|
||
|
||
* The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are
|
||
now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L.
|
||
Since the GNU C Library defaults to a much newer revision of POSIX, this
|
||
will only affect programs that specifically request an old conformance
|
||
mode. For instance, a program compiled with -std=c89 -D_REENTRANT will
|
||
see a change in the visible declarations, but a program compiled with
|
||
just -D_REENTRANT, or -std=c99 -D_POSIX_C_SOURCE=200809L -D_REENTRANT,
|
||
will not.
|
||
|
||
Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
|
||
defined by all multithreaded code, but glibc has not required this for
|
||
many years.
|
||
|
||
* The inclusion of <sys/sysmacros.h> by <sys/types.h> is deprecated. This
|
||
means that in a future release, the macros “major”, “minor”, and “makedev”
|
||
will only be available from <sys/sysmacros.h>.
|
||
|
||
These macros are not part of POSIX nor XSI, and their names frequently
|
||
collide with user code; see for instance glibc bug 19239 and Red Hat bug
|
||
130601. <stdlib.h> includes <sys/types.h> under _GNU_SOURCE, and C++ code
|
||
presently cannot avoid being compiled under _GNU_SOURCE, exacerbating the
|
||
problem.
|
||
|
||
* New <fenv.h> features from TS 18661-1:2014 are added to libm: the
|
||
fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the
|
||
femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros.
|
||
|
||
* Integer width macros from TS 18661-1:2014 are added to <limits.h>:
|
||
CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH,
|
||
UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to
|
||
<stdint.h>: INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH,
|
||
INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH,
|
||
UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH,
|
||
INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH,
|
||
UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH,
|
||
UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH,
|
||
UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH,
|
||
UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH,
|
||
WINT_WIDTH.
|
||
|
||
* New <math.h> features are added from TS 18661-1:2014:
|
||
|
||
- Signaling NaN macros: SNANF, SNAN, SNANL.
|
||
|
||
- Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp,
|
||
fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf,
|
||
fromfpxl, ufromfpx, ufromfpxf, ufromfpxl.
|
||
|
||
- llogb functions: the llogb, llogbf and llogbl functions, and the
|
||
FP_LLOGB0 and FP_LLOGBNAN macros.
|
||
|
||
- Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag,
|
||
fminmagf, fminmagl.
|
||
|
||
- Comparison macros: iseqsig.
|
||
|
||
- Classification macros: iscanonical, issubnormal, iszero.
|
||
|
||
- Total order functions: totalorder, totalorderf, totalorderl,
|
||
totalordermag, totalordermagf, totalordermagl.
|
||
|
||
- Canonicalize functions: canonicalize, canonicalizef, canonicalizel.
|
||
|
||
- NaN functions: getpayload, getpayloadf, getpayloadl, setpayload,
|
||
setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl.
|
||
|
||
* The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014,
|
||
are added to libc. They convert a floating-point number into string.
|
||
|
||
* Most of glibc can now be built with the stack smashing protector enabled.
|
||
It is recommended to build glibc with --enable-stack-protector=strong.
|
||
Implemented by Nick Alcock (Oracle).
|
||
|
||
* The function explicit_bzero, from OpenBSD, has been added to libc. It is
|
||
intended to be used instead of memset() to erase sensitive data after use;
|
||
the compiler will not optimize out calls to explicit_bzero even if they
|
||
are "unnecessary" (in the sense that no _correct_ program can observe the
|
||
effects of the memory clear).
|
||
|
||
* On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined
|
||
to float instead of double. This does not affect the ABI of any libraries
|
||
that are part of the GNU C Library, but may affect the ABI of other
|
||
libraries that use this type in their interfaces.
|
||
|
||
* On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the
|
||
float_t and double_t types are now defined to long double instead of float
|
||
and double. These options are not the default, and this does not affect
|
||
the ABI of any libraries that are part of the GNU C Library, but it may
|
||
affect the ABI of other libraries that use this type in their interfaces,
|
||
if they are compiled or used with those options.
|
||
|
||
* The getentropy and getrandom functions, and the <sys/random.h> header file
|
||
have been added.
|
||
|
||
* The buffer size for byte-oriented stdio streams is now limited to 8192
|
||
bytes by default. Previously, on Linux, the default buffer size on most
|
||
file systems was 4096 bytes (and thus remains unchanged), except on
|
||
network file systems, where the buffer size was unpredictable and could be
|
||
as large as several megabytes.
|
||
|
||
* The <sys/quota.h> header now includes the <linux/quota.h> header. Support
|
||
for the Linux quota interface which predates kernel version 2.4.22 has
|
||
been removed.
|
||
|
||
* The malloc_get_state and malloc_set_state functions have been removed.
|
||
Already-existing binaries that dynamically link to these functions will
|
||
get a hidden implementation in which malloc_get_state is a stub. As far
|
||
as we know, these functions are used only by GNU Emacs and this change
|
||
will not adversely affect already-built Emacs executables. Any undumped
|
||
Emacs executables, which normally exist only during an Emacs build, should
|
||
be rebuilt by re-running “./configure; make” in the Emacs build tree.
|
||
|
||
* The “ip6-dotint” and “no-ip6-dotint” resolver options, and the
|
||
corresponding RES_NOIP6DOTINT flag from <resolv.h> have been removed.
|
||
“no-ip6-dotint” had already been the default, and support for the
|
||
“ip6-dotint” option was removed from the Internet in 2006.
|
||
|
||
* The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING
|
||
flag from <resolv.h> have been removed. The option relied on a
|
||
backwards-incompatible DNS extension which was never deployed on the
|
||
Internet.
|
||
|
||
* The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG,
|
||
RES_BLAST defined in the <resolv.h> header file have been deprecated.
|
||
They were already unimplemented.
|
||
|
||
* The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for
|
||
_res.flags are deprecated. The flag was standardized in RFC 2133, but
|
||
removed again from the IETF name lookup interface specification in RFC
|
||
2553. Applications should use getaddrinfo instead.
|
||
|
||
* DNSSEC-related declarations and definitions have been removed from the
|
||
<arpa/nameser.h> header file, and libresolv will no longer attempt to
|
||
decode the data part of DNSSEC record types. Previous versions of glibc
|
||
only implemented minimal support for the previous version of DNSSEC, which
|
||
is incompatible with the currently deployed version.
|
||
|
||
* The resource record type classification macros ns_t_qt_p, ns_t_mrr_p,
|
||
ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the
|
||
<arpa/nameser.h> header file because the distinction between RR types and
|
||
meta-RR types is not officially standardized, subject to revision, and
|
||
thus not suitable for encoding in a macro.
|
||
|
||
* The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook
|
||
and rhook members of the res_state type in <resolv.h> have been removed.
|
||
The glibc stub resolver did not support these hooks, but the header file
|
||
did not reflect that.
|
||
|
||
* For multi-arch support it is recommended to use a GCC which has
|
||
been built with support for GNU indirect functions. This ensures
|
||
that correct debugging information is generated for functions
|
||
selected by IFUNC resolvers. This support can either be enabled by
|
||
configuring GCC with '--enable-gnu-indirect-function', or by
|
||
enabling it by default by setting 'default_gnu_indirect_function'
|
||
variable for a particular architecture in the GCC source file
|
||
'gcc/config.gcc'.
|
||
|
||
* GDB pretty printers have been added for mutex and condition variable
|
||
structures in POSIX Threads. When installed and loaded in gdb these pretty
|
||
printers show various pthread variables in human-readable form when read
|
||
using the 'print' or 'display' commands in gdb.
|
||
|
||
* Tunables feature added to allow tweaking of the runtime for an application
|
||
program. This feature can be enabled with the '--enable-tunables' configure
|
||
flag. The GNU C Library manual has details on usage and README.tunables has
|
||
instructions on adding new tunables to the library.
|
||
|
||
* A new version of condition variables functions have been implemented in
|
||
the NPTL implementation of POSIX Threads to provide stronger ordering
|
||
guarantees.
|
||
|
||
* A new version of pthread_rwlock functions have been implemented to use a more
|
||
scalable algorithm primarily through not using a critical section anymore to
|
||
make state changes.
|
||
|
||
Security related changes:
|
||
|
||
* On ARM EABI (32-bit), generating a backtrace for execution contexts which
|
||
have been created with makecontext could fail to terminate due to a
|
||
missing .cantunwind annotation. This has been observed to lead to a hang
|
||
(denial of service) in some Go applications compiled with gccgo. Reported
|
||
by Andreas Schwab. (CVE-2016-6323)
|
||
|
||
* The DNS stub resolver functions would crash due to a NULL pointer
|
||
dereference when processing a query with a valid DNS question type which
|
||
was used internally in the implementation. The stub resolver now uses a
|
||
question type which is outside the range of valid question type values.
|
||
(CVE-2015-5180)
|
||
|
||
The following bugs are resolved with this release:
|
||
|
||
[4099] stdio: Overly agressive caching by stream i/o functions.
|
||
[7065] build: Support building glibc with -fstack-protector or -fstack-
|
||
protector-all
|
||
[9842] localedata: en_CA: incorrect date format
|
||
[13165] nptl: pthread_cond_wait() can consume a signal that was sent
|
||
before it started waiting
|
||
[14139] manual: Do not hardcode platform names in manual/libm-err-tab.pl
|
||
[15765] nptl: sem_open is wrongly a cancellation point
|
||
[16421] network: IN6_IS_ADDR_UNSPECIFIED can use undefined s6_addr32
|
||
[16458] libc: endian.h and netinet/in.h byte order macros return values of
|
||
wrong type
|
||
[16628] dynamic-link: Segfault after a binary without pthread dlopen()s a
|
||
library linked with pthread
|
||
[16630] nptl: Use SYSENTER for pthread_cond_broadcast/signal() (i.e. fix
|
||
"FIXME: Ingo" issue)
|
||
[16907] libc: <argp.h> compiled with --std=cXX disables __attribute__
|
||
[17252] libc: getrandom and getentropy syscall
|
||
[17730] malloc: thread-local storage is sometimes improperly free()'d
|
||
after being __libc_memalign()'d
|
||
[18241] stdio: failed fseek on memstream does not set errno and can fail
|
||
when it shouldnt
|
||
[18243] nptl: sem_wait, sem_timedwait are cancellation points shm_open is
|
||
not
|
||
[18463] nptl: pthread_cond_broadcast issue when surrounded by
|
||
PTHREAD_PRIO_INHERIT mutex on ARM
|
||
[18784] network: res_query and related function crash for special record
|
||
type queries (CVE-2015-5180)
|
||
[19380] math: strtod does not raise "inexact"
|
||
[19387] string: Integer overflow in memchr
|
||
[19390] string: Integer overflow in strncat
|
||
[19398] build: linknamespace tests fail with massively parallel build
|
||
[19402] nptl: Deadlock with robust shared mutex and asynchronous
|
||
termination
|
||
[19469] malloc: M_PERTURB in test-skeleton.c invalidates malloc tests
|
||
[19473] malloc: Turn malloc_get_state etc. in compatibility symbols
|
||
[19514] libc: [PATCH] Fix spelling errors in spelling
|
||
"implement"/"implementation" in several places
|
||
[19582] network: Deprecate RES_USE_INET6
|
||
[19673] manual: clog10 docs appear to be erroneous
|
||
[19810] dynamic-link: dlopen with both RTLD_NOLOAD and RTLD_NODELETE
|
||
causes a segmentation fault
|
||
[19826] libc: invalid pointer returned from __tls_get_addr with static
|
||
linking
|
||
[20016] network: resolv: Remove hooks support from the API
|
||
[20019] dynamic-link: NULL pointer dereference in libc.so.6 IFUNC due to
|
||
uninitialized GOT
|
||
[20033] math: [x86_64] vectorized math function don't call the __finite
|
||
versions
|
||
[20116] nptl: use after free in pthread_create
|
||
[20181] stdio: open_memstream(): writes not at end of stream corrupt data
|
||
[20292] dynamic-link: Comparison in elf/dl-open.c _dl_addr_inside_object
|
||
is always true.
|
||
[20311] nptl: please install proc_service.h
|
||
[20366] libc: Compilation errors in installed headers in strict-compliance
|
||
modes
|
||
[20370] malloc: malloc: Arena free list management is still racy
|
||
(incorrect fix in bug 19243)
|
||
[20386] libc: assert (X = 0) does not result in GCC warning
|
||
[20432] malloc: malloc: Minimize interface required for interposition
|
||
[20435] libc: Missing unwind info in __startcontext causes infinite loop
|
||
in _Unwind_Backtrace (CVE-2016-6323)
|
||
[20444] hurd: recvmsg: PF_LOCAL sockets and msg_name lead to SIGLOST
|
||
[20452] nptl: Addition of sysdep.o to libpthread.a breaks relinking
|
||
libpthread.a
|
||
[20455] math: [powerpc] fesetexceptflag fails to clear FE_INVALID
|
||
[20459] localedata: et_EE: locale has wrong {p,n}_cs_precedes value
|
||
[20477] network: resolv: incorrect double-checked locking related to
|
||
_res_hconf
|
||
[20478] libc: libc_ifunc macro and similar usages leads to false debug-
|
||
information.
|
||
[20495] math: x86_64 performance degradation due to AVX/SSE transition
|
||
penalty
|
||
[20497] localedata: lt_LT: LC_TIME d_fmt used is obsolete
|
||
[20508] dynamic-link: _dl_runtime_resolve_avx/_dl_runtime_profile_avx512
|
||
cause transition penalty
|
||
[20517] math: sparcv9 missing fdiml compat symbol
|
||
[20524] manual: strverscmp is inconsistent
|
||
[20525] libc: <sys/quota.h> should be based on kernel headers
|
||
[20539] math: GCC 7 -static -lm fails to link at -O3
|
||
[20554] libc: ld: bss-plt forced due to /usr/lib/libc_nonshared.a(ppc-
|
||
mcount.oS)
|
||
[20558] string: POSIX bcopy/bzero decls do not implement Object Size
|
||
Checking
|
||
[20591] network: Remove obsolete DNSSEC support
|
||
[20592] network: DNS resource record type classification macros in
|
||
<arpa/nameser.h> are incorrect
|
||
[20593] network: Update DNS RR type definitions
|
||
[20611] network: getaddrinfo accepts invalid numeric scope IDs
|
||
[20615] build: glibc build fails when using --with-cpu=power9 --enable-
|
||
multi-arch
|
||
[20629] network: libresolv: Remove support for bitstring labels
|
||
(RES_USEBSTRING)
|
||
[20647] libc: GLIBC quitting every program - glibc on Pentium-S leads to
|
||
assertion: "maxidx >= 2"
|
||
[20660] math: [arm] Use VSQRT
|
||
[20662] libc: checking whether x86_64-pc-linux-gnu-gcc implicitly enables
|
||
-fstack-protector no (32bit gcc 6.2.0 pie and ssp enable)
|
||
[20689] libc: Test for FMA should also check for AVX.
|
||
[20707] glob: gl_pathv entries not set to NULL with GLOB_DOOFFS
|
||
[20715] math: iszero macro breaks existing code
|
||
[20718] math: [powerpc] copysignl raises "invalid" for sNaN
|
||
[20728] libc: powerpc: Missing TOC stub in clone
|
||
[20729] build: glibc-2.24 fails to build for i486 with -Os
|
||
[20750] build: Build fails with default PIE enabled gcc-6.x
|
||
[20768] math: [alpha] sqrt fegetenv namespace
|
||
[20785] libc: binutils 2.28 fails to assemble power6/memset.S file in
|
||
glibc
|
||
[20787] math: float_t is defined as float incorrectly on x86_64 even if
|
||
__FLT_EVAL_METHOD__ is 2
|
||
[20790] network: rpcgen buffer overrun in get_prog_declaration
|
||
[20822] nptl: race condition in __lll_unlock_elision on powerpc
|
||
[20829] libc: crypt snprintf namespace
|
||
[20847] libc: tst-vfork3 failure
|
||
[20855] math: Default bits/mathdef.h has inappropriate float_t
|
||
[20859] math: [sh4] FP_ILOGB0 invalid
|
||
[20864] localedata: iconv: cp936 missing single-byte euro sign (0x80,
|
||
U+20AC), not same as GBK
|
||
[20915] dynamic-link: global-dynamic TLS broken on aarch64
|
||
[20916] math: pow handling of sNaN arguments
|
||
[20918] build: Building with --enable-nss-crypt fails tst-linkall-static.
|
||
[20919] math: Bad pow (qNaN, 0) result with -lieee
|
||
[20940] math: hypot sNaN handling
|
||
[20947] math: fmax, fmin sNaN handling
|
||
[20956] libc: debug/tst-backtrace3-6 don't work with -O3 anymore
|
||
[20964] network: sunrpc: Stack-based buffer overflow in getrpcport with
|
||
RES_USE_INET6
|
||
[20971] string: powerpc64/power7 memchr overflows internal pointer check
|
||
[20973] nptl: robust mutexes: Lost wake-ups
|
||
[20974] locale: bs_BA: yesexpr/noexpr regexes accept any character
|
||
[20978] nis: strlen on null pointer in nss_nisplus
|
||
[20985] nptl: robust mutexes: lowlevelrobustlock assembly on x86 blocks on
|
||
wrong condition
|
||
[21014] string: i686 memchr overflows internal pointer check
|
||
[21019] libc: [mips] n32 lseek incorrect on overflow
|
||
[21022] libc: [microblaze] __backtrace get_frame_size namespace
|
||
[21026] libc: [MIPS] readahead syscall is broken on n64
|
||
[21028] math: Fallback fesetexceptflag should always succeed
|
||
[21045] libc: [powerpc-nofpu] swapcontext does not restore signal mask
|
||
[21047] math: arm: fpu_control.h: _FPU_GETCW/_FPU_SETCW is rejected by
|
||
clang
|
||
[21053] libc: [SH] Namespace pollution from sys/ucontext.h
|
||
[21061] librt: [microblaze] librt lost clock_* exports
|
||
[21073] libc: tunables: insecure environment variables passed to
|
||
subprocesses with AT_SECURE
|
||
[21081] string: Missing vzeroupper in memset-vec-unaligned-erms.S
|
||
|
||
Version 2.24
|
||
|
||
* The minimum Linux kernel version that this version of the GNU C Library
|
||
can be used with is 3.2, except on i[4567]86 and x86_64, where Linux
|
||
kernel version 2.6.32 or later suffices (on architectures that already
|
||
required kernel versions more recent than 3.2, those requirements remain
|
||
unchanged). Linux 3.2 or later kernel headers are required on all
|
||
architectures.
|
||
|
||
* The pap_AN locale has been deleted. This has been deprecated for a long
|
||
time. It has been replaced by pap_AW & pap_CW, both of which have long
|
||
been included in previous releases.
|
||
|
||
* The readdir_r and readdir64_r functions have been deprecated. It is
|
||
recommended to use readdir and readdir64 instead.
|
||
|
||
* The type “union wait” has been removed. It was deprecated in the early
|
||
1990s and never part of POSIX. Application code should use the int type
|
||
instead of “union wait”.
|
||
|
||
* A new NSS action is added to facilitate large distributed system
|
||
administration. The action, MERGE, allows remote user stores like LDAP
|
||
to be merged into local user stores like /etc/groups in order to provide
|
||
easy to use, updated, and managed sets of merged credentials. The new
|
||
action can be used by configuring it in /etc/nsswitch.conf:
|
||
group: files [SUCCESS=merge] nis
|
||
Implemented by Stephen Gallagher (Red Hat).
|
||
|
||
* The deprecated __malloc_initialize_hook variable has been removed from the
|
||
API.
|
||
|
||
* The long unused localedef --old-style option has been removed. It hasn't
|
||
done anything in over 16 years. Scripts using this option can safely
|
||
drop it.
|
||
|
||
* nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf are added to
|
||
libm. They are defined by TS 18661 and IEEE754-2008. The nextup functions
|
||
return the next representable value in the direction of positive infinity
|
||
and the nextdown functions return the next representable value in the
|
||
direction of negative infinity. These are currently enabled as GNU
|
||
extensions.
|
||
|
||
Security related changes:
|
||
|
||
* An unnecessary stack copy in _nss_dns_getnetbyname_r was removed. It
|
||
could result in a stack overflow when getnetbyname was called with an
|
||
overly long name. (CVE-2016-3075)
|
||
|
||
* Previously, getaddrinfo copied large amounts of address data to the stack,
|
||
even after the fix for CVE-2013-4458 has been applied, potentially
|
||
resulting in a stack overflow. getaddrinfo now uses a heap allocation
|
||
instead. Reported by Michael Petlan. (CVE-2016-3706)
|
||
|
||
* The glob function suffered from a stack-based buffer overflow when it was
|
||
called with the GLOB_ALTDIRFUNC flag and encountered a long file name.
|
||
Reported by Alexander Cherepanov. (CVE-2016-1234)
|
||
|
||
* The Sun RPC UDP client could exhaust all available stack space when
|
||
flooded with crafted ICMP and UDP messages. Reported by Aldy Hernandez'
|
||
alloca plugin for GCC. (CVE-2016-4429)
|
||
|
||
* The IPv6 name server management code in libresolv could result in a memory
|
||
leak for each thread which is created, performs a failing naming lookup,
|
||
and exits. Over time, this could result in a denial of service due to
|
||
memory exhaustion. Reported by Matthias Schiffer. (CVE-2016-5417)
|
||
|
||
The following bugs are resolved with this release:
|
||
|
||
[1170] localedata: ne_NP: update Nepali locale definition file
|
||
[3629] manual: stpcpy description in string.texi refers to MS-DOG instead
|
||
of MS-DOS.
|
||
[6527] malloc: [powerpc] Malloc alignment insufficient for PowerPC
|
||
[6796] math: fdim() does not set errno on overflow
|
||
[10354] libc: posix_spawn should use vfork() in more cases than presently
|
||
[11213] localedata: localedata: add copyright disclaimer to locale files
|
||
[12143] localedata: chr_US: new Cherokee locale
|
||
[12450] localedata: sgs_LT: new locale
|
||
[12676] localedata: ln_CD: new locale
|
||
[13237] localedata: LC_ADDRESS.country_name: update all locales w/latest
|
||
CLDR data
|
||
[13304] math: fma, fmaf, fmal produce wrong results
|
||
[14259] build: --localedir arg to configure is ignored
|
||
[14499] nptl: Does posix_spawn invoke atfork handlers / use vfork?
|
||
[14750] libc: Race condition in posix_spawn vfork usage vs signal handlers
|
||
[14934] localedata: es_CL: wrong first weekday chilean locale
|
||
[15262] localedata: LC_MESSAGES.yesexpr/noexpr: inconsistent use of
|
||
romanisation
|
||
[15263] localedata: LC_MESSAGES.yesexpr/noexpr: inconsistent use of 1/0
|
||
and +/-
|
||
[15264] localedata: LC_MESSAGES.yesstr/nostr: lacking in many locales
|
||
[15368] nptl: raise() is not async-signal-safe
|
||
[15479] math: ceil, floor, round and trunc raise inexact exception
|
||
[15578] localedata: kk_KZ: various updates
|
||
[16003] localedata: pap_AN: punt old locale
|
||
[16137] localedata: iw_IL: punt old locale
|
||
[16190] localedata: eo: new esperanto locale
|
||
[16374] localedata: lv_LV: change currency symbol in LC_MONETARY to euro
|
||
[16742] malloc: race condition: pthread_atfork() called before first
|
||
malloc() results in unexpected locking behaviour/deadlocks
|
||
[16975] localedata: LC_MESSAGES.yesexpr/noexpr: revisit capitalization in
|
||
all locales
|
||
[16983] localedata: postal_fmt does not allow %l and %n modifiers
|
||
[17565] localedata: pt_PT: wrong (work-)week start
|
||
[17899] math: [powerpc] floorl returns negative zero with FE_DOWNWARD
|
||
[17950] build: Build fails with -msse
|
||
[18205] localedata: be_BY*: wrong first_weekday and first_workday
|
||
[18433] libc: posix_spawn does not return correctly upon failure to
|
||
execute
|
||
[18453] localedata: charmaps/IBM875: incorrect codes
|
||
[18712] string: bits/string2.h incompatible with -O2 -Werror=packed
|
||
-Wsystem-headers
|
||
[18896] localedata: he_IL: improvements for currency
|
||
[18911] localedata: ro_RO: Correcting week day name for "Tuesday" in
|
||
Romanian locale data
|
||
[18960] locale: s390: _nl_locale_subfreeres uses larl opcode on misaligned
|
||
symbol
|
||
[19056] libc: Deprecate readdir_r
|
||
[19133] localedata: pt_*: days & months should be lowercase in Portuguese
|
||
language
|
||
[19198] localedata: nl_NL: small improvements for Dutch locales
|
||
[19257] network: Per-thread memory leak in __res_vinit with IPv6
|
||
nameservers (CVE-2016-5417)
|
||
[19269] build: tst-audit4 and tst-audit10 failures with gcc-6 on non avx
|
||
machine
|
||
[19400] locale: Language missing in "iso-639.def", trivial fix in
|
||
description
|
||
[19431] malloc: Deadlock between fflush, getdelim, and fork
|
||
[19505] libc: Incorrect file descriptor validity checks in
|
||
posix_spawn_file_actions_add{open,close,dup2}
|
||
[19509] dynamic-link: dlsym, dlvsym do not report errors through dlerror
|
||
when using RTLD_NEXT
|
||
[19512] locale: Stale `#ifndef HAVE_BUILTIN_EXPECT' in
|
||
`intl/{gettextP,loadinfo}.h'
|
||
[19534] libc: execle, execlp may use malloc
|
||
[19568] localedata: *_CH: Swiss locales have inconsistent start of week
|
||
[19573] network: res_nclose and __res_maybe_init disagree about name
|
||
server initialization, breaking Hesiod
|
||
[19575] localedata: Status of GB18030 tables
|
||
[19581] localedata: sr_* date_fmt string contains additional newline
|
||
[19583] string: SSSE3_Fast_Copy_Backward flag needs to be enabled for AMD
|
||
Excavator core
|
||
[19592] math: [ldbl-128ibm] ceill incorrect in non-default rounding modes
|
||
[19593] math: [ldbl-128ibm] truncl incorrect in non-default rounding modes
|
||
[19594] math: [ldbl-128ibm] roundl incorrect in non-default rounding modes
|
||
[19595] math: [ldbl-128ibm] fmodl incorrect for results in subnormal
|
||
double range
|
||
[19602] math: [ldbl-128ibm] fmodl handling of equal arguments with low
|
||
part zero incorrect
|
||
[19603] math: [ldbl-128ibm] remainderl, remquol incorrect sign handling in
|
||
equality tests
|
||
[19610] dynamic-link: ldconfig -X removes stale symbolic links
|
||
[19613] libc: s390x (64 bit) macro expansion WCOREDUMP and others
|
||
[19633] locale: strfmon_l applies global locale to number formatting
|
||
[19642] network: Memory leak in getnameinfo
|
||
[19648] libc: test-skeleton.c: Do not set RLIMIT_DATA
|
||
[19653] libc: Potential for NULL pointer dereference (CWE-476) in
|
||
glibc-2.22
|
||
[19654] math: [x86_64] Need testcase for BZ #19590 fix
|
||
[19671] localedata: Missing Sanity Check for malloc() in 'tst-fmon.c' &
|
||
'tst-numeric.c'
|
||
[19674] math: [ldbl-128ibm] powl incorrect overflow handling
|
||
[19677] math: [ldbl-128ibm] remainderl equality test incorrect for zero
|
||
low part
|
||
[19678] math: [ldbl-128ibm] nextafterl, nexttowardl incorrect sign of zero
|
||
result
|
||
[19679] dynamic-link: gcc-4.9.3 C++ exception handling broken due to
|
||
unaligned stack
|
||
[19726] locale: Converting UCS4LE to INTERNAL with iconv() does not update
|
||
pointers and lengths in error-case.
|
||
[19727] locale: Converting from/to UTF-xx with iconv() does not always
|
||
report errors on UTF-16 surrogates values.
|
||
[19755] nscd: nscd assertion failure in gc
|
||
[19758] dynamic-link: Typo in EXTRA_LD_ENVVARS for x86-64
|
||
[19759] libc: mempcpy shouldn't be inlined
|
||
[19762] dynamic-link: HAS_CPU_FEATURE/HAS_ARCH_FEATURE are easy to misuse
|
||
[19765] libc: s390 needs an optimized mempcpy
|
||
[19779] glob: glob: buffer overflow with GLOB_ALTDIRFUNC due to incorrect
|
||
NAME_MAX limit assumption (CVE-2016-1234)
|
||
[19783] build: benchtests don't support --enable-hardcoded-path-in-tests
|
||
[19787] network: Missing and incorrect truncation checks in getnameinfo
|
||
[19790] math: [ldbl-128ibm] nearbyintl incorrect in non-default rounding
|
||
modes
|
||
[19791] network: Assertion failure in res_query.c with un-connectable name
|
||
server addresses
|
||
[19792] libc: MIPS: backtrace yields infinite backtrace with makecontext
|
||
[19822] math: libm.so install clobbers old version
|
||
[19825] network: resolv: send_vc can return uninitialized data in second
|
||
response to getaddrinfo
|
||
[19830] network: nss_dns: should check RDATA length against buffer length
|
||
[19831] network: nss_dns: getaddrinfo returns uninitialized data when
|
||
confronted with A/AAAA records of invalid size
|
||
[19837] nss: nss_db: No retries for some long lines with a larger buffer
|
||
[19848] math: powl(10,n) for n=-4,-5,-6,-7 is off by more than 1 ULP
|
||
[19853] stdio: Printing IBM long double in decimal with high precision is
|
||
sometimes incorrect
|
||
[19860] build: x86_64: compile errors for tst-audit10 and tst-auditmod10b
|
||
[19861] nptl: libpthread IFUNC resolver for fork can lead to crash
|
||
[19862] network: resolv, nss_dns: Remove remaining logging of unexpected
|
||
record types
|
||
[19865] network: Assertion failure or memory leak in
|
||
_nss_dns_getcanonname_r
|
||
[19868] network: nss_dns: netent code does not skip over non-PTR records
|
||
[19879] network: nss_dns: Stack overflow in getnetbyname implementation
|
||
(CVE-2016-3075)
|
||
[19881] string: Improve x86-64 memset
|
||
[19907] string: Incorrect memcpy tests
|
||
[19916] dynamic-link: S390: fprs/vrs are not saved/restored while
|
||
resolving symbols
|
||
[19925] libc: termios.h XCASE namespace
|
||
[19928] string: memmove-vec-unaligned-erms.S is slow with large data size
|
||
[19929] libc: limits.h NL_NMAX namespace
|
||
[19931] stdio: Memory leak in vfprintf
|
||
[19957] libc: clone(CLONE_VM) access invalid parent memory
|
||
[19963] localedata: en_IL: New locale
|
||
[19989] stdio: stdio.h cuserid namespace
|
||
[19994] network: getaddrinfo does not restore RES_USE_INET6 flag in
|
||
gethosts
|
||
[19996] locale: langinfo.h nl_langinfo_l namespace
|
||
[20005] stdio: fflush on a file opened with fmemopen resets position to 0
|
||
[20010] network: getaddrinfo: Stack overflow in hostent translation
|
||
(CVE-2016-3706)
|
||
[20012] stdio: libio: fmemopen append mode failure
|
||
[20014] stdio: stdio.h namespace for pre-threads POSIX
|
||
[20017] network: resolv: Use gmtime_r instead of gmtime in p_secstodate
|
||
[20023] libc: fcntl.h timespec namespace
|
||
[20024] math: [x86_64] vectorized sincos trashes the stack
|
||
[20031] network: nss_hesiod: Heap overflow in get_txt_records
|
||
[20041] time: sys/time.h timespec namespace
|
||
[20043] libc: unistd.h missing cuserid for UNIX98 and before
|
||
[20044] libc: unistd.h missing pthread_atfork for UNIX98
|
||
[20051] libc: ttyslot in wrong header under wrong conditions
|
||
[20054] libc: gethostname not declared for XPG4
|
||
[20055] libc: termios.h missing tcgetsid for XPG4
|
||
[20072] dynamic-link: x86 init_cpu_features is called twice in static
|
||
executable
|
||
[20073] libc: sys/stat.h fchmod namespace
|
||
[20074] libc: stdlib.h rand_r namespace
|
||
[20076] libc: sys/stat.h missing S_IFSOCK, S_ISSOCK for XPG4
|
||
[20094] libc: stdlib.h should not declare grantpt, ptsname, unlockpt for
|
||
XPG3
|
||
[20111] libc: struct sockaddr_storage cannot be aggregate-copied
|
||
[20112] network: sunrpc: stack (frame) overflow in Sun RPC clntudp_call
|
||
(CVE-2016-4429)
|
||
[20115] string: Extra alignment in memset-vec-unaligned-erms.S
|
||
[20119] libc: Wrong mask for processors level type from CPUID
|
||
[20139] dynamic-link: Upper part of zmm is zeroed if Glibc is built with
|
||
AS not supporting AVX512
|
||
[20151] math: [ldbl-128/ldbl-128ibm] j0l, j1l, y0l, y1l return sNaN for
|
||
sNaN argument
|
||
[20153] math: [ldbl-128ibm] sqrtl (sNaN) returns sNaN
|
||
[20156] math: [ldbl-128ibm] ceill, rintl etc. return sNaN for sNaN
|
||
argument
|
||
[20157] math: [powerpc] fabsl (sNaN) wrongly raises "invalid"
|
||
[20160] math: [powerpc] ceil, rint etc. return sNaN for sNaN input
|
||
[20178] libc: posix_spawn{p} should not call exit
|
||
[20191] stdio: libio: vtables hardening
|
||
[20195] string: FMA4 detection requires CPUID execution with register
|
||
eax=0x80000001
|
||
[20198] libc: quick_exit incorrectly destroys C++11 thread objects.
|
||
[20205] math: [i386/x86_64] nextafterl incorrect incrementing negative
|
||
subnormals
|
||
[20212] math: acos (sNaN) returns sNaN
|
||
[20213] math: asin (sNaN) returns sNaN
|
||
[20214] network: Linux header sync with linux/in6.h and ipv6.h again.
|
||
[20218] math: [i386] asinhl (sNaN) returns sNaN
|
||
[20219] math: [i386] atanhl (sNaN) returns sNaN
|
||
[20222] stdio: fopencookie: Mangle function pointers
|
||
[20224] math: [i386] cbrtl (sNaN) returns sNaN
|
||
[20225] math: ldexp, scalbn, scalbln return sNaN for sNaN input
|
||
[20226] math: [i386/x86_64] expl, exp10l, expm1l return sNaN for sNaN
|
||
input
|
||
[20227] math: [i386/x86_64] logl (sNaN) returns sNaN
|
||
[20228] math: [i386/x86_64] log10l (sNaN) returns sNaN
|
||
[20229] math: [i386/x86_64] log1pl (sNaN) returns sNaN
|
||
[20232] math: [ldbl-128] expm1l (sNaN) returns sNaN
|
||
[20233] math: [ldbl-128ibm] expm1l (sNaN) returns sNaN
|
||
[20234] math: [ldbl-128ibm] log1pl (sNaN) returns sNaN
|
||
[20235] math: [i386/x86_64] log2l (sNaN) returns sNaN
|
||
[20237] nss: nss_db: get*ent segfaults without preceding set*ent
|
||
[20240] math: modf (sNaN) returns sNaN
|
||
[20248] libc: debug/tst-longjump_chk2 calls printf from a signal handler
|
||
[20250] math: frexp (sNaN) returns sNaN
|
||
[20252] math: atan2 (sNaN, qNaN) fails to raise "invalid"
|
||
[20255] math: [i386] fdim, fdimf return with excess range and precision /
|
||
double rounding
|
||
[20256] math: [i386/x86_64] fdiml returns sNaN for sNaN input
|
||
[20260] string: ../sysdeps/x86/bits/string.h:1092:3: error: array
|
||
subscript is below array bounds [-Werror=array-bounds]
|
||
[20262] nis: _nss_nis_initgroups_dyn always returns NSS_STATUS_NOTFOUND
|
||
[20263] nptl: robust mutex deadlocks if other thread requests timedlock
|
||
(Only arm/linux)
|
||
[20277] libc: $dp is not initialized correctly in sysdeps/hppa/start.S
|
||
[20284] malloc: malloc: Corrupt arena avoidance causes unnecessary mmap
|
||
fallbacks
|
||
[20296] math: [i386/x86_64] scalbl returns sNaN for sNaN input, missing
|
||
"invalid" exceptions
|
||
[20314] nptl: make[4]: *** [/usr/include/stdlib.h] Error 1
|
||
[20316] localedata: id_ID: Februari instead of Pebruari
|
||
[20327] string: POWER8 strcasecmp returns incorrect result
|
||
[20347] math: Failure: Test: j0_downward (0xap+0)
|
||
[20348] libc: FAIL: misc/tst-preadvwritev64
|
||
[20349] libc: 64-bit value is passed differently in p{readv,writev}{64}
|
||
[20350] libc: There is no test for p{read,write}64
|
||
[20357] math: Incorrect cos result for 1.5174239687223976
|
||
[20384] build: Don't run libmvec-sincos-avx* tests on non avx machines
|
||
|
||
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 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.
|
||
|
||
Version 2.22
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
438, 2981, 4719, 6544, 6792, 11216, 12836, 13028, 13064, 13151, 13152,
|
||
14094, 14113, 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, 18078, 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, 18635, 18641, 18643, 18648,
|
||
18657, 18676, 18694, 18696, 18887.
|
||
|
||
* 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).
|
||
|
||
* The header <regexp.h> is deprecated, and will be removed in a future
|
||
release. Use of this header will trigger a deprecation warning.
|
||
Application developers should update their code to use <regex.h> instead.
|
||
|
||
This header was formerly part of SUS, but was deprecated in 1994 and
|
||
removed from the standard in 2001. Also, the glibc implementation
|
||
leaks memory. See BZ#18681 for more details.
|
||
|
||
Version 2.21
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
6652, 10672, 12674, 12847, 12926, 13862, 14132, 14138, 14171, 14498,
|
||
15215, 15378, 15884, 16009, 16418, 16191, 16469, 16576, 16617, 16618,
|
||
16619, 16657, 16740, 16857, 17192, 17266, 17273, 17344, 17363, 17370,
|
||
17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555,
|
||
17570, 17571, 17572, 17573, 17574, 17582, 17583, 17584, 17585, 17589,
|
||
17594, 17601, 17608, 17616, 17625, 17630, 17633, 17634, 17635, 17647,
|
||
17653, 17657, 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17719,
|
||
17722, 17723, 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747,
|
||
17748, 17775, 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797,
|
||
17801, 17803, 17806, 17834, 17844, 17848, 17868, 17869, 17870, 17885,
|
||
17892.
|
||
|
||
* CVE-2015-1472 CVE-2015-1473 Under certain conditions wscanf can allocate
|
||
too little memory for the to-be-scanned arguments and overflow the
|
||
allocated buffer. The implementation now correctly computes the required
|
||
buffer size when using malloc, and switches to malloc from alloca as
|
||
intended.
|
||
|
||
* A new semaphore algorithm has been implemented in generic C code for all
|
||
machines. Previous custom assembly implementations of semaphore were
|
||
difficult to reason about or ensure that they were safe. The new version
|
||
of semaphore supports machines with 64-bit or 32-bit atomic operations.
|
||
The new semaphore algorithm is used by sem_init, sem_open, sem_post,
|
||
sem_wait, sem_timedwait, sem_trywait, and sem_getvalue.
|
||
|
||
* Port to Altera Nios II has been contributed by Mentor Graphics.
|
||
|
||
* Optimized strcpy, stpcpy, strncpy, stpncpy, strcmp, and strncmp
|
||
implementations for powerpc64/powerpc64le.
|
||
Implemented by Adhemerval Zanella (IBM).
|
||
|
||
* Added support for TSX lock elision of pthread mutexes on powerpc32, powerpc64
|
||
and powerpc64le. This may improve lock scaling of existing programs on
|
||
HTM capable systems. The lock elision code is only enabled with
|
||
--enable-lock-elision=yes. Also, the TSX lock elision implementation for
|
||
powerpc will issue a transaction abort on every syscall to avoid side
|
||
effects being visible outside transactions.
|
||
|
||
* Optimized strcpy, stpcpy, strchrnul and strrchr implementations for
|
||
AArch64. Contributed by ARM Ltd.
|
||
|
||
* i386 memcpy functions optimized with SSE2 unaligned load/store.
|
||
|
||
* CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag
|
||
under certain input conditions resulting in the execution of a shell for
|
||
command substitution when the application did not request it. The
|
||
implementation now checks WRDE_NOCMD immediately before executing the
|
||
shell and returns the error WRDE_CMDSUB as expected.
|
||
|
||
* CVE-2012-3406 printf-style functions could run into a stack overflow when
|
||
processing format strings with a large number of format specifiers.
|
||
|
||
* CVE-2014-9402 The nss_dns implementation of getnetbyname could run into an
|
||
infinite loop if the DNS response contained a PTR record of an unexpected
|
||
format.
|
||
|
||
* The minimum GCC version that can be used to build this version of the GNU
|
||
C Library is GCC 4.6. Older GCC versions, and non-GNU compilers, can
|
||
still be used to compile programs using the GNU C Library.
|
||
|
||
* The GNU C Library is now built with -Werror by default. This can be
|
||
disabled by configuring with --disable-werror.
|
||
|
||
* New locales: tu_IN, bh_IN, raj_IN, ce_RU.
|
||
|
||
* The obsolete sigvec function has been removed. This was the original
|
||
4.2BSD interface that inspired the POSIX.1 sigaction interface, which
|
||
programs have been using instead for about 25 years. Of course, ABI
|
||
compatibility for old binaries using sigvec remains intact.
|
||
|
||
* Merged gettext 0.19.3 into the intl subdirectory. This fixes building
|
||
with newer versions of bison.
|
||
|
||
* Support for MIPS o32 FPXX, FP64A and FP64 ABI Extensions.
|
||
The original MIPS o32 hard-float ABI requires an FPU where double-precision
|
||
registers overlay two consecutive single-precision registers. MIPS32R2
|
||
introduced a new FPU mode (FR=1) where double-precision registers extend the
|
||
corresponding single-precision registers which is incompatible with the
|
||
o32 hard-float ABI. The MIPS SIMD ASE and the MIPSR6 architecture both
|
||
require the use of FR=1 making a transition necessary. New o32 ABI
|
||
extensions enable users to migrate over time from the original o32 ABI
|
||
through to the updated o32 FP64 ABI. To achieve this the dynamic linker now
|
||
tracks the ABI of any loaded object and verifies that new objects are
|
||
compatible. Mode transitions will also be requested as required and
|
||
unsupportable objects will be rejected. The ABI checks include both soft and
|
||
hard float ABIs for o32, n32 and n64.
|
||
|
||
GCC 5 with GNU binutils 2.25 onwards:
|
||
It is strongly recommended that all o32 system libraries are built using the
|
||
new o32 FPXX ABI (-mfpxx) to facilitate the transition as this is compatible
|
||
with the original and all new o32 ABI extensions. Configure a MIPS GCC
|
||
compiler using --with-fp-32=xx to set this by default.
|
||
|
||
Version 2.20
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
6804, 9894, 11505, 12994, 13347, 13651, 14308, 14770, 15119, 15132, 15347,
|
||
15514, 15698, 15804, 15894, 15946, 16002, 16064, 16095, 16194, 16198,
|
||
16275, 16284, 16287, 16315, 16348, 16349, 16354, 16357, 16362, 16447,
|
||
16516, 16532, 16539, 16545, 16561, 16562, 16564, 16574, 16599, 16600,
|
||
16609, 16610, 16611, 16613, 16619, 16623, 16629, 16632, 16634, 16639,
|
||
16642, 16648, 16649, 16670, 16674, 16677, 16680, 16681, 16683, 16689,
|
||
16695, 16701, 16706, 16707, 16712, 16713, 16714, 16724, 16731, 16739,
|
||
16740, 16743, 16754, 16758, 16759, 16760, 16770, 16786, 16789, 16791,
|
||
16796, 16799, 16800, 16815, 16823, 16824, 16831, 16838, 16839, 16849,
|
||
16854, 16876, 16877, 16878, 16882, 16885, 16888, 16890, 16892, 16912,
|
||
16915, 16916, 16917, 16918, 16922, 16927, 16928, 16932, 16943, 16958,
|
||
16965, 16966, 16967, 16977, 16978, 16984, 16990, 16996, 17009, 17022,
|
||
17031, 17042, 17048, 17050, 17058, 17061, 17062, 17069, 17075, 17078,
|
||
17079, 17084, 17086, 17088, 17092, 17097, 17125, 17135, 17137, 17150,
|
||
17153, 17187, 17213, 17259, 17261, 17262, 17263, 17319, 17325, 17354.
|
||
|
||
* Reverted change of ABI data structures for s390 and s390x:
|
||
On s390 and s390x the size of struct ucontext and jmp_buf was increased in
|
||
2.19. This change is reverted in 2.20. The introduced 2.19 symbol versions
|
||
of getcontext, setjmp, _setjmp, __sigsetjmp, longjmp, _longjmp, siglongjmp
|
||
are preserved pointing straight to the same implementation as the old ones.
|
||
Given that, new callers will simply provide a too-big buffer to these
|
||
functions. Any applications/libraries out there that embed jmp_buf or
|
||
ucontext_t in an ABI-relevant data structure that have already been rebuilt
|
||
against 2.19 headers will have to rebuilt again. This is necessary in any
|
||
case to revert the breakage in their ABI caused by the glibc change.
|
||
|
||
* Support for file description locks is added to systems running the
|
||
Linux kernel. The standard file locking interfaces are extended to
|
||
operate on file descriptions, not file descriptors, via the use of
|
||
F_OFD_GETLK, F_OFD_SETLK, and F_OFD_SETLKW. File description locks
|
||
are associated with an open file instead of a process.
|
||
|
||
* Optimized strchr implementation for AArch64. Contributed by ARM Ltd.
|
||
|
||
* The minimum Linux kernel version that this version of the GNU C Library
|
||
can be used with is 2.6.32.
|
||
|
||
* Running the testsuite no longer terminates as soon as a test fails.
|
||
Instead, a file tests.sum (xtests.sum from "make xcheck") is generated,
|
||
with PASS or FAIL lines for individual tests. A summary of the results is
|
||
printed, including a list of failing lists, and "make check" exits with
|
||
error status if there were any unexpected failures. "make check
|
||
stop-on-test-failure=y" may be used to keep the old behavior.
|
||
|
||
* The am33 port, which had not worked for several years, has been removed
|
||
from ports.
|
||
|
||
* The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer
|
||
supported; they now act the same as _DEFAULT_SOURCE (but generate a
|
||
warning). Except for cases where _BSD_SOURCE enabled BSD interfaces that
|
||
conflicted with POSIX (support for which was removed in 2.19), the
|
||
interfaces those macros enabled remain available when compiling with
|
||
_GNU_SOURCE defined, with _DEFAULT_SOURCE defined, or without any feature
|
||
test macros defined.
|
||
|
||
* Optimized strcmp implementation for ARMv7. Contributed by ARM Ltd.
|
||
|
||
* Added support for TX lock elision of pthread mutexes on s390 and s390x.
|
||
This may improve lock scaling of existing programs on TX capable systems.
|
||
The lock elision code is only built with --enable-lock-elision=yes and
|
||
then requires a GCC version supporting the TX builtins. With lock elision
|
||
default mutexes are elided via __builtin_tbegin, if the cpu supports
|
||
transactions. By default lock elision is not enabled and the elision code
|
||
is not built.
|
||
|
||
* CVE-2014-4043 The posix_spawn_file_actions_addopen implementation did not
|
||
copy the path argument. This allowed programs to cause posix_spawn to
|
||
deference a dangling pointer, or use an unexpected pathname argument if
|
||
the string was modified after the posix_spawn_file_actions_addopen
|
||
invocation.
|
||
|
||
* All supported architectures now use the main glibc sysdeps directory
|
||
instead of some being in a separate "ports" directory (which was
|
||
distributed separately before glibc 2.17).
|
||
|
||
* The NPTL implementation of POSIX pthreads is no longer an "add-on".
|
||
On configurations that support it (all Linux configurations), it's now
|
||
used regardless of the --enable-add-ons switch to configure. It is no
|
||
longer possible to build such configurations without pthreads support.
|
||
|
||
* Locale names, including those obtained from environment variables (LANG
|
||
and the LC_* variables), are more tightly checked for proper syntax.
|
||
setlocale will now fail (with EINVAL) for locale names that are overly
|
||
long, contain slashes without starting with a slash, or contain ".." path
|
||
components. (CVE-2014-0475) Previously, some valid locale names were
|
||
silently replaced with the "C" locale when running in AT_SECURE mode
|
||
(e.g., in a SUID program). This is no longer necessary because of the
|
||
additional checks.
|
||
|
||
* On x86-64, the dynamic linker's lazy-binding support is now compatible
|
||
with application code using Intel MPX instructions. (With all previous
|
||
versions, the MPX register state could be clobbered when making calls
|
||
into or out of a shared library.) Note that while the new dynamic
|
||
linker is compatible with all known x86 hardware whether or not it
|
||
supports Intel MPX, some x86 instruction-set emulators might fail to
|
||
handle the new instruction encodings. This is known to affect Valgrind
|
||
versions up through 3.9 (but will be fixed in the forthcoming 3.10
|
||
release), and might affect other tools that do instruction emulation.
|
||
|
||
* Support for loadable gconv transliteration modules has been removed.
|
||
The support for transliteration modules has been non-functional for
|
||
over a decade, and the removal is prompted by security defects. The
|
||
normal gconv conversion modules are still supported. Transliteration
|
||
with //TRANSLIT is still possible, and the //IGNORE specifier
|
||
continues to be supported. (CVE-2014-5119)
|
||
|
||
* Decoding a crafted input sequence in the character sets IBM933, IBM935,
|
||
IBM937, IBM939, IBM1364 could result in an out-of-bounds array read,
|
||
resulting a denial-of-service security vulnerability in applications which
|
||
use functions related to iconv. (CVE-2014-6040)
|
||
|
||
Version 2.19
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
156, 387, 431, 762, 832, 926, 2801, 4772, 6786, 6787, 6807, 6810, 6981,
|
||
7003, 9721, 9954, 10253, 10278, 11087, 11157, 11214, 12100, 12486, 12751,
|
||
12986, 13028, 13982, 13985, 14029, 14032, 14120, 14143, 14155, 14286,
|
||
14547, 14699, 14752, 14782, 14876, 14910, 15004, 15048, 15073, 15089,
|
||
15128, 15218, 15268, 15277, 15308, 15362, 15374, 15400, 15425, 15427,
|
||
15483, 15522, 15531, 15532, 15593, 15601, 15608, 15609, 15610, 15632,
|
||
15640, 15670, 15672, 15680, 15681, 15723, 15734, 15735, 15736, 15748,
|
||
15749, 15754, 15760, 15763, 15764, 15797, 15799, 15825, 15843, 15844,
|
||
15846, 15847, 15849, 15850, 15855, 15856, 15857, 15859, 15867, 15886,
|
||
15887, 15890, 15892, 15893, 15895, 15897, 15901, 15905, 15909, 15915,
|
||
15917, 15919, 15921, 15923, 15939, 15941, 15948, 15963, 15966, 15968,
|
||
15985, 15988, 15997, 16032, 16034, 16036, 16037, 16038, 16041, 16046,
|
||
16055, 16071, 16072, 16074, 16077, 16078, 16103, 16112, 16143, 16144,
|
||
16146, 16150, 16151, 16153, 16167, 16169, 16172, 16195, 16214, 16245,
|
||
16271, 16274, 16283, 16289, 16293, 16314, 16316, 16330, 16337, 16338,
|
||
16356, 16365, 16366, 16369, 16372, 16375, 16379, 16381, 16384, 16385,
|
||
16386, 16387, 16390, 16394, 16398, 16400, 16407, 16408, 16414, 16430,
|
||
16431, 16453, 16474, 16506, 16510, 16529
|
||
|
||
* Slovenian translations for glibc messages have been contributed by the
|
||
Translation Project's Slovenian team of translators.
|
||
|
||
* The public headers no longer use __unused nor __block. This change is to
|
||
support compiling programs that are derived from BSD sources and use
|
||
__unused internally, and to support compiling with Clang's -fblock
|
||
extension which uses __block.
|
||
|
||
* CVE-2012-4412 The strcoll implementation caches indices and rules for
|
||
large collation sequences to optimize multiple passes. This cache
|
||
computation may overflow for large collation sequences and may cause a
|
||
stack or buffer overflow. This is now fixed to use a slower algorithm
|
||
which does not use a cache if there is an integer overflow.
|
||
|
||
* CVE-2012-4424 The strcoll implementation uses malloc to cache indices and
|
||
rules for large collation sequences to optimize multiple passes and falls
|
||
back to alloca if malloc fails, resulting in a possible stack overflow.
|
||
The implementation now falls back to an uncached collation sequence lookup
|
||
if malloc fails.
|
||
|
||
* CVE-2013-4788 The pointer guard used for pointer mangling was not
|
||
initialized for static applications resulting in the security feature
|
||
being disabled. The pointer guard is now correctly initialized to a
|
||
random value for static applications. Existing static applications need
|
||
to be recompiled to take advantage of the fix (bug 15754).
|
||
|
||
* CVE-2013-4237 The readdir_r function could write more than NAME_MAX bytes
|
||
to the d_name member of struct dirent, or omit the terminating NUL
|
||
character. (Bugzilla #14699).
|
||
|
||
* CVE-2013-4332 The pvalloc, valloc, memalign, posix_memalign and
|
||
aligned_alloc functions could allocate too few bytes or corrupt the
|
||
heap when passed very large allocation size values (Bugzilla #15855,
|
||
#15856, #15857).
|
||
|
||
* CVE-2013-4458 Stack overflow in getaddrinfo with large number of results
|
||
for AF_INET6 has been fixed (Bugzilla #16072).
|
||
|
||
* New locales: ak_GH, anp_IN, ar_SS, cmn_TW, hak_TW, lzh_TW, nan_TW, pap_AW,
|
||
pap_CW, quz_PE, the_NP.
|
||
|
||
* Substantially revised locales: gd_GB, ht_HT
|
||
|
||
* The LC_ADDRESS field was updated to support country_car for almost all
|
||
supported locales.
|
||
|
||
* ISO 1427 definitions were updated.
|
||
|
||
* ISO 3166 definitions were updated.
|
||
|
||
* The localedef utility now supports --big-endian and --little-endian
|
||
command-line options to generate locales for a different system from that
|
||
for which the C library was built.
|
||
|
||
* Binary locale files now only depend on the endianness of the system for
|
||
which they are generated and not on other properties of that system. As a
|
||
consequence, binary files generated with new localedef may be incompatible
|
||
with old versions of the GNU C Library, and binary files generated with
|
||
old localedef may be incompatible with this version of the GNU C Library,
|
||
in the following circumstances:
|
||
|
||
+ Locale files may be incompatible on m68k systems.
|
||
|
||
+ Locale archive files (but not separate files for individual locales) may
|
||
be incompatible on systems where plain "char" is signed.
|
||
|
||
* The configure option --disable-versioning has been removed. Builds with
|
||
--disable-versioning had not worked for several years.
|
||
|
||
* ISO 639 definitions were updated for Chiga (cgg) and Chinese (gan, hak, czh,
|
||
cjy, lzh, cmn, mnp, cdo, czo, cpx, wuu, hsn, yue).
|
||
|
||
* SystemTap probes for malloc have been introduced.
|
||
|
||
* SystemTap probes for slow multiple precision fallback paths of
|
||
transcendental functions have been introduced.
|
||
|
||
* Support for powerpc64le has been added.
|
||
|
||
* The soft-float powerpc port now supports e500 processors.
|
||
|
||
* Support for STT_GNU_IFUNC symbols added for ppc32/power4+ and ppc64.
|
||
|
||
* A new feature test macro _DEFAULT_SOURCE is available to enable the same
|
||
set of header declarations that are enabled by default, even when other
|
||
feature test macros or compiler options such as -std=c99 would otherwise
|
||
disable some of those declarations.
|
||
|
||
* The _BSD_SOURCE feature test macro no longer enables BSD interfaces that
|
||
conflict with POSIX. The libbsd-compat library (which was a dummy library
|
||
that did nothing) has also been removed.
|
||
|
||
* Preliminary documentation about Multi-Thread, Async-Signal and
|
||
Async-Cancel Safety has been added.
|
||
|
||
* Change of ABI data structures for s390 and s390x:
|
||
On s390 and s390x the size of struct ucontext and jmp_buf was increased to
|
||
allow for future hardware extensions. All library functions that accept or
|
||
return these structures were versioned in order to provide backwards
|
||
compatibility with existing code. However, not all cases can be handled
|
||
with interface versioning. If an application embeds either structure into
|
||
another structure and that structure is passed to another compilation unit
|
||
which expects the newer larger-sized object then any access to the new
|
||
fields will result in undefined behaviour. Similarly any access to fields
|
||
that were moved by the enlarging of the structures will cause undefined
|
||
behaviour. To fix the undefined behaviour all objects that are part of the
|
||
final in-memory image must agree on the size of structures, and this may
|
||
require recompilation.
|
||
|
||
Version 2.18
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
2546, 2560, 5159, 6809, 7006, 10060, 10062, 10283, 10357, 10686, 11120,
|
||
11561, 12310, 12387, 12492, 12515, 12723, 13550, 13889, 13951, 13988,
|
||
14142, 14176, 14200, 14256, 14280, 14293, 14317, 14327, 14478, 14496,
|
||
14582, 14686, 14812, 14888, 14894, 14907, 14908, 14909, 14920, 14941,
|
||
14952, 14964, 14981, 14982, 14985, 14991, 14994, 14996, 15000, 15003,
|
||
15006, 15007, 15014, 15020, 15022, 15023, 15036, 15054, 15055, 15062,
|
||
15078, 15084, 15085, 15086, 15100, 15160, 15214, 15221, 15232, 15234,
|
||
15283, 15285, 15287, 15304, 15305, 15307, 15309, 15327, 15330, 15335,
|
||
15336, 15337, 15339, 15342, 15346, 15359, 15361, 15366, 15380, 15381,
|
||
15394, 15395, 15405, 15406, 15409, 15416, 15418, 15419, 15423, 15424,
|
||
15426, 15429, 15431, 15432, 15441, 15442, 15448, 15465, 15480, 15485,
|
||
15488, 15490, 15492, 15493, 15497, 15506, 15529, 15536, 15553, 15577,
|
||
15583, 15618, 15627, 15631, 15654, 15655, 15666, 15667, 15674, 15711,
|
||
15755, 15759.
|
||
|
||
* CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal
|
||
has been fixed by disabling the use of pt_chown (Bugzilla #15755).
|
||
Distributions can re-enable building and using pt_chown via the new configure
|
||
option `--enable-pt_chown'. Enabling the use of pt_chown carries with it
|
||
considerable security risks and should only be used if the distribution
|
||
understands and accepts the risks.
|
||
|
||
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
|
||
#15078).
|
||
|
||
* CVE-2013-1914 Stack overflow in getaddrinfo with many results has been
|
||
fixed (Bugzilla #15330).
|
||
|
||
* Add support for calling C++11 thread_local object destructors on thread
|
||
and program exit. This needs compiler support for offloading C++11
|
||
destructor calls to glibc.
|
||
|
||
* Improved worst case performance of libm functions with double inputs and
|
||
output.
|
||
|
||
* Support for priority inherited mutexes in pthread condition variables on
|
||
non-x86 architectures.
|
||
|
||
* Port to Xilinx MicroBlaze contributed by David Holsgrove.
|
||
|
||
* Optimized string functions for AArch64. Implemented by Marcus Shawcroft.
|
||
|
||
* Optimized string functions for ARM. Implemented by Will Newton and
|
||
Richard Henderson.
|
||
|
||
* Optimized libm functions for SPARC. Implemented by David S. Miller.
|
||
|
||
* Support for building more of ARM glibc as Thumb-2 code. Implemented by
|
||
Richard Henderson.
|
||
|
||
* Support for building most of MIPS glibc as MIPS16 code. Implemented by
|
||
Chung-Lin Tang, Maciej W. Rozycki and Maxim Kuvyrkov.
|
||
|
||
* Added a benchmark framework to track performance of functions in glibc.
|
||
|
||
* New <math.h> macro named issignaling to check for a signaling NaN (sNaN).
|
||
It is based on draft TS 18661 and currently enabled as a GNU extension.
|
||
|
||
* On Linux, the clock function now uses the clock_gettime system call
|
||
for improved precision, rather than old times system call.
|
||
|
||
* Added support for version-3 tz format files. This is needed when using
|
||
the tz database release 2013e or later, and affects a few unusual cases --
|
||
currently only TZ='America/Godthab' for time stamps after 2037.
|
||
|
||
* Added new API functions pthread_getattr_default_np and
|
||
pthread_setattr_default_np to get and set the default pthread
|
||
attributes of a process.
|
||
|
||
* Added support for TSX lock elision for pthread mutexes on i386 and x86-64.
|
||
This may improve lock scaling of existing programs on TSX capable systems.
|
||
When the --enable-lock-elision=yes parameter is specified at configure
|
||
time lock elision will be enabled by default for all PTHREAD_MUTEX_DEFAULT
|
||
mutexes.
|
||
|
||
* Support added for AT_HWCAP2 (to coincide with Linux kernel 3.10
|
||
availability). Implemented by Ryan S. Arnold.
|
||
|
||
* Support added for POWER8 platform. Implemented by Ryan S. Arnold.
|
||
|
||
Version 2.17
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
1349, 3439, 3479, 3665, 5044, 5246, 5298, 5400, 6530, 6677, 6778, 6808,
|
||
9685, 9914, 10014, 10038, 10114, 10191, 10631, 10873, 11438, 11607, 11638,
|
||
11741, 12140, 13013, 13412, 13542, 13601, 13603, 13604, 13629, 13679,
|
||
13696, 13698, 13717, 13741, 13759, 13761, 13763, 13881, 13939, 13950,
|
||
13952, 13966, 14042, 14047, 14090, 14150, 14151, 14152, 14154, 14157,
|
||
14166, 14173, 14195, 14197, 14237, 14246, 14251, 14252, 14283, 14298,
|
||
14303, 14307, 14328, 14331, 14336, 14337, 14347, 14349, 14368, 14376,
|
||
14417, 14447, 14459, 14476, 14477, 14501, 14505, 14510, 14516, 14518,
|
||
14519, 14530, 14532, 14538, 14543, 14544, 14545, 14557, 14562, 14568,
|
||
14576, 14579, 14583, 14587, 14595, 14602, 14610, 14621, 14638, 14645,
|
||
14648, 14652, 14660, 14661, 14669, 14672, 14683, 14694, 14716, 14719,
|
||
14743, 14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14803,
|
||
14805, 14807, 14811, 14815, 14821, 14822, 14824, 14828, 14831, 14833,
|
||
14835, 14838, 14856, 14863, 14865, 14866, 14868, 14869, 14871, 14872,
|
||
14879, 14889, 14893, 14898, 14914.
|
||
|
||
* Optimization of memcpy for MIPS.
|
||
|
||
* CVE-2011-4609 svc_run() produces high cpu usage when accept fails with
|
||
EMFILE has been fixed (Bugzilla #14889).
|
||
|
||
* The add-on ports collection is now distributed in the "ports" subdirectory
|
||
of the main GNU C Library distribution, rather than separately.
|
||
|
||
* Port to ARM AArch64 contributed by Linaro.
|
||
|
||
* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
|
||
Optimized versions of memcpy, memset, and memcmp added for System z10 and
|
||
zEnterprise z196.
|
||
Implemented by Andreas Krebbel.
|
||
|
||
* The new function secure_getenv allows secure access to the environment,
|
||
returning NULL if running in a SUID/SGID process. This function replaces
|
||
the internal function __secure_getenv.
|
||
|
||
* SystemTap static probes have been added into the dynamic linker.
|
||
Implemented by Gary Benson.
|
||
|
||
* Optimizations of string functions strstr, strcasestr and memmem.
|
||
Implemented by Maxim Kuvyrkov.
|
||
|
||
* The minimum Linux kernel version that this version of the GNU C Library
|
||
can be used with is 2.6.16.
|
||
|
||
* Optimizations of string functions memchr, wcschr, wcscpy, and wcsrchr for
|
||
powerpc POWER7. Implemented by Will Schmidt.
|
||
|
||
* New configure option --disable-nscd builds the C library such that it
|
||
never attempts to contact the Name Service Caching Daemon (nscd).
|
||
New configure option --disable-build-nscd avoids building nscd itself;
|
||
this is the default if --disable-nscd is used.
|
||
|
||
* Improved support for cross-compilation, including cross-testing and
|
||
bootstrap builds without a previously built glibc.
|
||
|
||
* Several testsuite tests are now able to test multiple IFUNC variants of an
|
||
interface, rather than just testing the one that would be chooen by
|
||
default.
|
||
|
||
* New configure options --with-bugurl and --with-pkgversion, for
|
||
distributors to use to embed their bug-reporting and package version
|
||
information in --help and --version output.
|
||
|
||
* The ttyname and ttyname_r functions on Linux now fall back to searching for
|
||
the tty file descriptor in /dev/pts or /dev if /proc is not available. This
|
||
allows creation of chroots without the procfs mounted on /proc.
|
||
|
||
* The `crypt' function now fails if passed salt bytes that violate the
|
||
specification for those values. On Linux, the `crypt' function will
|
||
consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is
|
||
enabled, and fail on encrypted strings using the MD5 or DES algorithm
|
||
when the mode is enabled.
|
||
|
||
* The `clock_*' suite of functions (declared in <time.h>) is now available
|
||
directly in the main C library. Previously it was necessary to link with
|
||
-lrt to use these functions. This change has the effect that a
|
||
single-threaded program that uses a function such as `clock_gettime' (and
|
||
is not linked with -lrt) will no longer implicitly load the pthreads
|
||
library at runtime and so will not suffer the overheads associated with
|
||
multi-thread support in other code such as the C++ runtime library.
|
||
|
||
* New locales: ayc_PE, doi_IN, ia_FR, mni_IN, nhn_MX, niu_NU, niu_NZ,
|
||
sat_IN, and szl_PL.
|
||
|
||
Version 2.16
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
174, 208, 350, 369, 411, 706, 766, 2074, 2541, 2547, 2548, 2550, 2551,
|
||
2552, 2553, 2554, 2562, 2563, 2565, 2566, 2570, 2576, 2636, 2678, 3335,
|
||
3440, 3748, 3768, 3866, 3868, 3906, 3976, 3992, 4026, 4108, 4596, 4822,
|
||
5077, 5461, 5805, 5993, 6471, 6486, 6578, 6649, 6730, 6770, 6794, 6884,
|
||
6890, 6894, 6895, 6907, 6911, 6959, 7064, 9739, 9902, 10110, 10135, 10140,
|
||
10153, 10210, 10254, 10346, 10375, 10545, 10716, 10846, 10882, 11174,
|
||
11261, 11322, 11365, 11451, 11494, 11521, 11677, 11837, 11959, 12047,
|
||
12097, 12193, 12194, 12297, 12298, 12301, 12340, 12354, 12416, 12495,
|
||
13058, 13223, 13361, 13525, 13526, 13527, 13528, 13529, 13530, 13531,
|
||
13532, 13533, 13547, 13551, 13552, 13553, 13555, 13556, 13559, 13563,
|
||
13566, 13576, 13579, 13583, 13592, 13594, 13613, 13618, 13637, 13656,
|
||
13658, 13673, 13691, 13695, 13704, 13705, 13706, 13718, 13726, 13738,
|
||
13739, 13743, 13750, 13758, 13760, 13761, 13775, 13786, 13787, 13792,
|
||
13806, 13824, 13840, 13841, 13844, 13846, 13848, 13851, 13852, 13854,
|
||
13871, 13872, 13873, 13879, 13882, 13883, 13884, 13885, 13886, 13892,
|
||
13895, 13908, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917,
|
||
13918, 13919, 13920, 13921, 13922, 13923, 13924, 13926, 13927, 13928,
|
||
13938, 13941, 13942, 13954, 13955, 13956, 13963, 13967, 13968, 13970,
|
||
13973, 13979, 13983, 13986, 13996, 14012, 14027, 14033, 14034, 14036,
|
||
14040, 14043, 14044, 14048, 14049, 14050, 14053, 14055, 14059, 14064,
|
||
14075, 14080, 14083, 14103, 14104, 14109, 14112, 14117, 14122, 14123,
|
||
14134, 14153, 14183, 14188, 14199, 14210, 14218, 14229, 14241, 14273,
|
||
14277, 14278.
|
||
|
||
* Support for the x32 ABI on x86-64 added. The x32 target is selected by
|
||
configuring glibc with:
|
||
BUILD_CC='gcc' CC='gcc -mx32' CXX='g++ -mx32'
|
||
Visit <http://sites.google.com/site/x32abi/> for more x32 ABI info.
|
||
Implemented by H.J. Lu.
|
||
|
||
* ISO C11 support:
|
||
|
||
+ define static_assert
|
||
|
||
+ do not declare gets
|
||
|
||
+ declare at_quick_exit and quick_exit also for ISO C11
|
||
|
||
+ aligned_alloc. NB: The code is deliberately allows the size parameter
|
||
to not be a multiple of the alignment. This is a moronic requirement
|
||
in the standard but it is only a requirement on the caller, not the
|
||
implementation.
|
||
|
||
+ timespec_get added
|
||
|
||
+ uchar.h support added
|
||
|
||
+ CMPLX, CMPLXF, CMPLXL added
|
||
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Support for the IA-64 has been moved to ports.
|
||
|
||
* Remove support for anything but ELF binary format
|
||
|
||
* Checking versions of poll, ppoll added.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* More generic and 64-bit performance optimizations to math functions.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New configure option --enable-obsolete-rpc makes the deprecated RPC
|
||
headers and functions available at compile time as they were before
|
||
version 2.14. This option will be removed at some time in the future
|
||
after the TI-RPC library becomes fully sufficient for the needs of
|
||
existing applications.
|
||
|
||
* Compatibility code for Linux kernel versions before 2.4 has been removed.
|
||
Note that glibc is not expected to work with any Linux kernel version
|
||
before 2.6.
|
||
|
||
* New header <sys/auxv.h> and function getauxval allowing easy access to
|
||
the AT_* key-value pairs passed from the Linux kernel. The header also
|
||
defines the HWCAP_* bits associated with the AT_HWCAP key.
|
||
|
||
* New locales: mag_IN
|
||
|
||
* New configure option --enable-systemtap builds SystemTap static probes
|
||
into libc for setjmp and longjmp and into libpthread for various operations.
|
||
So far the setjmp/longjmp probes and some of the libpthread probes are
|
||
provided only for i*86 and x86_64.
|
||
Implemented by Roland McGrath and Rayson Ho.
|
||
|
||
* Optimized expf for x86-32 and x86-64. Implemented by Liubov Dmitrieva.
|
||
|
||
* More optimized functions for PowerPC. Implemented by Adhemerval Zanella
|
||
and Will Schmidt.
|
||
|
||
* More optimized functions for SPARC. Implemented by David S. Miller.
|
||
|
||
* Improved support for cross-compilation, especially bootstrap builds
|
||
without a previously built glibc.
|
||
|
||
* Ports for the TILE-Gx and TILEPro families of processors. Contributed by
|
||
Chris Metcalf from Tilera.
|
||
|
||
* Support for the old ARM ABI has been removed from ports. Only the EABI is
|
||
now supported for ARM processors.
|
||
|
||
* The hard-float variant of the ARM EABI now uses /lib/ld-linux-armhf.so.3
|
||
as the name of the dynamic linker, to distinguish it from the
|
||
/lib/ld-linux.so.3 dynamic linker used for the base EABI.
|
||
|
||
* Support for CRIS has been removed from ports.
|
||
|
||
* A new class of installed header has been documented for low-level
|
||
platform-specific functionality. PowerPC added the first instance with a
|
||
function to provide time base register access. Contributed by Tulio
|
||
Magno Quites Machado Filho.
|
||
|
||
* ix86 configurations now install header files that are consistent with
|
||
what x86-64 configurations install. These same header files can be used
|
||
for -m32, -m64, or -mx32 builds.
|
||
Contributed by H.J. Lu.
|
||
|
||
* Math library bug fixes. A thorough audit of all open math library bugs was
|
||
conducted by Joseph Myers. Significant progress was made on many math
|
||
library bugs resulting in more accurate exceptions and function results.
|
||
Many thanks to all those that contributed including Andreas Jaeger for his
|
||
patch review and work on the x87 trigonometric instruction issues.
|
||
|
||
* Timezone data is no longer installed. Timezone-related binaries and scripts
|
||
will continue to be installed. Users should obtain their timezone data from
|
||
their distribution provider or from the tzdata package at
|
||
<ftp://munnari.oz.au/pub/>.
|
||
|
||
Version 2.15
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
6779, 6783, 9696, 10103, 10709, 11589, 11929, 12403, 12786, 12840, 12847,
|
||
12868, 12852, 12874, 12885, 12892, 12906, 12907, 12922, 12935, 12962,
|
||
13007, 13021, 13061, 13062, 13067, 13068, 13085, 13088, 13090, 13092,
|
||
13096, 13114, 13118, 13123, 13134, 13138, 13147, 13150, 13166, 13179,
|
||
13185, 13189, 13192, 13268, 13276, 13282, 13291, 13305, 13328, 13335,
|
||
13337, 13344, 13358, 13367, 13413, 13416, 13423, 13439, 13446, 13472,
|
||
13484, 13506, 13515, 13523, 13524, 13538, 13540
|
||
|
||
* New program pldd to list loaded object of a process
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Add nss_db support back to glibc. No more dependency on Berkeley db
|
||
and support for initgroups lookups.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Optimized strcpy, strncpy, stpcpy, stpncpy for SSE2 and SSSE3 on x86-32.
|
||
Contributed by HJ Lu.
|
||
|
||
* Improved strcpy, strncpy, stpcpy, stpncpy for SSE2 and SSSE3 on x86-64.
|
||
Contributed by HJ Lu.
|
||
|
||
* Optimized strcat, strncat on x86-64 and optimized wcscmp, wcslen, strnlen
|
||
on x86-32 and x86-64.
|
||
Contributed by Liubov Dmitrieva.
|
||
|
||
* Optimized strchr and strrchr for SSE on x86-32.
|
||
Contributed by Liubov Dmitrieva.
|
||
|
||
* Optimized memchr, memrchr, rawmemchr, memcmp, wmemcmp, wcschr, wcscpy
|
||
for x86-64 and x86-32.
|
||
Contributed by Liubov Dmitrieva.
|
||
|
||
* New interfaces: scandirat, scandirat64
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Checking versions of FD_SET, FD_CLR, and FD_ISSET added.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* nscd now also caches the netgroup database.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Integrate libm with gcc's -ffinite-math-only option.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Lots of generic, 64-bit, and x86-64-specific performance optimizations
|
||
to math functions. Implemented by Ulrich Drepper.
|
||
|
||
* Optimized strcasecmp and strncasecmp for AVX on x86-64.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New Linux interfaces: process_vm_readv, process_vm_writev
|
||
|
||
* Optimized strcasecmp and strncasecmp for SSSE3 and SSE4.2 on x86-32.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Optimized nearbyint and strcasecmp for PPC.
|
||
Implemented by Adhemerval Zanella.
|
||
|
||
* New locales: bho_IN, unm_US, es_CU, ta_LK
|
||
|
||
Version 2.14
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
386, 6420, 7101, 9730, 9732, 9809, 10138, 10149, 10157, 11099, 11257,
|
||
11258, 11487, 11532, 11558, 11578, 11634, 11653, 11668, 11697, 11724,
|
||
11781, 11799, 11820, 11837, 11857, 11884, 11892, 11895, 11901, 11945,
|
||
11947, 11952, 11987, 12052, 12083, 12158, 12178, 12200, 12346, 12350,
|
||
12393, 12420, 12432, 12445, 12449, 12453, 12454, 12460, 12469, 12489,
|
||
12509, 12510, 12511, 12518, 12527, 12541, 12545, 12551, 12582, 12583,
|
||
12587, 12597, 12601, 12611, 12625, 12626, 12631, 12650, 12653, 12655,
|
||
12660, 12671, 12681, 12684, 12685, 12711, 12713, 12714, 12717, 12723,
|
||
12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792,
|
||
12795, 12811, 12813, 12814, 12841
|
||
|
||
* The RPC implementation in libc is obsoleted. Old programs keep working
|
||
but new programs cannot be linked with the routines in libc anymore.
|
||
Programs in need of RPC functionality must be linked against TI-RPC.
|
||
The TI-RPC implementation is IPv6 enabled and there are other benefits.
|
||
|
||
Visible changes of this change include (obviously) the inability to link
|
||
programs using RPC functions without referencing the TI-RPC library and the
|
||
removal of the RPC headers from the glibc headers.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at,
|
||
syncfs, setns, sendmmsg
|
||
|
||
* New locales: os_RU, bem_ZA, en_ZA, ff_SN, sw_KE, sw_TZ, lb_LU, wae_CH,
|
||
yue_HK, lij_IT, mhr_RU
|
||
|
||
* New encodings: CP770, CP771, CP772, CP773, CP774
|
||
|
||
* New program sotruss to trace calls through PLTs
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* The malloc hook implementation is marked deprecated and will be removed
|
||
from the default implementation in the next version. The design never
|
||
worked ever since the introduction of threads. Even programs which do
|
||
not create threads themselves can use multiple threads created internally.
|
||
|
||
Version 2.13
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
3268, 6812, 7066, 10085, 10484, 10563, 10851, 11149, 11155, 11577, 11611,
|
||
11640, 11655, 11701, 11840, 11856, 11883, 11903, 11904, 11968, 11979,
|
||
12005, 12037, 12067, 12077, 12078, 12092, 12093, 12107, 12108, 12113,
|
||
12140, 12159, 12167, 12191, 12194, 12201, 12204, 12205, 12207, 12348,
|
||
12378, 12394, 12397
|
||
|
||
* New Linux interfaces: prlimit, prlimit64, fanotify_init, fanotify_mark
|
||
|
||
* POWER7 optimizations: memset, memcmp, strncmp
|
||
|
||
* New optimized string functions for x86-64: strnlen (SSE2),
|
||
strcasecmp (SSE2, SSSE3, SSE4.2), strncasecmp (SSE2, SSSE3, SSE4.2)
|
||
Implemented by Ulrich Drepper.
|
||
|
||
Version 2.12
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
3662, 4457, 5553, 10162, 10401, 10414, 10554, 10824, 10864, 10915,
|
||
10918, 10936, 10939, 10958, 10968, 10969, 10972, 10992, 11000, 11001,
|
||
11007, 11010, 11027, 11039, 11040, 11041, 11043, 11046, 11056, 11070,
|
||
11093, 11115, 11125, 11126, 11127, 11134, 11141, 11149, 11183, 11184,
|
||
11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194,
|
||
11200, 11230, 11235, 11242, 11254, 11258, 11271, 11272, 11276, 11279,
|
||
11287, 11292, 11319, 11332, 11333, 11387, 11389, 11390, 11394, 11397,
|
||
11410, 11438, 11449, 11470, 11471, 11520, 11537, 11538, 11571
|
||
|
||
* New interfaces: pthread_getname_np, pthread_setname_np
|
||
|
||
* New Linux interface: recvmmsg
|
||
|
||
* STT_GNU_IFUNC implemented for Sparc by David Miller.
|
||
|
||
* The dynamic linker now recognizes supported ABI versions from the
|
||
EI_ABIVERSION field in the ELF header.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New NIS mode selector ADJUNCT_AS_SHADOW. The passwd.adjunct.byname table
|
||
will not be used to fill in password fields in the passwd.byname replies.
|
||
Instead it is used to synthesize the shadow.byname table, should it be
|
||
missing. This is a useful mode in some installations involving Solaris.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New locales: kok_IN, sq_MK, cv_RU
|
||
|
||
Version 2.11
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
3270, 7094, 9924, 9986, 10011, 10085, 10107, 10159, 10162, 10166, 10183,
|
||
10195, 10196, 10200, 10203, 10207, 10211, 10213, 10217, 10221, 10229,
|
||
10262, 10286, 10312, 10315, 10319, 10349, 10360, 10391, 10402, 10416,
|
||
10418, 10422, 10425, 10446, 10448, 10452, 10540, 10553, 10560, 10564,
|
||
10609, 10643, 10692, 10713, 10717, 10730, 10731, 10742, 10780, 10784,
|
||
10789, 10817, 10823, 10840, 10847
|
||
|
||
* New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64, mkostemps,
|
||
mkostemps64
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Checking version of longjmp added that fails if an uninitialized stack
|
||
frame would be created. Implemented by Ulrich Drepper.
|
||
|
||
* STT_GNU_IFUNC is now supported in static executables.
|
||
Implemented by H.J. Lu.
|
||
|
||
* STT_GNU_IFUNC implemented for PPC by Alan Modra.
|
||
|
||
* New optimized string functions for x86-64: strstr, strcasestr, memcmp,
|
||
strcspn, strpbrk, strspn, strcpy, stpcpy, strncpy, strcmp (SSE2, SSE4.2),
|
||
strncmp (SSE2, SSE4.2), strchr (SSE4.2), strrchr (SSE4.2).
|
||
Contributed by H.J. Lu.
|
||
|
||
strlen, rawmemchr, strcmp (SSSE3), strncmp (SSSE3).
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New optimized string functions for x86: strlen, strcspn, strspn, strpbrk,
|
||
strstr, strcasestr.
|
||
Contributed by H.J. Lu.
|
||
|
||
* Support for fma instruction in AVX on x86-64.
|
||
Implemented by H.J. Lu and Ulrich Drepper.
|
||
|
||
* AVX support in x86-64 auditing support in ld.so.
|
||
Implemented by H.J. Lu.
|
||
|
||
* STB_GNU_UNIQUE support added.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Implement second fallback mode for optimized DNS lookup for even more
|
||
broken environments. If two requests from the same port are not
|
||
handled correctly close the socket and open a new one before sending
|
||
the second request. The 'single-request-reopen' option in /etc/resolv.conf
|
||
can be used to select this mode right away, instead of rediscovering the
|
||
necessity is every process again.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New resolver flag RES_USE_DNSSEC to enable use of verified lookup.
|
||
Implemented by Adam Tkac.
|
||
|
||
* Optimized iconv conversions for S390x.
|
||
Implemented by Andreas Krebbel.
|
||
|
||
* Using condvars with PI mutexes is now more efficient due to kernel
|
||
support for requeueing to PI futexes. NPTL support added for x86-64.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New locales: ps_AF, my_MM
|
||
|
||
Version 2.10
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
697, 5381, 5807, 6411, 6545, 7040, 7058, 7067, 7080, 7083, 7095, 7098,
|
||
9677, 9694, 9697, 9701, 9704, 9705, 9706, 9720, 9726, 9730, 9733, 9736,
|
||
9741, 9750, 9753, 9759, 9781, 9791, 9793, 9823, 9833, 9844, 9880, 9881,
|
||
9891, 9893, 9895, 9913, 9916, 9920, 9948, 9955, 9957, 9963, 9985, 10052,
|
||
10069, 10086, 10087, 10090, 10092, 10093, 10100, 10118, 10128
|
||
|
||
* New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New Linux interfaces: accept4, fallocate, fallocate64.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Correct declarations of string function when used in C++ code. This
|
||
could lead to compile errors for invalid C++ code.
|
||
|
||
* XPG7/POSIX 2008 compilation environment. Many GNU-specific functions are
|
||
now in POSIX.
|
||
|
||
* New POSIX 2008 interface: psiginfo
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New ISO C++1x interfaces: quick_exit, at_quick_exit
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Support for selecting between multiple function definitions at runtime
|
||
using STT_GNU_IFUNC symbols. Implemented by Ulrich Drepper.
|
||
|
||
* The libcrypt library can now use the hash function implementations in
|
||
NSS. Implemented by Ulrich Drepper.
|
||
|
||
* The malloc implementation can be compiled to be less memory efficient
|
||
but higher performing in multi-threaded programs.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New locales: nan_TW@latin, ks_IN
|
||
|
||
* Faster strlen, strchr, strchrnul, strrchr, memchr, and rawmemchr for x86-64.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Extended printf hook support. It is possible to use user-defined types
|
||
and extend existing format specifiers.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Handling for group shadow files has been added.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* DNS IPv4-IPv6 parallel lookup now deals better with broken DNS
|
||
servers (the case, e.g., for some people using the built-in DNS
|
||
server in ADSL modems/routers). There is a once-per-process timeout
|
||
in case of a broken server. To avoid it, users can run nscd or put
|
||
'options single-request' in /etc/resolv.conf.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
Version 2.9
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
3406, 5209, 5210, 5381, 5794, 5814, 5911, 6428, 6438, 6442, 6447, 6461,
|
||
6472, 6505, 6544, 6589, 6612, 6634, 6653, 6654, 6657, 6698, 6712, 6713,
|
||
6719, 6723, 6724, 6740, 6763, 6771, 6790, 6791, 6817, 6824, 6839, 6843,
|
||
6845, 6856, 6857, 6860, 6867, 6875, 6919, 6920, 6942, 6947, 6955, 6966,
|
||
6968, 6974, 6980, 6995, 7008, 7009, 7029
|
||
|
||
* Unified lookup for getaddrinfo: IPv4 and IPv6 addresses are now looked
|
||
up at the same time. Implemented by Ulrich Drepper.
|
||
|
||
* TLS descriptors for LD and GD on x86 and x86-64.
|
||
Implemented by Alexandre Oliva.
|
||
|
||
* getaddrinfo now handles DCCP and UDPlite.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New fixed-size conversion macros: htobe16, htole16, be16toh, le16toh,
|
||
htobe32, htole32, be32toh, le32toh, htobe64, htole64, be64toh, le64toh.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New implementation of memmem, strstr, and strcasestr which is O(n).
|
||
Implemented by Eric Blake.
|
||
|
||
* New Linux interfaces: inotify_init1, dup3, epoll_create1, pipe2
|
||
|
||
* Implement "e" option for popen to open file descriptor with the
|
||
close-on-exec flag set. Implemented by Ulrich Drepper.
|
||
|
||
* Implement "b" mode for fmemopen. In this mode writes writes don't
|
||
implicitly add a NUL byte and seeks from the end of the buffer really
|
||
use the buffer end, not the string length as the basis.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Many functions, exported and internal, now atomically set the close-on-exec
|
||
flag when run on a sufficiently new kernel. Implemented by Ulrich Drepper.
|
||
|
||
* Sorting rules for some Indian languages (Kannada, Gurumukhi, Telugu,
|
||
Sinhala)
|
||
Implemented by Pravin Satpute.
|
||
|
||
* New locales: sd_IN, sd_IN@devanagari, ks_IN@devanagari, ht_HT, en_AG, nl_AW.
|
||
|
||
Version 2.8
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
2549, 3112, 4314, 4407, 4997, 5012, 5040, 5112, 5204, 5208, 5209, 5220,
|
||
5222, 5224, 5225, 5237, 5238, 5240, 5245, 5277, 5346, 5375, 5378, 5382,
|
||
5424, 5427, 5428, 5435, 5436, 5439, 5441, 5442, 5443, 5451, 5452, 5454,
|
||
5455, 5463, 5464, 5465, 5475, 5477, 5478, 5520, 5541, 5545, 5553, 5600,
|
||
5602, 5607, 5614, 5627, 5628, 5736, 5737, 5741, 5753, 5760, 5762, 5768,
|
||
5774, 5777, 5778, 5779, 5786, 5790, 5818, 5854, 5857, 5903, 5939, 5979,
|
||
5983, 5995, 5998, 6004, 6007, 6020, 6021, 6024, 6040, 6042
|
||
|
||
* New locales: bo_CN, bo_IN, shs_CA.
|
||
|
||
* New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8.
|
||
|
||
* Sorting rules for some Indian languages (Devanagari and Gujarati).
|
||
Implemented by Pravin Satpute.
|
||
|
||
* IPV6 addresses in /etc/resolv.conf can now have a scope ID
|
||
|
||
* nscd caches now all timeouts for DNS entries
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* nscd is more efficient and wakes up less often.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* More checking functions: asprintf, dprintf, obstack_printf, vasprintf,
|
||
vdprintf, and obstack_vprintf.
|
||
Implemented by Jakub Jelinek.
|
||
|
||
* Faster memset for x86-64.
|
||
Implemented by Harsha Jagasia and H.J. Lu.
|
||
|
||
* Faster memcpy on x86.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX).
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Faster sqrt and sqrtf implemention for some PPC variants.
|
||
Implemented by Steven Munroe.
|
||
|
||
Version 2.7
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
4125, 4126, 4178, 4359, 4407, 4512, 4514, 4525, 4554, 4556, 4557, 4566,
|
||
4582, 4586, 4588, 4599, 4610, 4647, 4702, 4705, 4726, 4745, 4772, 4773,
|
||
4775, 4776, 4792, 4813, 4814, 4816, 4833, 4858, 4860, 4896, 4905, 4925,
|
||
4936, 4937, 4938, 4941, 4946, 4963, 4972, 5010, 5028, 5043, 5058, 5063,
|
||
5071, 5103, 5104, 5112, 5113, 5184, 5186
|
||
|
||
* More checking functions: fread, fread_unlocked, open*, mq_open.
|
||
Implemented by Jakub Jelinek and Ulrich Drepper.
|
||
|
||
* Extend fortification to C++. Implemented by Jakub Jelinek.
|
||
|
||
* Implement 'm' modifier for scanf. Add stricter C99/SUS compliance
|
||
by not recognizing 'a' as a modifier when those specs are requested.
|
||
Implemented by Jakub Jelinek.
|
||
|
||
* PPC optimizations to math and string functions.
|
||
Implemented by Steven Munroe.
|
||
|
||
* New interfaces: mkostemp, mkostemp64. Like mkstemp* but allow additional
|
||
options to be passed. Implemented by Ulrich Drepper.
|
||
|
||
* More CPU set manipulation functions. Implemented by Ulrich Drepper.
|
||
|
||
* New Linux interfaces: signalfd, eventfd, eventfd_read, and eventfd_write.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Handle private futexes in the NPTL implementation.
|
||
Implemented by Jakub Jelinek and Ulrich Drepper.
|
||
|
||
* Add support for O_CLOEXEC. Implement in Hurd. Use throughout libc.
|
||
Implemented by Roland McGrath and Ulrich Drepper.
|
||
|
||
* Linux/x86-64 vDSO support. Implemented by Ulrich Drepper.
|
||
|
||
* SHA-256 and SHA-512 based password encryption.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New locales: ber_DZ, ber_MA, en_NG, fil_PH, fur_IT, fy_DE, ha_NG, ig_NG,
|
||
ik_CA, iu_CA, li_BE, li_NL, nds_DE, nds_NL, pap_AN, sc_IT, tk_TM, ug_CN,
|
||
yo_NG.
|
||
|
||
+ New iconv modules: MAC-CENTRALEUROPE, ISO-8859-9E, KOI8-RU.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
Version 2.6
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
3156, 3213, 3285, 3291, 3306, 3313, 3320, 3322, 3325, 3326, 3334, 3348,
|
||
3352, 3363, 3369, 3426, 3427, 3429, 3451, 3458, 3465, 3480, 3483, 3493,
|
||
3514, 3515, 3559, 3632, 3664, 3673, 3674, 3745, 3747, 3818, 3840, 3842,
|
||
3851, 3855, 3884, 3885, 3902, 3905, 3919, 3944, 3954, 3955, 3957, 3991,
|
||
3995, 3996, 4024, 4040, 4069, 4070, 4074, 4076, 4096, 4101, 4102, 4114,
|
||
4130, 4131, 4181, 4276, 4306, 4342, 4344, 4349, 4364, 4368, 4381, 4392,
|
||
4403, 4405, 4406, 4411, 4438, 4439, 4455, 4456, 4465, 4512, 4514, 4586,
|
||
4702, 4858
|
||
|
||
* New Linux interfaces: epoll_pwait, sched_getcpu.
|
||
|
||
* New generic interfaces: strerror_l.
|
||
|
||
* nscd can now cache the services database. Implemented by Ulrich Drepper.
|
||
|
||
Version 2.5
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
39, 68, 192, 352, 388, 531, 935, 1006, 1201, 1203, 1386, 1782, 1783, 1784,
|
||
1785, 1786, 1787, 1951, 1974, 1996, 2072, 2098, 2125, 2134, 2158, 2182,
|
||
2349, 2376, 2386, 2389, 2415, 2418, 2420, 2423, 2450, 2451, 2466, 2472,
|
||
2473, 2477, 2498, 2499, 2501, 2502, 2505, 2507, 2508, 2509, 2517, 2526,
|
||
2569, 2571, 2592, 2611, 2625, 2632, 2644, 2662, 2680, 2683, 2684, 2693,
|
||
2695, 2703, 2734, 2751, 2764, 2766, 2775, 2792, 2821, 2823, 2832, 2841,
|
||
2843, 2883, 2892, 2908, 2914, 2926, 2961, 2978, 2980, 2987, 2997, 2998,
|
||
3013, 3018, 3034, 3040, 3044, 3123, 3124, 3137, 3138, 3143, 3155, 3189,
|
||
3225, 3251, 3252, 3253, 3273
|
||
|
||
* For Linux, the sorting of addresses returned by getaddrinfo now also
|
||
handles rules 3, 4, and 7 from RFC 3484. I.e., all rules are handled.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Allow system admin to configure getaddrinfo with the /etc/gai.conf file.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New Linux interfaces: splice, tee, sync_file_range, vmsplice.
|
||
|
||
* New iconv module for MIK. Contributed by Alexander Shopov.
|
||
|
||
* For sites with broken group and/or passwd database, the auto-propagate
|
||
option of nscd can prevent creating ID lookup entries from the results
|
||
of a name lookup and vice versa. This usually is no problem but some
|
||
site might have problems with the default behavior.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Iterating over entire database in NIS can be slow. With the
|
||
SETENT_BATCH_READ option in /etc/default/nss a system admin can decide
|
||
to trade time for memory. The entire database will be read at once.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* The interfaces introduced in RFC 3542 have been implemented by
|
||
Ulrich Drepper.
|
||
|
||
* Support for the new ELF hash table format was added by Ulrich Drepper.
|
||
|
||
* Support for priority inheritance mutexes added by Jakub Jelinek and
|
||
Ulrich Drepper.
|
||
|
||
* Support for priority protected mutexes added by Jakub Jelinek.
|
||
|
||
* New locales: nr_ZA, pa_PK, ca_AD, ca_FR, ca_IT, el_CY, tr_CY, as_IN,
|
||
or_IN, csb_PL, fy_NL, sr_ME.
|
||
|
||
Version 2.4
|
||
|
||
* More overflow detection functions.
|
||
|
||
* New iconv converters for IBM1025, IBM1122, IBM1137, IBM1153,
|
||
IBM1154, IBM1155, IBM1156, IBM1157, and IBM1158 contributed by Jiro Sekiba.
|
||
|
||
More converters for IBM803, IBM901, IBM902, IBM921, IBM1008, IBM1097,
|
||
IBM1112, IBM1123, IBM1130, IBM1140, IBM1141, IBM1142, IBM1143, IBM1144,
|
||
IBM1145, IBM1146, IBM1147, IBM1148, IBM1149, IBM1166, IBM1167, IBM4517,
|
||
IBM4899, IBM4909, IBM4971, IBM5347, IBM9030, IBM9066, IBM9448, IBM12712,
|
||
IBM16804, IBM1364, IBM1371, IBM1388, IBM1390, and IBM1399 contributed
|
||
by Masahide Washizawa.
|
||
|
||
* It is now possible to install audit libraries for the dynamic linker using
|
||
LD_AUDIT. Implemented by Ulrich Drepper.
|
||
|
||
* The LinuxThreads add-on, providing pthreads on Linux 2.4 kernels, is no
|
||
longer supported. The new NPTL implementation requires Linux 2.6 kernels.
|
||
For a libc and libpthread that works well on Linux 2.4 kernels, we
|
||
recommend using the stable 2.3 branch.
|
||
|
||
* The new function open_wmemstream acts like open_memstream,
|
||
but uses a wchar_t wide character buffer.
|
||
|
||
* The new function ppoll is an improved version of poll, similar to pselect.
|
||
|
||
* New interfaces: fdopendir, openat, fstatat, fchmodat, fchownat,
|
||
futimesat, faccessat, mkdirat, mkfifoat, mknodat,
|
||
renameat, unlinkat, linkat, symlinkat, readlinkat.
|
||
|
||
* New Linux kernel system calls: unshare,
|
||
inotify_init, inotify_add_watch, inotify_rm_watch.
|
||
|
||
* The euidaccess function is now also known by the alias eaccess,
|
||
for compatibility with some other systems.
|
||
|
||
* Timezone data updated to 2006b version.
|
||
|
||
Version 2.3.6
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
38, 253, 549, 622, 653, 721, 758, 851, 877, 915, 934, 955, 961,
|
||
1016, 1037, 1076, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
|
||
1087, 1088, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098,
|
||
1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109,
|
||
1110, 1111, 1112, 1113, 1125, 1137, 1138, 1249, 1250, 1251, 1252,
|
||
1253, 1254, 1350, 1358, 1394, 1438, 1498, 1534
|
||
|
||
Visit <http://sources.redhat.com/bugzilla/> for the details of each bug.
|
||
|
||
* As of this release, GCC 4 can be used to compile the C Library.
|
||
|
||
* Timezone data updated to 2005m version.
|
||
|
||
Version 2.3.5
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
284, 592, 602, 626, 633, 640, 650, 661, 671, 681, 693, 700, 710, 719,
|
||
722, 723, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736,
|
||
737, 738, 739, 740, 741, 742, 743, 744, 745, 765, 767, 768, 769, 776,
|
||
777, 787, 821, 822, 823, 825
|
||
|
||
Visit <http://sources.redhat.com/bugzilla/> for the details of each bug.
|
||
|
||
Version 2.3.4
|
||
|
||
* Support for RFC 3678. Real implementations exist only for Linux so far.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* nscd can now cache entries persistently. Expiring entries are reloaded.
|
||
For speedups the cache can be shared in memory with client processes.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* nscd can now perform SELinux checks.
|
||
Implemented by Matthew Rickard <mjricka@epoch.ncsc.mil>.
|
||
|
||
* getaddrinfo queries are now cached. Canonical name lookup is performed
|
||
efficiently.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* The nothrow function attribute is used when headers are used by gcc when
|
||
compiling C code. This can avoid significant amounts of exception
|
||
handling data.
|
||
|
||
* The malloc functions perform more error checking and are stricter when
|
||
it comes to reacting on errors. The default action is to terminate
|
||
the process after showing an error message. Implemented by Ulrich Drepper.
|
||
|
||
* Reverse lookups of IPv6 addresses does not use bit string or .ip6.int
|
||
lookups anymore unless explicitly requested. Implemented by Ulrich Drepper.
|
||
|
||
* Namespaces in ld.so are implemented. DSOs can be loaded in separate
|
||
namespaces using the new function dlmopen(). This feature is of course,
|
||
like most other dynamic loading functionality, not available in statically
|
||
linked applications. Implemented by Ulrich Drepper.
|
||
|
||
* Low-overhead boundary checking variants of string and some stdio functions
|
||
were added. These are to be used in conjunction with a gcc patch by
|
||
Jakub Jelinek which adds calls to these functions if possible.
|
||
Implemented by Jakub Jelinek and Ulrich Drepper.
|
||
|
||
* Old code for several operating systems and machine architectures that
|
||
have not been in working condition in a long time have been removed from
|
||
the main source tree maintained by the GNU C Library's maintainers.
|
||
These files are now reside in the separate `ports' source module
|
||
that is usable as an add-on when building the library.
|
||
|
||
Version 2.3.3
|
||
|
||
* New functions `dladdr1' and `dlinfo' in <dlfcn.h> provide more ways to
|
||
interrogate the dynamic linker, compatible with the Solaris interface.
|
||
|
||
* ELF thread-local storage support (TLS) now works on PowerPC and PowerPC64;
|
||
implemented by Paul Mackerras, Steven Munroe, and Roland McGrath.
|
||
|
||
* getifaddrs now uses the netlink interface on Linux to get its information.
|
||
Implemented by Thorsten Kukuk.
|
||
|
||
* getaddrinfo now implements AI_V4MAPPED, AI_ALL, and AI_ADDRCONF.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* support for non-executable stacks on x86 has been added. Changes mostly
|
||
by Roland McGrath.
|
||
|
||
* regex is now much faster for multibyte locales. Changes by Jakub Jelinek
|
||
and Ulrich Drepper.
|
||
|
||
* getaddrinfo now performs destination address selection according to
|
||
RFC 3484.
|
||
|
||
Version 2.3.2
|
||
|
||
* Thread-safe interfaces for many functions that access locale data
|
||
were added in version 2.3, but these features were omitted from NEWS.
|
||
Many functions have variants with an `_l' suffix that take a `locale_t'
|
||
object as a parameter rather than consulting the current locale.
|
||
The new functions `newlocale', `duplocale', and `freelocale' in <locale.h>
|
||
create and maintain `locale_t' objects. Additionally, the new function
|
||
`uselocale' sets "the current locale" (as used by functions not so
|
||
parameterized) set for an individual thread. These features were added
|
||
in version 2.3, implemented by Ulrich Drepper and Roland McGrath.
|
||
|
||
* The functions getresuid, getresgid, setresuid, and setresgid, which
|
||
have long been available on Linux, are now declared in <unistd.h>
|
||
and are now also available on the Hurd.
|
||
|
||
* ELF thread-local storage support (TLS) now works on x86-64.
|
||
|
||
* The new dynamic string token $LIB is expanded in shared library names.
|
||
This normally expands to lib, but on some 64-bit platforms to lib64 instead.
|
||
|
||
* Aldy Hernandez contributed complete software floating point support for
|
||
PowerPC machines with no FPU.
|
||
|
||
* fexecve is implemented on Linux.
|
||
|
||
* The `btowc' function should work at least twice as fast due to
|
||
specialized callbacks in the iconv modules. Implemented by Bruno Haible.
|
||
|
||
* With approriate thread add-ons cancelable functions are now implemented
|
||
in libc.so as well. No need to call the function in libpthread. This
|
||
change allowed to finally disable the incorrect and expensive handling
|
||
of weak definition in ld.so.
|
||
|
||
* Yet more PLT entries in libc.so have been removed. We finally arrived
|
||
at the bare minimum. Startup times improved appropriately.
|
||
|
||
* Support for the new Linux/x86 system call interface was added. The
|
||
AT_SYSINFO auxiliary vector entry is recognized and handled.
|
||
|
||
Version 2.3
|
||
|
||
* Masahide Washizawa contributed iconv modules for IBM1163 and IBM1164
|
||
charsets.
|
||
|
||
* iconv (the program and the interface) now accepts empty names (excluding
|
||
options like //TRANSLIT) to mean "use charset of current locale".
|
||
|
||
* localedef can now transliterate characters in strings which are not in
|
||
the provided charmap. The information from the input locale is used.
|
||
|
||
* Prelinking support was added for ELF targets. This requires additional
|
||
tools and recent versions of the GNU binutils. Contributed by Jakub Jelinek.
|
||
|
||
* Read-only stdio streams now use mmap to speed up operation by eliminating
|
||
copying and buffer underflows. To use add 'm' to the mode string of
|
||
the fopen/fdopen/freopen call. Implemented by Ulrich Drepper.
|
||
|
||
* The malloc functions were completely rewritten by Wolfram Gloger based
|
||
on Doug Lea's malloc-2.7.0.c.
|
||
|
||
* Isamu Hasegawa contributed a completely new and POSIX-conformant
|
||
implementation of regex.
|
||
|
||
* Bruno Haible upgraded the iconv and locale implementation to support
|
||
Unicode 3.2.
|
||
|
||
* Contents of the LC_* and LANG environment variables in the CEN style are
|
||
not recognized anymore. It never was used. Change by Ulrich Drepper.
|
||
|
||
* The runtime (ld.so, libc, libpthread for Linux) now can handle the ELF
|
||
thread-local storage (TLS) ABI on some platforms.
|
||
Changes by Ulrich Drepper. SH support by Kaz Kojima.
|
||
|
||
* Bruno Haible contributed iconv converters for ISO-2022-JP-3, SHIFT JIS-X0213,
|
||
EUC-JISX0213, and TSCII.
|
||
|
||
* New header <ifaddrs.h> with functions `getifaddrs' and `freeifaddrs':
|
||
BSD-compatible interface for getting all network interface addresses.
|
||
Implementation for IPv4 by Roland McGrath.
|
||
|
||
* Loading of locale data is faster due to the introduction of a locale
|
||
archive. Implemented by Roland McGrath and Ulrich Drepper.
|
||
|
||
* Startup times are significantly reduced by not using exported functions
|
||
inside the library itself. Changes by Jakub Jelinek, Roland McGrath,
|
||
and Ulrich Drepper.
|
||
|
||
* Steven Munroe contributed a port to PowerPC64/Linux.
|
||
|
||
Version 2.2.6
|
||
|
||
* The Hurd now uses the GNU libio implementation of stdio rather than the
|
||
old GNU stdio implementation, and uses a new ABI (libc.so.0.3).
|
||
|
||
* The Hurd on x86 now has the `ioperm' function and <sys/io.h> header file
|
||
with the same behavior as the Linux system call of the same name.
|
||
|
||
Version 2.2.5
|
||
|
||
* Stephen Moshier implemented log2, log10, powl and cbrtl for the
|
||
128-bit long double format.
|
||
|
||
* Masahide Washizawa contributed iconv modules for IBM1132, IBM1133, IBM1160,
|
||
IBM1161, and IBM1162 charsets.
|
||
|
||
* Andreas Jaeger contributed a port to x86-64/Linux.
|
||
|
||
* Peter Bruin contributed a port to PowerPC/Hurd.
|
||
|
||
* libc functions using I/O streams now can handle wide-oriented streams
|
||
as well.
|
||
|
||
* optimizations in the dynamic linker. Binaries created by recent binutils
|
||
versions start up quicker due to reduced time spent on relocations.
|
||
|
||
* Support for use of gcc3 added by Jakub Jelinek and HJ Lu.
|
||
|
||
Version 2.2.4
|
||
|
||
* Stephen Moshier implemented cosh, expm1, log1p, acos, sinh, tanh,
|
||
asinh, atanh, j0 for the 128-bit long double format.
|
||
|
||
* Bruno Haible updated all the code handling Unicode in some form to
|
||
support Unicode 3.1.
|
||
|
||
* Speed of regex for single-byte locales is back to previous levels.
|
||
Patch by Isamu Hasegawa.
|
||
|
||
* Alpha, SPARC, and IA-64 now also using floating stacks.
|
||
|
||
* Startup time of internationalized applications greatly improved through
|
||
iconv cache. Use iconvconfig to generate the cache file.
|
||
Contributed by Ulrich Drepper.
|
||
|
||
* The IA-64 specific part of ld.so was rewritten to eliminate some pretty
|
||
severe performance problems. Patch by David Mosberger.
|
||
|
||
* The Hurd port got a lot more functionality like AIO, various stdio
|
||
extensions, etc. Mainly done by Roland McGrath.
|
||
|
||
* mtrace can now lookup symbols in shared libraries.
|
||
|
||
Version 2.2.3
|
||
|
||
* Intel's IA-64 math library is largely integrated. It provides fast and
|
||
accurate implementatations for most basic and standard math functions
|
||
in float, double, and long double format.
|
||
|
||
* Stephen Moshier implemented j0, j1, jn, y0, y1, yn, lgamma, erf, erfc,
|
||
and asin for the 96-bit long double format and asin, log, tan for the
|
||
128-bit long double format.
|
||
|
||
* The beginning of a last-bit accurate math library by IBM Haifa were added.
|
||
The basic double functions exist today. Contributed by Abraham Ziv
|
||
<ziv@il.ibm.com>, Moshe Olshansky <olshansk@il.ibm.com>, Ealan Henis
|
||
<ealan@il.ibm.com>, and Anna Reitman <reitman@il.ibm.com>.
|
||
|
||
* An asynchronous name lookup library was added. The interface is designed
|
||
after POSIX AIO. The proposal was circulated beforehand to get comments.
|
||
No negative ones came in. Implemented by Ulrich Drepper.
|
||
|
||
* Port to S390/64bit contributed by Martin Schwidefsky
|
||
<schwidefsky@de.ibm.com>.
|
||
|
||
* David Mosberger <davidm@hpl.hp.com> implemented the setcontext family
|
||
of functions for Linux/IA-64.
|
||
|
||
* The RPC code is now thread safe. Threads can now use the same service
|
||
of different services at the same time. Patch by Eric Norum
|
||
<eric.norum@usask.ca> with some help by Ulrich Drepper.
|
||
|
||
* Martin Schwidefsky <schwidefsky@de.ibm.com> implemented the setcontext
|
||
family of functions for Linux/S390.
|
||
|
||
* Ulrich Drepper <drepper@redhat.com> implemented the setcontext family
|
||
of functions for Linux/x86.
|
||
|
||
* Port to Linux/CRIS contributed by Axis Communications.
|
||
|
||
Version 2.2.2
|
||
|
||
* Lots of headers were cleaned up. Using the tool in the conform/ subdir
|
||
we can now check for namespace violations and missing declarations. The
|
||
result is that almost all headers are now Unix-compliant (as defined in
|
||
the upcoming XPG6). The negative side is that some programs might need
|
||
corrections, too, if they depend on the incorrect form of the headers in
|
||
previous versions which defined too many symbols and included too many
|
||
other headers.
|
||
|
||
* regex now handles multibyte character sets correctly.
|
||
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
|
||
|
||
* iconv (the program) does now conform to the upcoming XPG6 and handles
|
||
charmaps. Instead of the charset names the path of charmaps can be
|
||
provided and the conversion happens based on this data.
|
||
Contributed by Ulrich Drepper.
|
||
|
||
* The locale program now provides detailed information about the installed
|
||
locales. While
|
||
|
||
locale -a
|
||
|
||
only lists the names of the supported locales
|
||
|
||
locale -a --verbose
|
||
|
||
provides details such as country, language, and codeset name.
|
||
Contributed by Ulrich Drepper.
|
||
|
||
Version 2.2.1
|
||
|
||
* The gencat program now parses the input file according to the charset
|
||
selected by the LC_CTYPE category. This is important for stateful
|
||
character sets. To make generating catalogs easier there is a way
|
||
to overwrite the charset selected by the locale: before the first
|
||
message or $ quote line the catalog can contain a line like
|
||
|
||
$ codeset=ISO-8859-2
|
||
|
||
to select the charset (ISO-8859-2 in this case).
|
||
|
||
Implemented by Shinya Hanataka and Ulrich Drepper.
|
||
|
||
* New codeset conversion modules: IBM-922 (Estonia PC codeset),
|
||
IBM-1124 (Ukraine PC codeset), IBM-1129 (Vietnamese PC codeset).
|
||
Contributed by Masahide Washizawa <washi@jp.ibm.com>.
|
||
|
||
* Optimized string functions for Alpha ev6 and ev67 by Richard Henderson
|
||
<rth@redhat.com> and Rick Gorton <rick.gorton@alpha-processor.com>.
|
||
|
||
* The LANGUAGE environment variable is now ignored unless the locale is
|
||
changed from the default "C" locale.
|
||
|
||
* The usual bug fixes.
|
||
|
||
Version 2.2
|
||
|
||
* Greg McGary added runtime support for bounds checking using gcc's
|
||
new -fbounded-pointers option. ix86 target is complete. PowerPC
|
||
is in progress.
|
||
|
||
* Thorsten Kukuk added secure mode support to nscd.
|
||
|
||
* The Berkeley db libraries have been removed.
|
||
|
||
Related, the nss_db module is now in a separate package since it
|
||
obviously requires a database library being available.
|
||
|
||
* Wide character I/O streams implemented by Ulrich Drepper.
|
||
|
||
* Functions from the extended socket API added by Ulrich Drepper.
|
||
|
||
* Functions feenableexcept and fedisableexcept to control the
|
||
behaviour of individual exceptions have been added by Andreas Jaeger.
|
||
|
||
* ldconfig program added by Andreas Jaeger and Jakub Jelinek.
|
||
|
||
* The resolver code has been updated from bind 8.2.3-T5B which supports
|
||
threads. The integration was done by Andreas Jaeger, Adam D. Bradley,
|
||
and Mark Kettenis.
|
||
|
||
This change could in some situations effect backward compatibility. Since
|
||
now `_res' is a thread-local instead of a global variable, modifying it
|
||
in one thread does not have any effect in other threads.
|
||
|
||
The resolver library was also extended to allow IPv6 as the transport
|
||
protocol for the requests. This work was done by Stig Venaas.
|
||
|
||
* Compatibility code for K&R C compilers has been removed from the
|
||
header files. A ISO C compiler is needed to use the library
|
||
(conforming to either C89 or C99 standard).
|
||
|
||
* Complete rewrite of the localedef program to support multibyte character
|
||
sets. Implement handling of ISO 14651 and ISO 14652. Rewrite strcoll,
|
||
strxfrm, wcscoll, and wcsxfrm functions. Make isw*() functions work.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
Bruno Haible significantly improved the generation and use of the data
|
||
structures for the wide character tables.
|
||
|
||
* Plural handling in gettext implemented by Ulrich Drepper.
|
||
|
||
* The utmp daemon has been removed.
|
||
|
||
* The port to MIPS-Linux has been finished by Andreas Jaeger.
|
||
|
||
* A port to Hitachi SH3 and SH4 has been contributed by Kazumoto Kojima
|
||
and Yutaka Niibe.
|
||
|
||
* POSIX clocks and timers implemented by Kaz Kylheku and Ulrich Drepper.
|
||
|
||
* POSIX barriers implemented by Kaz Kylheku.
|
||
|
||
* POSIX spawn function family implemented by Ulrich Drepper.
|
||
|
||
* POSIX spinlocks are now available.
|
||
|
||
* Timed wait functions for mutex, rwlock, and semaphores are implemented.
|
||
|
||
* the configure option --enable-kernel=X.Y.Z allows to strip out
|
||
compatibility for kernel versions before X.Y.Z. This is currently only
|
||
implemented for Linux.
|
||
|
||
* the sockaddr_in6 structure changed. The IPv6 working group added a new
|
||
field sin6_scope_id. This means that all programs using IPv6 should be
|
||
recompiled. Don't expect binary compatibility with previous glibc
|
||
versions.
|
||
|
||
* various conversion modules for IBM character sets contributed by
|
||
Masahide Washizawa.
|
||
|
||
* IA-64 port by Jes Sorensen and HJ Lu.
|
||
|
||
Version 2.1.3
|
||
|
||
* bug fixes
|
||
|
||
|
||
Version 2.1.2
|
||
|
||
* bug fixes
|
||
|
||
|
||
Version 2.1.1
|
||
|
||
* New ISO C 9x function _Exit, imaxabs, and imaxdiv are added.
|
||
|
||
* New xdr functions are added; some rpc functions are now 64bit clean.
|
||
|
||
* Fixed a number of bugs and memory leaks (especially in NIS+ code).
|
||
|
||
* Fixed known incompatibilities with glibc 2.0.
|
||
|
||
* New functions lock64, strchrnul, rawmemchr, getutmp and getutmpx.
|
||
|
||
* Optimized a number of functions (especially the ELF dynamic loader).
|
||
|
||
* Update timezone data files.
|
||
|
||
* lots of charmaps corrections
|
||
|
||
* some new locale definitions and charmaps
|
||
|
||
|
||
Version 2.1
|
||
|
||
* Richard Henderson corrected size of struct timeval on Linux/Alpha to
|
||
conform to POSIX member type requirements. Symbol versions have been
|
||
adjusted as needed within the library, and for direct use by applications,
|
||
but there is potential for problems if third-party libraries use
|
||
struct timeval as part of their interface. This does not present
|
||
a problem for X and other "essential" system libraries.
|
||
|
||
* An additional locale model to support C++ Standard Library locale
|
||
model and probably more was implemented by Ulrich Drepper.
|
||
|
||
* Eric Youngdale and Ulrich Drepper implemented versioning of objects on
|
||
symbol level.
|
||
|
||
* Miles Bader provided the `argp' function family to support hierachical
|
||
command line argument parsing, layered on top of getopt.
|
||
|
||
* strtod accepts new hexadecimal floating-point format from ISO C 9X.
|
||
|
||
* printf has two new specifiers %a and %A to print hexadecimal flaoting-point
|
||
numbers.
|
||
|
||
* scanf recognizes the %a and %A format for scanning floating point numbers.
|
||
|
||
* the new headers <stdint.h> and <inttypes.h> from ISO C 9X provides
|
||
information and interfaces for the available integer types.
|
||
|
||
* about 130 new math functions were added to implement the ISO C9x math
|
||
library.
|
||
|
||
* the new header <complex.h> contains definitions of the complex math
|
||
functions from ISO C 9X.
|
||
|
||
* the new header <tgmath.h> defines generic macros to use complex or
|
||
real valued functions.
|
||
|
||
* Thorsten Kukuk provided an implementation for NIS+, securelevel 0, 1 and 2.
|
||
|
||
* Andreas Jaeger provided a test suite for the math library.
|
||
|
||
* Mark Kettenis implemented the utmpx interface and an utmp daemon.
|
||
|
||
* Ulrich Drepper added character set conversion functions (iconv).
|
||
|
||
* Optimized string functions have been added.
|
||
|
||
* The localedata addon is now part of glibc.
|
||
|
||
* An implementation of profiling shared libraries was added by Ulrich Drepper.
|
||
|
||
* Thorsten Kukuk and Ulrich Drepper provided an implementation for a caching
|
||
daemon for NSS (nscd).
|
||
|
||
Missing a better place here are some numbers on improvements. Under
|
||
Linux 2.1.125 un-tar-ing the kernel sources takes
|
||
|
||
user system wall
|
||
|
||
using local files 12.19s 6.88s 22.91s
|
||
|
||
using NIS 13.92s 8.91s 26.34s
|
||
|
||
using NIS & nscd 10.37s 7.34s 25.30s
|
||
|
||
using NIS+ 27.57s 30.37s 640.46s
|
||
|
||
using NIS+ & nscd 10.25s 7.83s 26.51s
|
||
|
||
using NIS & old nscd [1] 13.83s 8.32s 29.60s
|
||
|
||
Keep in mind that non-namelookup related operations dominate above times.
|
||
It was just a common complain that using NIS+ unpacking the kernel is
|
||
horribly slow.
|
||
|
||
[1] The old nscd implementation is not available anymore since it was
|
||
distributed with glibc up to version 2.0.98 and thus is now replaced.
|
||
|
||
* Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
|
||
|
||
* Mark Kettenis provided a Hesiod NSS module.
|
||
|
||
* The ELF dynamic loader knows how to process dynamic string tokens ($ORIGIN
|
||
and $PLATFORM) in RPATHs and similar strings (Ulrich Drepper).
|
||
|
||
* rcmd can now handle netgroups (Dick Streefland).
|
||
|
||
* A port to the ARM was contributed by Phil Blundell, Pat Beirne and Scott
|
||
Bambrough.
|
||
|
||
* Support for the IPv6 protocol has been added to the socket API, as per the
|
||
latest draft standards.
|
||
|
||
* Support for Linux 2.2 has been added.
|
||
|
||
* Interface changes relative to the latest 2.0.x release:
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
addseverity NEW: Unix98
|
||
alphasort64 NEW: LFS
|
||
argp_err_exit_status NEW: argp, GNU ext
|
||
argp_error NEW: argp, GNU ext
|
||
argp_failure NEW: argp, GNU ext
|
||
argp_help NEW: argp, GNU ext
|
||
argp_parse NEW: argp, GNU ext
|
||
argp_program_bug_address NEW: argp, GNU ext
|
||
argp_program_version NEW: argp, GNU ext
|
||
argp_program_version_hook NEW: argp, GNU ext
|
||
argp_state_help NEW: argp, GNU ext
|
||
argp_usage NEW: argp, GNU ext
|
||
authdes_create NEW: Secure RPC
|
||
authdes_getucred NEW: Secure RPC
|
||
authdes_pk_create NEW: Secure RPC
|
||
backtrace NEW: GNU ext.
|
||
backtrace_symbols NEW: GNU ext.
|
||
backtrace_symbols_fd NEW: GNU ext.
|
||
cacos NEW: ISO C 9x
|
||
cacosf NEW: ISO C 9x
|
||
cacosh NEW: ISO C 9x
|
||
cacoshf NEW: ISO C 9x
|
||
cacoshl NEW: ISO C 9x
|
||
cacosl NEW: ISO C 9x
|
||
capget NEW: kernel
|
||
capset NEW: kernel
|
||
carg NEW: ISO C 9x
|
||
cargf NEW: ISO C 9x
|
||
cargl NEW: ISO C 9x
|
||
casin NEW: ISO C 9x
|
||
casinf NEW: ISO C 9x
|
||
casinh NEW: ISO C 9x
|
||
casinhf NEW: ISO C 9x
|
||
casinhl NEW: ISO C 9x
|
||
casinl NEW: ISO C 9x
|
||
catan NEW: ISO C 9x
|
||
catanf NEW: ISO C 9x
|
||
catanh NEW: ISO C 9x
|
||
catanhf NEW: ISO C 9x
|
||
catanhl NEW: ISO C 9x
|
||
catanl NEW: ISO C 9x
|
||
cbc_crypt NEW: Secure RPC
|
||
ccos NEW: ISO C 9x
|
||
ccosf NEW: ISO C 9x
|
||
ccosh NEW: ISO C 9x
|
||
ccoshf NEW: ISO C 9x
|
||
ccoshl NEW: ISO C 9x
|
||
ccosl NEW: ISO C 9x
|
||
cexp NEW: ISO C 9x
|
||
cexpf NEW: ISO C 9x
|
||
cexpl NEW: ISO C 9x
|
||
cimag NEW: ISO C 9x
|
||
cimagf NEW: ISO C 9x
|
||
cimagl NEW: ISO C 9x
|
||
clearerr_locked REMOVED
|
||
clntunix_create NEW: sunrpc ext
|
||
clog NEW: ISO C 9x
|
||
clog10 NEW: ISO C 9x
|
||
clog10f NEW: ISO C 9x
|
||
clog10l NEW: ISO C 9x
|
||
clogf NEW: ISO C 9x
|
||
clogl NEW: ISO C 9x
|
||
conj NEW: ISO C 9x
|
||
conjf NEW: ISO C 9x
|
||
conjl NEW: ISO C 9x
|
||
cpow NEW: ISO C 9x
|
||
cpowf NEW: ISO C 9x
|
||
cpowl NEW: ISO C 9x
|
||
cproj NEW: ISO C 9x
|
||
cprojf NEW: ISO C 9x
|
||
cprojl NEW: ISO C 9x
|
||
creal NEW: ISO C 9x
|
||
crealf NEW: ISO C 9x
|
||
creall NEW: ISO C 9x
|
||
creat64 NEW: LFS
|
||
csin NEW: ISO C 9x
|
||
csinf NEW: ISO C 9x
|
||
csinh NEW: ISO C 9x
|
||
csinhf NEW: ISO C 9x
|
||
csinhl NEW: ISO C 9x
|
||
csinl NEW: ISO C 9x
|
||
csqrt NEW: ISO C 9x
|
||
csqrtf NEW: ISO C 9x
|
||
csqrtl NEW: ISO C 9x
|
||
ctan NEW: ISO C 9x
|
||
ctanf NEW: ISO C 9x
|
||
ctanh NEW: ISO C 9x
|
||
ctanhf NEW: ISO C 9x
|
||
ctanhl NEW: ISO C 9x
|
||
ctanl NEW: ISO C 9x
|
||
des_setparity NEW: Secure RPC
|
||
ecb_crypt NEW: Secure RPC
|
||
endutxent NEW: Unix98
|
||
exp10 NEW: ISO C 9x
|
||
exp10f NEW: ISO C 9x
|
||
exp10l NEW: ISO C 9x
|
||
exp2 NEW: ISO C 9x
|
||
exp2f NEW: ISO C 9x
|
||
exp2l NEW: ISO C 9x
|
||
fattach NEW: STREAMS
|
||
fdetach NEW: STREAMS
|
||
fdim NEW: ISO C 9x
|
||
fdimf NEW: ISO C 9x
|
||
fdiml NEW: ISO C 9x
|
||
feclearexcept NEW: ISO C 9x
|
||
fegetenv NEW: ISO C 9x
|
||
fegetexceptflag NEW: ISO C 9x
|
||
fegetround NEW: ISO C 9x
|
||
feholdexcept NEW: ISO C 9x
|
||
feof_locked REMOVED
|
||
feraiseexcept NEW: ISO C 9x
|
||
ferror_locked REMOVED
|
||
fesetenv NEW: ISO C 9x
|
||
fesetexceptflag NEW: ISO C 9x
|
||
fesetround NEW: ISO C 9x
|
||
fetestexcept NEW: ISO C 9x
|
||
feupdateenv NEW: ISO C 9x
|
||
fflush_locked REMOVED
|
||
ffsl NEW: GNU ext.
|
||
ffsll NEW: GNU ext.
|
||
fgetpos64 NEW: LFS
|
||
fgets_unlocked NEW: GNU ext.
|
||
fileno_locked REMOVED
|
||
fma NEW: ISO C 9x
|
||
fmaf NEW: ISO C 9x
|
||
fmal NEW: ISO C 9x
|
||
fmax NEW: ISO C 9x
|
||
fmaxf NEW: ISO C 9x
|
||
fmaxl NEW: ISO C 9x
|
||
fmin NEW: ISO C 9x
|
||
fminf NEW: ISO C 9x
|
||
fminl NEW: ISO C 9x
|
||
fmtmsg NEW: Unix98
|
||
fopen64 NEW: LFS
|
||
fputc_locked REMOVED
|
||
fputs_unlocked NEW: GNU ext.
|
||
fread_unlocked NEW: GNU ext.
|
||
freopen64 NEW: LFS
|
||
fseeko NEW: Unix98
|
||
fsetpos64 NEW: LFS
|
||
fstatfs64 NEW: LFS
|
||
fstatvfs NEW: Unix98
|
||
fstatvfs64 NEW: LFS
|
||
ftello NEW: Unix98
|
||
ftello64 NEW: LFS
|
||
ftruncate64 NEW: LFS
|
||
ftw64 NEW: LFS
|
||
fwrite_unlocked NEW: GNU ext.
|
||
gai_strerror NEW: IPv6
|
||
gamma_r REMOVED
|
||
gammaf_r REMOVED
|
||
gammal_r REMOVED
|
||
getchar_locked REMOVED
|
||
getdate NEW: Unix98
|
||
getdate_err NEW: Unix98
|
||
getdate_r NEW: GNU ext.
|
||
getmsg NEW: STREAMS
|
||
getnameinfo NEW: IPv6
|
||
getnetname NEW: Secure RPC
|
||
getpmsg NEW: STREAMS
|
||
getpt NEW: Unix98 PTY
|
||
getrlimit64 NEW: LFS
|
||
getutxent NEW: Unix98
|
||
getutxid NEW: Unix98
|
||
getutxline NEW: Unix98
|
||
glob64 NEW: GNU ext.
|
||
globfree64 NEW: GNU ext.
|
||
gnu_get_libc_release NEW: GNU ext.
|
||
gnu_get_libc_version NEW: GNU ext.
|
||
grantpt NEW: Unix98 PTY
|
||
host2netname NEW: Secure RPC
|
||
iconv NEW: iconv
|
||
iconv_close NEW: iconv
|
||
iconv_open NEW: iconv
|
||
if_freenameindex NEW: IPv6
|
||
if_indextoname NEW: IPv6
|
||
if_nameindex NEW: IPv6
|
||
if_nametoindex NEW: IPv6
|
||
in6addr_any NEW: IPv6
|
||
in6addr_loopback NEW: IPv6
|
||
inet6_isipv4mapped NEW: IPv6
|
||
isastream NEW: STREAMS
|
||
iswblank NEW: GNU ext.
|
||
key_decryptsession NEW: Secure RPC
|
||
key_decryptsession_pk NEW: Secure RPC
|
||
key_encryptsession NEW: Secure RPC
|
||
key_encryptsession_pk NEW: Secure RPC
|
||
key_gendes NEW: Secure RPC
|
||
key_get_conv NEW: Secure RPC
|
||
key_secretkey_is_set NEW: Secure RPC
|
||
key_setnet NEW: Secure RPC
|
||
key_setsecret NEW: Secure RPC
|
||
llrint NEW: ISO C 9x
|
||
llrintf NEW: ISO C 9x
|
||
llrintl NEW: ISO C 9x
|
||
llround NEW: ISO C 9x
|
||
llroundf NEW: ISO C 9x
|
||
llroundl NEW: ISO C 9x
|
||
log2 NEW: ISO C 9x
|
||
log2f NEW: ISO C 9x
|
||
log2l NEW: ISO C 9x
|
||
lrint NEW: ISO C 9x
|
||
lrintf NEW: ISO C 9x
|
||
lrintl NEW: ISO C 9x
|
||
lround NEW: ISO C 9x
|
||
lroundf NEW: ISO C 9x
|
||
lroundl NEW: ISO C 9x
|
||
lseek64 NEW: LFS
|
||
makecontext NEW: Unix98
|
||
mempcpy NEW: GNU ext.
|
||
mmap64 NEW: LFS
|
||
moncontrol REMOVED
|
||
modify_ldt NEW: kernel
|
||
nan NEW: ISO C 9x
|
||
nanf NEW: ISO C 9x
|
||
nanl NEW: ISO C 9x
|
||
nearbyint NEW: ISO C 9x
|
||
nearbyintf NEW: ISO C 9x
|
||
nearbyintl NEW: ISO C 9x
|
||
netname2host NEW: Secure RPC
|
||
netname2user NEW: Secure RPC
|
||
nexttoward NEW: ISO C 9x
|
||
nexttowardf NEW: ISO C 9x
|
||
nexttowardl NEW: ISO C 9x
|
||
nftw NEW: Unix98
|
||
nftw64 NEW: LFS
|
||
open64 NEW: LFS
|
||
passwd2des NEW: Secure RPC
|
||
pow10 NEW: GNU ext.
|
||
pow10f NEW: GNU ext.
|
||
pow10l NEW: GNU ext.
|
||
pread NEW: Unix98
|
||
pread64 NEW: LFS
|
||
printf_size NEW: GNU ext.
|
||
printf_size_info NEW: GNU ext.
|
||
profil_counter REMOVED
|
||
pthread_mutexattr_getkind_np REPLACED
|
||
pthread_mutexattr_setkind_np REPLACED
|
||
ptsname NEW: Unix98 PTY
|
||
ptsname_r NEW: Unix98 PTY
|
||
putc_locked REMOVED
|
||
putchar_locked REMOVED
|
||
putgrent NEW: GNU ext.
|
||
putmsg NEW: STREAMS
|
||
putpmsg NEW: STREAMS
|
||
pututxline NEW: Unix98
|
||
pwrite NEW: Unix98
|
||
pwrite64 NEW: LFS
|
||
readdir64 NEW: LFS
|
||
readdir64_r NEW: LFS
|
||
remquo NEW: ISO C 9x
|
||
remquof NEW: ISO C 9x
|
||
remquol NEW: ISO C 9x
|
||
round NEW: ISO C 9x
|
||
roundf NEW: ISO C 9x
|
||
roundl NEW: ISO C 9x
|
||
rtime NEW: GNU ext.
|
||
scalbln NEW: ISO C 9x
|
||
scalblnf NEW: ISO C 9x
|
||
scalblnl NEW: ISO C 9x
|
||
scandir64 NEW: LFS
|
||
sendfile NEW: kernel
|
||
setcontext NEW: Unix98
|
||
setrlimit64 NEW: LFS
|
||
setutxent NEW: Unix98
|
||
sighold NEW: Unix98
|
||
sigignore NEW: Unix98
|
||
sigqueue NEW: POSIX.1b
|
||
sigrelse NEW: Unix98
|
||
sigset NEW: POSIX.1b
|
||
sigtimedwait NEW: POSIX.1b
|
||
sigwaitinfo NEW: POSIX.1b
|
||
sincos NEW: GNU ext.
|
||
sincosf NEW: GNU ext.
|
||
sincosl NEW: GNU ext.
|
||
statfs64 NEW: LFS
|
||
statvfs NEW: Unix98
|
||
statvfs64 NEW: LFS
|
||
strcasestr NEW: GNU ext.
|
||
strtoimax NEW: ISO C 9x
|
||
strtoumax NEW: ISO C 9x
|
||
strverscmp NEW: GNU ext.
|
||
svcauthdes_stats NEW: Secure RPC
|
||
svcunix_create NEW: sunrpc etx
|
||
svcunixfd_create NEW: sunrpc ext
|
||
swapcontext NEW: Unix98
|
||
tcgetsid NEW: Unix98 PTY
|
||
tdestroy NEW: GNU ext.
|
||
tgamma NEW: ISO C 9x
|
||
tgammaf NEW: ISO C 9x
|
||
tgammal NEW: ISO C 9x
|
||
tmpfile64 NEW: LFS
|
||
trunc NEW: ISO C 9x
|
||
truncate64 NEW: LFS
|
||
truncf NEW: ISO C 9x
|
||
truncl NEW: ISO C 9x
|
||
umount2 NEW: kernel
|
||
unlockpt NEW: Unix98 PTY
|
||
updwtmpx NEW: Unix98
|
||
user2netname NEW: Secure RPC
|
||
utmpxname NEW: Unix98
|
||
versionsort NEW: GNU ext.
|
||
versionsort64 NEW: GNU ext.
|
||
waitid NEW: Unix98
|
||
wcscasecmp NEW: GNU ext.
|
||
wcsncasecmp NEW: GNU ext.
|
||
wcsnlen NEW: GNU ext.
|
||
wcstoimax NEW: ISO C 9x
|
||
wcstoll NEW: ISO C 9x
|
||
wcstoull NEW: ISO C 9x
|
||
wcstoumax NEW: ISO C 9x
|
||
wcswcs NEW: Unix98
|
||
wordexp NEW: POSIX.2
|
||
wordfree NEW: POSIX.2
|
||
write_profiling REMOVED
|
||
xdecrypt NEW: Secure RPC
|
||
xdr_authdes_cred NEW: Secure RPC
|
||
xdr_authdes_verf NEW: Secure RPC
|
||
xdr_cryptkeyarg NEW: Secure RPC
|
||
xdr_cryptkeyarg2 NEW: Secure RPC
|
||
xdr_cryptkeyres NEW: Secure RPC
|
||
xdr_getcredres NEW: Secure RPC
|
||
xdr_key_netstarg NEW: Secure RPC
|
||
xdr_key_netstres NEW: Secure RPC
|
||
xdr_keybuf NEW: Secure RPC
|
||
xdr_keystatus NEW: Secure RPC
|
||
xdr_netnamestr NEW: Secure RPC
|
||
xdr_sizeof NEW: Secure RPC
|
||
xdr_unixcred NEW: sunrpc ext
|
||
xencrypt NEW: Secure RPC
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
Version 2.0.6
|
||
|
||
* more bug fixes
|
||
|
||
|
||
Version 2.0.5
|
||
|
||
* more bug fixes
|
||
|
||
* inet_ntoa is thread-safe
|
||
|
||
* updwtmp is moved from libutil to libc
|
||
|
||
* rewrite of cbrt function
|
||
|
||
* update of timezone data
|
||
|
||
Version 2.0.4
|
||
|
||
* more bug fixes
|
||
|
||
Version 2.0.3
|
||
|
||
* more bug fixes
|
||
|
||
Version 2.0.2
|
||
|
||
* more bug fixes
|
||
|
||
* add atoll function
|
||
|
||
* fix complex problems in Berkeley DB code
|
||
|
||
* fix math functions
|
||
|
||
Version 2.0.1
|
||
|
||
* fixed lots of header problems (especially Linux/GNU specific)
|
||
|
||
* dynamic loader preserves all registers
|
||
|
||
* Roland McGrath provided support for handling of auxiliary objects in
|
||
the ELF dynamic loader.
|
||
|
||
* support for parallel builds is improved
|
||
|
||
Version 2.0
|
||
|
||
* GNU extensions are no longer declared by default. To enable them you
|
||
must define the macro `_GNU_SOURCE' in your program or compile with
|
||
`-D_GNU_SOURCE'.
|
||
|
||
* The library has changed from using GNU ld symbol aliases to using weak
|
||
symbols where available. The ELF object file format supports weak
|
||
symbols; GNU ld also supports weak symbols in the a.out format. (There
|
||
is also now support for other GNU ld extensions in ELF. Use the
|
||
`--with-elf' option to configure to indicate you have ELF, and
|
||
`--with-gnu-ld' if using GNU ld.) This change resulted in the deletion
|
||
of many files which contained only symbol aliases, reducing the size of
|
||
the source and the compiled library; many other files were renamed to
|
||
less cryptic names previously occupied by the symbol alias files.
|
||
There is a new header file <elf.h> for programs which operate on
|
||
files in the ELF format.
|
||
|
||
* Converted to Autoconf version 2, so `configure' has more options.
|
||
Run `configure --help' to see the details.
|
||
|
||
* The library can now be configured to build profiling, highly-optimized
|
||
(but undebuggable), and/or shared libraries (ELF with GNU ld only). The
|
||
`--enable-profile', `--enable-omitfp', and `--enable-shared' options to
|
||
`configure' enable building these extra libraries. The shared library is
|
||
built by default when using both ELF and GNU ld. When shared libraries
|
||
are enabled, the new library `-ldl' is available for arbitrary run-time
|
||
loading of shared objects; its interface is defined in <dlfcn.h>. The
|
||
new header file <link.h> gives access to the internals of the run-time
|
||
dynamic linker, `ld.so'. The shell script `ldd' is similar to the
|
||
application of same name on other systems and it provides information
|
||
about dynamically linked binaries.
|
||
|
||
* The C library now provides the run-time support code for profiling
|
||
executables compiled with `-pg'. Programs can control the profiling code
|
||
through the interface in <sys/gmon.h>. The `gmon.out' files written by
|
||
the GNU C library can be read only by GNU `gprof' (from GNU binutils);
|
||
the support for this file format was contributed by David Mosberger-Tang.
|
||
|
||
* The math code has been replaced with a math library based on fdlibm from
|
||
Sun, and modified by JT Conklin and Ulrich Drepper with i387 support, by
|
||
Ian Taylor with `float' functions and by Ulrich Drepper with `long double'
|
||
functions. The math functions now reside in a separate library, so
|
||
programs using them will need to use `-lm' their linking commands.
|
||
|
||
* John C. Bowman contributed optimized ix87 assembler inline functions.
|
||
|
||
* Ulrich Drepper has contributed support for an `/etc/nsswitch.conf'
|
||
mechanism similar to that found in Solaris 2. This is now used for the
|
||
group, passwd, hosts, networks, services, protocols, rpc, ethers,
|
||
shadow, netgroup, publickey, and alias databases. The `nsswitch.conf'
|
||
file controls what services are used for each individual database. This
|
||
works by loading shared libraries with names specified in `nsswitch.conf',
|
||
so service modules can be changed or added at any time without even
|
||
relinking any program. Currently there are the file, db, and NIS based
|
||
NSS services available.
|
||
|
||
* The new functions `strtoq' and `strtouq' parse integer values from
|
||
strings, like `strtol' and `strtoul', but they return `long long int' and
|
||
`unsigned long long int' values, respectively (64-bit quantities).
|
||
|
||
* The new functions `strtof' and `strtold' parse floating-point values from
|
||
strings, like `strtod', but they return `float' and `long double' values,
|
||
respectively (on some machines `double' and `long double' are the same).
|
||
|
||
* Ulrich Drepper has contributed new implementations of the floating-point
|
||
printing and reading code used in the `printf' family of functions and
|
||
`strtod', `strtof', and `strtold'. These new functions are perfectly
|
||
accurate, and much faster than the old ones.
|
||
|
||
* The implementation of the POSIX locale model was completely rewritten by
|
||
Ulrich Drepper. This includes the new programs `localedef' and `locale'
|
||
to compile the POSIX locale definition.
|
||
|
||
* The former dummy implementations of the strcoll and strxfrm function are
|
||
now replaced by fully functional code contributed by Ulrich Drepper. The
|
||
collation information comes from the POSIX locale definitions.
|
||
|
||
* The new header <langinfo.h> defines an interface for accessing
|
||
various locale-dependent data (using the locale chosen with `setlocale').
|
||
|
||
* Ulrich Drepper has contributed a new suite of functions for operation on
|
||
wide-character and multibyte-character strings, in <wchar.h>;
|
||
and classification and case conversion of wide characters, in <wctype.h>.
|
||
These new functions are conforming to the ISO C, Amendement 1 specification.
|
||
|
||
* There is now a second implementation of the standard I/O library available.
|
||
It comes from GNU libg++ as was written by Per Bothner, heavily modified
|
||
by Hongjiu Lu and made thread safe by Ulrich Drepper.
|
||
|
||
* You can now use positional parameter specifications in format strings
|
||
for the `printf' and `scanf' families of functions. For example,
|
||
`printf ("Number %2$d, Mr %1$s\n", "Jones", 6);'' prints
|
||
``Number 6, Mr Jones''. This is mainly useful when providing different
|
||
format strings for different languages, whose grammars may dictate
|
||
different orderings of the values being printed. To support this
|
||
feature, the interface for `register_printf_handler' has changed; see
|
||
the header file <printf.h> for details.
|
||
|
||
* The `printf' and `scanf' families of functions now understand a new
|
||
formatting flag for numeric conversions: the ' flag (e.g. %'d or %'f) says
|
||
to group numbers as indicated by the locale; for `scanf' and friends, this
|
||
says to accept as valid only a number with all the proper grouping
|
||
separators in the right places. In the default "C" locale, numbers are
|
||
not grouped; but locales for specific countries will define the usual
|
||
conventions (i.e. separate thousands with `,' in the US locale).
|
||
|
||
* The pgrp functions have been regularized, slightly incompatibly but much
|
||
less confusingly. The core functions are now `getpgid' and `setpgid',
|
||
which take arguments for the PID to operate on; the POSIX.1 `getpgrp' (no
|
||
argument) and BSD `setpgrp' (identical to `setpgid') functions are
|
||
provided for compatibility. There is no longer an incompatible `getpgrp'
|
||
with an argument declared under _BSD_SOURCE; no BSD code uses it.
|
||
|
||
* The new header file <fts.h> and suite of functions simplify programs that
|
||
operate on directory trees. This code comes from 4.4 BSD.
|
||
|
||
* The resolver code has been updated from the BIND 4.9.5-P1 release.
|
||
Parts of the code were heavily modified by Ulrich Drepper to fit in the
|
||
NSS scheme used in glibc.
|
||
|
||
* There is a new malloc debugging hook `__memalign_hook'.
|
||
|
||
* There are new typedefs `ushort' for `unsigned short int' and `uint' for
|
||
`unsigned int' in <sys/types.h>. These are for compatibility only and
|
||
their use is discouraged.
|
||
|
||
* The `-lmcheck' library to enable standard malloc debugging hooks is now
|
||
done differently, so that it works even without GNU ld.
|
||
|
||
* New function `euidaccess' checks allowed access to a file like `access',
|
||
but using the effective IDs instead of the real IDs.
|
||
|
||
* The time zone data files have been updated for the latest and greatest
|
||
local time conventions of the countries of the world.
|
||
|
||
* The new function `dirfd' extracts the file descriptor used by a DIR stream;
|
||
see <dirent.h>.
|
||
|
||
* The new functions `ecvt', `fcvt', and `gcvt' provide an obsolete interface
|
||
for formatting floating-point numbers. They are provided only for
|
||
compatibility; new programs should use `sprintf' instead. There are
|
||
also equivalent function for the `long double' floating-point type and
|
||
all functions also exist in a reentrant form.
|
||
|
||
* The new auxiliary library `-lutil' from 4.4 BSD contains various
|
||
functions for maintaining the login-record files (primarily of use to
|
||
system programs such as `login'), and convenient functions for
|
||
allocating and initializing a pseudo-terminal (pty) device.
|
||
|
||
* Ulrich Drepper has contributed new support for System V style
|
||
shared memory and IPC on systems that support it.
|
||
|
||
* Ulrich Drepper has contributed several miscellaneous new functions found
|
||
in System V: The `hsearch' family of functions provide an effective
|
||
implementation of hash tables; `a64l' and `l64a' provide a very simple
|
||
binary to ASCII mapping; `drand48' and friends provide a 48-bit random
|
||
number generator.
|
||
|
||
* Ulrich Drepper has contributed new reentrant counterparts for the
|
||
`random' and `hsearch' families of functions; `random_r', `hsearch_r', etc.
|
||
|
||
* Ulrich Drepper has contributed new, highly-optimized versions of several
|
||
string functions for the i486/Pentium family of processors.
|
||
|
||
* Ulrich Drepper has updated the Linux-specific code, based largely
|
||
on work done in Hongjiu Lu's version of GNU libc for Linux.
|
||
The GNU library now supports Linux versions 2.0.10 and later,
|
||
using the ELF object file format (i[3456]86-*-linux).
|
||
|
||
* Andreas Schwab has ported the C library to Linux/m68k (m68k-*-linux).
|
||
|
||
* David Mosberger-Tang and Richard Henderson have ported the C library
|
||
to Linux/Alpha (alpha-*-linux). Richard Henderson contributed the
|
||
dynamic linking support for ELF/Alpha.
|
||
|
||
* Richard Henderson contributed several Alpha optimized assembler function
|
||
for arithmetic and string handling.
|
||
|
||
* Ulrich Drepper has contributed a new set of message catalog functions to
|
||
support multiple languages using the <libintl.h> interface, for use with
|
||
his new package GNU gettext. Translation volunteers have contributed
|
||
catalogs of the library's messages in Spanish, German, and Korean.
|
||
|
||
* For compatibility with XPG4, Ulrich Drepper has contributed the `gencat'
|
||
program and the `catgets' function for reading the catalog files it
|
||
creates. (The <libintl.h> interface is preferred; we include the
|
||
<nl_types.h> interface using `catgets' only for source compatibility with
|
||
programs already written to use it.)
|
||
|
||
* New header file <values.h> gives SVID-compatible names for <limits.h>
|
||
constants.
|
||
|
||
* Various new macros, declarations, and small header files for compatibility
|
||
with 4.4 BSD.
|
||
|
||
* New function `group_member' is a convenient way to check if a process has
|
||
a given effective group ID.
|
||
|
||
* When using GCC 2.7 and later, the socket functions are now declared in a
|
||
special way so that passing an argument of type `struct sockaddr_in *',
|
||
`struct sockaddr_ns *', or `struct sockaddr_un *' instead of the generic
|
||
`struct sockaddr *' type, does not generate a type-clash warning.
|
||
|
||
* New function `error' declared in header file <error.h> is a convenient
|
||
function for printing error messages and optionally exiting; this is the
|
||
canonical function used in GNU programs. The new functions `err', `warn',
|
||
and friends in header file <err.h> are the canonical 4.4 BSD interface for
|
||
doing the same thing.
|
||
|
||
* The <glob.h> interface has several new flags from 4.4 BSD that extend the
|
||
POSIX.2 `glob' function to do ~ and {...} expansion.
|
||
|
||
* New function `unsetenv' complements `setenv' for compatibility with 4.4 BSD.
|
||
`clearenv' which is used in POSIX.9 is also available.
|
||
|
||
* New function `getsid' returns session ID number on systems that support it.
|
||
|
||
* We have incorporated the 4.4 BSD `db' library (version 1.85). New header
|
||
files <db.h> and <mpool.h> provide a rich set of functions for several
|
||
types of simple databases stored in memory and in files, and <ndbm.h> is
|
||
an old `ndbm'-compatible interface using the `db' functions. Link with
|
||
`-ldb' to get these functions.
|
||
|
||
* New macro `strdupa' copies a string like `strdup', but uses local stack
|
||
space from `alloca' instead of dynamic heap space from `malloc'.
|
||
|
||
* New function `strnlen' is like `strlen' but searches only a given maximum
|
||
number of characters for the null terminator. `stpncpy', `strndup' and
|
||
`strndupa' are similar variants for the `stpcpy', `strdup' and `strdupa'
|
||
function.
|
||
|
||
* New function `statfs' in header <sys/statfs.h>.
|
||
|
||
* The new <argz.h> and <envz.h> interfaces contributed by Miles Bader
|
||
provide convenient functions for operating on blocks of null-terminated
|
||
strings.
|
||
|
||
* A new suite of functions in <utmp.h> handle all the details of reading
|
||
and writing the utmp file.
|
||
|
||
* An implementation of the NIS/YP(tm) based NSS service was contributed by
|
||
Thorsten Kukuk.
|
||
|
||
* Paul Eggert and Ulrich Drepper modified the `strftime' function to be
|
||
completely POSIX compliant and also implemented the extended functionality
|
||
to handle alternate digit representation and alternate era date formats.
|
||
|
||
* Ulrich Drepper provided an implementation of the `strptime' function
|
||
defined in XPG4.2 which transforms a string into a `struct tm' value.
|
||
|
||
* Paul Eggert provided the tzselect shell script as part of the timezone
|
||
code. The shell script makes it easy to select the correct timezone
|
||
specification.
|
||
|
||
* The implementation of the malloc family of functions is completely replaced
|
||
by a new implementation by Doug Lea with many improvements by Wolfram Gloger.
|
||
The implementation uses the mmap function (if available) and it is
|
||
optimized for the use in multi threaded programs.
|
||
|
||
* Ulrich Drepper contributed a MD5 "encryption" for the crypt family of
|
||
functions. This new functionality is usable by specifying a special
|
||
salt string and it is compatible with implementation on *BSD systems.
|
||
|
||
* Lots of functions from the XPG4.2 standard were added by Ulrich Drepper:
|
||
`getsubopt' to handle second level command line options, `bsd_signal'
|
||
to access BSD style `signal' functionality, the obsolete `regexp' style
|
||
expression matcher.
|
||
|
||
* the `lchown' function is available on system which support this
|
||
functionality.
|
||
|
||
* The implementation of the shadow password handling function was contributed
|
||
by Ulrich Drepper.
|
||
|
||
* David Mosberger-Tang changed the SunRPC implementation to be 64bit safe.
|
||
|
||
* POSIX.1g support was added. The <sys/select.h> header is available,
|
||
`isfdtype' and `pselect' are implemented. Craig Metz contributed an
|
||
implementation of `getaddrinfo'.
|
||
|
||
Version 1.09
|
||
|
||
* For cross-compilation you should now set `BUILD_CC' instead of `HOST_CC'.
|
||
|
||
* New header file <fstab.h> and new functions `getfsspec', `getfsent' and
|
||
friends, for parsing /etc/fstab. This code comes from 4.4 BSD.
|
||
|
||
* The new function `daemon' from 4.4 BSD is useful for server programs that
|
||
want to put themselves in the background.
|
||
|
||
* Joel Sherrill has contributed support for several standalone boards that
|
||
run without an operating system.
|
||
|
||
* `printf', `scanf' and friends now accept a `q' type modifier for long
|
||
long int as well as `ll'. Formats using these might be `%qu' or `%lld'.
|
||
|
||
* All of the code taken from BSD (notably most of the math and networking
|
||
routines) has been updated from the BSD 4.4-Lite release.
|
||
|
||
* The resolver code has been updated from the BIND-4.9.3-BETA9 release.
|
||
|
||
* The new functions `getdomainname' and `setdomainname' fetch or change the
|
||
YP/NIS domain name. These are system calls which exist on systems which
|
||
have YP (aka NIS).
|
||
|
||
* The time zone data files have been updated for the latest international
|
||
conventions.
|
||
|
||
* The SunRPC programs `portmap' and `rpcinfo' are now installed in
|
||
$(sbindir) (usually /usr/local/sbin) instead of $(bindir).
|
||
|
||
Version 1.08
|
||
|
||
* The C library now includes support for Sun RPC, from Sun's free
|
||
RPCSRC-4.0 distribution. The `portmap', `rpcinfo', and `rpcgen' programs
|
||
are included. (There is still no support for YP.)
|
||
|
||
* Tom Quinn has contributed a port of the C library to SGI machines running
|
||
Irix 4 (mips-sgi-irix4).
|
||
|
||
* The new `lockf' function is a simplified interface to the locking
|
||
facilities of `fcntl', included for compatibility.
|
||
|
||
* New time functions `timegm', `timelocal', and `dysize' for compatibility.
|
||
|
||
* New header file <sys/timeb.h> and new function `ftime' for compatibility.
|
||
|
||
* New header files <poll.h> and <sys/poll.h> and new function `poll' for
|
||
compatibility.
|
||
|
||
* The error message printed by `assert' for a failed assertion now includes
|
||
the name of the program (if using GNU ld) and the name of the calling
|
||
function (with versions of GCC that support this).
|
||
|
||
* The `psignal' function is now declared in <signal.h>, not <stdio.h>.
|
||
|
||
* The library now includes the <sys/mman.h> header file and memory
|
||
management functions `mmap', `munmap', `mprotect', `msync', and
|
||
`madvise', on systems that support those facilities.
|
||
|
||
* The interface for `mcheck' has changed slightly: the function called to
|
||
abort the program when an allocation inconsistency is detected now takes
|
||
an argument that indicates the type of failure. The new function
|
||
`mprobe' lets you request a consistency check for a particular block at
|
||
any time (checks are normally done only when you call `free' or `realloc'
|
||
on a block).
|
||
|
||
* It is now possible to easily cross-compile the C library, building on one
|
||
system a library to run on another machine and/or operating system. All
|
||
you need to do is set the variable `HOST_CC' in `configparms' to the
|
||
native compiler for programs to run on the machine you are building on (a
|
||
few generator programs are used on Unix systems); set `CC' to the
|
||
cross-compiler.
|
||
|
||
* The new function `fexecve' (only implemented on the GNU system) executes
|
||
a program file given a file descriptor already open on the file.
|
||
|
||
Version 1.07
|
||
|
||
* Brendan Kehoe has contributed most of a port to the DEC Alpha
|
||
running OSF/1 (alpha-dec-osf1). He says it is 75% complete.
|
||
|
||
* You can set the variable `libprefix' in `configparms' to specify a prefix
|
||
to be prepended to installed library files; this makes it easy to install
|
||
the GNU C library to be linked as `-lgnuc' or whatever.
|
||
|
||
* The new `stpncpy' is a cross between `stpcpy' and `strncpy': It
|
||
copies a limited number of characters from a string, and returns the
|
||
address of the last character written.
|
||
|
||
* You no longer need to check for whether the installed `stddef.h' is
|
||
compatible with the GNU C library. configure now checks for you.
|
||
|
||
* You can now define a per-stream `fileno' function to convert the
|
||
stream's cookie into an integral file descriptor.
|
||
|
||
* ``malloc (0)'' no longer returns a null pointer. Instead, it
|
||
allocates zero bytes of storage, and returns a unique pointer which
|
||
you can pass to `realloc' or `free'. The behavior is undefined if
|
||
you dereference this pointer.
|
||
|
||
* The C library now runs on Sony NEWS m68k machines running either
|
||
NewsOS 3 or NewsOS 4.
|
||
|
||
* The new `syscall' function is a system-dependent primitive function
|
||
for invoking system calls. It has the canonical behavior on Unix
|
||
systems, including unreliable return values for some calls (such as
|
||
`pipe', `fork' and `getppid').
|
||
|
||
* The error code `EWOULDBLOCK' is now obsolete; it is always defined
|
||
to `EAGAIN', which is the preferred name. On systems whose kernels
|
||
use two distinct codes, the C library now translates EWOULDBLOCK to
|
||
EAGAIN in every system call function.
|
||
|
||
Version 1.06
|
||
|
||
* The GNU C Library Reference Manual is now distributed with the library.
|
||
`make dvi' will produce a DVI file of the printed manual.
|
||
`make info' will produce Info files that you can read on line using C-h i
|
||
in Emacs or the `info' program.
|
||
Please send comments on the manual to bug-glibc-manual@gnu.org.
|
||
|
||
* The library now supports SVR4 on i386s (i386-unknown-sysv4).
|
||
|
||
* Brendan Kehoe has contributed a port to Sun SPARCs running Solaris 2.
|
||
|
||
* Jason Merrill has contributed a port to the Sequent Symmetry running
|
||
Dynix version 3 (i386-sequent-dynix).
|
||
|
||
* The library has been ported to i386s running SCO 3.2.4 (also known as SCO
|
||
ODT 2.0; i386-unknown-sco3.2.4) or SCO 3.2 (i386-unknown-sco3.2).
|
||
|
||
* New function `memory_warnings' lets you arrange to get warnings when
|
||
malloc is running out of memory to allocate, like Emacs gives you.
|
||
|
||
* The C library now contains the relocating allocator used in Emacs 19 for
|
||
its editing buffers. This allocator (ralloc) minimizes allocation
|
||
overhead and fragmentation by moving allocated regions around whenever it
|
||
needs to. You always refer to a ralloc'd region with a "handle" (a
|
||
pointer to a pointer--an object of type `void **').
|
||
|
||
* There is a new `printf' format: `%m' gives you the string corresponding
|
||
to the error code in `errno'.
|
||
|
||
* In `scanf' formats, you can now use `%as' or `%a[' to do the normal `%s'
|
||
or `%[' conversion, but instead of filling in a fixed-sized buffer you
|
||
pass, the `a' modifier says to fill in a `char **' you pass with a
|
||
malloc'd string.
|
||
|
||
* The `fnmatch' function supports the new flag bits `FNM_LEADING_DIR' and
|
||
`FNM_CASEFOLD'. `FNM_LEADING_DIR' lets a pattern like `foo*' match a
|
||
name like `foo/bar'. `FNM_CASEFOLD' says to ignore case in matching.
|
||
|
||
* `mkstemp' is a traditional Unix function to atomically create and open a
|
||
uniquely-named temporary file.
|
||
|
||
Version 1.05
|
||
|
||
* The standard location for the file that says what the local timezone is
|
||
has changed again. It is now `/usr/local/etc/localtime' (or more
|
||
precisely, `${prefix}/etc/localtime') rather than `/etc/localtime'.
|
||
|
||
* The distribution no longer contains any files with names longer than 14
|
||
characters.
|
||
|
||
* `struct ttyent' has two new flag bits: TTY_TRUSTED and TTY_CONSOLE.
|
||
These are set by the new `trusted' and `console' keywords in `/etc/ttys'.
|
||
|
||
* New functions `ttyslot' and `syslog' from 4.4 BSD.
|
||
|
||
Version 1.04
|
||
|
||
* The configuration process has changed quite a bit. The `configure'
|
||
script is now used just like the configuration scripts for other GNU
|
||
packages. The `sysdeps' directory hierarchy is much rearranged.
|
||
The file `INSTALL' explains the new scheme in detail.
|
||
|
||
* The header files no longer need to be processed into ANSI C and
|
||
traditional C versions. There is just one set of files to install, and
|
||
it will work with ANSI or old C compilers (including `gcc -traditional').
|
||
|
||
* Brendan Kehoe and Ian Lance Taylor have ported the library to the
|
||
MIPS DECStation running Ultrix 4.
|
||
|
||
* The Sun 4 startup code (crt0) can now properly load SunOS 4 shared libraries.
|
||
Tom Quinn contributed the initial code. The GNU C library can NOT yet be
|
||
made itself into a shared library.
|
||
|
||
* Yet further improved support for the i386, running 4.3 BSD-like systems
|
||
(such as Mach 3 with the Unix single-server), or System V.
|
||
|
||
* New function `strncasecmp' to do case-insensitive string comparison
|
||
with limited length.
|
||
|
||
* New function `strsep' is a reentrant alternative to `strtok'.
|
||
|
||
* New functions `scandir' and `alphasort' for searching directories.
|
||
|
||
* New function `setenv' is a better interface to `putenv'.
|
||
|
||
* Ian Lance Taylor has contributed an implementation of the SVID `ftw'
|
||
function for traversing a directory tree.
|
||
|
||
* The GNU obstack package is now also part of the C library.
|
||
The new function `open_obstack_stream' creates a stdio stream that
|
||
writes onto an obstack; `obstack_printf' and `obstack_vprintf' do
|
||
formatted output directly to an obstack.
|
||
|
||
* Miscellaneous new functions: reboot, nice, sigaltstack (4.4 BSD only),
|
||
cfmakeraw, getusershell, getpass, swab, getttyent, seteuid, setegid.
|
||
|
||
* `FNM_FILE_NAME' is another name for `FNM_PATHNAME', used with `fnmatch'.
|
||
|
||
* The new functions `strfry' and `memfrob' do mysterious and wonderful
|
||
things to your strings.
|
||
|
||
* There are some new test programs: test-fseek, testmb, and testrand.
|
||
|
||
* Some work has been done to begin porting the library to 4.4 BSD and Linux.
|
||
These ports are not finished, but are a good starting place for really
|
||
supporting those systems.
|
||
|
||
* `/etc/localtime' is now the standard location for the file that says what
|
||
the local timezone is, rather than `/usr/local/lib/zoneinfo/localtime'.
|
||
This follows the general principle that `/etc' is the place for all local
|
||
configuration files.
|
||
|
||
* The C library header files now use `extern "C"' when used by the C++
|
||
compiler, so the C library should now work with C++ code.
|
||
|
||
* The header file <bstring.h> is gone. <string.h> now declares bcopy,
|
||
bcmp, bzero, and ffs. (Update: nowadays these functions are declared
|
||
in <strings.h>.)
|
||
|
||
* Mike Haertel (of GNU e?grep and malloc fame) has written a new sorting
|
||
function which uses the `merge sort' algorithm, and is said to be
|
||
significantly faster than the old GNU `qsort' function. Merge sort is
|
||
now the standard `qsort' function. The new algorithm can require a lot
|
||
of temporary storage; so, the old sorting function is called when the
|
||
required storage is not available.
|
||
|
||
* The C library now includes Michael Glad's Ultra Fast Crypt, which
|
||
provides the Unix `crypt' function, plus some other entry points.
|
||
|
||
* The code and header files taken from 4.4 BSD have been updated with the
|
||
latest files released from Berkeley.
|
||
|
||
----------------------------------------------------------------------
|
||
Copyright information:
|
||
|
||
Copyright (C) 1992-2017 Free Software Foundation, Inc.
|
||
|
||
Permission is granted to anyone to make or distribute verbatim copies
|
||
of this document as received, in any medium, provided that the
|
||
copyright notice and this permission notice are preserved,
|
||
thus giving the recipient permission to redistribute in turn.
|
||
|
||
Permission is granted to distribute modified versions
|
||
of this document, or of portions of it,
|
||
under the above conditions, provided also that they
|
||
carry prominent notices stating who last changed them.
|
||
|
||
Local variables:
|
||
version-control: never
|
||
fill-column: 76
|
||
End:
|