HJ's patch to libio works on Red Hat 4.2/libc 5.3.12
H.J. Lu
hjl@lucon.org
Sun Oct 12 13:31:00 GMT 1997
>
> Joe Buck <jbuck@synopsys.com> writes:
> > I installed HJ's patch, as modified according to Ulrich's suggestion,
> > and all libio tests pass on a straight Red Hat 4.2 system.
>
> Same here.
>
> I seem to have an additional problem however. The attched stripped
> down code core dumps on a i386-linux-gnulibc1 box with libc 5.3.12
> (RH 4.2). I've also attched the backtrace from gdb.
>
> I've applied Jason's and HLJ's patches to date to egcs-971008.
>
> To run it, create a text file "data.in" with a floating point number in
> it.
>
> =====
> #include <fstream.h>
> #include <cstdlib>
>
> int main () {
> ifstream ifp ("data.in");
> if (!ifp) {
> cerr << "Error opening input \"data.in\"" << endl;
> exit (1);
> }
>
> double dummy;
> ifp >> dummy; // <<<<<<< CORE DUMPS HERE
> if (!ifp) {
> cerr << "Error reading input \"data.in\"" << endl;
> exit (1);
> }
>
> exit (1);
> }
> =====
>
> Here's the back trace:
>
> % c++ -g -o ifstream ifstream.cc
> % gdb ifstream
> GDB is free software and you are welcome to distribute copies of it
> under certain conditions; type "show copying" to see the conditions.
> There is absolutely no warranty for GDB; type "show warranty" for details.
> GDB 4.16 (i586-unknown-linux), Copyright 1996 Free Software Foundation,
> Inc...
> (gdb) r
> Starting program: /tmp/ifstream
> warning: Unable to find dynamic linker breakpoint function.
> warning: GDB will be unable to debug shared library initializers
> warning: and track explicitly loaded dynamic code.
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x4002dc12 in ostream::flush (this=0x40030bfc)
> at ../../../libio/iostream.cc:854
> 854 if (_strbuf->sync())
> (gdb) bt
> #0 0x4002dc12 in ostream::flush (this=0x40030bfc)
> at ../../../libio/iostream.cc:854
> #1 0x4002ccd3 in istream::operator>> (this=0xbffffa28, x=@0xbffff9cc)
> at ../../../libio/iostream.h:159
> #2 0x8048ae0 in main () at ifstream.cc:12
> #3 0x80489db in ___crt_dummy__ ()
> #4 0x4002b2f8 in __tf8ifstream () at ../../../libio/fstream.h:61
> Cannot access memory at address 0xffa0.
> (gdb)
>
>
I think somehow your libstdc++ is miscompiled.
--
H.J. Lu (hjl@gnu.ai.mit.edu)
More information about the Gcc
mailing list