Skip to content
The GNU C Library
=================

The GNU C Library version 2.19 is now available.

The GNU C Library is used as *the* C library in the GNU systems
and most systems with the Linux kernel.

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

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

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

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

NEWS for version 2.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, 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.

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

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

Adam Buchbinder
Adam Conrad
Adhemerval Zanella
Alan Modra
Alexandre Oliva
Allan McRae
Andreas Arnez
Andreas Jaeger
Andreas Krebbel
Andreas Schwab
Andrew Hunter
Andrew Pinski
Anton Blanchard
Arun Kumar Pyasi
Aurelien Jarno
Brooks Moses
Bruno Haible
Carlos O'Donell
Chris Leonard
Chris Metcalf
Chung-Lin Tang
David Holsgrove
David S. Miller
Eric Biggers
Eric Blake
Eric Wong
Fabrice Bauzac
Fernando J. V. da Silva
Florian Weimer
Guy Martin
H.J. Lu
Jan Kratochvil
Jia Liu
Joseph Myers
Kaz Kojima
Liubov Dmitrieva
Maciej W. Rozycki
Marc-Antoine Perennou
Marcus Shawcroft
Marko Myllynen
Markus Trippelsdorf
Maxim Kuvyrkov
Meador Inge
Michael Bauer
Michael Stahl
Mike Frysinger
Olivier Langlois
Ondřej Bílka
Patrick 'P. J.' McDermott
Paul Eggert
Paul Pluzhnikov
Pavel Simerda
Petr Machata
Rajalakshmi Srinivasaraghavan
Reuben Thomas
Richard Henderson
Richard Sandiford
Roland McGrath
Ryan S. Arnold
Sami Kerola
Samuel Thibault
Siddhesh Poyarekar
Stefan Liebler
Steve Ellcey
Thomas Schwinge
Toke Høiland-Jørgensen
Tom Tromey
Torvald Riegel
Ulrich Weigand
Uros Bizjak
Venkataramanan Kumar
Ville Skytta
Vinitha Vijayan
Wei-Lun Chao
Will Newton
Yogesh Chaudhari
Yuri Chornoivan
Yuriy Kaminskiy