Index: src/google/protobuf/compiler/command_line_interface.cc
--- src/google/protobuf/compiler/command_line_interface.cc.orig
+++ src/google/protobuf/compiler/command_line_interface.cc
@@ -235,6 +235,12 @@ bool GetProtocAbsolutePath(std::string* path) {
   if (sysctl(mib, 4, &buffer, &len, nullptr, 0) != 0) {
     len = 0;
   }
+#elif defined(__OpenBSD__)
+  char buffer[PATH_MAX]{};
+  size_t len = 0;
+  if (getexecpath(buffer, sizeof buffer) == 0) {
+    len = strlen(buffer);
+  }
 #else
   char buffer[PATH_MAX];
   int len = readlink("/proc/self/exe", buffer, PATH_MAX);
