> if not for the real compiler as such, what advantages would i get on > using newer glibc, libstdc++ ?? would these features be tied to > some kernel version linux-2.4 vs 2.6 ( something like thread > support).
Let's step back a bit. If you look at this page: http://gcc.gnu.org/releases.html The age differences and new features between releases become clear with some digging. >From this, one sees the inception dates for various gcc releases: 2.95.x == July 31, 1999 3.4.x == April 18, 2004 4.1.x == February 28, 2006 If you clink on the version name link (say GCC 4.1.0), you'll go to an informative page (http://gcc.gnu.org/gcc-4.1/) that gives details on the release series. Clicking on the link that says "changes" will give you details about what changed in the GCC 4.1.0 release from the last release. Hopefully that makes answering this kind of question easier for you. For your specific questions: 1) between gcc-2.95.x and gcc-3.2.x, libstdc++ has been completely replaced. This new library is called "libtdc++-v3" and implements the ISO standard. Noticeable differences between 2.95 are templatized iostreams, wide-character support, localization, namespace support, etc etc. Later versions include a "Safe STL" component in the libstdc++ debug mode, abstractions for threads, implementations for TR1, a performant std::string class in ext/__versa_string, various optimizing replacements for std:: allocators, etc. etc. 2) between gcc-2.95.x and gcc-3.2.x, gcc-3.2.x to gcc-3.3.x, and gcc-3.3.x to gcc-3.4.x, the C++ ABI implemented by the g++ compiler changed. This has been changed to implement and industry-standard C++ ABI. This is advantageous to you because with this ABI, g++ and other compilers can now inter-operate (assuming you are using compatible libstdc++ versions.) Ie, you can use both g++ and non-GNU compilers to compile your application, or parts of your application. 3) between gcc-3.3.x and gcc-3.4.x, the C++ parser in g++ has been completely replaced. This results in clearer error messages, and faster, more correct parsing. 4) between gcc-3.4.x and gcc-4.0.x, the underlying optimizers for GCC have been replaced, moving to an SSA form. As you can see, there has been considerable change in compilers and libraries in the almost 8 years since you changed tools. I'd suggest you start moving to a new toolset, if only on an experimental or provisional basis. Furthermore, I'd recommend a strategy of trying to update your toolset every two years or so, in order to spread out the work required to stay current with compilation technology. There will no doubt continue to be major advances in the C++ toolset with the upcoming C++0x ISO standard. And there will no doubt also be advances in language support (Open MP is added in gcc-4.2.x), and optimizer efficiency. best, benjamin