uClibc thread-safety analysis Things that are still known to be needed for thread safety: none Things that might be nice, but are not required: getnetent_r <desired, but not required for SuSv3> gethostent_r <desired, but not required for SuSv3> getprotoent_r <desired, but not required for SuSv3> getnetbyname_r <desired, but not required for SuSv3> getnetbyaddr_r <desired, but not required for SuSv3> Functions that use static data and may still need locking: -------------------------------------------------------------------- libc/inet/rpc/rpc_thread.c: __rpc_thread_variables is currently disabled, since thread local storage seems to not be correctly specified as weak functions. -------------------------------------------------------------------- unistd/getpass.c: static char buf[PWD_BUFFER_SIZE]; getpass <fix required> <--- NOTE: This function returns a pointer to a static data structure. This seems like it requires an _r version of this function. Glibc does the same thing. Oops! So much for thread-safe glibc! -------------------------------------------------------------------- unistd/sysconf.c: static long int ret_vals[_UCLIBC_SYSCONF_NUM_VALID_ARGS]; find_or_add_in_table <fix required?> <--- main <fix required?> <--- NOTE: I'm not sure if this needs to be made reentrant... --------------------------------------------------------------------