A list for the developers of CellML tools

Text archives Help


[cellml-dev] CellML 1.10rc2


Chronological Thread 
  • From: alan.garny at dpag.ox.ac.uk (Alan Garny)
  • Subject: [cellml-dev] CellML 1.10rc2
  • Date: Tue, 13 Sep 2011 09:36:47 +0200

Hi Andrew,

> > However, on Windows, things don?t work as expected, even though
> > everything builds fine. Basically, whenever I run the program, I get
> > the following message: ?The procedure entry point
> > _ZNKSt9exception4whatEv could not be located in the dynamic link
> > library libstdc++-6.dll?. That DLL is part of MinGW, so I thought I
> > would check its entry points (using DLL Export Viewer
> > <http://www.nirsoft.net/utils/dll_export_viewer.html>), but couldn?t
> > find anything for ZNKSt9exception4whatEv.
> >
> > The only thing I can think of is that we use different versions of
> > MinGW. Personally, I use the (patched) version (4.4) of MinGW that
> > comes with Qt SDK 1.1.3 <http://qt.nokia.com/downloads>, and I wonder
> > whether you wouldn?t be using the official version of MinGW
> > <http://www.mingw.org/>
?
>
> The CellML API is built against the MingW binaries available from
mingw.org
> rather than any patched version.
>
> $ md5sum /cygdrive/c/MinGW/bin/libstdc++-6.dll
> d575f00fbf32f16de1e082e5966f5abc */cygdrive/c/MinGW/bin/libstdc++-
> 6.dll
>
> $ objdump -p /cygdrive/c/MinGW/bin/libstdc++-6.dll |grep
> ZNKSt9exception4whatEv
> [ 694] _ZNKSt9exception4whatEv
>
> $ /cygdrive/c/MinGW/bin/gcc --version
> gcc.exe (GCC) 4.5.2
> Copyright (C) 2010 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> PURPOSE.
>
> It looks like that symbol is not new; I suspect that your compiler version
> might have a different exception handling mechanism, so an incompatible
> C++ ABI. There are two ways of handling exceptions on
> Windows: DWARF2, which the version of MingW that the CellML API is build
> with uses, and the slower way that doesn't work across DLL boundaries
using
> setjmp/longjmp (SJLJ exceptions).
>
> However, it looks like recent versions of QtCreator are supposed to be
using
> dw2 and not sjlj. Do you have an old version of QtCreator by any chance?
>
> Could you please run objdump -p on your libstdc++-6.dll and grep for
> 9exception4what?

?I have already done something similar using DLL Export Viewer, but
nevermind here goes again anyway:

---------------------------------------
$ md5sum ~/System/QtSDK/mingw/bin/libstdc++-6.dll
eef740719d83033baac058bf17972c0a
/home/agarny/System/QtSDK/mingw/bin/libstdc++-6.dll
$ objdump -p ~/System/QtSDK/mingw/bin/libstdc++-6.dll | grep
ZNKSt9exception4whatEv
$
---------------------------------------

and

---------------------------------------
C:\QtSDK\mingw\bin>gcc --version
gcc (GCC) 4.4.0
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\QtSDK\mingw\bin>
---------------------------------------

Otherwise, I perfectly remember some email exchanges about me mentioning
that the official MinGW wouldn't work for me, since I use Qt and that Qt
comes with its own patched version of MinGW (and there is nothing I can do,
and want to do to be honest, about it since it all works fine except with
the CellML binaries). (Otherwise, I use Qt SDK 1.1.3 which comes with Qt
4.7.4 and Qt Creator 2.3.0, both of which being the latest version of the Qt
development environment offering.)

Anyway, the bottom line is that back then I asked for CellML binaries to be
built using Qt/MinGW and I thought this was what I would get, but clearly
not... So, where do we go from here? What is certain is that I don't want to
go down the route of having to 'fix' to a non-existent problem since all
that is needed is to build CellML using Qt/MinGW, as requested a few months
ago...

Alan





Archive powered by MHonArc 2.6.18.

Top of page