Small size optimization from Aaron Lehmann
[oweals/busybox.git] / TODO
1 TODO list for busybox in no particular order. Just because something
2 is listed here doesn't mean that it is going to be added to busybox,
3 or that doing so is even a good idea. It just means that I _might_ get
4 around to it some time. If you have any good ideas, please let me know.
5
6 * login/sulogin/passwd/getty/etc are part of tinylogin, and so are not
7     needed or wanted in busybox (or else I'd have to link to libcrypt).
8
9 * We _were_ going to split networking apps into a new package called 
10     netkit-tiny.  Per discussions on the mailing list, this isn't going
11     to happen.  False alarm.  Sorry about the confusion.  
12
13
14  -Erik
15
16 -----------
17
18 Possible apps to include some time:
19
20 * hwclock
21 * start-stop-daemon
22 * group/commonize strings, remove dups (for i18n, l10n)
23
24 -----------
25
26 With sysvinit, reboot, poweroff and halt all used a named pipe, 
27 /dev/initctl, to communicate with the init process.  Busybox
28 currently uses signals to communicate with init.  This makes
29 busybox incompatible with sysvinit.  We should probably use
30 a named pipe as well so we can be compatible.
31
32 -----------------------
33
34 Run the following:
35
36     rm -f busybox && make LDFLAGS+=-nostdlib 2>&1 | \
37         sed -ne 's/.*undefined reference to `\(.*\)..*/\1/gp' | sort | uniq
38
39 reveals the list of all external (i.e., libc) things that BusyBox depends on.
40 It would be a very nice thing to reduce this list to an absolute minimum, to
41 reduce the footprint of busybox, especially when staticly linking with
42 libraries such as uClibc.
43
44 -----------------------
45
46 Compile with debugging on, run 'nm --size-sort ./busybox'
47 and then start with the biggest things and make them smaller...
48
49 -----------------------
50
51  du.c probably ought to have an -x switch like GNU du does...
52
53 -----------------------
54
55 xargs could use a -l option
56
57 ------------------------------------------------------------------