blob: 182f1be7e26b238ac515510ca9023d981797e9f9 [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001uClibc 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 --------------------------------------------------------------------