git: 92771bc00ad0 - main - libc: make strerror_rl() usable for libc

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Tue, 23 Apr 2024 19:44:23 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=92771bc00ad0f567b27876c34450bef7a0ee61d0

commit 92771bc00ad0f567b27876c34450bef7a0ee61d0
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2024-04-23 17:04:29 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-04-23 19:40:29 +0000

    libc: make strerror_rl() usable for libc
    
    Reviewed by:    imp
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D44916
---
 lib/libc/include/libc_private.h |  2 ++
 lib/libc/string/strerror.c      | 10 +++++-----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/lib/libc/include/libc_private.h b/lib/libc/include/libc_private.h
index 73b22beffe88..2b16ce736e3a 100644
--- a/lib/libc/include/libc_private.h
+++ b/lib/libc/include/libc_private.h
@@ -374,5 +374,7 @@ struct __nl_cat_d;
 struct _xlocale;
 struct __nl_cat_d *__catopen_l(const char *name, int type,
 	    struct _xlocale *locale);
+int __strerror_rl(int errnum, char *strerrbuf, size_t buflen,
+	    struct _xlocale *locale);
 
 #endif /* _LIBC_PRIVATE_H_ */
diff --git a/lib/libc/string/strerror.c b/lib/libc/string/strerror.c
index 69c9d1da69af..ecad55caa673 100644
--- a/lib/libc/string/strerror.c
+++ b/lib/libc/string/strerror.c
@@ -74,8 +74,8 @@ errstr(int num, const char *uprefix, char *buf, size_t len)
 	strlcat(buf, t, len);
 }
 
-static int
-strerror_rl(int errnum, char *strerrbuf, size_t buflen, locale_t locale)
+int
+__strerror_rl(int errnum, char *strerrbuf, size_t buflen, locale_t locale)
 {
 	int retval = 0;
 #if defined(NLS)
@@ -116,7 +116,7 @@ strerror_rl(int errnum, char *strerrbuf, size_t buflen, locale_t locale)
 int
 strerror_r(int errnum, char *strerrbuf, size_t buflen)
 {
-	return (strerror_rl(errnum, strerrbuf, buflen, __get_locale()));
+	return (__strerror_rl(errnum, strerrbuf, buflen, __get_locale()));
 }
 
 char *
@@ -124,7 +124,7 @@ strerror_l(int num, locale_t locale)
 {
 	static _Thread_local char ebuf[NL_TEXTMAX];
 
-	if (strerror_rl(num, ebuf, sizeof(ebuf), locale) != 0)
+	if (__strerror_rl(num, ebuf, sizeof(ebuf), locale) != 0)
 		errno = EINVAL;
 	return (ebuf);
 }
@@ -134,7 +134,7 @@ strerror(int num)
 {
 	static char ebuf[NL_TEXTMAX];
 
-	if (strerror_rl(num, ebuf, sizeof(ebuf), __get_locale()) != 0)
+	if (__strerror_rl(num, ebuf, sizeof(ebuf), __get_locale()) != 0)
 		errno = EINVAL;
 	return (ebuf);
 }