### C.3 Recommended Tools for Compilation ¶

We recommend installing the following GNU tools before attempting to build the GNU C Library:

- GNU `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 12.1 or newer

  GCC 12.1 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 15.2.1 is the newest compiler verified to work to build the GNU C Library.

  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.

- GNU `binutils` 2.39 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.45.1 is the newest verified to work to build the GNU C Library.

- GNU `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.2 is the newest verified to work to build the GNU C Library.

- GNU `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.3.2 is the newest verified to work to build the GNU C Library.

  Testing the GNU C Library requires `gawk` to be compiled with support for high precision arithmetic via the `MPFR` multiple-precision floating-point computation library.

- GNU `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 5

  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.42.0 is the newest verified to work to build the GNU C Library.

- GNU `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 3.4 or later

  Python is required to build the GNU C Library. As of release time, Python 3.14.0 is the newest verified to work for building and testing the GNU C Library.

- PExpect 4.0

  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.9.0 is the newest verified to work to test the pretty printers.

- The Python `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 7.8 or later with support for Python 3.4 or later

  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` 14.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

- GNU `autoconf` 2.72 (exactly)

and if you change any of the message translation files you will need

- GNU `gettext` 0.10.36 or later

  As of release time, GNU `gettext` version 0.23.2 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.