unwind: fix build on 32-bit architectures

Fix compilation warnings in unwind.c on 32-bit architectures.
On some architectures getuid is actually getuid32, so change the test
to use getpid instead of getuid.

* unwind.c (STACK_ENTRY_SYMBOL_FMT): Explicitly cast function_off_set
to unsigned long.
(queue_put_error): Change the 3rd argument's type to unsigned long.
* tests/stack-fcall.c (f1): Use getpid instead of getuid.
* tests/strace-k.test: Likewise.
diff --git a/tests/stack-fcall.c b/tests/stack-fcall.c
index 04339b1..1c66fef 100644
--- a/tests/stack-fcall.c
+++ b/tests/stack-fcall.c
@@ -5,7 +5,7 @@
 
 int f1(int i)
 {
-	static uid_t (* volatile g)(void) = getuid;
+	static pid_t (* volatile g)(void) = getpid;
 	return g() + i;
 }
 
diff --git a/tests/strace-k.test b/tests/strace-k.test
index 329f302..3845c8c 100755
--- a/tests/strace-k.test
+++ b/tests/strace-k.test
@@ -17,13 +17,13 @@
 $STRACE -h | grep '^-k' > /dev/null ||
 	skip_ 'strace -k is not available'
 
-args="-e getuid -k ./stack-fcall"
+args="-e getpid -k ./stack-fcall"
 $STRACE $args > $LOG 2>&1 || {
 	cat $LOG
 	fail_ "$STRACE $args failed"
 }
 
-expected='getuid f1 f0 main '
+expected='getpid f1 f0 main '
 result=$(sed -n '1,/(main+0x[a-f0-9]\+) .*/ s/^.*(\([^+]\+\)+0x[a-f0-9]\+) .*/\1/p' $LOG |
 	tr '\n' ' ')
 
diff --git a/unwind.c b/unwind.c
index 797a287..21f2a48 100644
--- a/unwind.c
+++ b/unwind.c
@@ -403,7 +403,7 @@
 	" > %s(%s+0x%lx) [0x%lx]\n",		\
 	binary_filename,			\
 	symbol_name,				\
-	function_off_set,			\
+	(unsigned long) function_off_set,	\
 	true_offset
 #define STACK_ENTRY_NOSYMBOL_FMT		\
 	" > %s() [0x%lx]\n",			\
@@ -523,7 +523,7 @@
 static void
 queue_put_error(void *queue,
 		const char *error,
-		unw_word_t ip)
+		unsigned long ip)
 {
 	queue_put(queue, NULL, NULL, 0, ip, error);
 }