From 5ae4e4481eede259a64260ab1b09f86ff46c8f8d Mon Sep 17 00:00:00 2001 From: Tomohiro Kusumi Date: Wed, 10 Apr 2019 12:49:03 +0900 Subject: [PATCH] Don't assume pthread_t is uint_t for portability POSIX doesn't define pthread_t as uint_t. It could be a pointer. This code causes below compile error on a platform using pointer for pthread_t. -- kernel.c:815:25: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] (void) printf("%u ", (uint_t)pthread_self()); Reviewed-by: Brian Behlendorf Reviewed-by: Igor Kozhukhov Signed-off-by: Tomohiro Kusumi Closes #8558 --- lib/libzpool/kernel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/libzpool/kernel.c b/lib/libzpool/kernel.c index f22ad56b5..0f39e0d72 100644 --- a/lib/libzpool/kernel.c +++ b/lib/libzpool/kernel.c @@ -813,7 +813,8 @@ __dprintf(boolean_t dprint, const char *file, const char *func, if (dprintf_find_string("pid")) (void) printf("%d ", getpid()); if (dprintf_find_string("tid")) - (void) printf("%u ", (uint_t)pthread_self()); + (void) printf("%ju ", + (uintmax_t)(uintptr_t)pthread_self()); if (dprintf_find_string("cpu")) (void) printf("%u ", getcpuid()); if (dprintf_find_string("time")) -- 2.39.2