[exim] more dlopen'd facilities

Pàgina inicial
Delete this message
Reply to this message
Autor: Jeremy Harris
Data:  
A: exim-users
Assumptes vells: Re: [exim] Retiring old build targets
Assumpte: [exim] more dlopen'd facilities
On 06/08/17 15:54, Ian Zimmerman wrote:
> Not really a compiler feature, but how about making lookups (and maybe
> other plugin like features) into real .so objects, to be loaded with
> dlopen() and linked with dlsym()?


Actually, most (allegedly) lookups can be built for dynaminc linkage
already. Here's text from the Makefile:

# If set to "2" instead of "yes" then the corresponding lookup will be
# built as a module and must be installed into LOOKUP_MODULE_DIR. You
need to
# add -export-dynamic -rdynamic to EXTRALIBS. You may also need to add
-ldl to
# EXTRALIBS so that dlopen() is available to Exim. You need to define
# LOOKUP_MODULE_DIR above so the exim binary actually loads dynamic lookup
# modules.
# Also, instead of adding all the libraries/includes to LOOKUP_INCLUDE and
# LOOKUP_LIBS, add them to the respective LOOKUP_*_INCLUDE and LOOKUP_*_LIBS
# (where * is the name as given here in this list). That ensures that only
# the dynamic library and not the exim binary will be linked against the
# library.
# NOTE: LDAP cannot be built as a module!


... so you're "only" asking for all routers, transports, and
authenticators... or, maybe, other things like all the
EXPERIMENTAL, SUPPORT and DISABLE features?

We should probably double up on buildfarm animals, one set testing
normal build and one testing all-dynamic builds.


I guess one benefit would be for distros, who could ship the baseline
exim binary as one package and all the dlopen-modules as separates;
only needed piecemeal depending on the exact usage made by the
config file (which is at least initially tuned by the admin, and
possibly custom-developed). Versioning might be an issue.

--
Cheers,
Jeremy