Just for some more information - on linux and solaris sparc I have been using
GNU ld 2.16.1.
On solaris x86 I have been using the solaris ld.
I just tried building gcc on solaris x86 against the weekly snapshot of
binutils (gcc on solaris x86 on solaris 10 doesn't build with the release
version of binutils), and sure enough our code doesn't catch exceptions
properly there either.
The error in both the solaris sparc and solaris x86 cases is
terminate called after throwing an instance of 'int'
make: *** [Role.C] Abort (core dumped)
So I see it has something to do with shared libraries and binutils ld on
solaris in general, but I'm still pretty confused as to what the problem is.
Does anyone know?
-Matthew