1uClibc thread-safety analysis
2
3Things that are still known to be needed for thread safety:
4
5        none
6
7
8
9
10Things that might be nice, but are not required:
11
12        getnetent_r             <desired, but not required for SuSv3>
13        gethostent_r            <desired, but not required for SuSv3>
14        getprotoent_r           <desired, but not required for SuSv3>
15        getnetbyname_r          <desired, but not required for SuSv3>
16        getnetbyaddr_r          <desired, but not required for SuSv3>
17
18
19
20
21
22Functions that use static data and may still need locking:
23
24
25        --------------------------------------------------------------------
26
27        libc/inet/rpc/rpc_thread.c:
28
29        __rpc_thread_variables is currently disabled, since thread
30        local storage seems to not be correctly specified as
31        weak functions.
32
33        --------------------------------------------------------------------
34
35        unistd/getpass.c:
36
37        static char buf[PWD_BUFFER_SIZE];
38
39        getpass                 <fix required>                          <---
40
41        NOTE: This function returns a pointer to a static data structure.
42        This seems like it requires an _r version of this function.  Glibc
43        does the same thing.  Oops!  So much for thread-safe glibc!
44
45        --------------------------------------------------------------------
46
47        unistd/sysconf.c:
48
49        static long int ret_vals[_UCLIBC_SYSCONF_NUM_VALID_ARGS];
50
51        find_or_add_in_table    <fix required?>                         <---
52        main                    <fix required?>                         <---
53
54        NOTE: I'm not sure if this needs to be made reentrant...
55
56        --------------------------------------------------------------------
57