Index: vcl/unx/generic/app/geninst.cxx
--- vcl/unx/generic/app/geninst.cxx.orig
+++ vcl/unx/generic/app/geninst.cxx
@@ -22,7 +22,7 @@
 #if defined(LINUX)
 #  include <stdio.h>
 #endif
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
 #  include <sys/utsname.h>
 #endif
 #if defined(EMSCRIPTEN)
@@ -75,11 +75,15 @@ OUString SalGenericInstance::getOSVersion()
         }
         fclose( pVersion );
     }
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined(__OpenBSD__)
     struct utsname stName;
     if ( uname( &stName ) != 0 )
         return aKernelVer;
 
+#if defined(__OpenBSD__)
+    return OUString::createFromAscii( stName.sysname ) + " " +
+        OUString::createFromAscii( stName.release );
+#else
     sal_Int32 nDots = 0;
     sal_Int32 nIndex = 0;
     aKernelVer = OUString::createFromAscii( stName.release );
@@ -90,6 +94,7 @@ OUString SalGenericInstance::getOSVersion()
             break;
     }
     aKernelVer = OUString::createFromAscii(stName.sysname) + " " + aKernelVer.copy(0, nIndex);
+#endif
 #elif defined(EMSCRIPTEN)
     aKernelVer = u"Emscripten "_ustr + OUString::number(__EMSCRIPTEN_major__) + u"."_ustr
                  + OUString::number(__EMSCRIPTEN_minor__) + u"."_ustr
