123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- 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.
|