Top Level (GNU Compiler Collection (GCC) Internals)

### 5.2 Top Level Source Directory ¶

The top level source directory in a GCC distribution contains several files and directories that are shared with other software distributions such as that of GNU Binutils. It also contains several subdirectories that contain parts of GCC and its runtime libraries:

`c++tools`

  Contains the sources for the g++-mapper-server, a tool used with C++ modules.

`config`

  Autoconf macros and Makefile fragments used throughout the tree.

`contrib`

  Contributed scripts that may be found useful in conjunction with GCC. One of these, `contrib/texi2pod.pl`, is used to generate man pages from Texinfo manuals as part of the GCC build process.

`fixincludes`

  The support for fixing system headers to work with GCC. See `fixincludes/README` for more information. The headers fixed by this mechanism are installed in `libsubdir/include-fixed`. Along with those headers, `README-fixinc` is also installed, as `libsubdir/include-fixed/README`.

`gcc`

  The main sources of GCC itself (except for runtime libraries), including optimizers, support for different target architectures, language front ends, and testsuites. See The `gcc` Subdirectory, for details.

`gnattools`

  Support tools for GNAT.

`gotools`

  Support tools for Go.

`include`

  Headers for the `libiberty` library.

`intl`

  GNU `libintl`, from GNU `gettext`, for systems which do not include it in `libc`.

`libada`

  The Ada runtime library.

`libatomic`

  The runtime support library for atomic operations (e.g. for `__sync` and `__atomic`).

`libbacktrace`

  A library that allows GCC to produce backtraces when it crashes.

`libcc1`

  A library that allows GDB to make use of the compiler.

`libcody`

  A compiler dynamism library to allow communication between compilers and build systems, for purposes such as C++ modules.

`libcpp`

  The C preprocessor library.

`libdecnumber`

  The Decimal Float support library.

`libffi`

  The `libffi` library, used as part of the Go runtime library.

`libga68`

  The Algol 68 runtime library.

`libgcc`

  The GCC runtime library.

`libgcobol`

  The COBOL runtime library.

`libgfortran`

  The Fortran runtime library.

`libgm2`

  The Modula-2 runtime library.

`libgo`

  The Go runtime library. The bulk of this library is mirrored from the master Go repository.

`libgomp`

  The GNU Offloading and Multi Processing Runtime Library.

`libiberty`

  The `libiberty` library, used for portability and for some generally useful data structures and algorithms. See Introduction in GNU libiberty, for more information about this library.

`libitm`

  The runtime support library for transactional memory.

`libobjc`

  The Objective-C and Objective-C++ runtime library.

`libphobos`

  The D standard and runtime library. The bulk of this library is mirrored from the master D repositories.

`libquadmath`

  The runtime support library for quad-precision math operations.

`libsanitizer`

  Libraries for various sanitizers. The bulk of this directory is mirrored from the Google sanitizers repositories.

`libssp`

  The Stack protector runtime library.

`libstdc++-v3`

  The C++ runtime library.

`libvtv`

  The vtable verification library.

`lto-plugin`

  Plugin used by the linker if link-time optimizations are enabled.

`maintainer-scripts`

  Scripts used by the `gccadmin` account on `gcc.gnu.org`.

`zlib`

  The `zlib` compression library, used for compressing and uncompressing GCC’s intermediate language in LTO object files.

The build system in the top level directory, including how recursion into subdirectories works and how building runtime libraries for multilibs is handled, is documented in a separate manual, included with GNU Binutils.