I recently did a few updates to my diet libc
(http://www.fefe.de/dietlibc/) and it can now compile and link qmail.
Since the diet libc can also compile and link openssl, the STARTTLS
patch also works.
What's the difference, you ask? This ps listing is on a box with qmail
dynamically linked against the glibc:
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
qmaill 29527 0.0 0.1 1228 224 ? S N Mar 12 0:16 splogger qmail
qmailq 29543 0.0 0.0 1208 104 ? S N Mar 12 0:03 qmail-clean
qmailr 29529 0.0 0.1 1216 176 ? S N Mar 12 0:00 qmail-rspawn
qmails 29521 0.0 0.1 1260 172 ? S N Mar 12 0:22 qmail-send
root 29528 0.0 0.0 1216 80 ? S N Mar 12 0:08 qmail-lspawn ./Maildir/
And this ps listing is from my home box, statically linked against the
diet libc:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
qmails 103 0.0 0.0 64 56 ? S 18:55 0:00 qmail-send
qmaill 109 0.0 0.0 44 20 ? S 18:55 0:00 splogger qmail
root 110 0.0 0.0 36 24 ? S 18:55 0:00 qmail-lspawn ./Maildir/
qmailr 111 0.0 0.0 36 24 ? S 18:55 0:00 qmail-rspawn
qmailq 112 0.0 0.0 24 16 ? S 18:55 0:00 qmail-clean
root 11747 1.0 0.0 56 40 ? S 22:46 0:00
/usr/local/bin/tcpserver -u qmaild -g nofiles 0 smtp /var/qmail/b
Please note the drastically reduced memory requirements. As you can
see, the process are running for many days on the first box, so unused
memory is already swapped out. Not so on the second box.
Why is this significant? Because it allows a much larger concurrency on
the same hardware. More POP3 users, more concurrent local and remote
deliveries, more incoming SMTP connections.
How to reproduce.
1. get the current diet libc from CVS, compile and install the "diet"
wrapper program in your $PATH.
2. get qmail, extract and possibly apply your favourite patches.
3. set up conf-cc and conf-ld
$ echo "diet gcc -pipe -Os -fomit-frame-pointer" > conf-cc
$ echo "diet gcc -static -s" > conf-ld
4. make and make setup qmail as usual.
That's it. Good luck!
Felix