I have been trying to figure out why I have so many C++ failures with "make check" in gcc from CVS under RedHat 7.0 beta. It turned out that the libio headers from libstdc++ in gcc are way out of date comparing with glibc 2.2. There are so many fields added to libio in glibc 2.2. As the result, libstdc++ is pretty much broken. Even this simple program #include <iostream> main () { cout << "hello world\n"; } won't print out anything when compiled under RedHat 7.0 beta. It works fine under RedHat 6.2. Also there is no C++ binary compatibility from RedHat 6.2 to 7.0 since libio has been changed so much and there is no versioning provided for it. You can compile the simple code above under RedHat 6.2 and run it under both 6.2/7.0. BTW, I don't know if libio in libstdc++-b3 is in sync with glibc 2.2. H.J.
There is no binary compatibility issue, at least none I'm aware of. The only problem is compling C++ code. The libstdc++-3 (not v3) headers are pretty much borken but this is know. I assumed that somebody took care of this since some program of the distribution are written in C++.
Try compile my simeple program under RedHat 6.2 and run it under 7.0 beta. Make sure compat-libstdc++-6.2-2.9.0.9 is installed under 7.0 beta. The problem may not be that bad. We just have to fix all versions of shared libstdc++ to work with glibc 2.2.
It turned it was a glibc bug. I am attaching a patch here. Ulrich, could you please double check it. You can run "make check" for gcc from CVS. Make sure you don't use libstdc++-v3.
Created attachment 3081 [details] A libio compatibility patch for glibc.
Ulrich has checked in a fix into CVS. It will be nice to fix it in 7.0.
Fixed in glibc-2.1.92-14