summaryrefslogtreecommitdiff
path: root/pr/include/md/_freebsd.h
diff options
context:
space:
mode:
Diffstat (limited to 'pr/include/md/_freebsd.h')
-rw-r--r--pr/include/md/_freebsd.h28
1 files changed, 24 insertions, 4 deletions
diff --git a/pr/include/md/_freebsd.h b/pr/include/md/_freebsd.h
index 0671b60f..7018f6b5 100644
--- a/pr/include/md/_freebsd.h
+++ b/pr/include/md/_freebsd.h
@@ -37,6 +37,9 @@
#include "prthread.h"
+#if __FreeBSD__ >= 2
+#include <osreldate.h> /* for __FreeBSD_version */
+#endif
#include <sys/syscall.h>
#define PR_LINKER_ARCH "freebsd"
@@ -45,6 +48,8 @@
#define _PR_SI_ARCHITECTURE "x86"
#elif defined(__alpha)
#define _PR_SI_ARCHITECTURE "alpha"
+#elif defined(__sparc__)
+#define _PR_SI_ARCHITECTURE "sparc"
#else
#error "Unknown CPU architecture"
#endif
@@ -65,19 +70,34 @@
#define _PR_HAVE_SOCKADDR_LEN
#define _PR_STAT_HAS_ST_ATIMESPEC
#define _PR_NO_LARGE_FILES
-#if ( __FreeBSD__ > 2 )
-#if !defined(_PR_PTHREADS)
+
+#if defined(_PR_PTHREADS)
+#if __FreeBSD_version >= 400008
/*
- * libc_r doesn't have poll(). Although libc has poll(), it is not
- * thread-safe so we can't use it in the pthreads version.
+ * libc_r before this version of FreeBSD doesn't have poll().
+ * Although libc has poll(), it is not thread-safe so we can't
+ * use it in the pthreads version.
*/
#define _PR_POLL_AVAILABLE
+#endif
+#else
+#if __FreeBSD_version >= 300000
+#define _PR_POLL_AVAILABLE
#define _PR_USE_POLL
#endif
#endif
+
#define _PR_HAVE_SYSV_SEMAPHORES
#define PR_HAVE_SYSV_NAMED_SHARED_MEMORY
+#if __FreeBSD_version >= 400014
+#define _PR_INET6
+#define _PR_HAVE_INET_NTOP
+#define _PR_HAVE_GETHOSTBYNAME2
+#define _PR_HAVE_GETADDRINFO
+#define _PR_INET6_PROBE
+#endif
+
#define USE_SETJMP
#ifndef _PR_PTHREADS