Add support for getexecpath()

Index: boost/dll/detail/posix/program_location_impl.hpp
--- boost/dll/detail/posix/program_location_impl.hpp.orig
+++ boost/dll/detail/posix/program_location_impl.hpp
@@ -16,6 +16,10 @@
 # pragma once
 #endif
 
+#if BOOST_OS_BSD_OPEN
+#include <sys/param.h>
+#endif
+
 #if BOOST_OS_MACOS || BOOST_OS_IOS
 
 #include <string>
@@ -94,7 +98,27 @@ namespace boost { namespace dll { namespace detail {
     }
 }}} // namespace boost::dll::detail
 
+#elif BOOST_OS_BSD_OPEN && OpenBSD >= 202610
 
+#include <errno.h>
+#include <limits.h>
+#include <unistd.h>
+
+namespace boost { namespace dll { namespace detail {
+    inline boost::dll::fs::path program_location_impl(std::error_code& ec) {
+        ec.clear();
+
+        char path[PATH_MAX];
+        if (getexecpath(path, sizeof(path)) != 0) {
+            ec = std::make_error_code(
+                static_cast<std::errc>(errno)
+            );
+            return boost::dll::fs::path();
+        }
+
+        return boost::dll::fs::path(path);
+    }
+}}} // namespace boost::dll::detail
 
 #elif BOOST_OS_BSD_NET
 
