The State & Future Of The GNU C Library (GLIBC)

Red Hat's Carlos O'Donell provided an update this week on the GNU C Library along with some recent and upcoming features for glibc.

The GNU C Library (glibc) faces increasing competition from other C library implementations like Google Android's Bionic, uClibc on embedded systems, EGLIBC, and dietlibc, among others. With glibc losing some of its appeal even on modern Linux desktop distributions, Carlos O'Donell spoke this week at the Linux Foundation Collaboration Summit about the state of this GNU project along with a look ahead at the glibc 2.18 release.

O'Donell was quick to admit that glibc faces some criticism as being too slow, not always producing correct behavior, and missing some features. The project strides to stay relevant, engage developers, get developers to address complaints, and to continue promoting the GNU C Library. The expressed state of the community is that it's making it through time-based releases of glibc, there's dedicated x86/x86_64 code reviews, new developers are coming about, and there's renewed attention on locale issues. However, right now they still don't have an effective BugZilla triage process, there's more patches than the community can review, and less than optimal testing infrastructure is in place.

For promoting glibc, one of the expressed ideas in his presentation was carrying out a possible logo contest... Fortunately, that was a quick divergence before talking about the future: glibc 2.18. There's two months left of glibc 2.18 development and there's a lot of features.

Among the features coming to glibc 2.18 is support for hardware-lock elision as introduced with forthcoming Intel Haswell processors, a library dependency handling clean-up, clean-ups for math routines, parallelism and concurrency fixes, a header clean-up, and much more. So far there's also more than 50 bugs that were fixed for glibc 2.18.

The glibc-ports repository was also merged back into the mainline glibc repository that served as a repository for second-class architectures like MIPS and ARM. The minimum supported kernel for glibc 2.18 will be the Linux 2.6.16/2.17 kernel. There's also improved X support with cross-compilation, cross-testing, and bootstrap builds.

For an area of interest to us, performance, there's a new micro-benchmark suite and optimized functions for the s390/s390x, POWER7, and MIPS architectures. Other random features include IEEE-754:2008 math conformance fixes, various new locales, and there is Xilinx Microblaze support currently under review.

Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via Twitter and Google+ or contacted via MichaelLarabel.com.