[odb-users] ODB exception problem

Uwe Kindler uwe_kindler at web.de
Tue Jun 14 10:40:36 EDT 2011


Hi Boris,

indeed our software mainly consists of DLLs and exception handling are 
the main error handling strategy and we never had any problems throwing 
exceptions across DLL boundaries.

Here is the libtool command line for building libodb under MSYS:

C:/msys/bin/sh.exe ../libtool --tag=CXX   --mode=link g++  -g -O2 
-mthreads -release 1.4 -no-undefined -L/local/lib 
-L/c/CodingXP/Qt/qt/lib -shared-libgcc -shared-libstdc++ 
-Wl,--enable-auto-import -Wl,--export-all-symbols -o libodb.la -rpa
th /usr/local/lib exceptions.lo database.lo lazy-ptr-impl.lo 
schema-catalog.lo session.lo transaction.lo details/buffer.lo 
details/condition.lo details/lock.lo details/mutex.lo 
details/shared-ptr/base.lo  details/win32/init.lo details/win32
/once.lo details/win32/tls.lo details/win32/condition.lo 
details/win32/thread.lo details/win32/exceptions.lo details/win32/dll.lo
libtool: link: g++ -shared -nostdlib 
c:/codingxp/mingw/bin/../lib/gcc/mingw32/4.5.1/../../../dllcrt2.o 
c:/codingxp/mingw/bin/../lib/gcc/mingw32/4.5.1/crtbegin.o 
.libs/exceptions.o .libs/database.o .libs/lazy-ptr-impl.o 
.libs/schema-catalog
.o .libs/session.o .libs/transaction.o details/.libs/buffer.o 
details/.libs/condition.o details/.libs/lock.o details/.libs/mutex.o 
details/shared-ptr/.libs/base.o details/win32/.libs/init.o 
details/win32/.libs/once.o details/win32/.libs/tls
.o details/win32/.libs/condition.o details/win32/.libs/thread.o 
details/win32/.libs/exceptions.o details/win32/.libs/dll.o 
-L/local/lib -L/c/CodingXP/Qt/qt/lib 
-Lc:/codingxp/mingw/bin/../lib/gcc/mingw32/4.5.1 
-Lc:/codingxp/mingw/bin/../li
b/gcc 
-Lc:/codingxp/mingw/bin/../lib/gcc/mingw32/4.5.1/../../../../mingw32/lib 
-Lc:/codingxp/mingw/bin/../lib/gcc/mingw32/4.5.1/../../.. -lstdc++ 
-lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt -luser32 -lkernel32 
-ladvapi32 -lshell32 -lmingw
32 -lgcc -lmoldname -lmingwex -lmsvcrt 
c:/codingxp/mingw/bin/../lib/gcc/mingw32/4.5.1/crtend.o  -mthreads 
-Wl,--enable-auto-import -Wl,--export-all-symbols   -mthreads -o 
.libs/libodb-1-4.dll -Wl,--enable-auto-image-base -Xlinker --out-impl
ib -Xlinker .libs/libodb.dll.a
Creating library file: .libs/libodb.dll.a
libtool: link: ( cd ".libs" && rm -f "libodb.la" && ln -s "../libodb.la" 
"libodb.la" )



For building our own DLLs we use either eclipse managed DLL projects or 
CMake for building the DLLs with Hudson CI server.

This is the link output from eclipse (I stripped most of the object 
files from the output and replaced them with ...):

g++ -LC:\CodingXP\cetoni_repository\libs\mingw -Xlinker 
--enable-auto-import -shared -ocanoo-d.dll 
canoo\utils\RemoteObjDicScanList.o canoo\utils\NodeIdListBitfield.o
..
\version.o -lliblog4cplusD -lusl-d



This is the link output from CMake for the same project:

C:\CodingXP\mingw\bin\g++.exe -Wl,--enable-auto-import 
-Wl,--export-all-symbols -shared -o canoo.dll 
-Wl,--out-implib,canoo.dll.a 
-Wl,--major-image-version,0,--minor-image-version,0 -Wl,--whole-archive 
CMake Files\canoo.dir/objects.a -Wl,--no-whole-archive 
-LC:\CodingXP\cetoni_repository\libs\mingw -lusl -lliblog4cplus 
-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 
-luuid -lcomdlg32 -ladvapi32
Creating library file: canoo.dll.a

Kind regards,

Uwe



More information about the odb-users mailing list