lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | TODO list for every uClibc release: |
| 2 | ------------------------------------------------- |
| 3 | *) Test cris, i386, mips, mipsel, sh, x86_64, arm, armeb, and powerpc |
| 4 | with the latest LTP testsuite. Fix any regressions and post LTP |
| 5 | testsuite results for each architecture on uclibc.org. |
| 6 | *) Audit header files. Remove prototypes for all functions that |
| 7 | are not supported -- especially needed for the libm headers. |
| 8 | *) Audit header files. When options are disabled, also disable |
| 9 | them in the include files as well by checking for the proper |
| 10 | define from include/bits/uClibc_config.h (pulled in from features.h) |
| 11 | |
| 12 | TODO list for the uClibc 1.0.0 release: |
| 13 | ------------------------------------------------- |
| 14 | *) NPTL |
| 15 | support arches: (o todo; + done) |
| 16 | o alpha |
| 17 | + arm |
| 18 | o avr32 |
| 19 | o bfin |
| 20 | o cris |
| 21 | o e1 |
| 22 | o frv |
| 23 | o h8300 |
| 24 | o hppa |
| 25 | + i386 |
| 26 | o i960 |
| 27 | o ia64 |
| 28 | o m68k |
| 29 | o microblaze |
| 30 | + mips |
| 31 | o nios |
| 32 | o nios2 |
| 33 | + powerpc |
| 34 | + sh |
| 35 | + sh64 |
| 36 | o sparc |
| 37 | o v850 |
| 38 | o vax |
| 39 | o x86_64 |
| 40 | o xtensa |
| 41 | o ... |
| 42 | *) Go through SUSv4 |
| 43 | TOC: http://www.opengroup.org/onlinepubs/9699919799/xrat/contents.html |
| 44 | shell (busybox): http://www.opengroup.org/onlinepubs/9699919799/xrat/V4_xcu_chap01.html#tag_22_01_01 |
| 45 | interface: |
| 46 | http://www.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap13.html#tag_21_13_02 |
| 47 | http://www.opengroup.org/onlinepubs/9699919799/xrat/V4_xsh_chap01.html#tag_23_01_01 |
| 48 | *) glob / fnmatch tests fail |
| 49 | *) regex should pass AT&T conformance tests |
| 50 | *) Finish hiding uClibc internal symbols from our exported namespace |
| 51 | *) Add system for generating minimal system call asm wrappers that abuse |
| 52 | the C ABI to minimize amount of register/stack manipulation |
| 53 | *) Explicity add some sortof CONFIG_LINUX_2_2_ABI, CONFIG_LINUX_2_4_ABI |
| 54 | and CONFIG_LINUX_2_6_ABI type options, rather than having the abi |
| 55 | depend on the selected set of kernel headers. This will likely also |
| 56 | require that we provide a set of kernel headers (probably a derivitive |
| 57 | of Mazur's linux-libc-headers) that can supplies the 2.2, 2.4, and 2.6 |
| 58 | kernel abi. |
| 59 | *) Documentation updates: |
| 60 | *) Write a uClibc HOWTO document |
| 61 | *) Update README document |
| 62 | *) Update INSTALL document |
| 63 | *) Update docs/Glibc_vs_uClibc_Differences.txt document |
| 64 | and fully document all differences between the feature |
| 65 | set of uClibc and glibc. |
| 66 | *) Update docs/uClibc_vs_SuSv3.txt document |
| 67 | *) Update docs/threads.txt document |
| 68 | *) Write man pages for ldd and ldconfig utility binaries |
| 69 | *) Implement some mechanism (perhaps encoded in the .so name, |
| 70 | perhaps using an abi tag magically embedded into each object) |
| 71 | for flagging config options that break the ABI. Options |
| 72 | such as UCLIBC_HAS_SOFT_FLOAT, UCLIBC_HAS_THREADS, UCLIBC_HAS_LOCALE, |
| 73 | and perhaps others (finalize list) produce a lib with a differing |
| 74 | ABI. Make it so apps cannot use an ABI mis-matched uClibc. |
| 75 | This is most easily done using symbol versioning... |
| 76 | *) Implement the long double versions of math funcs on interrested |
| 77 | arches using wrappers on top of the double versions (size / precision |
| 78 | trade off where size clearly wins). |
| 79 | *) Make all small objects (>~50 bytes) into either inlines or |
| 80 | into a static library |
| 81 | *) Cleanup / rewrite sysconf.c. It should get some information |
| 82 | from ldso (such as HZ). Other stuff it currently just makes |
| 83 | up, which is obviously wrong. Also bits/uClibc_clk_tck.h |
| 84 | needs to be updated at the same time to get proper HZ values. |
| 85 | *) poll emulation using select() for old 2.0.x uClinux kernels |
| 86 | in libc/sysdeps/linux/common/poll.c fails some python self-tests. |
| 87 | Of course, modern systems using the actuall poll() syscall work fine. |
| 88 | *) Cleanup/scrub all the Makefile copyright junk |
| 89 | *) Fix dlopen, for both static and dynamic cases, and make it |
| 90 | fully comply with SuSv3 |
| 91 | |
| 92 | |
| 93 | TODO list for AFTER the uClibc 1.0.0 release: |
| 94 | ------------------------------------------------- |
| 95 | *) Add support for 64bit time (to deal withhttp://2038bug.com/): |
| 96 | date -s 011903142038 sets epoch to roll over in a few seconds (2^31) |
| 97 | *) Add support for Linux 2.6.x fast vsyscalls |
| 98 | *) Enable pristine source tree builds |
| 99 | *) Fix regex so it isn't so stinking big |
| 100 | *) Fix glob so it isn't so stinking big |
| 101 | *) run 'nm -D --size-sort -t d libuClibc-0.9.26.so' and work on the |
| 102 | biggest things (i.e. stuff at the end of the list) to make |
| 103 | them smaller. |
| 104 | *) Fix dlopen/dlsym/dlclose locking to more fine grained or use RCU |
| 105 | <more wishlist items here> |
| 106 | |
| 107 | |
| 108 | Arch specific TODO: |
| 109 | ------------------------------------------------- |
| 110 | alpha: |
| 111 | ldso is not implemented |
| 112 | arm: |
| 113 | update crt1 code again for nommu (http://bugs.uclibc.org/view.php?id=538) |
| 114 | recruit jbowler and integrate thumb support |
| 115 | frv: |
| 116 | needs to be updated for the new ldso changes and unification of the |
| 117 | uClibc_main funcs (__uClibc_start_main doesnt exist anymore) |
| 118 | hppa: |
| 119 | errno.c test segfaults causes segfault in clone.S (seems to be in glibc too) |
| 120 | i386: |
| 121 | add support for fast system calls |
| 122 | ia64: |
| 123 | ldso is not implemented |
| 124 | m68k: |
| 125 | ldso lazy relocation doesnt work |
| 126 | sh64: |
| 127 | ldso is reasonably broken, presently requiring additional |
| 128 | coaxing/threatening. |
| 129 | sparc: |
| 130 | need a sigaction.c since common one doesnt work (signal tests) |
| 131 | ldso needs to be updated since it's totally broken atm |
| 132 | vax: |
| 133 | pthread support, linktime warning support (implies GAS patches), |
| 134 | general touchups, testing, ldso. |
| 135 | |
| 136 | |
| 137 | ----------------------------------------------------------------------------- |
| 138 | Manuel's todo: |
| 139 | |
| 140 | 1) Little things that need fixing: |
| 141 | ---------------------------------- |
| 142 | a) Fix bug in *printf: outdigit precison bug |
| 143 | b) Check that gnu/bsd extension members tm_gmtoff and tm_zone in struct tm |
| 144 | are respected where they should be. |
| 145 | c) Implement the obstack printf funcs for glibc compat. |
| 146 | d) Implement glibc 'a' flag for scanf string conversions. |
| 147 | e) Allow use of the older non-table-based ctype functions when using |
| 148 | stub locale support. (smaller) |
| 149 | f) __drand48_iterate should be void |
| 150 | g) alphasort vs. versionsort. The former seems to be SVID, the latter GNU |
| 151 | i.e. reverse to what we currently do. The latter is unimplemented. |
| 152 | h) ponder removal/configs to turn off: __xpg_*, bsd_signal, dysize, |
| 153 | getw/putw, utimes, |
| 154 | |
| 155 | 2) Additional str{f|p}time issues. |
| 156 | ---------------------------------- |
| 157 | a) Spacing issue wrt strptime. |
| 158 | b) Support locale specific alternate digits. (data is in place) |
| 159 | c) Support locale era in year designations. (data is in place) |
| 160 | d) Deal with mb format string issues in strftime. |
| 161 | e) Implement wcsftime. |
| 162 | |
| 163 | 3) Other locale issues (my implementation): |
| 164 | ------------------------------------------- |
| 165 | a) Do a little more clean up of ctype and wctype. |
| 166 | b) Rework of the locale data organization to make using locales reasonable |
| 167 | when staticly linking. (mmap) |
| 168 | c) Rewrite the locale data generation tools to process the text specifications |
| 169 | rather than relying on glibc. |
| 170 | d) Adapt regex lib to use my collation data and add the necessary collating |
| 171 | item tables to support SUSv3 required features. |
| 172 | e) transliteration of unsupported wchars in 8-bit locales (like glibc). |
| 173 | f) Support ISO/IEC 14652 draft locale extensions (LC_PAPER, etc). |
| 174 | g) Implement strfrom. |
| 175 | h) Shift-state codeset locale support? |
| 176 | |
| 177 | 4) Misc: |
| 178 | -------- |
| 179 | a) Port uClibc to other OSs (including elks), or even bare metal (libgloss). |
| 180 | b) Write a space-efficient gettext substitute, to avoid storing large amounts |
| 181 | of redundant data. |
| 182 | |