Date: Fri, 21 Jan 2000 19:52:18 +0000 From: Tony Finch <fanf@demon.net> To: freebsd-hackers@freebsd.org, jdp@freebsd.org Cc: Tony Finch <fanf@demon.net> Subject: Re: LD_PRELOAD Message-ID: <E12Bk6U-00032O-00@fanf.noc.demon.net> In-Reply-To: <E12BjiC-00031J-00@fanf.noc.demon.net> References: <E12BjiC-00031J-00@fanf.noc.demon.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Tony Finch <fanf@demon.net> wrote: > > This brings me on to the second problem. I want to do some > initialization of my library before the real action starts. On Solaris > the linker calls a function in the object called _init() when it is > loaded; it's easy to make this work. I can see similar functionality > in FreeBSD's rtld but it looks like I have to jump through obscure > hoops to make it work (an ELF DT_INIT section if I understand it > correctly). After some more playing I found that adding the following declarations shut up the linker and caused the _init and _fini functions to be called as I desired. My only remaining questions are whether the gcc command line I used is correct and if it is what does it all mean? #ifdef __FreeBSD__ static void _init(void) __attribute__ ((section (".init"))); static void _fini(void) __attribute__ ((section (".fini"))); #endif Tony. -- the dot at person To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E12Bk6U-00032O-00>