On Sunday 26 June 2005 13:30, Roger Leigh wrote: > Changing libstdc++ does break the ABI. Debian is currently using GCC > 3.3 with libstdc++5. We will, in a few weeks, switch to GCC 4.0 and > libstdc++6. At this point all the C++ libraries will need to be > rebuilt, and these problems will go away. It's not possible to use > multiple versions of libstdc++ in one program, so linking a library > built against libstdc++5 with a program built with GCC 4.x is going to > be dodgy.
I agree with that, but saying that compilers have "different ABIs" can mean different things to different people, particularly with those who remember the bad old days of gcc-3.95, gcc-3.0, gcc-3.1 and gcc-3.2, when the C++ ABIs for each were different, and most people were very unhappy about that (in the sense that the same libraries compiled with each compiler would have different ABIs). gcc-3.2, 3.3 and 3.4 did not break ABI in that sense (the same linking and name mangling conventions are used for each). However, as you say the ABI of libstdc++ did change with the change of the major library version number from 5 to 6, in the same way that the gtkmm ABI changed between 2.2 and 2.4, which makes gcc-3.3 and gcc-3.4 incompatible - made worse by the fact that version 6 of libstdc++ will not compile with gcc-3.3 (and version 5 will not compile with gcc-3.4) and that as you say you cannot link the same program against both version 5 and 6 (but they are parallel installable so that you can have different programs on the same system linked against different versions provided that any one program and all its dynamically linked dependencies are linked against only any one version). In practice, as you say this means that all C++ libraries are going to have to be recompiled when changing from gcc-3.3 to gcc-3.4 or 4.0. I had to do exactly that when I moved from gcc-3.3 to 3.4 - but for me this only meant recompiling gtkmm, Qt and KDE. gcc-3.4 and 4.0 both use version 6 of libstdc++ and as I understand it you can interchange gcc-3.4 and 4.0 without difficulties. I may well download gcc-4.0 to test that out. Chris. _______________________________________________ gtkmm-list mailing list gtkmm-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtkmm-list