Thanks hugely for the suggestions. I need ext3 since this build is also used for rebuilding or fixing filesystems but you make a good point.
One of the errors that I made previously, and I appreciate everyone pointing out that 2.6 was not necessarily larger than 2.4, is that I did not carefully go down each tree in the menuconfig. At the time I did not realize that 2.6 had so many options and buried menus.
I put in the linux-tiny patch for 2.6.14, and after working on the config for an hour or so, I got it down to 1020K with gcc-3.3. Based on Eric's suggestions, I took the same config and put it on a system with gcc-4.0, put in the -Os option, and got a size of 814K! This is with all I need in the kernel and the kexec option. If you recall my limit is about 950K-960K so this is perfect. I am assuming the kexec tools needs clib so I will have to splice this into busybox somehow but hopefully it won't add too much.
I haven't made sure it all works yet, but it is close enough to start debugging. Thanks tremendously for all the help.
Steve G.
Eric W. Biederman wrote:
The two interesting pieces for your style of configuration are:
- The -Os work that has been going on recently, I think I have
heard 10% reduction for that. 2) Careful selection of which compiler you are using as that makes a noticeable difference. 3) Look under CONFIG_EMBEDDED and possibly elsewhere for options you don't need and can turn off. CONFIG_EMBEDDED also has some smaller alternatives for some of the common features.
You might also grab ext2 instead of ext3. When clean either will work.
Eric