This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: libstdc++/5396: ifstream read()'s data multiple times on Solaris
- From: Craig Rodrigues <rodrigc at attbi dot com>
- To: gcc-gnats at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, anderson at ligo dot caltech dot edu, gcc-bugs at gcc dot gnu dot org, nobody at gcc dot gnu dot org
- Date: Sat, 20 Apr 2002 08:33:33 -0400
- Subject: Re: libstdc++/5396: ifstream read()'s data multiple times on Solaris
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5396
Submitted by: apataki@apataki.dhs.org
Last week I investigated the problem I was experiencing some more and
found a solution. We installed a Solaris linker patch (as part of a
larger patch set) which seems to have solved the problem for me.
Here are the patch numbers for the various versions of Solaris. It's
worth giving a try:
103627 - Solaris 2.5.1=20
107733 - Solaris 2.6=20
106950 - Solaris 7=20
109147 - Solaris 8=20
Andras
On Wed, 17 Apr 2002, Jakob [iso-8859-1] =D8stergaard wrote:
>=20
> Hello all,
>=20
> I am seeing an error possibly related to PR 5936:
>=20
> Following configurations are affected:
> GCC-3.0.2 with vendor linker and assembler, with sjlj-exceptions.
> GCC-3.0.4 with vendor linker and assembler, with and without
sjlj-excepti=
ons
> GCC-3.0.4 with GNU binutils 2.12, without sjlj-exceptions.
>=20
> I have not yet found a working configuration (one that does not
expose th=
e bug=20
> that I see - any configuration not listed above, is simply not yet
tested=
)
>=20
> My problem: A non-virtual method in a base class throws an
exception, ca=
using=20
> either a segfault or a bus error, depending on configurations either in=
=20
> vec.cc or eh_throw.cc.
>=20
> The method throwing the exception can be either in a shared library,
or i=
n the=20
> main executable (linked statically, but first incrementally linked
into a=
=20
> library prior to linking into the executable). This makes no difference.
>=20
> With GCC-3.0.4 and GNU binutils 2.12, I get:
>=20
> #0 0xff24fca0 in __cxa_throw (obj=3D0xfeb19fec, tinfo=3D0x15a038,
> dest=3D0xb194c <_ZN6errors16connectionclosedD1Ev>) at eh_throw.cc:63
> 63 header->unwindHeader.exception_class =3D __gxx_exception_class;
>=20
> Compiler configuration:
>=20
> $ g++ -v
> Reading specs from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.0.4/spec=
s
> Configured with: ./configure --enable-languages=3Dc,c++
--disable-threads=
=20
> --with-as=3D/usr/local/bin/as --with-gnu-as
--with-ld=3D/usr/local/bin/ld=
=20
> --with-gnu-ld
> Thread model: single
> gcc version 3.0.4
>=20
> I tried writing a small test program, but weren't successful in that.
I h=
ave=20
> some hundreds of thousands of lines of C++, two handfulls of
processes al=
l=20
> using this code, and *one* process exhibiting the problem. The exact
sam=
e=20
> code compiles and works with GCC-3.0.1, GCC-3.0.3 (and others) on
various=
=20
> Intel based systems (RedHat Linux, Debian GNU/Linux, FreeBSD).
>=20
> Oh, and my system is:
> $ uname -a
> SunOS sol 5.8 Generic_108528-05 sun4u sparc SUNW,Ultra-1
>=20
> Any ideas ? Need more info ? Anything I can try/test ? I will try
the =
head=20
> of the 3.1 branch today.
>=20
> Cheers,
>=20
> / jakob
>=20
>=20