Version 2.16 of glibc, the GNU C Library, was released on Saturday afternoon. This update to the de facto C library for GNU/Linux systems brings many new features. There's x32 and ISO C11 support along with performance optimizations.
Besides fixing more than 230 bugs, key features of glibc 2.16 include:
Support for the x32 ABI on x86_64
. The Linux x32 ABI has been a long time coming
, but all of the pieces to support this new Linux ABI are coming together. Simply put, the x32 implementation allows applications to be built to use 32-bit pointers while being able to take advantage of the rest of the x86_64 feature-set, so you get your applications having a smaller memory foot-print while being faster thanks to being able to take against of the rest of the 64-bit processor capabilities.
The Linux kernel has x32 support
since earlier this year as of the Linux 3.4 kernel
. GCC also has support for building x32 as a target and LLVM/Clang also has support
. A released version of glibc supporting x32 is the last piece of the puzzle.
Glibc can be built for x32 by building the C library with BUILD_CC='gcc' CC='gcc -mx32' CXX='g++ -mx32'
. When it comes to Linux distributions offering x32 support, Ubuntu has some far-out plans
and on the Gentoo side they already have a stage three x32 candidate
Greater support for ISO C11
has come to glibc 2.16.
when it comes to generic and 64-bit performance optimizations to math functions. There's also optimized functions for PowerPC and SPARC architectures.
SystemTap static probes
when configuring the glibc build with --enable-systemtap
Some other minor items include removing support for anything but ELF binary format, improved support for cross-compilation, moving the IA-64 architecture to ports, and removed support for versions of the Linux kernel prior to Linux 2.6.
The full list of official changes plus source download links for the GNU C Library 2.16 is available from this mailing list message