Subject: Re: Available for testing: gcc-3.3.1-1 and gcc-mingw-20030911-1
From: Danny Smith <[email-masked]>
To: Charles Wilson <[email-masked]>
Cc: [email-masked]
Date: Sun, 14 Sep 2003 18:14:50 +1000 (EST)

--- Charles Wilson <[email-masked]> wrote: > Danny Smith wrote:
> 
> > gcc 3.2-3 used Dwarf2 exceptions, which worked most of the time. (In fact,
> > I don't recall any bug reports at all on cygwin list).  But it didn't work
> > with w32api callbacks, nor with some combinations of compiler switches
> > (notably -mcpu=i586 or -mno-accumulate-outgoing-args and
> > -fomit-frame-pointer).
> > 
> > cygwin gcc-3.3.1 uses setjmp-longjmp exception mechanism,
> > mingw does too and has done since gcc-3.2.1.
> > 
> > The two undefined references are Dwarf2 specific.  The corresponding
> > SjLj symbols are __gxx_personality_sj0 and  __Unwind_SjLj_Resume.
> 
> So, just to make sure I understand...
> 
> This "problem" only affects C++ code -- and only C++ code which uses 
> exceptions.  If a C++ library uses exceptions, it should be recompiled 
> with the new compiler.  If a C++ _program_ uses excetions -- or uses a 
> (C++) library which uses exceptions -- then it should be 
> recompiled/relinked too, but only after the suspect lib has been 
> recompiled with gcc-3.3.1, as well.
> 
> But C code (libraries, apps, etc) are unaffected, and need no recompiling.
> 
> Right?
> 

Ada, Java, ObjC are affected as well as C++.  Also, note that any C++ code
that uses iostreams or STL will be using exceptions. Oh yes, and new/delete use
exceptions.
But garden variety C should not be affected.
Linking to w32api dll's certainly isn't affected.

FWIW, C++ optimisation is so much better with gcc-3.3 than with 3.2 it would
probably pay to recompile C++ libs anyway, even if the exception model hadn't
changed

Danny

> Chuck
> 
> 
>  

http://search.yahoo.com.au - Yahoo! Search
- Looking for more? Try the new Yahoo! Search

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/