When the pthread support may or may not be linked in, either because we're using weak symbols or because the system C library has stubs for all the functions we use, we need to do a better job of testing for *real* pthread support (i.e., not non-functional stubs). Recommended approach: Test all the symbols we use (and maybe some others we know of) for null addresses. Try using pthread_once and see if it works. Only if all tests pass should we assume thread support is available.