On Feb 2, 2012, at 3:59 PM, Lyndon Nerenberg wrote:
On 2012-02-02, at 2:47 PM, Warner Losh wrote:
Embedded systems had limits of 4MB, 8MB or 16MB
when these patches were done.
Those systems also tend to ship with a very carefully culled set of binaries. Perhaps
someone reading this with access to that type of system could do some measurements of a
static vs. shared build of one of those embedded systems. A well designed system without
library bloat can pump out some pretty skinny static binaries.
You know that I wrote those patches for FreeBSD when I was producing embedded systems that
needed the savings, right?
At the time, the size of / was on the order of 60MB without the patches and 8MB with the
patches (excluding the kernel and modules). Compression got the size of the kernel + / +
/usr down to about 7MB which left enough room on the flash for our monolithic application.
At the time, the crunchgen approach to binaries produced similar values (about 6MB for
the same list of binaries we selected). However, our build process and monolithic
application were ill suited to crunchgenning so we opted for shared libraries which got us
most of the benefits and allowed us better flexibility in deploying new versions of our
program.
After the patches were done, we discovered other benefits, such as easier deploying of
security fixes...
Warner