Solaris throw bug, PR 5936

Andras Pataki apataki@apataki.dhs.org
Thu Apr 18 05:56:00 GMT 2002


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 
            107733 - Solaris 2.6 
            106950 - Solaris 7 
            109147 - Solaris 8 

Andras


On Wed, 17 Apr 2002, Jakob [iso-8859-1] Østergaard wrote:

> 
> Hello all,
> 
> I am seeing an error possibly related to PR 5936:
> 
> 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-exceptions
> GCC-3.0.4 with GNU binutils 2.12, without sjlj-exceptions.
> 
> I have not yet found a working configuration (one that does not expose the bug 
> that I see - any configuration not listed above, is simply not yet tested)
> 
> My problem:  A non-virtual method in a base class throws an exception, causing 
> either a segfault or a bus error, depending on configurations either in 
> vec.cc or eh_throw.cc.
> 
> The method throwing the exception can be either in a shared library, or in the 
> main executable (linked statically, but first incrementally linked into a 
> library prior to linking into the executable). This makes no difference.
> 
> With GCC-3.0.4 and GNU binutils 2.12, I get:
> 
> #0  0xff24fca0 in __cxa_throw (obj=0xfeb19fec, tinfo=0x15a038,
>     dest=0xb194c <_ZN6errors16connectionclosedD1Ev>) at eh_throw.cc:63
> 63        header->unwindHeader.exception_class = __gxx_exception_class;
> 
> Compiler configuration:
> 
> $ g++ -v
> Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.0.4/specs
> Configured with: ./configure --enable-languages=c,c++ --disable-threads 
> --with-as=/usr/local/bin/as --with-gnu-as --with-ld=/usr/local/bin/ld 
> --with-gnu-ld
> Thread model: single
> gcc version 3.0.4
> 
> I tried writing a small test program, but weren't successful in that. I have 
> some hundreds of thousands of lines of C++, two handfulls of processes all 
> using this code, and *one* process exhibiting the problem.  The exact same 
> code compiles and works with GCC-3.0.1, GCC-3.0.3 (and others) on various 
> Intel based systems (RedHat Linux, Debian GNU/Linux, FreeBSD).
> 
> Oh, and my system is:
> $ uname -a
> SunOS sol 5.8 Generic_108528-05 sun4u sparc SUNW,Ultra-1
> 
> Any ideas ?   Need more info ? Anything I can try/test ?  I will try the head 
> of the 3.1 branch today.
> 
> Cheers,
> 
>  / jakob
> 
> 



More information about the Gcc-bugs mailing list