X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=TODO;h=738961bf382ad18f39e75f54732833fceebbc9b3;hb=82f8788acc1705a735cfa752b3f37b0de32ba390;hp=b75cec4f84f3940e9f34af654f62059ae33c1bc9;hpb=0da069d3826568101560920bc2ca1796b1392630;p=oweals%2Fbusybox.git diff --git a/TODO b/TODO index b75cec4f8..738961bf3 100644 --- a/TODO +++ b/TODO @@ -7,6 +7,8 @@ have any suggestions how they plan to go about it, and to minimize conflicts between your work and theirs. But otherwise, all of these are fair game. Rob Landley : + Add BB_NOMMU to platform.h and migrate __uClinux__ tests to that. + #if defined __UCLIBC__ && !defined __ARCH_USE_MMU__ Add a libbb/platform.c Implement fdprintf() for platforms that haven't got one. Implement bb_realpath() that can handle NULL on non-glibc. @@ -28,6 +30,11 @@ Rob Landley : Compression-side support. init General cleanup (should use ENABLE_FEATURE_INIT_SYSLOG and ENABLE_FEATURE_INIT_DEBUG). + depmod + busybox lacks a way to update module deps when running from firmware without the + use of the depmod.pl (perl is to bloated for most embedded setups) and or orig + modutils. The orig depmod is rather pointless to have to add to a firmware image + in when we already have a insmod/rmmod and friends. Unify base64 handling. There's base64 encoding and decoding going on in: networking/wget.c:base64enc() @@ -97,15 +104,33 @@ Rob Landley : initramfs Busybox should have a sample initramfs build script. This depends on bbsh, mdev, and switch_root. - - -Bernhard Fischer : - Makefile stuff: - make -j is broken, -j1 is forced atm + mkdep + Write a mkdep that doesn't segfault if there's a directory it doesn't + have permission to read, isn't based on manually editing the output of + lexx and yacc, doesn't make such a mess under include/config, etc. + Group globals into unions of structures. + Go through and turn all the global and static variables into structures, + and have all those structures be in a big union shared between processes, + so busybox uses less bss. (This is a big win on nommu machines.) See + sed.c and mdev.c for examples. + Go through bugs.busybox.net and close out all of that somehow. + This one's open to everybody, but I'll wind up doing it... + + +Bernhard Fischer suggests to look at these: New debug options: -Wlarger-than-127 + Cleanup any big users + -Wunused-parameter + Facilitate applet PROTOTYPES to provide means for having applets that + do a) not take any arguments b) need only one of argc or argv c) need + both argc and argv. All of these three options should go for the most + feature complete denominator. Collate BUFSIZ IOBUF_SIZE MY_BUF_SIZE PIPE_PROGRESS_SIZE BUFSIZE PIPESIZE - Use bb_common_bufsiz1? + make bb_common_bufsiz1 configurable, size wise. + make pipesize configurable, size wise. + Use bb_common_bufsiz1 throughout applets! + Add chrt applet. Please CC Bernhard if you suggest a patch. As yet unclaimed: @@ -117,10 +142,10 @@ diff Make sure we handle empty files properly: From the patch man page: -   you can remove a file by sending out a context diff that compares -   the file to be deleted with an empty file dated the Epoch.  The -   file will be removed unless patch is conforming to POSIX and the -   -E or --remove-empty-files option is not given. + you can remove a file by sending out a context diff that compares + the file to be deleted with an empty file dated the Epoch. The + file will be removed unless patch is conforming to POSIX and the + -E or --remove-empty-files option is not given. --- patch Should have simple fuzz factor support to apply patches at an offset which @@ -139,9 +164,11 @@ man --- ar Write support? ---- -crond - turn FEATURE_DEBUG_OPT into ENABLE_FEATURE_CROND_DEBUG_OPT +---- +stty / catv + stty's visible() function and catv's guts are identical. Merge them into + an appropriate libbb function. +---- Architectural issues: @@ -177,7 +204,7 @@ Memory Allocation allocation on the stack or the heap. Unfortunately, we're not using it much. We need to audit our memory allocations and turn a lot of malloc/free calls into RESERVE_CONFIG_BUFFER/RELEASE_CONFIG_BUFFER. - For a start, see e.g. make CFLAGS_EXTRA=-Wlarger-than-64 + For a start, see e.g. make EXTRA_CFLAGS=-Wlarger-than-64 And while we're at it, many of the CONFIG_FEATURE_CLEAN_UP #ifdefs will be optimized out by the compiler in the stack allocation case (since there's no @@ -237,7 +264,7 @@ FEATURE_CLEAN_UP jumps out of the normal flow control and bypasses any cleanup code we put at the end of our applets. - It's possible to add hooks to libbb functions like xmalloc() and bb_xopen() + It's possible to add hooks to libbb functions like xmalloc() and xopen() to add their entries to a linked list, which could be traversed and freed/closed automatically. (This would need to be able to free just the entries after a checkpoint to be usable for a forkless standalone shell. @@ -257,6 +284,21 @@ Minor stuff: if(!ioctl (fd, WDIOC_GETTIMEOUT, &tmo)) timer_duration = 1 + (tmo / 2); Unfortunately, that needs linux/watchdog.h and that contains unfiltered kernel types on some distros, which breaks the build. +--- + use bb_error_msg where appropriate: See + egrep "(printf.*\([[:space:]]*(stderr|2)|[^_]write.*\([[:space:]]*(stderr|2))" +--- + use bb_perror_msg where appropriate: See + egrep "[^_]perror" +--- + Remove superfluous fmt occurances: e.g. + fprintf(stderr, "%s: %s not found\n", "unalias", *argptr); + -> fprintf(stderr, "unalias: %s not found\n", *argptr); +--- + possible code duplication ingroup() and is_a_group_member() +--- + Move __get_hz() to a better place and (re)use it in route.c, ash.c, msh.c +--- Code cleanup: @@ -269,4 +311,3 @@ sigblock(), siggetmask(), sigsetmask(), sigmask() -> sigprocmask et al --- vdprintf() -> similar sized functionality --- -