[FYI] Fix pthread_setname_np build error

Tom Tromey tromey@adacore.com
Wed Dec 18 18:48:00 GMT 2019


My earlier patch to fix the pthread_setname_np build error on macOS
was incorrect.  While the macOS man page claims that
pthread_setname_np returns void, in <pthread.h> it is actually
declared returning "int".  I knew this earlier, but must have made
some mistake when preparing the patch for submission (perhaps when
removing the templates?).

This patch re-fixes the bug.  I'm also applying it to the 9.1 branch.

Tested by building on macOS High Sierra.

gdb/ChangeLog
2019-12-18  Tom Tromey  <tromey@adacore.com>

	PR build/25268:
	* gdbsupport/thread-pool.c (set_thread_name): Expect "int" return
	type on macOS.  Add comment.

Change-Id: Ib09da6ac33958a0d843f65df2a528112356e7de6
---
 gdb/ChangeLog                | 6 ++++++
 gdb/gdbsupport/thread-pool.c | 4 +++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/gdb/gdbsupport/thread-pool.c b/gdb/gdbsupport/thread-pool.c
index cd548956951..a8c5fb774d9 100644
--- a/gdb/gdbsupport/thread-pool.c
+++ b/gdb/gdbsupport/thread-pool.c
@@ -49,8 +49,10 @@ set_thread_name (int (*set_name) (pthread_t, const char *), const char *name)
   set_name (pthread_self (), name);
 }
 
+/* The macOS man page says that pthread_setname_np returns "void", but
+   the headers actually declare it returning "int".  */
 ATTRIBUTE_UNUSED static void
-set_thread_name (void (*set_name) (const char *), const char *name)
+set_thread_name (int (*set_name) (const char *), const char *name)
 {
   set_name (name);
 }
-- 
2.21.0



More information about the Gdb-patches mailing list