We recommend installing the following GNU tools before attempting to build the GNU C Library:
make
4.0 or newer
As of release time, GNU make
4.4.1 is the newest verified to work
to build the GNU C Library.
GCC 6.2 or higher is required. In general it is recommended to use the newest version of the compiler that is known to work for building the GNU C Library, as newer compilers usually produce better code. As of release time, GCC 13.2 is the newest compiler verified to work to build the GNU C Library.
For PowerPC 64-bits little-endian (powerpc64le), a GCC version with support for -mno-gnu-attribute, -mabi=ieeelongdouble, and -mabi=ibmlongdouble is required. Likewise, the compiler must also support passing -mlong-double-128 with the preceding options. As of release, this implies GCC 7.4 and newer (excepting GCC 7.5.0, see GCC PR94200). These additional features are required for building the GNU C Library with support for IEEE long double.
For ARC architecture builds, GCC 8.3 or higher is needed.
For s390x architecture builds, GCC 7.1 or higher is needed (See gcc Bug 98269).
For AArch64 architecture builds with mathvec enabled, GCC 10 or higher is needed due to dependency on arm_sve.h.
For multi-arch support it is recommended to use a GCC which has been built with support for GNU indirect functions. This ensures that correct debugging information is generated for functions selected by IFUNC resolvers. This support can either be enabled by configuring GCC with ‘--enable-gnu-indirect-function’, or by enabling it by default by setting ‘default_gnu_indirect_function’ variable for a particular architecture in the GCC source file gcc/config.gcc.
You can use whatever compiler you like to compile programs that use the GNU C Library.
Check the FAQ for any special compiler issues on particular platforms.
binutils
2.25 or later
You must use GNU binutils
(as and ld) to build the GNU C Library.
No other assembler or linker has the necessary functionality at the
moment. As of release time, GNU binutils
2.42 is the newest
verified to work to build the GNU C Library.
For PowerPC 64-bits little-endian (powerpc64le), objcopy
is required
to support --update-section. This option requires binutils 2.26 or
newer.
ARC architecture needs binutils
2.32 or higher for TLS related fixes.
texinfo
4.7 or later
To correctly translate and install the Texinfo documentation you need
this version of the texinfo
package. Earlier versions do not
understand all the tags used in the document, and the installation
mechanism for the info files is not present or works differently.
As of release time, texinfo
7.0.3 is the newest verified to work
to build the GNU C Library.
awk
3.1.2, or higher
awk
is used in several places to generate files.
Some gawk
extensions are used, including the asorti
function, which was introduced in version 3.1.2 of gawk
.
As of release time, gawk
version 5.2.2 is the newest verified
to work to build the GNU C Library.
bison
2.7 or later
bison
is used to generate the yacc
parser code in the intl
subdirectory. As of release time, bison
version 3.8.2 is the newest
verified to work to build the GNU C Library.
Perl is not required, but if present it is used in some tests and the
mtrace
program, to build the GNU C Library manual. As of release
time perl
version 5.38.2 is the newest verified to work to
build the GNU C Library.
sed
3.02 or newer
Sed
is used in several places to generate files. Most scripts work
with any version of sed
. As of release time, sed
version
4.9 is the newest verified to work to build the GNU C Library.
Python is required to build the GNU C Library. As of release time, Python 3.11 is the newest verified to work for building and testing the GNU C Library.
The pretty printer tests drive GDB through test programs and compare its output to the printers’. PExpect is used to capture the output of GDB, and should be compatible with the Python version in your system. As of release time PExpect 4.8.0 is the newest verified to work to test the pretty printers.
abnf
module.
This module is optional and used to verify some ABNF grammars in the
manual. Version 2.2.0 has been confirmed to work as expected. A
missing abnf
module does not reduce the test coverage of the
library itself.
GDB itself needs to be configured with Python support in order to use
the pretty printers. Notice that your system having Python available
doesn’t imply that GDB supports it, nor that your system’s Python and
GDB’s have the same version. As of release time GNU debugger
13.2 is the newest verified to work to test the pretty printers.
Unless Python, PExpect and GDB with Python support are present, the
printer tests will report themselves as UNSUPPORTED
. Notice
that some of the printer tests require the GNU C Library to be compiled with
debugging symbols.
If you change any of the configure.ac files you will also need
autoconf
2.72 (exactly)
and if you change any of the message translation files you will need
gettext
0.10.36 or later
As of release time, GNU gettext
version 0.21.1 is the newest
version verified to work to build the GNU C Library.
You may also need these packages if you upgrade your source tree using patches, although we try to avoid this.