[image of the Head of a GNU]

GNU C Library

Main page Bugs Manual Resources  

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 systems with the Linux kernel.

History

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.

Project Goals

The GNU C library is primarily designed to be a portable and high performance C library.

It follows all relevant standards (ISO C 99, POSIX.1c, POSIX.1j, POSIX.1d, Unix98, Single Unix Specification). It is also internationalized and has one of the most complete internationalization interfaces known.

Contributing

Today the GNU C library is 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 at the latest PROJECTS file distributed with the glibc source, and coordinate your work with the maintainers at <libc-alpha@sources.redhat.com>.

Note that most large contributions to the code base will require authors to file copyright papers with the FSF. Please contact the maintainers with any queries.

Standards Conformance

glibc distributes a CONFORMANCE report detailing adherence to various standards. This list also shows where GNU libc needs to be improved.

Manual

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 <libc-alpha@sources.redhat.com>.

Porting

For more information on the process of porting see Porting the C Library in the glibc manual. The status of ports and their sub-maintainers is currently documented on the ports page. If you are interested in porting GNU libc to additional system types, please contact the maintainers <libc-ports@sources.redhat.com> before beginning your port.

Current Status

The current version is 2.4.

See the NEWS file for more information.

There is a FAQ which you should read first.

Availability

The releases are available at http://ftp.gnu.org/gnu/glibc/ and its mirrors.

For more information on porting see Porting the GNU C Library.

Bugs

See this page for information on reporting bugs in the GNU C Library.

Resources

The canonical source for information about the GNU C Library the reference manual available at <http://www.gnu.org/software/libc/manual/>

Also see this page for some resources relevant to the GNU C Library.

People

The GNU C library was originally written primarily by Roland McGrath <roland@gnu.org> when he worked for the FSF. In 2001 The GNU C Library Steering Committee <glibc-sc@gnu.org>, was formed and currently consists of Mark Brown, Paul Eggert, Andreas Jaeger, Jakub Jelinek, Roland McGrath and Andreas Schwab. Ulrich Drepper is currently the foremost contributor and has overall responsibility for maintenance and development.

Many others have contributed in large amounts as documented in the glibc Contributors.