On Fri, 18 Sep 2026 09:04:01 +0200, Brad Smith <[email protected]> wrote: > > 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 ];
Why do not use PATH_MAX here? > ++ return getexecpath( buf, sizeof( buf ) ) == -1 ? NULL : strdup( buf ); > + } > + #elif defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__) > + # include <unistd.h> > -- wbr, Kirill
