Red Hat Bugzilla – Bug 17059
gcc/libstdc++ is broken with glibc 2.2.
Last modified: 2008-05-01 11:37:58 EDT
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
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.
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-184.108.40.206 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