DWARF-2 vs SjLj exception handling - poco compilation problem mingw - fedora10

Daniel P. Berrange berrange at redhat.com
Fri Nov 14 11:37:44 UTC 2008


On Fri, Nov 14, 2008 at 08:39:55AM +0000, Richard W.M. Jones wrote:
> On Fri, Nov 14, 2008 at 01:03:28AM +0100, Andrzej Horoszczak IDRA wrote:
> > My problems is that other libraries (like boost) that have been used in
> > my target application were unfortunately built with DW2 exception
> > handling:
> > c:\mingw\lib/libboost_filesystem.a(operations.o):operations.cpp:(.text
> > 0x887): undefined reference to `__Unwind_Resume'
> 
> libboost_filesystem.a isn't a file that we ship.  Our version of boost
> has libboost_filesystem.dll.a and libboost_filesystem.dll, using SJLJ
> unwinding:
> 
> $ i686-pc-mingw32-nm /usr/i686-pc-mingw32/sys-root/mingw/bin/libboost_filesystem.dll | grep -i unwind.*resume
> 10009d60 T __Unwind_SjLj_Resume
> 10009cb0 T __Unwind_SjLj_Resume_or_Rethrow
> 
> It seems that there isn't a stable C++ ABI on Windows, so if you mix
> DLLs from different places you'll get unpredictable results.

To a large extent that's often been true on Linux too. C++ is just so
fragile ABI wise, that you really must use the same compiler for your
entire stack to guarentee a reliable system. So I think its fine to
say that we don't support mixing MinGW vs native compiled C++ code.

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|



More information about the mingw mailing list