From: Michael Tokarev Date: Fri, 7 Feb 2025 07:04:37 +0000 (+0300) Subject: replace: use __xpg_strerror_r if available X-Git-Tag: archive/raspbian/2%4.22.2+dfsg-1+rpi1^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=53925c18ca8f34c6d2eb7892e613add5e72e0be2;p=samba.git replace: use __xpg_strerror_r if available Forwarded: no In order to avoid linking libreplace, use __xpg_strerror_r instead of rep_strerror_r Gbp-Pq: Name replace-xpg-strerror.patch --- diff --git a/lib/replace/replace.c b/lib/replace/replace.c index f7f26712..d6b1383c 100644 --- a/lib/replace/replace.c +++ b/lib/replace/replace.c @@ -824,7 +824,7 @@ int rep_strerror_r(int errnum, char *buf, size_t buflen) strncpy(buf, s, buflen); return 0; } -#elif (!defined(STRERROR_R_XSI_NOT_GNU)) +#elif (!defined(STRERROR_R_XSI_NOT_GNU)) && (!defined(HAVE___XPG_STRERROR_R)) #undef strerror_r int rep_strerror_r(int errnum, char *buf, size_t buflen) { diff --git a/lib/replace/replace.h b/lib/replace/replace.h index 3bd89dca..65751ef2 100644 --- a/lib/replace/replace.h +++ b/lib/replace/replace.h @@ -643,9 +643,14 @@ char *rep_get_current_dir_name(void); #endif #if (!defined(HAVE_STRERROR_R) || !defined(STRERROR_R_XSI_NOT_GNU)) +#if defined(HAVE___XPG_STRERROR_R) +extern int __xpg_strerror_r (int, char *, size_t); +# define strerror_r __xpg_strerror_r +#else #define strerror_r rep_strerror_r int rep_strerror_r(int errnum, char *buf, size_t buflen); #endif +#endif #if !defined(HAVE_CLOCK_GETTIME) #define clock_gettime rep_clock_gettime diff --git a/lib/replace/wscript b/lib/replace/wscript index 9c0cb704..58f1f794 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -494,6 +494,7 @@ def configure(conf): define = 'HAVE_BSD_STRTOLL', ) conf.CHECK_FUNCS('if_nameindex if_nametoindex strerror_r') + conf.CHECK_FUNCS('__xpg_strerror_r') conf.CHECK_FUNCS('syslog') conf.CHECK_FUNCS('gai_strerror get_current_dir_name') conf.CHECK_FUNCS('timegm getifaddrs freeifaddrs mmap setgroups syscall setsid')