No, but :RTFM:was the obvious thing to do
thanks for the suggestion.
FYI I found this, looks like init and fini are now obsolete and the last para is what I'll have to dig into:
The obsolete symbols _init and _fini
The linker recognizes special symbols _init and _fini. If a dynamic
library exports a routine named _init, then that code is executed after
the loading, before dlopen() returns. If the dynamic library exports a
routine named _fini, then that routine is called just before the
library is unloaded. In case you need to avoid linking against the
system startup files, this can be done by giving gcc the "-nostart-
files" parameter on the command line.
Using these routines, or the gcc -nostartupfiles or -nostdlib options,
is not recommended. Their use may result in undesired behavior, since
the constructor/destructor routines will not be executed (unless spe-
cial measures are taken).
Instead, libraries should export routines using the __attribute__((con-
structor)) and __attribute__((destructor)) function attributes. See
the gcc info pages for information on these. Constructor routines are
executed before dlopen returns, and destructor routines are executed
before dlclose returns.