Index: src/tools/io-benchmark.cpp
--- src/tools/io-benchmark.cpp.orig
+++ src/tools/io-benchmark.cpp
@@ -1,4 +1,4 @@
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
 #pragma clang diagnostic ignored "-Wunreachable-code"
 #endif
 
@@ -13,7 +13,7 @@
 #ifdef __linux__
 #include <malloc.h>
 #endif
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
 #include <unistd.h>
 #endif
 
@@ -55,8 +55,8 @@ std::filesystem::path test_path;
 int main(int argc, char *argv[])
 {
 
-#ifdef __FreeBSD__
-    osrm::util::Log() << "Not supported on FreeBSD";
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
+    osrm::util::Log() << "Not supported on BSD";
     return 0;
 #endif
 #ifdef _WIN32
@@ -96,9 +96,13 @@ int main(int argc, char *argv[])
         TIMER_STOP(write_1gb);
         fclose(fd);
 #endif
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
 #ifdef __FreeBSD__
         int fd = open(test_path.string().c_str(), O_WRONLY | O_CREAT | O_TRUNC | O_DIRECT, 0644);
         fcntl(fd, F_RDAHEAD, 0);
+#else
+        int fd = open(test_path.string().c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0644);
+#endif
         TIMER_START(write_1gb);
         write(fd, (char *)random_array, osrm::tools::NUMBER_OF_ELEMENTS * sizeof(unsigned));
         TIMER_STOP(write_1gb);
@@ -202,7 +206,7 @@ int main(int argc, char *argv[])
             int ret2 = read(fileno(fd), (char *)&single_block[0], 4096);
 #endif
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
             int ret1 = 0;
             int ret2 = 0;
 #endif
@@ -259,7 +263,7 @@ int main(int argc, char *argv[])
             int ret2 = read(fileno(fd), (char *)&single_block, 4096);
 #endif
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
             int ret1 = 0;
             int ret2 = 0;
 #endif
