From 1ea8942faa90c1787f3ad1bda44dc26bfc3186da Mon Sep 17 00:00:00 2001 From: alaviss Date: Wed, 30 Aug 2017 00:17:49 +0700 Subject: [PATCH] libtpool: don't clone affinity if not supported pthread_attr_(get/set)affinity_np() is glibc-only. This commit disable the code path that use those functions in non-glibc system. Fixes the following when building with musl: libzfs.so: undefined reference to`pthread_attr_setaffinity_np' libzfs.so: undefined reference to`pthread_attr_getaffinity_np' Reviewed-by: Brian Behlendorf Signed-off-by: Leorize Closes #6571 --- lib/libtpool/thread_pool.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/libtpool/thread_pool.c b/lib/libtpool/thread_pool.c index 166ce3e672..a43fdd9cd6 100644 --- a/lib/libtpool/thread_pool.c +++ b/lib/libtpool/thread_pool.c @@ -252,6 +252,7 @@ pthread_attr_clone(pthread_attr_t *attr, const pthread_attr_t *old_attr) if (error || (old_attr == NULL)) return (error); +#ifdef __GLIBC__ cpu_set_t cpuset; size_t cpusetsize = sizeof (cpuset); error = pthread_attr_getaffinity_np(old_attr, cpusetsize, &cpuset); @@ -259,6 +260,7 @@ pthread_attr_clone(pthread_attr_t *attr, const pthread_attr_t *old_attr) error = pthread_attr_setaffinity_np(attr, cpusetsize, &cpuset); if (error) goto error; +#endif /* __GLIBC__ */ int detachstate; error = pthread_attr_getdetachstate(old_attr, &detachstate);