Loading...
string/FreeBSD/strerror.c.patch /dev/null Libc-763.11
--- /dev/null
+++ Libc/Libc-763.11/string/FreeBSD/strerror.c.patch
@@ -0,0 +1,50 @@
+--- strerror.c.orig	2010-10-07 16:06:39.000000000 -0700
++++ strerror.c	2010-10-07 16:17:59.000000000 -0700
+@@ -52,12 +52,13 @@ __FBSDID("$FreeBSD: src/lib/libc/string/
+  */
+ #define	EBUFSIZE	(20 + 2 + sizeof(UPREFIX))
+ 
++#ifndef BUILDING_VARIANT
+ /*
+  * Doing this by hand instead of linking with stdio(3) avoids bloat for
+  * statically linked binaries.
+  */
+-static void
+-errstr(int num, char *uprefix, char *buf, size_t len)
++__private_extern__ void
++__errstr(int num, char *uprefix, char *buf, size_t len)
+ {
+ 	char *t;
+ 	unsigned int uerr;
+@@ -87,8 +88,8 @@ strerror_r(int errnum, char *strerrbuf, 
+ 	catd = catopen("libc", NL_CAT_LOCALE);
+ #endif
+ 
+-	if (errnum < 1 || errnum >= sys_nerr) {
+-		errstr(errnum,
++	if (errnum < 0 || errnum >= sys_nerr) {
++		__errstr(errnum,
+ #if defined(NLS)
+ 			catgets(catd, 1, 0xffff, UPREFIX),
+ #else
+@@ -114,13 +115,20 @@ strerror_r(int errnum, char *strerrbuf, 
+ 
+ 	return (retval);
+ }
++#else /* BUILDING_VARIANT */
++__private_extern__ void __errstr(int, char *, size_t);
++#endif /* !BUILDING_VARIANT */
+ 
+ char *
+ strerror(int num)
+ {
+ 	static char ebuf[NL_TEXTMAX];
+ 
++#if !__DARWIN_UNIX03
+ 	if (strerror_r(num, ebuf, sizeof(ebuf)) != 0)
+ 	errno = EINVAL;
++#else
++	(void)strerror_r(num, ebuf, sizeof(ebuf));
++#endif
+ 	return (ebuf);
+ }