From 4bd2c75056271e687e26c4d8038bdefaa7c88dc9 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 6 Jan 2015 12:08:36 +0100 Subject: [PATCH] thread/Name: disable pthread_setname_np() on NetBSD NetBSD's pthread_setname_np() prototype is incompatible with the rest of the world, and it requires to pass the string argument as a non-const pointer. Instead of working around this misdesign, I hereby disable the feature on NetBSD. --- NEWS | 1 + src/thread/Name.hxx | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 14676a5a7..37b3b4cad 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ ver 0.19.8 (not yet released) - dsdiff, dsf: allow ID3 tags larger than 4 kB - ffmpeg: support interleaved floating point * fix clang 3.6 warnings +* fix build failure on NetBSD ver 0.19.7 (2014/12/17) * input diff --git a/src/thread/Name.hxx b/src/thread/Name.hxx index 872702af2..0fbad0fd2 100644 --- a/src/thread/Name.hxx +++ b/src/thread/Name.hxx @@ -20,7 +20,7 @@ #ifndef MPD_THREAD_NAME_HXX #define MPD_THREAD_NAME_HXX -#ifdef HAVE_PTHREAD_SETNAME_NP +#if defined(HAVE_PTHREAD_SETNAME_NP) && !defined(__NetBSD__) # define HAVE_THREAD_NAME # include # include @@ -34,7 +34,11 @@ static inline void SetThreadName(const char *name) { -#ifdef HAVE_PTHREAD_SETNAME_NP +#if defined(HAVE_PTHREAD_SETNAME_NP) && !defined(__NetBSD__) + /* not using pthread_setname_np() on NetBSD because it + requires a non-const pointer argument, which we don't have + here */ + #ifdef __APPLE__ pthread_setname_np(name); #else