[odb-users] ODB exception problem

cetoni GmbH - Uwe Kindler uwe.kindler at cetoni.de
Wed Jun 15 04:59:24 EDT 2011

Hi Boris,

the strange thing is, that it is not sufficient to change libodb build 
to use -shared-libgcc -shared-libstdc++ options but that I need to add 
these linker options to all our DLL projects explicitely to make it work 

 From reading the README file that comes with MinGW GCC4.5.1 it seems, 
that the linker links to the static libaries (libgcc and libstdc++) by 
default and that a shared memory region ensures that throwing exceptions 
across DLL boundaries is possible even when using the static versions.

Here the snippet from the README file:

However, TDM-GCC also continues to integrate a versioned shared memory 
for the *static* (non-DLL) runtime libraries, which will still allow you to
throw exceptions between any DLLs or executables that are built with 
This method incurs a very small execution overhead as compared to the shared
library method, but has the very important benefit of not requiring you to
redistribute extra DLLs with your program.

By default, TDM-GCC will continue to create executables and DLLs that 
use the
static libraries and do not require you to redistribute further DLLs.

And this specific mechanism seems to fail for libodb library. So the 
only solution to use exceptions and libodb is to add the linker options 
-shared-libgcc -shared-libstdc++ to all libodb and any other DLLs - 
thats what I did.

Kind regards, Uwe

Mit freundlichen Grüßen

Uwe Kindler
Dipl. Inf. (FH)
Software Engineering

cetoni GmbH
Automatisierung und Mikrosysteme
Am Wiesenring 6
D-07554 Korbussen

Phone: +49 (0) 36602 338 28
Fax:   +49 (0) 36602 338 11
Email: uwe.kindler at cetoni.de
Web:   http://www.cetoni.de

Handelsregister Jena   HRB 202566
Ust.-Ident-Nr.         DE 1505 26212

Tilo Kunze

More information about the odb-users mailing list