User guide

Chapter 4. Compiling and Building
40
Updates in the 4.2 Series: http://gcc.gnu.org/gcc-4.2/changes.html
Updates in the 4.3 Series: http://gcc.gnu.org/gcc-4.3/changes.html
Updates in the 4.4 Series: http://gcc.gnu.org/gcc-4.4/changes.html
In addition to the changes introduced via the GCC 4.4 rebase, the Red Hat Enterprise Linux 6 version
of GCC also features several fixes and enhancements backported from upstream sources (i.e. version
4.5 and beyond). These improvements include the following (among others):
Improved DWARF3 debugging for debugging optimized C++ code.
Fortran optimization improvements.
More accurate instruction length information for ix86, Intel 64 and AMD64, and s390.
Intel Atom support
POWER7 support
C++ raw string support, u/U/u8 string literal support
4.1.2. Language Compatibility
Application Binary Interfaces specified by the GNU C, C++, Fortran and Java Compiler include:
Calling conventions. These specify how arguments are passed to functions and how results are
returned from functions.
Register usage conventions. These specify how processor registers are allocated and used.
Object file formats. These specify the representation of binary object code.
Size, layout, and alignment of data types. These specify how data is laid out in memory.
Interfaces provided by the runtime environment. Where the documented semantics do not change
from one version to another they must be kept available and use the same name at all times.
The default system C compiler included with Red Hat Enterprise Linux 6 is largely compatible with the
C99 ABI standard. Deviations from the C99 standard in GCC 4.4 are tracked online
3
.
In addition to the C ABI, the Application Binary Interface for the GNU C++ Compiler specifies the
binary interfaces needed to support the C++ language, such as:
Name mangling and demangling
Creation and propagation of exceptions
Formatting of run-time type information
Constructors and destructors
Layout, alignment, and padding of classes and derived classes
Virtual function implementation details, such as the layout and alignment of virtual tables
3
http://gcc.gnu.org/gcc-4.4/c99status.html