Reposting this because this is my first patch, and it didn't occur to me that if I don't CC perl6-internals, no one would notice it.
It turns out that strerror_r is POSIX only, and windows has the slightly different strerror_s (exactly the same except the arguments are in a different order). I defined a macro that abstracts this, but I don't know if there's a standard header file cross platform macros like this are put in, so I put it inline in the pmc. If anyone has a suggestion of where this belongs, I'll gladly move it. There is also the case of older UNIX platforms such as Solaris 7, which decided to take standard strerror and make it thread safe by using thread local storage. How much of a priority are platforms like this?