[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) |
Hi,
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?
Thanks,
Ludovic.
- A versionized variation on `lt_dlopen ()',
Ludovic Courtès <=