1From c84e5e55e0e9e793849f721d30979242ed6a6ee3 Mon Sep 17 00:00:00 2001 2From: Fabrice Fontaine <fontaine.fabrice@gmail.com> 3Date: Sun, 1 Oct 2023 14:12:38 +0200 4Subject: [PATCH] fix build on uclibc-ng 5 6Fix the following build failure with uclibc-ng raised since version 71.6.18 and 8https://github.com/memcached/memcached/commit/875371a75cbf1f92350de2d1fa0fae4a35ed572b: 9 10/home/buildroot/autobuild/instance-2/output-1/host/lib/gcc/arc-buildroot-linux-uclibc/10.2.0/../../../../arc-buildroot-linux-uclibc/bin/ld: memcached-thread.o: in function `thread_setname': 11thread.c:(.text+0xea2): undefined reference to `pthread_setname_np' 12 13Fixes: 14 - http://autobuild.buildroot.org/results/e856d381f5ec7d2727f21c8bd46dacb456984416 15 16Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 17Upstream: unsent yet (waiting feedback on first patch) 18--- 19 configure.ac | 1 + 20 extstore.c | 2 +- 21 thread.c | 2 +- 22 3 files changed, 3 insertions(+), 2 deletions(-) 23 24diff --git a/configure.ac b/configure.ac 25index d94f6fb..5ec5088 100644 26--- a/configure.ac 27+++ b/configure.ac 28@@ -686,6 +686,7 @@ AC_CHECK_FUNCS(clock_gettime) 29 AC_CHECK_FUNCS(preadv) 30 AC_CHECK_FUNCS(pread) 31 AC_CHECK_FUNCS(eventfd) 32+AC_CHECK_FUNCS([pthread_setname_np],[AC_DEFINE(HAVE_PTHREAD_SETNAME_NP, 1, [Define to 1 if support pthread_setname_np])]) 33 AC_CHECK_FUNCS([accept4], [AC_DEFINE(HAVE_ACCEPT4, 1, [Define to 1 if support accept4])]) 34 AC_CHECK_FUNCS([getopt_long], [AC_DEFINE(HAVE_GETOPT_LONG, 1, [Define to 1 if support getopt_long])]) 35 36diff --git a/extstore.c b/extstore.c 37index b079465..f6a6180 100644 38--- a/extstore.c 39+++ b/extstore.c 40@@ -119,7 +119,7 @@ struct store_engine { 41 #define THR_NAME_MAXLEN 16 42 static void thread_setname(pthread_t thread, const char *name) { 43 assert(strlen(name) < THR_NAME_MAXLEN); 44-#if defined(__linux__) 45+#if defined(__linux__) && defined(HAVE_PTHREAD_SETNAME_NP) 46 pthread_setname_np(thread, name); 47 #endif 48 } 49diff --git a/thread.c b/thread.c 50index ee120fa..76651c2 100644 51--- a/thread.c 52+++ b/thread.c 53@@ -635,7 +635,7 @@ static void thread_libevent_process(evutil_socket_t fd, short which, void *arg) 54 #define THR_NAME_MAXLEN 16 55 void thread_setname(pthread_t thread, const char *name) { 56 assert(strlen(name) < THR_NAME_MAXLEN); 57-#if defined(__linux__) 58+#if defined(__linux__) && defined(HAVE_PTHREAD_SETNAME_NP) 59 pthread_setname_np(thread, name); 60 #endif 61 } 62-- 632.40.1 64 65