From: Earnie <ea...@us...> - 2011-05-11 12:32:31
|
K. Frank wrote: > Hi Edward! > > On Tue, May 10, 2011 at 1:38 PM, Edward Diener <eld...@tr...> wrote: >> I was having problems with the MingW gcc-4.5.2 implementation and some >> Boost regression tests when someone suggested I try a gcc-4.5.2 >> implementation from TDM-GCC. After trying that version my regression >> testing problems went away, for what reason I do not know. When I looked >> to compare the two versions I noticed the MingW version has >> 'libgcc_s_dw2-1.dll' while the TDM version has 'libgcc_s_sjlj-1.dll'. I >> believed these have something to do with the stack, and maybe stack >> unwinding as well as cross-DLL exceptions but I could not find any >> explanation in the gcc 4.5.2 docs although I thought I saw something >> there about it previously. >> >> Can anyone tell me what these different DLLs are and where in the gcc >> docs I can find information about them ? > > I don't really understand the details of this, but I do believe they are > two different implementations of exception handling. > Dwarf-2 unwinding is faster. If you don't care about catching exceptions thrown by non-dwarf-2 third party binaries or need to unwind through a third party binary then it shouldn't matter to you. It would be nice to be able to -mdwarf-2 or -msjlj but the system libraries would need to be generated for each and the appropriate ones chosen. This might be possible with a modified specs file but would make maintenance a nightmare. >>From the tdm web site: > > http://tdm-gcc.tdragon.net/start > A different POV. You must choose a package that contains the appropriate libraries. MinGW offers only one binary distribution of the runtime that matches the stack unwinding of its compiler offering. -- Earnie -- http://www.for-my-kids.com |