Skip to content

Instantly share code, notes, and snippets.

@FROGGS
Created June 15, 2015 19:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FROGGS/e78f1c16f5e8277fddeb to your computer and use it in GitHub Desktop.
Save FROGGS/e78f1c16f5e8277fddeb to your computer and use it in GitHub Desktop.
diff --git a/include/uv-unix.h b/include/uv-unix.h
index e724925..20595fb 100644
--- a/include/uv-unix.h
+++ b/include/uv-unix.h
@@ -55,6 +55,7 @@
# include "uv-darwin.h"
#elif defined(__DragonFly__) || \
defined(__FreeBSD__) || \
+ defined(__FreeBSD_kernel__) || \
defined(__OpenBSD__) || \
defined(__NetBSD__)
# include "uv-bsd.h"
diff --git a/src/unix/core.c b/src/unix/core.c
index e6a0768..f8d2a37 100644
--- a/src/unix/core.c
+++ b/src/unix/core.c
@@ -54,7 +54,7 @@
# include <sys/ioctl.h>
#endif
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
# include <sys/sysctl.h>
# include <sys/filio.h>
# include <sys/ioctl.h>
@@ -473,7 +473,7 @@ int uv__close(int fd) {
#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || \
- defined(_AIX)
+ defined(_AIX) || defined(__FreeBSD_kernel__)
int uv__nonblock(int fd, int set) {
int r;
@@ -502,7 +502,7 @@ int uv__cloexec(int fd, int set) {
return 0;
}
-#else /* !(defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)) */
+#else /* !(defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__APPLE__)) */
int uv__nonblock(int fd, int set) {
int flags;
@@ -565,7 +565,7 @@ int uv__cloexec(int fd, int set) {
return 0;
}
-#endif /* defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) */
+#endif /* defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__APPLE__) */
/* This function is not execve-safe, there is a race window
diff --git a/src/unix/fs.c b/src/unix/fs.c
index 65fd012..aa42d40 100644
--- a/src/unix/fs.c
+++ b/src/unix/fs.c
@@ -64,7 +64,7 @@
# define HAVE_PREADV 0
#endif
-#if defined(__linux__) || defined(__sun)
+#if defined(__linux__) || defined(__sun) || defined(__FreeBSD_kernel__)
# include <sys/sendfile.h>
#elif defined(__APPLE__) || defined(__FreeBSD__)
# include <sys/socket.h>
@@ -193,6 +193,7 @@ skip:
#elif defined(__APPLE__) \
|| defined(__DragonFly__) \
|| defined(__FreeBSD__) \
+ || defined(__FreeBSD_kernel__) \
|| defined(__NetBSD__) \
|| defined(__OpenBSD__) \
|| defined(__sun)
diff --git a/test/test-embed.c b/test/test-embed.c
index 0613745..c6ddceb 100644
--- a/test/test-embed.c
+++ b/test/test-embed.c
@@ -29,6 +29,7 @@
# if defined(__APPLE__) || \
defined(__DragonFly__) || \
defined(__FreeBSD__) || \
+ defined(__FreeBSD_kernel__) || \
defined(__OpenBSD__) || \
defined(__NetBSD__)
# define HAVE_KQUEUE 1
diff --git a/test/test-fs-event.c b/test/test-fs-event.c
index 5fd8da4..46ebe2f 100644
--- a/test/test-fs-event.c
+++ b/test/test-fs-event.c
@@ -29,6 +29,7 @@
# if defined(__APPLE__) || \
defined(__DragonFly__) || \
defined(__FreeBSD__) || \
+ defined(__FreeBSD_kernel__) || \
defined(__OpenBSD__) || \
defined(__NetBSD__)
# define HAVE_KQUEUE 1
diff --git a/uv.gyp b/uv.gyp
index a5ba14c..87baaf7 100644
--- a/uv.gyp
+++ b/uv.gyp
@@ -266,7 +266,7 @@
],
},
}],
- [ 'OS=="freebsd" or OS=="dragonflybsd"', {
+ [ 'OS=="freebsd" or OS=="kfreebsd" or OS=="dragonflybsd"', {
'sources': [ 'src/unix/freebsd.c' ],
}],
[ 'OS=="openbsd"', {
@@ -275,7 +275,12 @@
[ 'OS=="netbsd"', {
'sources': [ 'src/unix/netbsd.c' ],
}],
- [ 'OS in "freebsd dragonflybsd openbsd netbsd".split()', {
+ [ 'OS=="kfreebsd"', {
+ 'libraries': [
+ '-lkvm',
+ ],
+ }],
+ [ 'OS in "freebsd kfreebsd dragonflybsd openbsd netbsd".split()', {
'link_settings': {
'libraries': [ '-lkvm' ],
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment