| TODO list for every uClibc release: |
| ------------------------------------------------- |
| *) 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 |
| them in the include files as well by checking for the proper |
| define from include/bits/uClibc_config.h (pulled in from features.h) |
| |
| TODO list for the uClibc 1.0.0 release: |
| ------------------------------------------------- |
| *) NPTL |
| support arches: (o todo; + done) |
| o alpha |
| + arm |
| o avr32 |
| o bfin |
| o cris |
| o e1 |
| o frv |
| o h8300 |
| o hppa |
| + i386 |
| o i960 |
| o ia64 |
| o m68k |
| o microblaze |
| + mips |
| o nios |
| o nios2 |
| + powerpc |
| + sh |
| + sh64 |
| o sparc |
| o v850 |
| o vax |
| o x86_64 |
| o xtensa |
| o ... |
| *) Go through SUSv4 |
| TOC: http://www.opengroup.org/onlinepubs/9699919799/xrat/contents.html |
| shell (busybox): http://www.opengroup.org/onlinepubs/9699919799/xrat/V4_xcu_chap01.html#tag_22_01_01 |
| interface: |
| http://www.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap13.html#tag_21_13_02 |
| http://www.opengroup.org/onlinepubs/9699919799/xrat/V4_xsh_chap01.html#tag_23_01_01 |
| *) 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 |
| require that we provide a set of kernel headers (probably a derivitive |
| of Mazur's linux-libc-headers) that can supplies the 2.2, 2.4, and 2.6 |
| kernel abi. |
| *) Documentation updates: |
| *) Write a uClibc HOWTO document |
| *) Update README document |
| *) Update INSTALL document |
| *) Update docs/Glibc_vs_uClibc_Differences.txt document |
| and fully document all differences between the feature |
| set of uClibc and glibc. |
| *) Update docs/uClibc_vs_SuSv3.txt document |
| *) Update docs/threads.txt document |
| *) Write man pages for ldd and ldconfig utility binaries |
| *) Implement some mechanism (perhaps encoded in the .so name, |
| perhaps using an abi tag magically embedded into each object) |
| for flagging config options that break the ABI. Options |
| such as UCLIBC_HAS_SOFT_FLOAT, UCLIBC_HAS_THREADS, UCLIBC_HAS_LOCALE, |
| 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... |
| *) Implement the long double versions of math funcs on interrested |
| arches 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 |
| into a static library |
| *) Cleanup / rewrite sysconf.c. It should get some information |
| 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. |
| *) 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. |
| *) Cleanup/scrub all the Makefile copyright junk |
| *) Fix dlopen, for both static and dynamic cases, and make it |
| fully comply with SuSv3 |
| |
| |
| TODO list for AFTER the uClibc 1.0.0 release: |
| ------------------------------------------------- |
| *) Add support for 64bit time (to deal withhttp://2038bug.com/): |
| date -s 011903142038 sets epoch to roll over in a few seconds (2^31) |
| *) Add support for Linux 2.6.x fast vsyscalls |
| *) Enable pristine source tree builds |
| *) Fix regex so it isn't so stinking big |
| *) Fix glob so it isn't so stinking big |
| *) run 'nm -D --size-sort -t d libuClibc-0.9.26.so' and work on the |
| biggest things (i.e. stuff at the end of the list) to make |
| them smaller. |
| *) Fix dlopen/dlsym/dlclose locking to more fine grained or use RCU |
| <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 |
| frv: |
| needs to be updated for the new ldso changes and unification of the |
| uClibc_main funcs (__uClibc_start_main doesnt exist anymore) |
| 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 |
| sh64: |
| ldso is reasonably broken, presently requiring additional |
| coaxing/threatening. |
| 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. |
| |
| |
| ----------------------------------------------------------------------------- |
| Manuel's todo: |
| |
| 1) Little things that need fixing: |
| ---------------------------------- |
| a) Fix bug in *printf: outdigit precison bug |
| b) Check that gnu/bsd extension members tm_gmtoff and tm_zone in struct tm |
| are respected where they should be. |
| c) Implement the obstack printf funcs for glibc compat. |
| d) Implement glibc 'a' flag for scanf string conversions. |
| e) Allow use of the older non-table-based ctype functions when using |
| stub locale support. (smaller) |
| f) __drand48_iterate should be void |
| g) alphasort vs. versionsort. The former seems to be SVID, the latter GNU |
| i.e. reverse to what we currently do. The latter is unimplemented. |
| h) ponder removal/configs to turn off: __xpg_*, bsd_signal, dysize, |
| getw/putw, utimes, |
| |
| 2) Additional str{f|p}time issues. |
| ---------------------------------- |
| a) Spacing issue wrt strptime. |
| b) Support locale specific alternate digits. (data is in place) |
| c) Support locale era in year designations. (data is in place) |
| d) Deal with mb format string issues in strftime. |
| e) Implement wcsftime. |
| |
| 3) Other locale issues (my implementation): |
| ------------------------------------------- |
| a) Do a little more clean up of ctype and wctype. |
| b) Rework of the locale data organization to make using locales reasonable |
| when staticly linking. (mmap) |
| c) Rewrite the locale data generation tools to process the text specifications |
| rather than relying on glibc. |
| d) Adapt regex lib to use my collation data and add the necessary collating |
| item tables to support SUSv3 required features. |
| e) transliteration of unsupported wchars in 8-bit locales (like glibc). |
| f) Support ISO/IEC 14652 draft locale extensions (LC_PAPER, etc). |
| g) Implement strfrom. |
| h) Shift-state codeset locale support? |
| |
| 4) Misc: |
| -------- |
| a) Port uClibc to other OSs (including elks), or even bare metal (libgloss). |
| b) Write a space-efficient gettext substitute, to avoid storing large amounts |
| of redundant data. |
| |