cyrus-imapd: static binaries are huge + choose binaries to install

Luca Ceresoli luca at
Fri Jun 24 12:27:22 EDT 2011


the last two issues that I'm facing with cyrus-imapd are not strictly 
related to buildroot, nor to cross-compilation, but rather to using 
cyrus-imapd in an embedded system.

I'm discussing them together in this e-mail as they are closely related.

The cyrus-imapd build system apparently does not currently allow to 
build shared executables. This results in needlessly large files.
In a basic build for x86 (./configure && make), most of the executables 
in imap/ have a size between 2.2 and 2.5 MB, and the sum is 62.8 MB.

This may not be a problem on a classic mail server, but storage space 
can be a precious resource on embedded systems.
Clearly, using  shared libraries would reduce the overall space required.

It looks like I'm not the first to think about this. In
a patch was proposed and rejected. Unfortunately I could not apply it, 
possibly because it's based on an old code base (2008).

Would it be feasible to add shared build support in the cyrus-imapd 
build system?

For the same motivation (saving precious storage space), it would be 
extremely useful to disable the compilation and installation of selected 

The standard distribution installed as many as 30 executables in 
/usr/cyrus/bin/, which cross-compiled for ARM and stripped take 32 MB. 
Those that I really need take <7 MB and I wish I could get rid of them 
by passing --disable-pop3proxyd or similar to ./configure.

AFAIK this is not currently possible in cyrus-imapd. Is this correct?
Do the Cyrus developers have anything similar in mind for the future of 
cyrus-imapd? Is this feasible?


More information about the Cyrus-devel mailing list