aboutsummaryrefslogtreecommitdiff
path: root/src/libthread
diff options
context:
space:
mode:
Diffstat (limited to 'src/libthread')
-rw-r--r--src/libthread/pthread.c6
-rw-r--r--src/libthread/sysofiles.sh8
2 files changed, 10 insertions, 4 deletions
diff --git a/src/libthread/pthread.c b/src/libthread/pthread.c
index 38eb7d78..dbeda7e4 100644
--- a/src/libthread/pthread.c
+++ b/src/libthread/pthread.c
@@ -74,7 +74,7 @@ _procwakeupandunlock(_Procrendez *r)
r->asleep = 0;
pthread_cond_signal(&r->cond);
}
- unlock(&r->l);
+ unlock(r->l);
}
static void
@@ -85,7 +85,7 @@ startprocfn(void *v)
Proc *p;
a = (void**)v;
- fn = a[0];
+ fn = (void(*)(void*))a[0];
p = a[1];
free(a);
p->osprocid = pthread_self();
@@ -104,7 +104,7 @@ _procstart(Proc *p, void (*fn)(Proc*))
a = malloc(2*sizeof a[0]);
if(a == nil)
sysfatal("_procstart malloc: %r");
- a[0] = fn;
+ a[0] = (void*)fn;
a[1] = p;
if(pthread_create(&p->osprocid, nil, (void*(*)(void*))startprocfn, (void*)a) < 0){
diff --git a/src/libthread/sysofiles.sh b/src/libthread/sysofiles.sh
index 7734f776..83b83556 100644
--- a/src/libthread/sysofiles.sh
+++ b/src/libthread/sysofiles.sh
@@ -8,7 +8,13 @@ case "$tag" in
*-FreeBSD-5.*)
echo pthread.o
;;
-*)
+*-Linux-*)
+ echo `uname`.o `uname`asm.o
+ ;;
+*-FreeBSD-*)
echo `uname`.o `uname`asm.o
+ ;;
+*)
+ echo pthread.o
esac