--- Charles Wilson <[EMAIL PROTECTED]> 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/