Here is a diff for Boost to fill in the other spots where getexecpath() is relevant.
Index: Makefile =================================================================== RCS file: /cvs/ports/devel/boost/Makefile,v retrieving revision 1.164 diff -u -p -u -p -r1.164 Makefile --- Makefile 15 Sep 2026 10:21:13 -0000 1.164 +++ Makefile 17 Sep 2026 06:50:59 -0000 @@ -13,7 +13,7 @@ CATEGORIES= devel SITES= https://archives.boost.io/release/${VERSION}/source/ EXTRACT_SUFX= .tar.bz2 -REVISION-main= 0 +REVISION= 1 SO_VERSION= 27.0 BOOST_LIBS= boost_atomic-mt \ Index: patches/patch-boost_dll_detail_posix_program_location_impl_hpp =================================================================== RCS file: /cvs/ports/devel/boost/patches/patch-boost_dll_detail_posix_program_location_impl_hpp,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-boost_dll_detail_posix_program_location_impl_hpp --- patches/patch-boost_dll_detail_posix_program_location_impl_hpp 15 Sep 2026 10:21:13 -0000 1.1 +++ patches/patch-boost_dll_detail_posix_program_location_impl_hpp 17 Sep 2026 06:50:59 -0000 @@ -1,19 +1,28 @@ -Add support of getexecpath() +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 -@@ -96,6 +96,30 @@ namespace boost { namespace dll { namespace detail { +@@ -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 && BSD >= 202610 -+#elif BOOST_OS_BSD_OPEN -+ -+#if !defined(BOOST_DLL_INTERFACE_UNIT) +#include <errno.h> +#include <limits.h> +#include <unistd.h> -+#endif // !defined(BOOST_DLL_INTERFACE_UNIT) + +namespace boost { namespace dll { namespace detail { + inline boost::dll::fs::path program_location_impl(std::error_code& ec) { @@ -30,7 +39,6 @@ Index: boost/dll/detail/posix/program_lo + return boost::dll::fs::path(path); + } +}}} // namespace boost::dll::detail -+ + #elif BOOST_OS_BSD_NET - namespace boost { namespace dll { namespace detail { Index: patches/patch-libs_log_src_process_name_cpp =================================================================== RCS file: patches/patch-libs_log_src_process_name_cpp diff -N patches/patch-libs_log_src_process_name_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-libs_log_src_process_name_cpp 17 Sep 2026 06:50:59 -0000 @@ -0,0 +1,55 @@ +Add support for getexecpath() + +Index: libs/log/src/process_name.cpp +--- libs/log/src/process_name.cpp.orig ++++ libs/log/src/process_name.cpp +@@ -26,6 +26,10 @@ + #define PATH_MAX 1024 + #endif + ++#ifdef __OpenBSD__ ++#include <sys/param.h> ++#endif ++ + #if defined(BOOST_WINDOWS) + + #include <windows.h> +@@ -138,6 +142,38 @@ BOOST_LOG_API std::string get_process_name() + return filesystem::read_symlink("/proc/curproc/file").filename().string(); + + return std::to_string(getpid()); ++} ++ ++} // namespace aux ++ ++BOOST_LOG_CLOSE_NAMESPACE // namespace log ++ ++} // namespace boost ++ ++#include <boost/log/detail/footer.hpp> ++ ++#elif defined(__OpenBSD__) && BSD >= 202610 ++ ++#include <unistd.h> ++ ++namespace boost { ++ ++BOOST_LOG_OPEN_NAMESPACE ++ ++namespace aux { ++ ++//! The function returns the current process name ++BOOST_LOG_API std::string get_process_name() ++{ ++ std::string buf(PATH_MAX, '\0'); ++ ++ if (getexecpath(&buf[0], buf.size()) == 0) ++ { ++ buf.resize(std::strlen(&buf[0])); ++ return filesystem::path(buf).filename().string(); ++ } ++ ++ return std::string(); + } + + } // namespace aux Index: patches/patch-tools_build_src_engine_pathsys_cpp =================================================================== RCS file: patches/patch-tools_build_src_engine_pathsys_cpp diff -N patches/patch-tools_build_src_engine_pathsys_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-tools_build_src_engine_pathsys_cpp 17 Sep 2026 06:50:59 -0000 @@ -0,0 +1,28 @@ +Add support for getexecpath() + +Index: tools/build/src/engine/pathsys.cpp +--- tools/build/src/engine/pathsys.cpp.orig ++++ tools/build/src/engine/pathsys.cpp +@@ -38,6 +38,9 @@ + + #include <algorithm> + ++#ifdef __OpenBSD__ ++#include <sys/param.h> ++#endif + + /* Internal OS specific implementation details - have names ending with an + * underscore and are expected to be implemented in an OS specific pathXXX.c +@@ -421,6 +424,12 @@ char * executable_path( char const * argv0 ) + size_t size = sizeof( buf ); + sysctl( mib, 4, buf, &size, NULL, 0 ); + return ( !size || size == sizeof( buf ) ) ? NULL : strndup( buf, size ); ++} ++#elif defined(__OpenBSD__) && BSD >= 202610 ++char * executable_path( char const * argv0 ) ++{ ++ char buf[ 1024 ]; ++ return getexecpath( buf, sizeof( buf ) ) == -1 ? NULL : strdup( buf ); + } + #elif defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__) + # include <unistd.h>
