### C.3 Recommended Tools for Compilation

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

- GNU `make` 3.79 or newer

  You need the latest version of GNU `make`. Modifying the GNU C Library to work with other `make` programs would be so difficult that we recommend you port GNU `make` instead. Really. We recommend GNU `make` version 3.79. All earlier versions have severe bugs or lack features.

- GCC 3.4 or newer, GCC 4.1 recommended

  For the 2.4 release or later, GCC 3.4 or higher is required; as of this writing, GCC 4.4 is the compiler we advise to use for current versions. On certain machines including `powerpc64`, compilers prior to GCC 4.0 have bugs that prevent them compiling the C library code in the 2.4 release. On other machines, GCC 4.1 is required to build the C library with support for the correct `long double` type format; these include `powerpc` (32 bit), `s390` and `s390x`. For other architectures special compiler-provided headers are needed (like `cpuid.h` on x86) which only come with later compiler versions.

  You can use whatever compiler you like to compile programs that use GNU libc, but be aware that both GCC 2.7 and 2.8 have bugs in their floating-point support that may be triggered by the math library.

  Check the FAQ for any special compiler issues on particular platforms.

- GNU `binutils` 2.15 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.

- GNU `texinfo` 3.12f

  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.

- GNU `awk` 3.0, or higher

  `Awk` is used in several places to generate files. `gawk` 3.0 is known to work.

- Perl 5

  Perl is not required, but it is used if present to test the installation. We may decide to use it elsewhere in the future.

- GNU `sed` 3.02 or newer

  `Sed` is used in several places to generate files. Most scripts work with any version of `sed`. The known exception is the script `po2test.sed` in the `intl` subdirectory which is used to generate `msgs.h` for the test suite. This script works correctly only with GNU `sed` 3.02. If you like to run the test suite, you should definitely upgrade `sed`.

If you change any of the `configure.in` files you will also need

- GNU `autoconf` 2.53 or higher

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

- GNU `gettext` 0.10.36 or later

You may also need these packages if you upgrade your source tree using patches, although we try to avoid this.