summaryrefslogtreecommitdiff
path: root/meta-pkgs/boost
diff options
context:
space:
mode:
authortnn <tnn@pkgsrc.org>2020-09-09 06:38:52 +0000
committertnn <tnn@pkgsrc.org>2020-09-09 06:38:52 +0000
commita3e25791f0b0640bc8ef22990ef49cd16f50f4cb (patch)
treece434aca2a7f5c1688e6a85bcf0bacde97ed8736 /meta-pkgs/boost
parentf57714cbbc6b9dcbf228031e55da39e3ac4e0571 (diff)
downloadpkgsrc-a3e25791f0b0640bc8ef22990ef49cd16f50f4cb.tar.gz
boost: avoid NetBSD specific compile errors in boost::process
Diffstat (limited to 'meta-pkgs/boost')
-rw-r--r--meta-pkgs/boost/distinfo4
-rw-r--r--meta-pkgs/boost/patches/patch-boost_process_detail_posix_handles.hpp30
-rw-r--r--meta-pkgs/boost/patches/patch-boost_process_detail_posix_is__running.hpp20
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)
+ {