I'm using expat version 1.95.8 and getting SIGABRT
under Solaris 9 when I'm trying to throw exception
somewhere at the element handler and expat library
was linked dynamically. When I link expat to my
application statically, exceptions are handled well.
When I dynamically link expat to my application under
Linux platform such as SuSE or Mandrake exceptions
are handled fine too.
Here's the result of debugging:
Program received signal SIGABRT, Aborted.
0xff21d544 in _libc_kill () from /usr/lib/libc.so.1
(gdb) bt
#0 0xff21d544 in _libc_kill () from /usr/lib/libc.so.1
#1 0xff1b56b0 in abort () from /usr/lib/libc.so.1
#2 0xff2da7f8 in __cxxabiv1::__terminate(void (*)()) (
handler=0xff1b55a8 <abort>)
at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:47
#3 0xff2da848 in std::terminate() ()
at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:57
I also attached small sample that causes described
crash when compiled and executed if expat linked
dynamically.
test.cpp
Logged In: YES
user_id=290026
According to Gerrit P. Haase this is a libtool bug and
should be fixed with libtool version >= 1.5, which is used
for the Expat 2.0 release. Closing the issue.