GNU C Library

 [image of the Head of a GNU]

Table of Contents


Overview

Any Unix-like operating system needs a C library: the library which defines the ``system calls'' and other basic facilities such as open, malloc, printf, exit...

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

The history of Unix and various standards determine much of the interface of the C library. In general the GNU C library supports the ISO C and POSIX standards. We also try to support the features of popular Unix variants (including BSD and System V) when those do not conflict with the standards. Different compatibility modes (selectable when you compile an application) allow the peaceful coexistence of compatibility support for different varieties of Unix.

Today the GNU C library should be almost complete: nearly all known and useful functions from any other C library are available. However, there is still room for improvement. If you would like to add or improve features in the GNU C library, please look through the list of open tasks, then coordinate your work with the maintainers <bug-glibc@gnu.org>.

The GNU C library is designed to be portable. Although the library sources are very complex, you can build it for any supported system with the simple commands configure & make --- provided your platform is supported!

The GNU C library manual is incomplete. It would be very helpful if you could spend a bit of your time on writing the missing parts. Please coordinate your work with the maintainers <bug-glibc@gnu.org>.

We also have a page describing the conformance with various standards. This list also shows where GNU libc needs to be improved.

For more information on porting and the status of ports for Version 2, see Porting the GNU C Library. If you are interested in porting GNU libc to additional system types, please contact the maintainers <bug-glibc@gnu.org>.

There are some more mailing lists: libc-hacker is the private mailing list of the developers, libc-alpha@sources.redhat.com discusses some development issues and carries announcements about alpha quality releases. Mailing list subscription information, archives of all lists and the CVS archive can be found at http://sources.redhat.com/glibc.

Manual

You can view the GNU C Library reference manual at <http://www.gnu.org/manual/glibc-2.2.5/libc.html>

Current Status

The current version is 2.3.2. The new major version number reflects major changes, several years of work. 1.09.1 was a static library in the style of the 80s; the new version implements the state of the art in C library technology. It follows even the most recent standards (ISO C 99, POSIX.1c, POSIX.1j, POSIX.1d, Unix98). It is also internationalized and might have the most complete internationalization interface known.

See the NEWS file for more information.

Version 2 is built as a shared library --- in fact, multiple shared libraries. Several parts of the library are separated out and are dynamically linked into the process when needed.

There is a FAQ which you should read first.

Availability

The releases are available at http://ftp.gnu.org/gnu/glibc/ and its mirrors. In the same directory there are probably several additional packages which can be used with the GNU libc. These are distributed separately either because of legal problems or because they are maintained by people outside the GNU libc developers group.

At the moment there are three add-on packages available:

Please consult the FAQ to find out how to handle add-ons. The previously available locale data add-on is now an integral part of the GNU libc itself. Fortunately, the U.S. Exports Regulations have been relaxed and so the DES cryptographic functions are now also part of the base GNU C library distribution!

Supported Systems

Version 2 currently supports only GNU systems --- both Hurd-based and Linux-based GNU systems. Version 1.09.1 supported many more systems; we hope that version 2 will be ported to them. For more information on porting and the status of ports, see Porting the GNU C Library.

Open Tasks

This list is not the most up-to-date list of pending tasks. Consult the file PROJECTS in the GNU C library distribution for most recent changes.

Bugs

You can report bugs in the GNU C Library by:

Who Is Who

The GNU C Library Steering Committee <glibc-sc@gnu.org>, formed in 2001, is the governance body and has overall responsibility and charge for the maintenance of the GNU C Library as part of the GNU project. The committee currently consists of Mark Brown, Paul Eggert, Andreas Jaeger, Jakub Jelinek, Roland McGrath and Andreas Schwab.

The GNU C library was originally written primarily by Roland McGrath <roland@gnu.org> when he worked for the FSF. During the development of version 2, Ulrich Drepper <drepper@redhat.com> volunteered his efforts and became the foremost contributor.

Many others have contributed in large amounts.

The support for the GNU Hurd was partly written by Thomas Bushnell, n/BSG <thomas@gnu.org> and Miles Bader <miles@gnu.org>. The port for GNU/Linux on the m68k was done and is maintained by Andreas Schwab <schwab@suse.de>, the port for GNU/Linux on the Alpha is due to Richard Henderson <rth@cygnus.com> and David Mosberger-Tang <David.Mosberger@acm.org>.


Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.

Please send comments on these web pages to webmasters@www.gnu.org. Send other questions to gnu@gnu.org.

Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Updated: $Date: 2003/04/12 05:49:48 $ $Author: jaeger $