[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A versionized variation on `lt_dlopen ()'

From: Ludovic Courtès
Subject: A versionized variation on `lt_dlopen ()'
Date: Tue, 27 Sep 2005 18:25:34 +0200
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux)


After reading a recent thread on `guile-user', it occurred to me that
`lt_dlopenext ()' doesn't allow to pass information about the version of
a module that is requested.

This is quite unfortunate, especially for Guile, since Guile modules
load C libraries using `dynamic-link' which is roughly the Scheme
version of `lt_dlopenext ()'.  This precludes having several versions of
a given extension installed at once since each of these versions need to
load a particular version of its companion C library.

So, I think it would be very nice to have something like:

  /* Open a module with the file name FILENAME which is compatible with
     revision REVISION of interface INTERFACE.  The module should have
     been linked with `-version-info'.  */
  lt_dlhandle lt_dlopen_version (const char *filename,
                                 unsigned interface,
                                 unsigned revision);

And similarly for `lt_dlopenext ()'.  And I believe this may also be
useful for other kinds of programs, like programs that use plug-ins (for
instance, plug-ins could be compiled with a `-version-info' that
reflects the version of the plug-in API exposed by the program).

What do you think?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]