TODO list for busybox in no particular order. Just because something
is listed here doesn't mean that it is going to be added to busybox,
or that doing so is even a good idea. It just means that I _might_ get
around to it some time. If you have any good ideas, please let me know.

* login/sulogin/passwd/getty/etc are part of tinylogin, and so are not
    needed or wanted in busybox (or else I'd have to link to libcrypt).

* Networking apps are probably going to be split out some time soon into a
    separate package (named perhaps netkit-tiny?).  This would remove the
    following items from BusyBox: hostid, hostname, nc, nslookup, telnet, and
    ping.  nfs mounting and syslogd (network logging) will remain in BusyBox.

 -Erik

-----------

* dnsdomainname
* traceroute/netstat
* hwclock
* stty
* tftp
* ftp
* group/commonize strings, remove dups (for i18n, l10n)

-----------------------

Running the following:

    rm -f busybox && make LDFLAGS+=-nostdlib 2>&1 | \
	sed -ne 's/.*undefined reference to `\(.*\)..*/\1/gp' | sort | uniq

reveals the list of all external (i.e. libc) things that BusyBox depends on.
It would be a very nice thing to reduce this list to an absolute minimum, and
then create a microLibc to provide these functions.  There is no good reason
for GNU libc to be so big.  I'm sure it can be a lot better.

(BTW, this is more informative if BB_FEATURE_NFSMOUNT is turned off...)

Most wanted list:

    [andersen@slag busybox]$ grep -l getgroups *.[ch]
    test.c

Policy violation.  getgroups uses libc nss, which is unlikely
to be present in an embedded system.

-----------------------

Compile with debugging on, run 'nm --size-sort ./busybox'
and then start with the biggest things and make them smaller...

-----------------------

 du.c probably ought to have an -x switch like GNU du does...

------------------------------------------------------------------
