[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Thu, 07 Oct 2004 10:11:32 -0500
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux)
Han-Wen Nienhuys <address@hidden> writes:
> what is versioned dlopen
The idea would be to add a function that would let you specify the
soname ("interface number") of the library you want to open, and that
function would then use the same algorithm that ld.so does when trying
to find a suitable library.
With the current dlopen, you can't do that. If you say
dlopen("libfoo"), you have no control over whether you might get
libfoo.so.4, libfoo.so.12, or something else. So you have to resort to
other means, like putting the version in the library name,
i.e. libfoo4 (or libguile-srfi-srfi-4-v-1). Then you can say
dlopen("libfoo4") and make sure you get libfoo "version" 4, but this
isn't as flexible as saying dlopen_ext("libfoo", 4), which ideally
would find the most recent version of libfoo satisfying interface 4
(just as ld.so does).
Of course we haven't gotten to the point of seeing what would be
involved here, especially cross-platform. The most basic approach
(for at least linux/elf) would probably involve a search based on the
expected libtool soname.
> and for which GUILE release is it desired?
No particular release in mind yet, though in the past we had talked
about it for 1.8. However, now that we've worked around the issue by
putting the soname/version in the name for all of the libs that we
expect to dlopen, it's not as urgent, though it might be nice for
other projects that don't want to have to mangle their library names.
rlb @defaultvalue.org and @debian.org; previously @cs.utexas.edu
GPG starting 2002-11-03 = 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4