summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanjay Ghemawat <sanjay@google.com>2012-03-05 10:35:46 -0800
committerSanjay Ghemawat <sanjay@google.com>2012-03-05 10:35:46 -0800
commit015d26f8be6e27d96c536eb9f1ef7275898e3603 (patch)
treef312746957bb3d99fb1c5dd3e79469d80a1e005d
parent239ac9d2dea0ac1708b7d903a3d80d3883e0781b (diff)
downloadleveldb-015d26f8be6e27d96c536eb9f1ef7275898e3603.tar.gz
add .gitignore; support for building on a few BSD variants
-rw-r--r--.gitignore5
-rw-r--r--build_detect_platform15
-rw-r--r--port/port_posix.h14
3 files changed, 31 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..46769e0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+build_config.mk
+*.a
+*.o
+*_test
+db_bench
diff --git a/build_detect_platform b/build_detect_platform
index d8d9ba1..5f9e021 100644
--- a/build_detect_platform
+++ b/build_detect_platform
@@ -39,6 +39,21 @@ case `uname -s` in
echo "PLATFORM_CFLAGS=-D_REENTRANT -DOS_FREEBSD" >> build_config.mk
echo "PLATFORM_LDFLAGS=-lpthread" >> build_config.mk
;;
+ NetBSD)
+ PLATFORM=OS_NETBSD
+ echo "PLATFORM_CFLAGS=-D_REENTRANT -DOS_NETBSD" >> build_config.mk
+ echo "PLATFORM_LDFLAGS=-lpthread -lgcc_s" >> build_config.mk
+ ;;
+ OpenBSD)
+ PLATFORM=OS_OPENBSD
+ echo "PLATFORM_CFLAGS=-D_REENTRANT -DOS_OPENBSD" >> build_config.mk
+ echo "PLATFORM_LDFLAGS=-pthread" >> build_config.mk
+ ;;
+ DragonFly)
+ PLATFORM=OS_DRAGONFLYBSD
+ echo "PLATFORM_CFLAGS=-D_REENTRANT -DOS_DRAGONFLYBSD" >> build_config.mk
+ echo "PLATFORM_LDFLAGS=-lpthread" >> build_config.mk
+ ;;
*)
echo "Unknown platform!"
exit 1
diff --git a/port/port_posix.h b/port/port_posix.h
index 9666391..485ad10 100644
--- a/port/port_posix.h
+++ b/port/port_posix.h
@@ -7,7 +7,7 @@
#ifndef STORAGE_LEVELDB_PORT_PORT_POSIX_H_
#define STORAGE_LEVELDB_PORT_PORT_POSIX_H_
-#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+#if defined(OS_MACOSX)
#include <machine/endian.h>
#elif defined(OS_SOLARIS)
#include <sys/isa_defs.h>
@@ -16,6 +16,10 @@
#else
#define BIG_ENDIAN
#endif
+#elif defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) ||\
+ defined(OS_DRAGONFLYBSD)
+ #include <sys/types.h>
+ #include <sys/endian.h>
#else
#include <endian.h>
#endif
@@ -33,13 +37,17 @@
#define IS_LITTLE_ENDIAN (__BYTE_ORDER == __LITTLE_ENDIAN)
#endif
-#if defined(OS_MACOSX) || defined(OS_SOLARIS) || defined(OS_FREEBSD)
+#if defined(OS_MACOSX) || defined(OS_SOLARIS) || defined(OS_FREEBSD) ||\
+ defined(OS_NETBSD) || defined(OS_OPENBSD) || defined(OS_DRAGONFLYBSD)
+// Use fread/fwrite/fflush on platforms without _unlocked variants
#define fread_unlocked fread
#define fwrite_unlocked fwrite
#define fflush_unlocked fflush
#endif
-#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+#if defined(OS_MACOSX) || defined(OS_FREEBSD) ||\
+ defined(OS_OPENBSD) || defined(OS_DRAGONFLYBSD)
+// Use fsync() on platforms without fdatasync()
#define fdatasync fsync
#endif