[Ecls-list] Building shared libraries

Juan Jose Garcia Ripoll lisp at arrakis.es
Thu Dec 2 08:49:03 UTC 2004


Julian Stecklina wrote:

>What I need is an "entry" function that I can call. The functionality
>provided by build-shared-library is of no use to me. My code looks
>something like:
>
>void init_plugin(...)
>{
>        cl_boot(...);
>
>        /* Initialise wrapper functions */
>        /* and some variables */
>        wrap_functions();
>
>        /* Load the definitions from the lisp object */
>        init_list_part();
>
>        return;
>}
>The main problem is that init_plugin is the entry function that is
>called when the shared library is loaded. 
>Looking over the code I guess one could add a :init-function keyword
>parameter to the builder function and have it construct a function
>that I can call whenever it suits me. 
>
I have done this. Now there is an extra keyword argument, :INIT-NAME, 
that customizes the name of the entry point in a DLL, library or 
program. I hope this helps.

I hope I did not seem to stubborn in the previous emails, but the fact 
is that this initialization code is indeed very fragile and might easily 
change in near future. For instance, depending on the garbage collector 
you choose, one might need to do something different, like registering 
the library with the GC. The BUILD-* routines currently take care of that.

Juanjo




More information about the ecl-devel mailing list