boost165: use wait4 from libbsd.

This commit is contained in:
Jerome Duval
2017-10-14 11:49:07 +02:00
parent dc624d0993
commit ae6d8c6a13
2 changed files with 44 additions and 64 deletions

View File

@@ -8,7 +8,7 @@ testing. It contains over eighty individual libraries.
HOMEPAGE="http://www.boost.org/"
SOURCE_URI="https://dl.bintray.com/boostorg/release/$portVersion/source/boost_${portVersion//./_}.tar.bz2"
CHECKSUM_SHA256="9807a5d16566c57fd74fb522764e0b134a8bbe6b6e8967b83afefd30dcd3be81"
REVISION="1"
REVISION="2"
LICENSE="Boost v1.0"
COPYRIGHT="1998-2017 Beman Dawes, David Abrahams, Rene Rivera, et al."
SOURCE_DIR="boost_${portVersion//./_}"
@@ -98,7 +98,7 @@ PROVIDES_devel="
"
REQUIRES_devel="
haiku$secondaryArchSuffix
haiku$secondaryArchSuffix >= r1~alpha4_pm_hrev51470
boost165$secondaryArchSuffix == $portVersion
"

View File

@@ -1,4 +1,4 @@
From c7f9f38a4d00df9501dd4d01559984158b39e75f Mon Sep 17 00:00:00 2001
From 847dbc2803cdf64610ed4cdf36574a07aef374b5 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@gmail.com>
Date: Sat, 6 Aug 2016 22:27:19 +0200
Subject: Import changes from 1.55.0: buildtools
@@ -130,10 +130,10 @@ index ee6474b..d2bc86d 100644
vms windows
""".split()
--
2.13.1
2.14.2
From 75c20f5a9b35349804fa20a6b70823964bf24cc1 Mon Sep 17 00:00:00 2001
From 3ce44dbce12c8c8ccaaf544ec28aeed1255b854e Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@gmail.com>
Date: Sat, 6 Aug 2016 22:27:41 +0200
Subject: Import changes from 1.55.0: sourcecode
@@ -153,69 +153,49 @@ index 1f33b1a..3670ffa 100644
#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
# define BOOST_THREAD_MACOS
--
2.13.1
2.14.2
From b4f27c1394b7b55cd8df82858f53ded8fe6b12f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= <jerome.duval@gmail.com>
Date: Sat, 31 Dec 2016 11:23:58 +0100
Subject: replace wait4 by waitpid for Haiku
diff --git a/tools/build/src/engine/execunix.c b/tools/build/src/engine/execunix.c
index a4c73ea..1c5606a 100644
--- a/tools/build/src/engine/execunix.c
+++ b/tools/build/src/engine/execunix.c
@@ -525,7 +525,11 @@ void exec_wait()
close_streams( i, ERR );
/* Reap the child and release resources. */
+#ifdef __HAIKU__
+ while ( ( pid = waitpid( cmdtab[ i ].pid, &status, 0 ) ) == -1 )
+#else
while ( ( pid = wait4( cmdtab[ i ].pid, &status, 0, &cmd_usage ) ) == -1 )
+#endif
if ( errno != EINTR )
break;
if ( pid != cmdtab[ i ].pid )
--
2.13.1
From e6e1242e63aa6fe6d125fb982b23c6ec1069c64b Mon Sep 17 00:00:00 2001
From 4622b1ba7c6141478a00aec5d529d148e9832305 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Fri, 15 Sep 2017 22:35:19 +0200
Subject: Haiku dladdr() has no const for the first parameter...
Date: Sat, 14 Oct 2017 11:47:09 +0200
Subject: Haiku needs bsd and _BSD_SOURCE.
diff --git a/boost/stacktrace/detail/frame_unwind.ipp b/boost/stacktrace/detail/frame_unwind.ipp
index d4e7973..be468df 100644
--- a/boost/stacktrace/detail/frame_unwind.ipp
+++ b/boost/stacktrace/detail/frame_unwind.ipp
@@ -84,7 +84,8 @@ std::string to_string(const frame* frames, std::size_t size) {
std::string frame::name() const {
#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__)
::Dl_info dli;
- const bool dl_ok = !!::dladdr(addr_, &dli);
+ // Some of the libc headers miss `const` in `dladdr(const void*, Dl_info*)`
+ const bool dl_ok = !!::dladdr(const_cast<void*>(addr_), &dli);
if (dl_ok && dli.dli_sname) {
return boost::core::demangle(dli.dli_sname);
}
diff --git a/boost/stacktrace/detail/location_from_symbol.hpp b/boost/stacktrace/detail/location_from_symbol.hpp
index d20b0d6..e54e7e8 100644
--- a/boost/stacktrace/detail/location_from_symbol.hpp
+++ b/boost/stacktrace/detail/location_from_symbol.hpp
@@ -28,7 +28,8 @@ public:
explicit location_from_symbol(const void* addr) BOOST_NOEXCEPT
: dli_()
{
- if (!::dladdr(addr, &dli_)) {
+ // Some of the libc headers miss `const` in `dladdr(const void*, Dl_info*)`
+ if (!::dladdr(const_cast<void*>(addr), &dli_)) {
dli_.dli_fname = 0;
}
}
diff --git a/tools/build/src/engine/build.jam b/tools/build/src/engine/build.jam
index e711c08..f81e349 100644
--- a/tools/build/src/engine/build.jam
+++ b/tools/build/src/engine/build.jam
@@ -583,6 +583,11 @@ if $(OS) = VMS
{
--defs += VMS ;
}
+if $(OS) = HAIKU
+{
+ --defs += _BSDSOURCE ;
+ --libs += -lbsd ;
+}
--defs += YYSTACKSIZE=5000 ;
if $(with-python)
diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh
index 1d0dcc8..30d74f1 100755
--- a/tools/build/src/engine/build.sh
+++ b/tools/build/src/engine/build.sh
@@ -148,6 +148,13 @@ case $BOOST_JAM_TOOLSET in
BOOST_JAM_OS="NT"
;;
+ *haiku*)
+ BOOST_JAM_CC=cc
+ BOOST_JAM_OPT_JAM="$BOOST_JAM_OPT_JAM -D_BSD_SOURCE -lbsd"
+ BOOST_JAM_OPT_MKJAMBASE="$BOOST_JAM_OPT_MKJAMBASE -D_BSD_SOURCE -lbsd"
+ BOOST_JAM_OPT_YYACC="$BOOST_JAM_OPT_YYACC -D_BSD_SOURCE -lbsd"
+ ;;
+
*)
BOOST_JAM_CC=gcc
esac
--
2.13.1
2.14.2