]>
Commit | Line | Data |
---|---|---|
f6b6b3b7 EA |
1 | TODO list for the uClibc 0.9.27 release: |
2 | ------------------------------------------------- | |
3 | *) Implement some mechanism (perhaps encoded in the .so name, | |
4 | perhaps using an abi tag magically embedded into each object) | |
5 | for flagging config options that break the ABI. Options | |
6 | such as UCLIBC_HAS_SOFT_FLOAT, UCLIBC_HAS_THREADS, UCLIBC_HAS_LOCALE, | |
7 | and perhaps others (finalize list) produce a lib with a differing | |
8 | ABI. Make it so apps cannot use an ABI mis-matched uClibc. | |
f6b6b3b7 | 9 | *) Fix syscall() on mips |
6408fc6a | 10 | *) Finish up current ldso cleanups |
f6b6b3b7 EA |
11 | *) Fix dlopen, for both static and dynamic cases, and make it |
12 | actually comply with SuSv3 | |
25a92c77 EA |
13 | *) Fix use of __secure in __uClibc_init() for so that we prevent |
14 | starting staticly linked SUID binaries where the standard file | |
15 | descriptors are not opened. For dynamically linked binaries, | |
16 | ldso does this for us. | |
f6b6b3b7 EA |
17 | |
18 | ||
7b28e09c | 19 | TODO list for the uClibc 1.0.0 release: |
9b906508 | 20 | ------------------------------------------------- |
7b28e09c | 21 | |
9b906508 EA |
22 | *) Documentation updates: |
23 | *) Write a uClibc HOWTO document | |
24 | *) Update README document | |
25 | *) Update INSTALL document | |
26 | *) Update docs/Glibc_vs_uClibc_Differences.txt document | |
27 | and fully document all differences between the feature | |
28 | set of uClibc and glibc. | |
29 | *) Update docs/uClibc_vs_SuSv3.txt document | |
30 | *) Update docs/threads.txt document | |
31 | *) Write man pages for ldd and ldconfig utility binaries | |
7b28e09c | 32 | *) Perhaps implement glibc style frame-unwinding, so that gcc need |
9b906508 EA |
33 | not be built with --enable-sjlj-exceptions for C++ exception handling |
34 | to work. | |
9b906508 | 35 | *) Implement the float and long double versions of math funcs |
7b28e09c | 36 | using wrappers on top of the double versions (size / precision |
9b906508 | 37 | trade off where size clearly wins). |
7b28e09c EA |
38 | *) Fix profiling by adding missing stub functions per |
39 | http://uclibc.org/lists/uclibc/2004-February/008167.html | |
40 | and used by, i.e. http://www710.univ-lyon1.fr/~yperret/fnccheck/ | |
41 | *) Audit header files. Remove prototypes for all functions that | |
9b906508 | 42 | are not supported -- especially needed for the libm headers. |
7b28e09c | 43 | *) Audit header files. When options are disabled, also disable |
9b906508 EA |
44 | them in the include files as well by checking for the proper |
45 | define from include/bits/uClibc_config.h (pulled in from features.h) | |
db286376 | 46 | *) Make all small objects (>~50 bytes) into either inlines or |
520204ff | 47 | into a static library |
7b28e09c EA |
48 | *) Cleanup / rewrite sysconf.c. It should get some information |
49 | from ldso (such as HZ). Other stuff it currently just makes | |
50 | up, which is obviously wrong. Also bits/uClibc_clk_tck.h | |
51 | needs to be updated at the same time to get proper HZ values. | |
93510ba9 EA |
52 | *) It would nice if valgrind wouldn't complain about the atexit() malloc'd |
53 | memory for destructors, which happens since the dynamic linker calls | |
54 | atexit(), which calls malloc() prior to valgrind starting, so valgrind | |
55 | complains because it didn't see that memory allocated. | |
be6ad2b2 EA |
56 | *) From the the ELF spec "...All shared object initializations happen |
57 | before the executable file gains control. ... Before the initialization | |
58 | code for any object A is called, the initialization code for any other | |
59 | objects that object A depends on are called. For these purposes, an object | |
60 | A depends on another object B, if B appears in Ads list of needed objects | |
61 | (recorded in the DT_NEEDED entries of the dynamic structure). The order of | |
62 | initialization for circular dependencies is undefined." uClibc's shared | |
63 | lib loader should be fixed to run ctors in the specified order. | |
9b906508 EA |
64 | *) poll emulation using select() for old 2.0.x uClinux kernels |
65 | in libc/sysdeps/linux/common/poll.c fails some python self-tests. | |
66 | Of course, modern systems using the actuall poll() syscall work fine. | |
67 | *) Rework the build system Makefile to eliminate recursive make. | |
68 | *) Build both pic and non-pic objects where appropriate, so that | |
69 | static libs need not pay the pic size penalty. | |
af897c39 | 70 | *) Cleanup/scrub all the Makefile copyright junk |
6408fc6a EA |
71 | *) Debugging pthreads with gdb does not work at all on mips |
72 | *) Debugging pthreads with gdb initially appears to work, but | |
73 | fails to function correctly on arm | |
9b906508 EA |
74 | |
75 | ||
76 | TODO list for AFTER the uClibc 1.0.0 release: | |
77 | ------------------------------------------------- | |
78 | *) Add support for Linux 2.6.x NPTL pthreads, futexes, etc | |
79 | *) Add support for Linux 2.6.x fast vsyscalls | |
80 | *) Enable pristine source tree builds | |
81 | *) Fix regex so it isn't so stinking big | |
82 | *) Fix glob so it isn't so stinking big | |
83 | *) run 'nm -D --size-sort -t d libuClibc-0.9.26.so' and work on the | |
84 | biggest things (i.e. stuff at the end of the list) to make | |
85 | them smaller. | |
86 | <more wishlist items here> | |
87 | ||
be6ad2b2 | 88 | |
6e80c6c0 | 89 | |
03f338ab MNI |
90 | |
91 | ----------------------------------------------------------------------------- | |
16952cf2 | 92 | Manuel's todo: |
2a1d34e7 | 93 | |
eb7c9eb0 MNI |
94 | 1) Little things that need fixing: |
95 | ---------------------------------- | |
71c31447 MNI |
96 | a) Fix bug in *printf: outdigit precison bug |
97 | b) Check that gnu/bsd extension members tm_gmtoff and tm_zone in struct tm | |
12172897 | 98 | are respected where they should be. |
71c31447 MNI |
99 | c) Implement the obstack printf funcs for glibc compat. |
100 | d) Implement glibc 'a' flag for scanf string conversions. | |
101 | e) Allow use of the older non-table-based ctype functions when using | |
12172897 | 102 | stub locale support. (smaller) |
7b28e09c | 103 | |
12172897 | 104 | 2) Additional str{f|p}time issues. |
eb7c9eb0 | 105 | ---------------------------------- |
d33195e1 MNI |
106 | a) Spacing issue wrt strptime. |
107 | b) Support locale specific alternate digits. (data is in place) | |
108 | c) Support locale era in year designations. (data is in place) | |
12172897 MNI |
109 | d) Deal with mb format string issues in strftime. |
110 | e) Implement wcsftime. | |
7b28e09c | 111 | |
12172897 | 112 | 3) Other locale issues (my implementation): |
eb7c9eb0 | 113 | ------------------------------------------- |
12172897 MNI |
114 | a) Do a little more clean up of ctype and wctype. |
115 | b) Rework of the locale data organization to make using locales reasonable | |
116 | when staticly linking. (mmap) | |
117 | c) Rewrite the locale data generation tools to process the text specifications | |
118 | rather than relying on glibc. | |
119 | d) Adapt regex lib to use my collation data and add the necessary collating | |
d33195e1 | 120 | item tables to support SUSv3 required features. |
12172897 MNI |
121 | e) transliteration of unsupported wchars in 8-bit locales (like glibc). |
122 | f) Support ISO/IEC 14652 draft locale extensions (LC_PAPER, etc). | |
123 | g) Implement strfrom. | |
124 | h) Shift-state codeset locale support? | |
eb7c9eb0 | 125 | |
71c31447 MNI |
126 | 4) Misc: |
127 | -------- | |
128 | a) Port uClibc to other OSs (including elks), or even bare metal (libgloss). | |
129 | b) Write a space-efficient gettext substitute, to avoid storing large amounts | |
130 | of redundant data. | |
131 |