RFC: static / dynamic linking in samba3
Michael Adam
obnox at samba.org
Thu Apr 2 08:58:07 GMT 2009
I have just started to revise the s3-linking of internal subsystems
as static vs. shared libraries.
As a first step, I have cleaned the SMB_LIBRARY mechanism so that
I could remove the @LIBFOO_STATIC@ stuff from the object
collections. (branches master / v3-4-test)
This was based on a patch found in the debian packaging code.
There are a few items that are on my list next:
* I would like to unify the use of external libs:
Therefore I would like to rename the configure parameter
"--with-wbclient" to "--enable-external-libwbclient"
to be consistent with "--enable-external-talloc".
Any objections?
* I would also like to (re-)unify the configuration of libwbclient
with the other libs (libtalloc, libtdb, libnetapi, ...) to be
configured with SMB_LIBRARY().
This means that it will also be possible again to build and link
libwbclient statically, removing the restriction imposed when
libsmbclient was originally created that it should only be
possible to build/link libwbclient statically with
--enable-develper. I think this is artificial. Sometimes you just
want to link a library statically. Vendors are patching the sources
to allow for building and linking statically anyways.
* Finally, I would come up with a linking scheme that copes
better with the fact that our libraries like libtalloc start to
appear as sytem libraries in the distributions (maybe triggered
by our introduction of building libtalloc and friends shared in
Samba 3.2).
A scheme for building (that is basically also what samba4 does)
initially discussed with Jelmer and Lars (among others)
on irc could be the following:
- check wheter libfoo is in the system
and check whether it suits our version requirements
(current checks use pkg-config for this)
- if libfoo is available and version is ok, then
adapt compile / link flags according to pkg-config to
link against that library
- if either the library is not found or version is not ok,
then build libfoo internally and link it in _statically_
This would be the scheme for very isolated libraries like
libtalloc, libtdb.
Other, more samba-specific subsystems that won't find their
way into distributions any time soon could still be built and
linked dynamically internally.
Folks, I would like to hear your comments on the suggestions above.
Cheers - Michael
--
Michael Adam <ma at sernet.de> <obnox at samba.org>
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.SerNet.DE, mailto: Info @ SerNet.DE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 206 bytes
Desc: not available
Url : http://lists.samba.org/archive/samba-technical/attachments/20090402/9b0d3600/attachment.bin
More information about the samba-technical
mailing list