Chapter 10. Compiler and Tools

10.1. GCC Toolchain

In Red Hat Enterprise Linux 7, the gcc toolchain is based on the gcc-4.8.x release series, and includes numerous enhancements and bug fixes relative to the Red Hat Enterprise Linux 6 equivalent. Similarly, Red Hat Enterprise Linux 7 includes binutils-2.23.52.x.
These versions correspond to the equivalent tools in Red Hat Developer Toolset 2.1; a detailed comparison of Red Hat Enterprise Linux 6 and Red Hat Enterprise Linux 7 gcc and binutils versions can be seen here:
Notable highlights of the Red Hat Enterprise Linux 7 toolchain are the following:
  • As a Technology Preview, The GNU Compiler Collection (GCC) implements support for on-line patching of multi-threaded code for Linux on System z binaries. Selecting specific functions for hot-patching is enabled by using a "function attribute" and hot-patching for all functions can be enabled using the -mhotpatch command-line option.
    Enabling hot-patching has a negative impact on software size and performance. It is therefore recommended to use hot-patching for specific functions instead of enabling hot patch support for all functions.
  • Experimental support for building applications compliant with C++11 (including full C++11 language support) and some experimental support for C11 features;
  • Improved support for programming parallel applications, including OpenMP v3.1, C++11 Types and GCC Built-ins for Atomic Memory Access and experimental support for transactional memory (including Intel RTM/HLE intrinsics, built-ins, and code generation);
  • A new local register allocator (LRA), improving code performance;
  • DWARF4 is now used as the default debug format;
  • A variety of new architecture-specific options;
  • Support for AMD family 15h and 16h processors;
  • Link-time optimization support;
  • Enhanced warnings and diagnostics;
  • A variety of new Fortran features.