Hi,
i've tested libunwind's exception handling routines under linux-x86 (compiled into libunwind via --enable-cxx-exceptions). Initially my test program segfaulted, so i've patched the code of libunwind a little bit. Two patches are attached.
The first patch addresses a difference between gcc and libunwind: the size of exception_class is different - libunwind uses a 32-bit value whereas gcc uses and expects a 64-bit value (which equals to 'GNUCC++\0' or 'GNUCC++\x01')
I applied your first patch with minor modifications. Will hopefully get to the second patch later this week.
-Arun