From: "Peter Bowyer" <peter@???>
>
> Matt Jones <matt@???> wrote:
>> Hello there
>>
>> For a long time now i have been using Exim compiled with MySQL support
>>
>> recently i changed my MySQL from 4.0 to 4.1
>
> The Exim build compiles in the MySQL code at compile-time. If you make
> a
> change to MySQL which isn't backward-compatible (ie the old client
> libraries
> won't continue to work), you should re-build Exim with the new client
> libraries.
Not on my system it doesn't -- MySQL support is compiled against the
dynamic MySQL client library.
Maybe this is architecture-specific? From my FreeBSD-5.3 system
(FreeBSD-4.x is the same):
# ldd exim
exim:
libcrypt.so.2 => /lib/libcrypt.so.2 (0x28108000)
libmysqlclient.so.12 => /usr/local/lib/libmysqlclient.so.12
(0x28120000)
libssl.so.3 => /usr/lib/libssl.so.3 (0x28145000)
libcrypto.so.3 => /lib/libcrypto.so.3 (0x28173000)
libc.so.5 => /lib/libc.so.5 (0x28268000)
libz.so.2 => /lib/libz.so.2 (0x28341000)
libm.so.3 => /lib/libm.so.3 (0x28351000)
>> secondly, is there a way to statically include all the libaries into
>> the binary so that it doesn't go crazy when jumping from a major
>> version in the future
You'll notice the ".12" in the libmysqlclient library above. This number
is supposed to change any time the library changes in a way that is
incompatible with the old one. That way, programs compiled against an old
version will continue to use an old version, and a newer version can be
installed without affecting this relationship.
Again, maybe this is platform specific and the original poster's system
does not support versioned dynamic libraries? I do know that many details
of dynamic libraries differ from os to os.
David
**