El Wed, Mar 30, 2005 at 01:05:26AM +0400 Zagorodnev, Grigory ha dit: > >to initialize the dynamic library a custom _init() is called. is it > >possible to call default _init() from the custom one or is there > >another way to invoke a custom function from default _init() or > >directly afterwards? > > It would be safer to not override default startup code, but use one of > the following: > > Once your code is C++ you can create file-scope instance of some > initialization class so its constructor will do the work. This is most > portable approach. > > In case library initialization code must be executed _before_ any C++ > object constructor, you may use ".preinit_array" > static preinit(int argc, char *argv[]); > static void (*const preinit_ptr) (int argc, char *argv[]) > __attribute__ ((section (".preinit_array"))) = &preinit; thanks for your answer grigory, if that works it's actually cook :) i tried it, but the linker complains about the following: matze@assata:/tmp$ g++ -shared foo.cpp -o foo.so /usr/bin/ld: /tmp/cc1zrrRc.o: .preinit_array section is not allowed in DSO any idea? matze -- You must have a plan. If you don't have a plan, you'll become part of somebody else's plan ( ( ( i ) ) ) http://barcelona.indymedia.org ( ( ( i ) ) ) .''`. using free software / Debian GNU/Linux | http://debian.org : :' : `. `'` gpg --keyserver keys.indymedia.org --recv-keys B9A88F6F `-
Attachment:
signature.asc
Description: Digital signature