"Khimenko Victor" wrote:
glibc (for example) is also stable product and many libraries compiled with it are distributed and still you can get mess while mixing libraries compiled against glibc 2.0.x/glibc 2.1.x (EVEN if developers of glibc tried VERY hard to make glibc 2.1 backward compatible with glibc 2.0 on binary level!).
That's (beside the problems of incompatible glibc's on different distributions) why I personally don't consider glibc too stable yet...
Hmm. libjpeg, libpng, libgif/libungif, Qt, GTK, etc, etc. Are we really have ANY stable libraries at all ? To me it looks like wrong criterion :-) Different visions of libraries usually are NOT compatible on binary level. Be it in Linux, Windows or Solaris.
As for static libs, they have the version number encoded into them (file names, and `-soname=...'), so the linker can prevent the wrong one from being linked. (At least that's true for Unix-like systems; I've heard under Windoze there are bigger problems, but I don't have personnal experience...) But if the compiler version also matters, it means we would have to use something like `/usr/lib/libjpeg.so.6.0.1.gcc-2.8.1'...
And for static libs, this matters if another lib is compiled with one version of the lib (i.e., against its headers), and later used with another version of the lib. Yes, this can be a problem, but only affects a fraction of the libs out there (e.g. svgalib), while libgcc.a could potentially affect everything since it's used automatically by GCC, so the extent of problems would be much bigger.
Anyway, I'm gonna ask the GCC people next year...
Frank