Prev: More size_t problems Up: installation Top: Top

2.9. Do I need to rebuild libg++ to go with my new g++?

``After I upgraded g++ to the latest version, I'm seeing undefined symbols.''

or

``If I upgrade to a new version of g++, do I need to reinstall libg++?''

This depends; as a rule, some upgrades will require rebuilding libg++ and others will not. Both versions 2.3.3 and 2.4.0 introduced some incompatibilities with previous versions. For 2.3.3, the name mangling of certain virtual table names changed, which introduced an incompatiblity. For 2.4.0, the type of ``size_t'' changed on Suns from int (as declared by the include files provided by Sun) to unsigned long (the ANSI C and draft ANSI C++ standards declare that size_t must be unsigned, and the GCC maintainers are now correcting this ``bug'').

With version 2.5 of g++ and libg++, major changes were made in the way that prototypes are provided for system functions. Before, libg++ provided prototypes for such functions in the g++-include directory. As of 2.5, gcc creates fixed headers suitable for both C and C++ as part of its installation process. You definitely need to install a new libg++ to go with a 2.5.x release of g++.

As a rule, the first two digits of your g++ and libg++ should be the same.