Re: SASL/LDAP/DB dependency hell. (was: Accepted cyrus-sasl 1.5.27-3.4 (i386 source))
Hi,
On Wed, 09 Apr 2003 15:07:12 +0000, Stephen Frost wrote:
> I look forward to comments from others about this. Perhaps developing a
> way to have 'versioned includes' if you will would be a solution but I
> would expect it to require a fair bit of effort to deal with.
>
That doesn't work with the current scheme.
Briefly, the compiler writes an onject file which wants BAR from library
FOO. libFOO.so contains symbols BAR@ (no version), BAR@v1, BAR@v2, and
BAR@@v3.
The linker uses the double-@ BAR to determine which version is the one
you're currently linking against.
Thus if you want /usr/include/foo_v2.h to contain a BAR which links
against BAR@v2, you'll either have to create some compiler/linker extension,
or you'll have to re-compile libFOO.so, declaring v2 to be the default
version, so that libFOO.so now contains BAR@@v2 and BAR@v3. Somebody else
on the same system, who would like to compile against foo.h (i.e.,
foo_v3.h), will generate a broken program if you do that.
--
Matthias
Reply to: