[Samba] how to reduce binary size of SAMBA 4 for embeded device

Andrew Bartlett abartlet at samba.org
Fri Nov 15 02:20:53 UTC 2019


On Sun, 2017-08-06 at 17:03 +1200, Andrew Bartlett via samba wrote:
> On Wed, 2017-08-02 at 17:37 +0800, 袁建鹏 wrote:
> > Hi, Bartlett
> > 
> > I decided to cut some subsystem by myself,
> > So I spent several days to study the SAMBA 4 WAF build system and
> > now know the base steps of build.
> > but which subsystem can be removed for snmd/nmbd/smbpasswd ?
> 
> That is, essentially, your task.  You could compile it under
> callcatcher, or use some other symbol dependency tracker to work out
> what libraries are linked but not used.
> 
> The real problem however is when a binary like smbd links against a
> library, a, which uses b.  However often the way that smbd uses a
> does
> not require b, but it remains a useless dependency.  
> 
> The classic example of this is also the easiest one to start solving,
> which is that smbd links against libndr-standard and libndr-samba-
> samba4.  However, most of those libs are not used: sometimes the only
> link in is via the ndr_table which lists all our generated IDL by
> UUID.

I had a go at this recently, and re-posted the results here:

https://lists.samba.org/archive/samba-technical/2019-November/134539.html

Changing "-O2" to "-Os -s" I got Samba to a 9152kb smbd.  Still much
more than I know you are hoping for, and I had to cut some important
functionality to make this proof of concept compile, but it shows what
is possible.

Andrew Bartlett
 
-- 
Andrew Bartlett
https://samba.org/~abartlet/
Authentication Developer, Samba Team         https://samba.org
Samba Development and Support, Catalyst IT   
https://catalyst.net.nz/services/samba








More information about the samba mailing list