Problem with istream.seekg() and __mbstate_t

Craig Rodrigues rodrigc@mediaone.net
Mon Feb 12 19:17:00 GMT 2001


On Tue, Feb 13, 2001 at 01:04:20AM -0200, Alexandre Oliva wrote:
> On Feb 12, 2001, Craig Rodrigues <rodrigc@mediaone.net> wrote:
> 
> > /tmp/ccx9JhBd.o: In function `seek(std::istream&)':
> > /tmp/ccx9JhBd.o(.text+0x3c): undefined reference to `std::istream::seekg(std::fpos<__mbstate_t>)'
> > collect2: ld returned 1 exit status
> 
> > Doing an nm on libstdc++.so.3, the closest symbol I could find was:
> > 00053288 W std::istream::seekg(std::fpos<mbstate_t>)
> 
> Looks like a binary compatibility problem.  Could it be that libstdc++
> was built with an older version of glibc headers, that had mbstate_t
> as a struct name, as opposed to a typedef to __mbstate_t?

I believe that is the case.  I obtained this build of gcc
from the CodeSourcery web page at: http://www.codesourcery.com/gcc-snapshots/ .
I believe CodeSourcery compiles their snapshots on a Redhat 6.2
system which comes with glibc 2.1.

I am trying to run this on a glibc 2.2 system (RH 7.0).  I was unaware
that there would be a binary incompatibility in libstdc++ depending
on if it was compiled on a glibc 2.1 or glibc 2.2 system.
-- 
Craig Rodrigues        
http://www.gis.net/~craigr    
rodrigc@mediaone.net          



More information about the Libstdc++ mailing list