[PATCH] Shared samba build

Peter Novodvorsky nidd at myxomop.com
Wed Oct 26 12:34:38 GMT 2005


Hi, Jelmer!

Firstly, thanks for your reply.

>>>>> On Wed, 26 Oct 2005 14:17:08 +0200
>>>>> "JV" == Jelmer Vernooij <jelmer at vernstok.nl> wrote:
>> 
>> Currently you can do shared build only on GCC/GNU binutils systems
>> because it uses -( and -) flags to resolve dependencies between
>> libraries.
JV>  Rather then linking everything into one big library, I think we
JV> should clearly keep all subsystems seperate. Otherwise, we might
JV> end up with the dependency hell we had (have?) in Samba3, with
JV> libbigballofmud and the like. 

I suspect that we already have dependency hell in Samba4, and my
find_depends command that is attached below will show you this.

JV> When installing libraries from
JV> Samba, these IMHO should be seperate as well, for example, we
JV> could have:
JV> 
JV> - libsmbclient (basically libcli)
JV> - libmsrpc
JV> - libtalloc
JV> - libldb
JV> - libtdb
JV> - libnet
JV> - libcom
JV> - libsocket_wrapper
JV>  - libregistry ...

That's what I was thinkning about when I was making this patch. And
this patch is good platform for this. However separating everything so
we don't have circullar dependencies is a huge janitor job that
requires writing a policy for a whole project.

The initial separation (libtorture and libsmb) was done that way
because that libsmb and torture are easily separated. 

JV> I'm currently trying to, in SVN:
JV> 
JV> - Default all subsystems to being a 'MERGED_OBJ' / prelinked
JV> object.  If the OS supports it, we can do other stuff.  

Yup, I've noticed that.

JV> - Make a distinction between subsystems that are a part of another
JV> subsystem (NDR_RAW, etc).  
JV> - All libs that are not part of another subsystem (those that have
JV> MAJOR_VERSION and MINOR_VERSION set) will become shared libs if
JV> the OS supports it. They'll be installed with Samba as well as
JV> their specified headers. 

I prefer that builder should have a choice in almost everything
including build types. If he wants shared we give him shared, if he
wants static, we give static, because there can be a lot of
applicances for samba where different builds are needed. 

-- 
hej do,
peter.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: find_depends
Type: text/x-sh
Size: 796 bytes
Desc: not available
Url : http://lists.samba.org/archive/samba-technical/attachments/20051026/7b7cef53/find_depends.bin


More information about the samba-technical mailing list