There are still some places where strerror is used and strerror_r is not, but I believe now they're limited to non-threaded programs, libraries we haven't made thread-safe, or functions in thread-safe library sources which are actually compiled only when we're building test programs.