On Fri, Jun 15, 2012 at 2:40 PM, Duncan Sands <baldr...@free.fr> wrote: > Hi Richard, > > >> As system.h is supposed to only include system headers and do nothing >> else it has to be prepared to be included from C++ already, so no extern >> "C" >> wrapping should be necessary for it. > > > it defines fancy_abort. Not wrapping system.h in extern C results in > undefined symbol: _Z11fancy_abortPKciS0_ > when loading the plugin.
Hmm, it looks like it does not need to define that though. fancy_abort should have been prototyped somewhere else while the macros can continue to stay in system.h (though I fail to see why we'd have the asserts here). Of course we have two implementations of it, one in errors.c and one in diagnostics.c. Richard. > Ciao, Duncan.