--- rocksdb/util/env_posix.cc.orig Fri Dec 9 21:59:51 2016 +++ rocksdb/util/env_posix.cc Thu Dec 22 14:44:45 2016 @@ -157,7 +157,7 @@ *result = nullptr; return IOError(fname, errno); } else if (options.use_direct_reads && !options.use_mmap_writes) { -#ifdef OS_MACOSX +#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_SOLARIS) int flags = O_RDONLY; #else int flags = O_RDONLY | O_DIRECT; @@ -215,7 +215,7 @@ } close(fd); } else if (options.use_direct_reads) { -#ifdef OS_MACOSX +#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_SOLARIS) int flags = O_RDONLY; #else int flags = O_RDONLY | O_DIRECT; @@ -269,7 +269,7 @@ if (options.use_mmap_writes && !forceMmapOff) { result->reset(new PosixMmapFile(fname, fd, page_size_, options)); } else if (options.use_direct_writes) { -#ifdef OS_MACOSX +#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_SOLARIS) int flags = O_WRONLY | O_APPEND | O_TRUNC | O_CREAT; #else int flags = O_WRONLY | O_APPEND | O_TRUNC | O_CREAT | O_DIRECT;