diff options
author | rsc <devnull@localhost> | 2003-10-01 02:50:57 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2003-10-01 02:50:57 +0000 |
commit | a995e477ffb4dd1184da87e9e46a9e57f3178c63 (patch) | |
tree | 5b2260becdfb1aaf8b67fd91223b7d214b7e9451 /src/lib9 | |
parent | e182749a982e415fba755bc1035c35da5c4fe606 (diff) | |
download | plan9port-a995e477ffb4dd1184da87e9e46a9e57f3178c63.tar.gz plan9port-a995e477ffb4dd1184da87e9e46a9e57f3178c63.tar.bz2 plan9port-a995e477ffb4dd1184da87e9e46a9e57f3178c63.zip |
Various tweaks to make things run on Mac OS.
The main change is the use of pthread to implement ffork.
Diffstat (limited to 'src/lib9')
-rw-r--r-- | src/lib9/Makefile | 4 | ||||
-rw-r--r-- | src/lib9/argv0.c | 5 | ||||
-rw-r--r-- | src/lib9/await.c | 1 | ||||
-rw-r--r-- | src/lib9/ffork-FreeBSD.c | 6 | ||||
-rw-r--r-- | src/lib9/ffork-Linux.c | 6 | ||||
-rw-r--r-- | src/lib9/lock.c | 7 | ||||
-rw-r--r-- | src/lib9/sysfatal.c | 1 |
7 files changed, 23 insertions, 7 deletions
diff --git a/src/lib9/Makefile b/src/lib9/Makefile index 5f8e5aee..ab694858 100644 --- a/src/lib9/Makefile +++ b/src/lib9/Makefile @@ -19,7 +19,7 @@ OFILES=\ nrand.$O\ qlock.$O\ readn.$O\ - rendez.$O\ + rendez-$(SYSNAME).$O\ strecpy.$O\ sysfatal.$O\ tas-$(OBJTYPE).$O\ @@ -31,7 +31,7 @@ OFILES=\ werrstr.$O\ HFILES=\ - lib9.h\ + $(9SRC)/include/lib9.h\ include $(9SRC)/Makesyslib diff --git a/src/lib9/argv0.c b/src/lib9/argv0.c index 2c846f4d..4c61f444 100644 --- a/src/lib9/argv0.c +++ b/src/lib9/argv0.c @@ -2,3 +2,8 @@ char *argv0; +/* + * Mac OS can't deal with files that only declare data. + * ARGBEGIN mentions this function so that this file gets pulled in. + */ +void __fixargv0(void) { } diff --git a/src/lib9/await.c b/src/lib9/await.c index 9df7faa5..49160e76 100644 --- a/src/lib9/await.c +++ b/src/lib9/await.c @@ -1,5 +1,6 @@ #include <signal.h> #include <sys/types.h> +#include <sys/time.h> #include <sys/resource.h> #include <sys/wait.h> #include <sys/time.h> diff --git a/src/lib9/ffork-FreeBSD.c b/src/lib9/ffork-FreeBSD.c index a7c82e64..3829bb2d 100644 --- a/src/lib9/ffork-FreeBSD.c +++ b/src/lib9/ffork-FreeBSD.c @@ -31,3 +31,9 @@ _spinlock(spinlock_t *lk) lock((Lock*)&lk->access_lock); } +int +getfforkid(void) +{ + return getpid(); +} + diff --git a/src/lib9/ffork-Linux.c b/src/lib9/ffork-Linux.c index aad80041..3b5c8ee0 100644 --- a/src/lib9/ffork-Linux.c +++ b/src/lib9/ffork-Linux.c @@ -37,3 +37,9 @@ ffork(int flags, void (*fn)(void*), void *arg) return pid; } +int +getfforkid(void) +{ + return getpid(); +} + diff --git a/src/lib9/lock.c b/src/lib9/lock.c index 2da73626..5d6f2f3e 100644 --- a/src/lib9/lock.c +++ b/src/lib9/lock.c @@ -8,12 +8,9 @@ _xtas(void *v) { int x; -_ntas++; + _ntas++; x = _tas(v); - if(x == 0 || x == 0xCAFEBABE) - return x; - fprint(2, "%d: tas %p got %ux\n", getpid(), v, x); - abort(); + return x; } int diff --git a/src/lib9/sysfatal.c b/src/lib9/sysfatal.c index f9ab6985..33a533b8 100644 --- a/src/lib9/sysfatal.c +++ b/src/lib9/sysfatal.c @@ -14,6 +14,7 @@ sysfatal(char *fmt, ...) vseprint(buf, buf+sizeof buf, fmt, arg); va_end(arg); + __fixargv0(); fprint(2, "%s; %s\n", argv0 ? argv0 : "<prog>", buf); exits("fatal"); } |