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

The GNU C Library version 2.16 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 C99 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.16 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.16
=====================

* The following bugs are resolved with this release:

  174, 208, 350, 369, 411, 706, 766, 887, 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, 11174,
  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/>.

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

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

Adhemerval Zanella
Allan McRae
Andreas Jaeger
Andreas Krebbel
Andreas Schwab
Antoine Balestrat
Anton Blanchard
Aurelien Jarno
Carlos O'Donell
Carlos Sánchez de La Lama
Chandan Kumar
Chris Demetriou
Chris Leonard
Chris Metcalf
Chung-Lin Tang
Cyril Hrubis
David S. Miller
Dwayne Grant McConnell
Fabrice Bauzac
H.J. Lu
Ian Wienand
Jakub Jelinek
Jan Kratochvil
Jeff Law
Jim Meyering
Joseph Myers
Kai Tietz
Kaz Kojima
Kees Cook
Liubov Dmitrieva
Marek Polacek
Markus Trippelsdorf
Maxim Kuvyrkov
Michael Matz
Mike Frysinger
Nick Bowler
Nicolas Boulenguez
Nix
Paul Bolle
Paul Eggert
Paul Pluzhnikov
Petr Baudis
Pino Toscano
Rafe Kettler
Rayson Ho
Richard Henderson
Robert Millan
Roland Mc Grath
Roland McGrath
Ryan S. Arnold
Samuel Thibault
Serkan Kaba
Siddhesh Poyarekar
Simon Josefsson
Stanislav Brabec
Stephen Compall
Thomas Schwinge
Tom de Vries
Tulio Magno Quites Machado Filho
Ulrich Drepper
Will Schmidt