| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | uClibc thread-safety analysisThings that are still known to be needed for thread safety:        noneThings 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...        --------------------------------------------------------------------
 |