From 0726ce6d6f52e135e28f15ca8392568c84909b1d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 16 Jun 2018 16:21:39 -0700
Subject: [PATCH] Convert pthread_t to be numeric

typecast pthread_t to unsigned long
pthread_t is implemented as a struct point in musl and its as per standard

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Pending

 server/red-channel.c | 5 +++--
 server/red-client.c  | 6 +++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/server/red-channel.c b/server/red-channel.c
index 1b38f04d..11dc667b 100644
--- a/server/red-channel.c
+++ b/server/red-channel.c
@@ -192,7 +192,7 @@ red_channel_constructed(GObject *object)
 {
     RedChannel *self = RED_CHANNEL(object);
 
-    red_channel_debug(self, "thread_id 0x%lx", self->priv->thread_id);
+    red_channel_debug(self, "thread_id 0x%lx", (unsigned long)self->priv->thread_id);
 
     RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self);
 
@@ -475,7 +475,8 @@ void red_channel_remove_client(RedChannel *channel, RedChannelClient *rcc)
         red_channel_warning(channel, "channel->thread_id (0x%lx) != pthread_self (0x%lx)."
                             "If one of the threads is != io-thread && != vcpu-thread, "
                             "this might be a BUG",
-                            channel->priv->thread_id, pthread_self());
+                            (unsigned long)channel->priv->thread_id,
+                            (unsigned long)pthread_self());
     }
     spice_return_if_fail(channel);
     link = g_list_find(channel->priv->clients, rcc);
diff --git a/server/red-client.c b/server/red-client.c
index ddfc5400..76986640 100644
--- a/server/red-client.c
+++ b/server/red-client.c
@@ -180,7 +180,7 @@ void red_client_migrate(RedClient *client)
         spice_warning("client->thread_id (0x%lx) != pthread_self (0x%lx)."
                       "If one of the threads is != io-thread && != vcpu-thread,"
                       " this might be a BUG",
-                      client->thread_id, pthread_self());
+                      (unsigned long)client->thread_id, (unsigned long)pthread_self());
     }
     FOREACH_CHANNEL_CLIENT(client, rcc) {
         if (red_channel_client_is_connected(rcc)) {
@@ -199,8 +199,8 @@ void red_client_destroy(RedClient *client)
         spice_warning("client->thread_id (0x%lx) != pthread_self (0x%lx)."
                       "If one of the threads is != io-thread && != vcpu-thread,"
                       " this might be a BUG",
-                      client->thread_id,
-                      pthread_self());
+                      (unsigned long)client->thread_id,
+                      (unsigned long)pthread_self());
     }
     red_client_set_disconnecting(client);
     FOREACH_CHANNEL_CLIENT(client, rcc) {
-- 
2.17.1

