aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-03-28 15:58:14 +0000
committerrsc <devnull@localhost>2005-03-28 15:58:14 +0000
commit5ba33c04daeca7f84d0d0148725e593a0c672343 (patch)
tree74897b34527eaa3d3ea8ddb93973c133222a705b
parentbe9e0e98579e6dec33814f1074d22943eb87ef2b (diff)
downloadplan9port-5ba33c04daeca7f84d0d0148725e593a0c672343.tar.gz
plan9port-5ba33c04daeca7f84d0d0148725e593a0c672343.tar.bz2
plan9port-5ba33c04daeca7f84d0d0148725e593a0c672343.zip
NetBSD support. Thanks to Christoph Lohmann.
-rw-r--r--include/geometry.h7
-rw-r--r--include/u.h8
-rw-r--r--man/man3/quaternion.37
-rw-r--r--src/libthread/mkfile4
-rw-r--r--src/libthread/sysofiles.sh3
5 files changed, 27 insertions, 2 deletions
diff --git a/include/geometry.h b/include/geometry.h
index 274d5b03..a5bcb9ce 100644
--- a/include/geometry.h
+++ b/include/geometry.h
@@ -59,7 +59,7 @@ Quaternion qadd(Quaternion, Quaternion);
Quaternion qsub(Quaternion, Quaternion);
Quaternion qneg(Quaternion);
Quaternion qmul(Quaternion, Quaternion);
-Quaternion qdiv(Quaternion, Quaternion);
+Quaternion p9qdiv(Quaternion, Quaternion);
Quaternion qunit(Quaternion);
Quaternion qinv(Quaternion);
double qlen(Quaternion);
@@ -94,6 +94,11 @@ Point3 xformpoint(Point3, Space *, Space *);
Point3 xformpointd(Point3, Space *, Space *);
Point3 xformplane(Point3, Space *, Space *);
#define radians(d) ((d)*.01745329251994329572)
+
+#ifndef NOPLAN9DEFINES
+#define qdiv p9qdiv /* for NetBSD */
+#endif
+
#if defined(__cplusplus)
}
#endif
diff --git a/include/u.h b/include/u.h
index 54f4df59..84cd78d0 100644
--- a/include/u.h
+++ b/include/u.h
@@ -8,6 +8,7 @@ extern "C" {
#define __EXTENSIONS__ 1 /* SunOS */
/* NOT USING #define __MAKECONTEXT_V2_SOURCE 1 / * SunOS */
#define _BSD_SOURCE 1
+#define _NETBSD_SOURCE 1 /* NetBSD */
#define _SVID_SOURCE 1
#define _XOPEN_SOURCE 1000
#define _XOPEN_SOURCE_EXTENDED 1
@@ -74,6 +75,13 @@ typedef long p9jmp_buf[sizeof(sigjmp_buf)/sizeof(long)];
# undef _NEEDUSHORT
# undef _NEEDUINT
# define _NEEDLL 1
+#elif defined(__NetBSD__)
+# include <sched.h>
+# include <sys/types.h>
+# undef _NEEDUSHORT
+# undef _NEEDUINT
+# undef _NEEDULONG
+# undef PLAN9PORT_USING_PTHREADS
#else
/* No idea what system this is -- try some defaults */
# include <pthread.h>
diff --git a/man/man3/quaternion.3 b/man/man3/quaternion.3
index 941df245..224baea7 100644
--- a/man/man3/quaternion.3
+++ b/man/man3/quaternion.3
@@ -150,3 +150,10 @@ This is just a rotation about the same axis by half the angle.
.SH SEE ALSO
.IR matrix (3),
.IR qball (3)
+.SH BUGS
+To avoid name conflicts with NetBSD,
+.I qdiv
+is a preprocessor macro defined as
+.IR p9qdiv ;
+see
+.IR intro (3).
diff --git a/src/libthread/mkfile b/src/libthread/mkfile
index e77517a8..b1bf3ccf 100644
--- a/src/libthread/mkfile
+++ b/src/libthread/mkfile
@@ -24,7 +24,9 @@ tspawnloop: tspawnloop.$O
9l -o $target $target.$O $PLAN9/lib/$LIB -l9 -lpthread
%.$O: %.c
- 9c -I. $stem.c
+ $CC -I. $stem.c
+
+NetBSD.$O: Linux.c
test:V: tprimes tspawn
primes 1 10007 >p1.txt
diff --git a/src/libthread/sysofiles.sh b/src/libthread/sysofiles.sh
index a7af0f5b..37ab6eb5 100644
--- a/src/libthread/sysofiles.sh
+++ b/src/libthread/sysofiles.sh
@@ -17,6 +17,9 @@ case "$tag" in
*-FreeBSD-*)
echo $SYSNAME.o ${SYSNAME}asm.o
;;
+*-NetBSD-*)
+ echo $SYSNAME.o ${SYSNAME}asm.o
+ ;;
*-Darwin-*)
echo ${SYSNAME}-${OBJTYPE}-asm.o ${SYSNAME}-${OBJTYPE}.o pthread.o
;;