Hi, I have been developing a thunk layer (thanks Eljay ;) to enable our application (which has to be compiled with gcc-3.x) to make use of Oracle's OCCI database access library (compiled using gcc-2.95). I have managed to get almosteverything to work nicely. Any exceptions raised by the OCCI library will cause an abort (see the stacktrace below). <snip> creating environment creating connection pool Program received signal SIGABRT, Aborted. [Switching to Thread 1024 (LWP 6098)] 0x401c4df1 in kill () from /lib/libc.so.6 (gdb) ba #0 0x401c4df1 in kill () from /lib/libc.so.6 #1 0x401c4bd8 in raise () from /lib/libc.so.6 #2 0x401c64d9 in abort () from /lib/libc.so.6 #3 0x40cd7a8b in __default_terminate () from /usr/lib/libstdc++-libc6.2-2.so.3 #4 0x40cd7aac in __terminate () from /usr/lib/libstdc++-libc6.2-2.so.3 #5 0x40cd86be in __throw () from /usr/lib/libstdc++-libc6.2-2.so.3 #6 0x40c1d76b in oracle::occi::ConnectionPoolImpl::ConnectionPoolImpl () from /opt/oracle/product/9.2.0/lib/libocci.so #7 0x40c1b8d1 in oracle::occi::EnvironmentImpl::createConnectionPool () from /opt/oracle/product/9.2.0/lib/libocci.so #8 0x4003343e in cmgwds_occit_environment_createConnectionPool (thunk=0x804cfa0, poolUserName=0x805728c "ngroenewald", poolPassword=0x805702c "ngroenewaldd", connectString=0x805700c "severn.zajbpe36", minConn=1, maxConn=5, incrConn=1, pool=@0xbfffdda4) at thunk/Environment.cpp:155 #9 0x40038ccd in cmg::occithunk::Environment::createConnectionPool(std::string const&, std::string const&, std::string const&, unsigned, unsigned, unsigned) ( this=0x804cfc0, poolUserName=@0xbfffe020, poolPassword=@0xbfffe040, connectString=@0xbfffe060, minConn=1, maxConn=5, incrConn=1) at facade/Environment.cpp:124 #10 0x08049277 in main () #11 0x401b34a2 in __libc_start_main () from /lib/libc.so.6 (gdb) quit </snip> To investigate this further I created my own test library compiled with gcc-2.95 which I thunked with a library which is also compiled with gcc-2.95 (but with all functions having C linkage). The test application connects to this thunk via yet another library which is compiled with gcc-3.2. I am still unable to make exceptions work but my symptons are different (see stacktrace below). <snip> GNU gdb 5.2.1 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i586-suse-linux"... (gdb) run Starting program: /home/ngroenewald/tmp/except/footest invoking bar() Program received signal SIGSEGV, Segmentation fault. 0x400ae9f2 in __dynamic_cast () from /usr/lib/libstdc++.so.5 (gdb) ba #0 0x400ae9f2 in __dynamic_cast () from /usr/lib/libstdc++.so.5 #1 0x4024b870 in __throw_type_match_rtti () from /usr/lib/libstdc++-libc6.2-2.so.3 #2 0x40249e09 in __check_eh_spec () from /usr/lib/libstdc++-libc6.2-2.so.3 #3 0x400d7a7a in real::foo::bar () from ./libfoo.so #4 0x08048a9c in thunk_foo_bar () #5 0x08048bc7 in facade::foo::bar() () #6 0x08048bf8 in main () #7 0x4011e4a2 in __libc_start_main () from /lib/libc.so.6 (gdb) </snip> I tried turning off RTTI (starting to graps at straws here) and then get a crash in strcmp() in libc.so. I read somewhere that when RTTI is turned off, the matching to catch clauses is done via embedded string symbols - looks like a manifestation of the same problem regarding the exception info (to me at least). All this on a Suse 8.0 UL 1 machine. I get the same behaviour with the thunk test scenario on SuSe 8.2 using gcc-3.3. I would really appreciate some insight and/or ideas how I could get around this as the library makes extensive use of exceptions. Regards, Nic Groenewald C++ Developer ________________________________________ LogicaCMG Wireless Data Solutions (Africa) (Pty) Limited Physical Address: Block B The Wedgewood Office Park 3 Muswell Road South Bryanston South Africa Postal Address: PO Box 71704 Bryanston 2021 South Africa T: +27 (0)11 463 8515 Ext. 291 F: +27 (0)11 463 2596 M: +27 (0)84 449 3205 E: nic.groenewald@xxxxxxxxxxxxx www.logicacmg.com