-TODO list for the uClibc 0.9.27 release:
+TODO list for every uClibc release:
-------------------------------------------------
- *) Fix syscall() on mips
- *) Add some basic optimized mips string functions
- *) Fix use of __secure in __uClibc_init() for so that we prevent
- starting staticly linked SUID binaries where the standard file
- descriptors are not opened. For dynamically linked binaries,
- ldso does this for us.
+ *) Test cris, i386, mips, mipsel, sh, x86_64, arm, armeb, and powerpc
+ with the latest LTP testsuite. Fix any regressions and post LTP
+ testsuite results for each architecture on uclibc.org.
*) Audit header files. Remove prototypes for all functions that
are not supported -- especially needed for the libm headers.
*) Audit header files. When options are disabled, also disable
define from include/bits/uClibc_config.h (pulled in from features.h)
-TODO list for the uClibc 1.0.0 release:
+
+General release feature sets:
+-------------------------------------------------
+.29 will be mostly as-is
+.30 will be the NPTL merge
+.31 for the no-kernel-headers fix, etc, etc.
+
+
+
+TODO list for the uClibc 0.9.29 release:
-------------------------------------------------
+ *) as many of the arch-specific issues as possible
+ *) Remove N instances of libc_hidden_proto() from uClibc internals.
+ Instead add internal only header(s) defining all hidden prototypes.
+ This will avoid clutter and guarantee prototype consistancy.
+ *) The __is*_l() functions were all removed, such that we now only export
+ the is*_l() functions (no prefix). Before, we had the prefixed versions
+ for use by libstdc++ and weak versions without prefixes exported because
+ those functions belong to no std (unless you call glibc a std). This should
+ be fixed. Similar problems likely were created elsewhere.
+ *) misc stdio bugs:
+ http://bugs.uclibc.org/view.php?id=420
+ http://bugs.uclibc.org/view.php?id=539
+ *) bug in getopt handling:
+ http://bugs.uclibc.org/view.php?id=61
+ http://www.uclibc.org/lists/uclibc/2006-January/013851.html
+ *) Should integrate test subdir better ... need to propagate CPU
+ CFLAGS/LDFLAGS to the build/link for target binaries so that when we have
+ a multilib toolchain, the proper ABI is selected.
+
+TODO list for the uClibc 1.0.0 release:
+-------------------------------------------------
+ *) glob / fnmatch tests fail
+ *) regex should pass AT&T conformance tests
+ *) Finish hiding uClibc internal symbols from our exported namespace
+ *) Add system for generating minimal system call asm wrappers that abuse
+ the C ABI to minimize amount of register/stack manipulation
*) Explicity add some sortof CONFIG_LINUX_2_2_ABI, CONFIG_LINUX_2_4_ABI
and CONFIG_LINUX_2_6_ABI type options, rather than having the abi
depend on the selected set of kernel headers. This will likely also
and perhaps others (finalize list) produce a lib with a differing
ABI. Make it so apps cannot use an ABI mis-matched uClibc.
This is most easily done using symbol versioning...
- *) Perhaps implement glibc style frame-unwinding, so that gcc need
- not be built with --enable-sjlj-exceptions for C++ exception handling
- to work.
- *) Implement the float and long double versions of math funcs
+ *) Implement the long double versions of math funcs
using wrappers on top of the double versions (size / precision
trade off where size clearly wins).
*) Make all small objects (>~50 bytes) into either inlines or
from ldso (such as HZ). Other stuff it currently just makes
up, which is obviously wrong. Also bits/uClibc_clk_tck.h
needs to be updated at the same time to get proper HZ values.
- *) It would nice if valgrind wouldn't complain about the atexit() malloc'd
- memory for destructors, which happens since the dynamic linker calls
- atexit(), which calls malloc() prior to valgrind starting, so valgrind
- complains because it didn't see that memory allocated.
*) poll emulation using select() for old 2.0.x uClinux kernels
in libc/sysdeps/linux/common/poll.c fails some python self-tests.
Of course, modern systems using the actuall poll() syscall work fine.
- *) Rework the build system Makefile to eliminate recursive make.
- *) Build both pic and non-pic objects where appropriate, so that
- static libs need not pay the pic size penalty.
*) Cleanup/scrub all the Makefile copyright junk
- *) Debugging pthreads with gdb does not work at all on mips unless
- the application is staticly linked.
*) Fix dlopen, for both static and dynamic cases, and make it
fully comply with SuSv3
- *) From the the ELF spec "...All shared object initializations happen
- before the executable file gains control. ... Before the initialization
- code for any object A is called, the initialization code for any other
- objects that object A depends on are called. For these purposes, an object
- A depends on another object B, if B appears in Ads list of needed objects
- (recorded in the DT_NEEDED entries of the dynamic structure). The order of
- initialization for circular dependencies is undefined." uClibc's shared
- lib loader should be fixed to run ctors in the specified order.
TODO list for AFTER the uClibc 1.0.0 release:
-------------------------------------------------
- *) Add support for Linux 2.6.x NPTL pthreads, futexes, etc
*) Add support for Linux 2.6.x fast vsyscalls
*) Enable pristine source tree builds
*) Fix regex so it isn't so stinking big
<more wishlist items here>
+Arch specific TODO:
+-------------------------------------------------
+ alpha:
+ ldso is not implemented
+ arm:
+ update crt1 code again for nommu (http://bugs.uclibc.org/view.php?id=538)
+ recruit jbowler and integrate thumb support
+ hppa:
+ errno.c test segfaults causes segfault in clone.S (seems to be in glibc too)
+ i386:
+ add support for fast system calls
+ ia64:
+ ldso is not implemented
+ m68k:
+ ldso lazy relocation doesnt work
+ sparc:
+ need a sigaction.c since common one doesnt work (signal tests)
+ ldso needs to be updated since it's totally broken atm
+ vax:
+ pthread support, linktime warning support (implies GAS patches),
+ general touchups, testing, ldso.
+ frv sh64:
+ need to be updated to new ldso changes and unification of the
+ two uClibc_main funcs (__uClibc_start_main doesnt exist anymore)
+
-----------------------------------------------------------------------------