> | On Fri, 12 Jul 2002, David Woodhouse wrote:
> | > Indeed. Actually the ABI is a whole can of worms all on its own -- as soon
> | > as we build Exim with -rdynamic we start exporting all kinds of internal
> | > functions which Philip may want to change and/or remove at any time.
Derrick 'dman' Hudson replied:
> How is that any different than it is now? Someone can make a
> local_scan that includes exim.h and calls functions that you haven't
> explicitly allowed. (in fact, the dlopen patch from David does that
> to get at the local_scan_module setting)
The difference is that currently rewriting local_scan means
recompiling the exim binary. Having to compile both things in step
does eliminate many incompatibilities.
One aim of dlopen would be to allow *binaries* of exim and different
local_scan functions to be released separately. When that works
people are going to try to run, say Marc Merlin's Spam Assasin
local_scan binary, with the Debian exim binary, and then wonder why it
doesn't work when they upgrade one half.
Worse they are going to try to use it with a Red Hat exim binary
(it is all Linux isn't it ?), or a version of debian with a different
glibc.
I don't understand the details, and it is probably worse when device
drivers are involved, but XFree86 doesn't use dlopen, but has its
own module loading system which doesn't even allow the driver direct
access to libc and other libraries (which does have the advantage
that the device driver *binaries* are operating system neutral*).
Dynamically loadable modules should be thought through carefully by
someone who knows what they are doing, and not rushed.
* Compile a graphics card device driver to run on Linux, and know
that the binary will work on OS/2 as well !
--
Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge
A.C.Aitchison@??? http://www.dpmms.cam.ac.uk/~werdna