This should really be on hackers, not cvs-committers. I have redirected the Cc.
:I don't think that a mini-c will help at all. /bin can be scrunched :down to 500k and sbin to 605k on 4.5 and the system will still boot. :A full install is only 2842k when sbin/bin are dynamically linked. A :full static install is 15302k. mini-c would help in the static case, :but not at all in the dynamic case. If you have to have libc, et al, :on /, then the libraries used by sbin/bin are 1604k in size, which :cuts into your savings down to only 10M. A mini-c dynamic would help :a little in this case, but it can't help by more than 500k, which is :the size of libc. When both / and /usr are on the same partition, :your savings is 12M. I've booted 6M 4.5 systems, including kernel and :all binaries to boot as well as a few things like telnetd, etc. : :Warner Well, I certainly agree that the direct benefits in the dynamic case are fairly minimal. The benefit that I see in the dynamic case is simply that it gives us an alternative libc whos bloat can be managed far more effectively then the bloat in libc. You only have to see how libc has grown over the years to know that the bloat-over-time issue is fairly significant. A libminic gives us a tool to help deal with it. libc.so.4 was 574K. libc.so.5 is 832K. The benefit of having a more controlled environment for / is clear. The libminic.so is 820K but with some care I can pare it down to 500K. Regardless of you or I, there are certainly embedded developers out there who can benefit from a bloat-controlled dynamic libminic. The benefits in the static case are clearer. For a statically linked [s]bin I expect we will be able to cut the storage overhead almost in half with a little care (and no terrible hacks), and there are also major benefits to using static binaries in regards to memory footprints (static binaries do not dirty as many data pages as dynamic binaries), and startup overhead. These benefits are primarily targeted to smaller programs since larger programs tend to swamp the benefit out. While it is true that the dynamic case will win hands down over static for /bin and /sbin, not all developers are willing to go to a dynamic / (I personally would rather stick with a static /, especially for programs like 'csh', 'sh', and 'getty'). I am also sure that there are developers who simply want to run a single program on boot in a turnkey environment.. hell, I've done that occassionally myself (replace init). If there are no other programs, then static is the way to go and you wind up eating less space then if you had been dynamic. So, the jist of all of this is that I see a significant benefit for both a dynamic-linked libc for /, and for a static or dynamic linked libminic for /. The option in my first proposed patch set are intended to allow all four combinations of static/dynamic, libc/libminic for /. - There is also another possibility which I hesitate to bring up but which I have used in nearly every embedded project I've ever done (with custom operating systems, not with FreeBSD), and that is the fact that we have a perfectly good mini C library built into the kernel image for many common functions like bcopy, strcpu. *printf(), etc. If we really want to save space we could make an API available and mmap() the library from the kernel image directly. -Matt Matthew Dillon <[EMAIL PROTECTED]> To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message