Loading...
--- /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);
+ }