Download raw body.
UPDATE: Boost - getexecpath()
On 2026-09-18 4:56 a.m., Kirill A. Korinsky wrote:
> On Fri, 18 Sep 2026 09:04:01 +0200,
> Brad Smith <brad@comstyle.com> 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?
Using the same style as all of the other entries.
>> ++ return getexecpath( buf, sizeof( buf ) ) == -1 ? NULL : strdup( buf );
>> + }
>> + #elif defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__)
>> + # include <unistd.h>
>>
UPDATE: Boost - getexecpath()