A Common C++ ABI for GNU/Linux

The main point of the GCC 3.2 release is to have a relatively stable and common C++ ABI for GNU/Linux and BSD usage, following the Itanium C++ ABI.

Unfortunately this means that GCC 3.2 is incompatible with GCC 3.0 and GCC 3.1 releases.

But for real interoperability of C++ shared libraries and C++ programs, not only does a GCC 3.2 based compiler have to be used, but it also has to be built in a certain environment and with some specific options.

We strongly advise all developers and distributors to follow the guidelines given here for GNU/Linux systems.

Configuring GCC

Configure GCC with this options:

 --enable-__cxa_atexit
 

GCC is configured by default on GNU/Linux systems also with these two flags, do not change them to any other value:

 --enable-threads=posix --enable-shared
 

If you do not use these options, your files generated by GCC will not be fully ABI compatible.

Glibc

On GNU/Linux systems use the GNU C Library version 2.2.5 or newer.

Binutils

Use binutils 2.12.1 or any newer release.

Order of Builds

Since GCC and glibc test for some features of binutils and glibc, you have to build and install new versions (if needed) in this order:

  1. New binutils version
  2. New glibc version (on GNU/Linux systems only)
  3. GCC 3.2

Especially, if you update binutils, you should rebuild glibc so that glibc can take advantage of some new options of binutils.

Caveat

Since GCC now implements a written ABI that is also implemented by other compiler vendors, it might be that we encounter different interpretations of the ABI by the vendors, bugs in the ABI or bugs in the implementation of the ABI in different compilers.

We have tried hard to have a stable ABI that is compatible with future GCC releases. At this point no promise can be made that this release will be ABI compatible with all future GCC 3.x versions but we will strive hard to keep GCC 3.3 compatible with GCC 3.2.

For questions related to the use of GCC, please consult these web pages and the GCC manuals. If that fails, the gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer list at gcc@gcc.gnu.org. All of our lists have public archives.

Copyright (C) Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

These pages are maintained by the GCC team. Last modified 2026年07月21日.

AltStyle によって変換されたページ (->オリジナル) /