diff options
author | tnn <tnn@pkgsrc.org> | 2020-09-09 06:38:52 +0000 |
---|---|---|
committer | tnn <tnn@pkgsrc.org> | 2020-09-09 06:38:52 +0000 |
commit | a3e25791f0b0640bc8ef22990ef49cd16f50f4cb (patch) | |
tree | ce434aca2a7f5c1688e6a85bcf0bacde97ed8736 /meta-pkgs/boost | |
parent | f57714cbbc6b9dcbf228031e55da39e3ac4e0571 (diff) | |
download | pkgsrc-a3e25791f0b0640bc8ef22990ef49cd16f50f4cb.tar.gz |
boost: avoid NetBSD specific compile errors in boost::process
Diffstat (limited to 'meta-pkgs/boost')
3 files changed, 53 insertions, 1 deletions
diff --git a/meta-pkgs/boost/distinfo b/meta-pkgs/boost/distinfo index 9ba104c67c1..db6f2f37ae3 100644 --- a/meta-pkgs/boost/distinfo +++ b/meta-pkgs/boost/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.131 2020/06/19 13:02:38 ryoon Exp $ +$NetBSD: distinfo,v 1.132 2020/09/09 06:38:52 tnn Exp $ SHA1 (boost_1_73_0.tar.bz2) = 6d6ed02b29c860fd21b274fc4e1f820855e765e9 RMD160 (boost_1_73_0.tar.bz2) = 3cd711ac0f6ee60d63f5f77df4957beaa6e0bf3d @@ -20,6 +20,8 @@ SHA1 (patch-boost_math_special__functions_expm1.hpp) = 724fbd40b3780da8af6ce10bb SHA1 (patch-boost_math_special__functions_log1p.hpp) = df6fd088da736a4640663b64841383432f1a1201 SHA1 (patch-boost_math_tools_config.hpp) = 9d7ef331414526057a6ac1a0ba1af815f017dfc3 SHA1 (patch-boost_numeric_ublas_storage.hpp) = 282b5a3b5d09216ded14fae166169d64db72590e +SHA1 (patch-boost_process_detail_posix_handles.hpp) = 2841be73b01d4949cc1f6ac9a16e59a30f1bc882 +SHA1 (patch-boost_process_detail_posix_is__running.hpp) = cc9084735774bd33c5ff6ff936a039fa30f989dd SHA1 (patch-boost_property__tree_detail_xml__parser__read__rapidxml.hpp) = 3499fcc37e72396d23a9fce0f1c97891adf12a9f SHA1 (patch-boost_regex_config.hpp) = 6b752c7c23168c591cd391739c7a4539bef44c12 SHA1 (patch-boost_stacktrace_detail_collect__unwind.ipp) = a5922dffd929f596b6e7d71b11f32d17e0bbd806 diff --git a/meta-pkgs/boost/patches/patch-boost_process_detail_posix_handles.hpp b/meta-pkgs/boost/patches/patch-boost_process_detail_posix_handles.hpp new file mode 100644 index 00000000000..888d9170eb8 --- /dev/null +++ b/meta-pkgs/boost/patches/patch-boost_process_detail_posix_handles.hpp @@ -0,0 +1,30 @@ +$NetBSD: patch-boost_process_detail_posix_handles.hpp,v 1.1 2020/09/09 06:38:52 tnn Exp $ + +dirfd(3) on NetBSD is implemented as a macro and cannot use namespace prefix. + +--- boost/process/detail/posix/handles.hpp.orig 2020-04-22 13:35:49.000000000 +0000 ++++ boost/process/detail/posix/handles.hpp +@@ -31,7 +31,11 @@ inline std::vector<native_handle_type> g + else + ec.clear(); + ++#if defined(__NetBSD__) ++ auto my_fd = (dir.get())->dd_fd; ++#else + auto my_fd = ::dirfd(dir.get()); ++#endif + + struct ::dirent * ent_p; + +@@ -115,7 +119,11 @@ struct limit_handles_ : handler_base_ext + return; + } + ++#if defined(__NetBSD__) ++ auto my_fd = (dir)->dd_fd; ++#else + auto my_fd = ::dirfd(dir); ++#endif + struct ::dirent * ent_p; + + while ((ent_p = readdir(dir)) != nullptr) diff --git a/meta-pkgs/boost/patches/patch-boost_process_detail_posix_is__running.hpp b/meta-pkgs/boost/patches/patch-boost_process_detail_posix_is__running.hpp new file mode 100644 index 00000000000..ae51c946f56 --- /dev/null +++ b/meta-pkgs/boost/patches/patch-boost_process_detail_posix_is__running.hpp @@ -0,0 +1,20 @@ +$NetBSD: patch-boost_process_detail_posix_is__running.hpp,v 1.1 2020/09/09 06:38:52 tnn Exp $ + +Cannot use static asserts on WIFEXITED() & friends because the +internal _W_INT macro uses (void*) which is not allowed in constexprs. + +--- boost/process/detail/posix/is_running.hpp.orig 2020-04-22 13:35:49.000000000 +0000 ++++ boost/process/detail/posix/is_running.hpp +@@ -17,10 +17,12 @@ namespace boost { namespace process { na + // This bit arrangement of status codes is not guaranteed by POSIX, but (according to comments in + // the glibc <bits/waitstatus.h> header) is the same across systems in practice. + constexpr int still_active = 0x017f; ++#if !defined(__NetBSD__) + static_assert(WIFSTOPPED(still_active), "Expected still_active to indicate WIFSTOPPED"); + static_assert(!WIFEXITED(still_active), "Expected still_active to not indicate WIFEXITED"); + static_assert(!WIFSIGNALED(still_active), "Expected still_active to not indicate WIFSIGNALED"); + static_assert(!WIFCONTINUED(still_active), "Expected still_active to not indicate WIFCONTINUED"); ++#endif + + inline bool is_running(int code) + { |