> Date: Tue, 4 Jun 2013 09:45:10 -0700 > From: Ian Lance Taylor <i...@google.com> > Cc: gcc@gcc.gnu.org > > I know very little about how these things work on Windows. However, > it is fairly likely that full support for throwing exceptions across > shared libraries on Windows does require using a shared libgcc.
Indeed, throwing exceptions across DLLs requires a shared libgcc. But that wasn't the issue. The issue was why does the shared libgcc abort at program exit, if it is loaded dynamically as a side effect of loading another shared library (in this case, libintl) some time during the run of the main program? To recap: Emacs loads GnuTLS when the user starts a TLS session, and that in turn loads libintl and the shared libgcc. Then, when Emacs exits, there's an abort inside libgcc, where there's some assertion. The details are in the message I posted on May 21. My question was: is this expected? Does a program that loads the shared libgcc in mid-flight need to be linked with -shared-libgcc flag? Or is this some bug in libgcc? Thanks.