fix perror POSIX compliance

Eric Blake eblake@redhat.com
Wed May 25 19:48:00 GMT 2011


On 05/24/2011 04:08 AM, Corinna Vinschen wrote:
> On May 23 17:16, Eric Blake wrote:
>> 	* libc/string/strerror.c (strerror): Split body into...
>> 	(_strerror_r): ...new reentrant function.
>> 	* libc/string/u_strerr.c (_user_strerror): Update signature.
>> 	* libc/include/stdio.h (_strerror_r): New prototype.
>> 	* libc/posix/collate.c (__collate_err): Adjust callers.
>> 	* libc/stdio/perror.c (_perror_r): Likewise.
>> 	* libc/string/strerror_r.c (strerror_r): Likewise.
>> 	* libc/string/xpg_strerror_r.c (__xpg_strerror_r): Likewise.
> 
> Looks good to me.  It build and runs for me on Cygwin.  You did test it,
> also with the newlib strerror and strerror_r functions, right?  If so,
> please apply.

I've (finally) completed runtime testing of both the newlib patch in
isolation (by #if 0'ing the cygwin errno.cc replacements to pull in the
newlib implementation) and the cygwin patch.

Testing turned up only one issue on the newlib side (cygwin is immune) -
POSIX requires strerror(0) to return a message indicating success,
rather than treating it the same as all other EINVAL inputs.  Patch
coming up shortly, now that this one is pushed.

-- 
Eric Blake   eblake@redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://sourceware.org/pipermail/newlib/attachments/20110525/ddc3f7fa/attachment.sig>


More information about the Newlib mailing list