mirror of
https://git.busybox.net/uClibc
synced 2025-05-08 14:46:24 +08:00
190 lines
7.7 KiB
Plaintext
190 lines
7.7 KiB
Plaintext
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
|
|
*) check if sched_getcpu is only pulled in where it should be
|
|
*) remove HANDLE_OLDER_RLIMIT, NEW_GETRLIMIT (conditionalize on
|
|
ugetrlimit, it seems, else use the modern variant)
|
|
*) simplify exec*() in the light of execvpe (perhaps single internal
|
|
impl); USE_GNU for execvpe (and other GNU extensions, see psm).
|
|
*) Remove unused math complex hidden protos throughout
|
|
|
|
|
|
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.
|
|
|
|
|