From b21e942c2652e720f35d0145f2a586b119027ef9 Mon Sep 17 00:00:00 2001 From: Scott McCreary Date: Sun, 22 Dec 2013 14:16:50 -0800 Subject: [PATCH] Fixed formatting of boost recipe and merged patches into one patchset --- dev-libs/boost/boost-1.55.0.recipe | 172 +++++--- dev-libs/boost/patches/boost-1.55.0.patchset | 403 +++++++++++++++++++ 2 files changed, 511 insertions(+), 64 deletions(-) create mode 100644 dev-libs/boost/patches/boost-1.55.0.patchset diff --git a/dev-libs/boost/boost-1.55.0.recipe b/dev-libs/boost/boost-1.55.0.recipe index b1a2daff6..a7c54ba93 100644 --- a/dev-libs/boost/boost-1.55.0.recipe +++ b/dev-libs/boost/boost-1.55.0.recipe @@ -7,7 +7,7 @@ DESCRIPTION=" " SUMMARY="Boost is a set of libraries for the C++ programming language." HOMEPAGE="http://www.boost.org/" -SRC_URI="http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.bz2/download" +SRC_URI="http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.bz2" CHECKSUM_MD5="d6eef4b4cacb2183f2bf265a5a03a354" REVISION="1" LICENSE="Boost v1.0" @@ -17,20 +17,31 @@ if [ $effectiveTargetArchitecture != x86_gcc2 ]; then ARCHITECTURES="$ARCHITECTURES x86_gcc2" fi SECONDARY_ARCHITECTURES="x86 ?x86_64" + SOURCE_DIR="boost_1_55_0" -PATCHES=" - boost-1.55.0.patch - type_traits.patch -" + +PATCHES="boost-1.55.0.patchset" PROVIDES=" lib:boost = 1.55.0 " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libiconv$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libiconv$secondaryArchSuffix + devel:libbz2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " + BUILD_PREREQUIRES=" boehm_gc - libiconv - libiconv_devel cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:jam @@ -38,18 +49,6 @@ BUILD_PREREQUIRES=" cmd:make binutils " -BUILD_REQUIRES=" - haiku${secondaryArchSuffix}_devel >= $haikuVersion - devel:libiconv - devel:libbz2 - devel:libz - " - -REQUIRES=" - lib:libiconv - lib:libbz2 - lib:libz - " BUILD() { @@ -117,154 +116,199 @@ INSTALL() PROVIDES_devel=" boost_devel$secondaryArchSuffix = $portVersion " + REQUIRES_devel=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_atomic=" boost_atomic$secondaryArchSuffix = $portVersion -" + " + REQUIRES_atomic=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_chrono=" boost_chrono$secondaryArchSuffix = $portVersion -" + " + REQUIRES_chrono=" haiku$secondaryArchSuffix >= $haikuVersion boost_system$secondaryArchSuffix == $portVersion -" + " + PROVIDES_context=" boost_context$secondaryArchSuffix = $portVersion -" + " + REQUIRES_context=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_coroutine=" boost_coroutine$secondaryArchSuffix = $portVersion -" + " + REQUIRES_coroutine=" boost_context$secondaryArchSuffix == $portVersion -" + " + PROVIDES_date_time=" boost_date_time$secondaryArchSuffix = $portVersion -" + " + REQUIRES_date_time=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_exception=" boost_exception$secondaryArchSuffix = $portVersion -" + " + REQUIRES_exception=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_filesystem=" boost_filesystem$secondaryArchSuffix = $portVersion -" + " + REQUIRES_filesystem=" haiku$secondaryArchSuffix >= $haikuVersion boost_system$secondaryArchSuffix == $portVersion lib:libz$secondaryArchSuffix lib:libbz2$secondaryArchSuffix -" + " + PROVIDES_graph=" boost_graph$secondaryArchSuffix = $portVersion -" + " + REQUIRES_graph=" haiku$secondaryArchSuffix >= $haikuVersion boost_regex$secondaryArchSuffix == $portVersion -" + " + PROVIDES_iostreams=" boost_iostreams$secondaryArchSuffix = $portVersion -" + " + REQUIRES_iostreams=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_locale=" boost_locale$secondaryArchSuffix = $portVersion -" + " + REQUIRES_locale=" haiku$secondaryArchSuffix >= $haikuVersion boost_chrono$secondaryArchSuffix == $portVersion boost_system$secondaryArchSuffix == $portVersion boost_thread$secondaryArchSuffix == $portVersion -" + " + PROVIDES_log=" boost_log$secondaryArchSuffix = $portVersion -" + " + REQUIRES_log=" haiku$secondaryArchSuffix >= $haikuVersion boost_chrono$secondaryArchSuffix == $portVersion boost_system$secondaryArchSuffix == $portVersion boost_date_time$secondaryArchSuffix == $portVersion boost_thread$secondaryArchSuffix == $portVersion -" + " + PROVIDES_math=" boost_math$secondaryArchSuffix = $portVersion -" + " + REQUIRES_math=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_program_options=" boost_program_options$secondaryArchSuffix = $portVersion -" + " + REQUIRES_program_options=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_random=" boost_random$secondaryArchSuffix = $portVersion -" + " + REQUIRES_random=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_regex=" boost_regex$secondaryArchSuffix = $portVersion -" + " + REQUIRES_regex=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_serialization=" boost_serialization$secondaryArchSuffix = $portVersion -" + " + REQUIRES_serialization=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_signals=" boost_signals$secondaryArchSuffix = $portVersion -" + " + REQUIRES_signals=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_system=" boost_system$secondaryArchSuffix = $portVersion -" + " + REQUIRES_system=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_test=" boost_test$secondaryArchSuffix = $portVersion -" + " + REQUIRES_test=" haiku$secondaryArchSuffix >= $haikuVersion -" + " + PROVIDES_thread=" boost_thread$secondaryArchSuffix = $portVersion -" + " + REQUIRES_thread=" haiku$secondaryArchSuffix >= $haikuVersion boost_system$secondaryArchSuffix == $portVersion boost_chrono$secondaryArchSuffix == $portVersion -" + " + PROVIDES_timer=" boost_timer$secondaryArchSuffix = $portVersion -" + " + REQUIRES_timer=" haiku$secondaryArchSuffix >= $haikuVersion boost_chrono$secondaryArchSuffix == $portVersion boost_system$secondaryArchSuffix == $portVersion -" + " + PROVIDES_wave=" boost_wave$secondaryArchSuffix = $portVersion -" + " + REQUIRES_wave=" haiku$secondaryArchSuffix >= $haikuVersion boost_chrono$secondaryArchSuffix == $portVersion @@ -272,4 +316,4 @@ REQUIRES_wave=" boost_filesystem$secondaryArchSuffix == $portVersion boost_system$secondaryArchSuffix == $portVersion boost_thread$secondaryArchSuffix == $portVersion -" + " diff --git a/dev-libs/boost/patches/boost-1.55.0.patchset b/dev-libs/boost/patches/boost-1.55.0.patchset new file mode 100644 index 000000000..899f987a2 --- /dev/null +++ b/dev-libs/boost/patches/boost-1.55.0.patchset @@ -0,0 +1,403 @@ +From f194ab93c5c29020d5f0f4915b1f554645986587 Mon Sep 17 00:00:00 2001 +From: Scott McCreary +Date: Sun, 22 Dec 2013 10:01:12 -0800 +Subject: applying patch boost-1.55.0.patch + + +diff --git a/boost/config/platform/haiku.hpp b/boost/config/platform/haiku.hpp +new file mode 100644 +index 0000000..1b15c7e +--- /dev/null ++++ b/boost/config/platform/haiku.hpp +@@ -0,0 +1,27 @@ ++//  (C) Copyright John Maddock 2001. ++//  Use, modification and distribution are subject to the ++//  Boost Software License, Version 1.0. (See accompanying file ++//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ++ ++//  See http://www.boost.org for most recent version. ++ ++//  Haiku specific config options: ++ ++#define BOOST_PLATFORM "Haiku" ++ ++#define BOOST_NO_INTRINSIC_WCHAR_T ++#define BOOST_HAS_UNISTD_H ++ ++#define BOOST_HAS_BETHREADS ++ ++#ifndef BOOST_DISABLE_THREADS ++# define BOOST_HAS_THREADS ++#endif ++ ++// ++// thread API's not auto detected: ++// ++#define BOOST_HAS_GETTIMEOFDAY ++ ++// boilerplate code: ++#include +diff --git a/boost/config/select_platform_config.hpp b/boost/config/select_platform_config.hpp +index 2af61d2..5052d85 100644 +--- a/boost/config/select_platform_config.hpp ++++ b/boost/config/select_platform_config.hpp +@@ -41,6 +41,10 @@ + // win32: + # define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp" + ++#elif defined(__HAIKU__) ++// Haiku ++# define BOOST_PLATFORM_CONFIG "boost/config/platform/haiku.hpp" ++ + #elif defined(__BEOS__) + // BeOS + # define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp" +diff --git a/boost/config/stdlib/libstdcpp3.hpp b/boost/config/stdlib/libstdcpp3.hpp +index 976ab76..66bc96d 100644 +--- a/boost/config/stdlib/libstdcpp3.hpp ++++ b/boost/config/stdlib/libstdcpp3.hpp +@@ -36,7 +36,8 @@ + || defined(_GLIBCXX__PTHREADS) \ + || defined(_GLIBCXX_HAS_GTHREADS) \ + || defined(_WIN32) \ +- || defined(_AIX) ++ || defined(_AIX) \ ++ || defined(__HAIKU__) + // + // If the std lib has thread support turned on, then turn it on in Boost + // as well. We do this because some gcc-3.4 std lib headers define _REENTANT +diff --git a/boost/thread/detail/platform.hpp b/boost/thread/detail/platform.hpp +index 1f33b1a..1b8917c 100644 +--- a/boost/thread/detail/platform.hpp ++++ b/boost/thread/detail/platform.hpp +@@ -34,6 +34,8 @@ + # define BOOST_THREAD_WIN32 + #elif defined(__BEOS__) + # define BOOST_THREAD_BEOS ++#elif defined(__HAIKU__) ++# define BOOST_THREAD_BEOS + #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) + # define BOOST_THREAD_MACOS + //# define BOOST_THREAD_WAIT_BUG boost::posix_time::microseconds(1000) +diff --git a/tools/build/v2/engine/boehm_gc/dyn_load.c b/tools/build/v2/engine/boehm_gc/dyn_load.c +index 36968ba..e725bdc 100644 +--- a/tools/build/v2/engine/boehm_gc/dyn_load.c ++++ b/tools/build/v2/engine/boehm_gc/dyn_load.c +@@ -64,7 +64,7 @@ static int (*GC_has_static_roots)(const char *, void *, size_t); + !defined(AIX) && !defined(SCO_ELF) && !defined(DGUX) && \ + !(defined(FREEBSD) && defined(__ELF__)) && \ + !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \ +- !defined(DARWIN) && !defined(CYGWIN32) ++ !defined(DARWIN) && !defined(CYGWIN32) !(defined(HAIKU) + --> We only know how to find data segments of dynamic libraries for the + --> above. Additional SVR4 variants might not be too + --> hard to add. +@@ -82,6 +82,10 @@ static int (*GC_has_static_roots)(const char *, void *, size_t); + # define ELFSIZE ARCH_ELFSIZE + #endif + ++#if defined(HAIKU) ++ ++#endif ++ + #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \ + (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \ + (defined(NETBSD) && defined(__ELF__)) || defined(HURD) +@@ -216,7 +220,8 @@ void GC_register_dynamic_libraries() + + #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \ + (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \ +- (defined(NETBSD) && defined(__ELF__)) || defined(HURD) ++ (defined(NETBSD) && defined(__ELF__)) || defined(HURD) || \ ++ defined(HAIKU) + + + #ifdef USE_PROC_FOR_LIBRARIES +diff --git a/tools/build/v2/engine/boehm_gc/include/gc.h b/tools/build/v2/engine/boehm_gc/include/gc.h +index cc95088..590a868 100644 +--- a/tools/build/v2/engine/boehm_gc/include/gc.h ++++ b/tools/build/v2/engine/boehm_gc/include/gc.h +@@ -494,7 +494,7 @@ GC_API void * GC_malloc_atomic_ignore_off_page(size_t lb); + /* of compilers. */ + /* This may also be desirable if it is possible but expensive to */ + /* retrieve the call chain. */ +-#if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) \ ++#if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__HAIKU__) \ + || defined(__FreeBSD__) || defined(__DragonFly__)) & !defined(GC_CAN_SAVE_CALL_STACKS) + # define GC_ADD_CALLER + # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) +diff --git a/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h b/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h +index 66abf0b..797eddd 100644 +--- a/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h ++++ b/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h +@@ -45,7 +45,8 @@ + || defined(GC_AIX_THREADS) \ + || defined(GC_LINUX_THREADS) \ + || defined(GC_NETBSD_THREADS) \ +- || defined(GC_GNU_THREADS)) ++ || defined(GC_GNU_THREADS)) \ ++ || defined(GC_HAIKU_THREADS) + # define _REENTRANT + /* Better late than never. This fails if system headers that */ + /* depend on this were previously included. */ +@@ -62,6 +63,7 @@ + # if defined(GC_SOLARIS_THREADS) || defined(GC_FREEBSD_THREADS) || \ + defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \ + defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \ ++ defined(GC_HAIKU_THREADS) || \ + defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \ + defined(GC_AIX_THREADS) || defined(GC_NETBSD_THREADS) || \ + (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__)) || \ +diff --git a/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h b/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h +index 20f35bc..7e798a7 100644 +--- a/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h ++++ b/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h +@@ -215,6 +215,11 @@ + # define BEOS + # define mach_type_known + # endif ++# if defined(__HAIKU__) && defined(_X86_) ++# define I386 ++# define HAIKU ++# define mach_type_known ++# endif + # if defined(LINUX) && (defined(i386) || defined(__i386__)) + # define I386 + # define mach_type_known +@@ -1014,6 +1019,13 @@ + extern int etext[]; + # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) + # endif ++# ifdef HAIKU ++# define OS_TYPE "HAIKU" ++# include ++# define GETPAGESIZE() B_PAGE_SIZE ++ extern int etext[]; ++# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) ++# endif + # ifdef SOLARIS + # define OS_TYPE "SOLARIS" + extern int _etext[], _end[]; +diff --git a/tools/build/v2/engine/boehm_gc/os_dep.c b/tools/build/v2/engine/boehm_gc/os_dep.c +index bb8fa08..a7edf72 100644 +--- a/tools/build/v2/engine/boehm_gc/os_dep.c ++++ b/tools/build/v2/engine/boehm_gc/os_dep.c +@@ -777,6 +777,16 @@ ptr_t GC_get_main_stack_base(void){ + # endif /* BEOS */ + + ++# ifdef HAIKU ++# include ++ptr_t GC_get_main_stack_base(void){ ++ thread_info th; ++ get_thread_info(find_thread(NULL),&th); ++ return th.stack_end; ++} ++# endif /* HAIKU */ ++ ++ + # ifdef OS2 + + ptr_t GC_get_main_stack_base(void) +@@ -1095,7 +1105,7 @@ ptr_t GC_get_main_stack_base(void) + + #endif /* FREEBSD_STACKBOTTOM */ + +-#if !defined(BEOS) && !defined(AMIGA) && !defined(MSWIN32) \ ++#if !defined(BEOS) && !defined(HAIKU) && !defined(AMIGA) && !defined(MSWIN32) \ + && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS) \ + && !defined(CYGWIN32) + +@@ -1154,7 +1164,7 @@ ptr_t GC_get_main_stack_base(void) + # endif /* STACKBOTTOM */ + } + +-# endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !NOSYS, !ECOS */ ++# endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !HAIKU, !NOSYS, !ECOS */ + + #if defined(GC_LINUX_THREADS) && !defined(HAVE_GET_STACK_BASE) + +diff --git a/tools/build/v2/engine/fileunix.c b/tools/build/v2/engine/fileunix.c +index bff3a42..1f60be2 100644 +--- a/tools/build/v2/engine/fileunix.c ++++ b/tools/build/v2/engine/fileunix.c +@@ -80,7 +80,10 @@ struct ar_hdr /* archive file member header - printable ascii */ + }; + #endif + +-#if defined( OS_QNX ) || defined( OS_BEOS ) || defined( OS_MPEIX ) ++# if defined( OS_QNX ) || \ ++ defined( OS_BEOS ) || \ ++ defined( OS_HAIKU ) || \ ++ defined( OS_MPEIX ) + # define NO_AR + # define HAVE_AR + #endif +diff --git a/tools/build/v2/engine/jam.h b/tools/build/v2/engine/jam.h +index 86ad0e8..7c0bb69 100644 +--- a/tools/build/v2/engine/jam.h ++++ b/tools/build/v2/engine/jam.h +@@ -125,6 +125,11 @@ + #define OS_BEOS + #define NO_VFORK + #endif ++#ifdef __HAIKU__ ++ #define unix ++ #define OSMINOR "OS=HAIKU" ++ #define OS_HAIKU ++#endif + #ifdef __bsdi__ + #define OSMINOR "OS=BSDI" + #define OS_BSDI +diff --git a/tools/build/v2/engine/jambase.c b/tools/build/v2/engine/jambase.c +index b15282b..5a127a1 100644 +--- a/tools/build/v2/engine/jambase.c ++++ b/tools/build/v2/engine/jambase.c +@@ -548,6 +548,18 @@ char *jambase[] = { + "NOARSCAN ?= true ;\n", + "STDHDRS ?= /boot/develop/headers/posix ;\n", + "}\n", ++"else if $(OS) = HAIKU\n", ++"{\n", ++"BINDIR ?= /boot/common/bin ;\n", ++"CC ?= gcc ;\n", ++"C++ ?= $(CC) ;\n", ++"FORTRAN ?= \"\" ;\n", ++"LIBDIR ?= /boot/common/lib ;\n", ++"LINK ?= gcc ;\n", ++"LINKLIBS ?= -lnetwork ;\n", ++"NOARSCAN ?= true ;\n", ++"STDHDRS ?= /boot/develop/headers/posix ;\n", ++"}\n", + "else if $(OS) = BEOS\n", + "{\n", + "BINDIR ?= /boot/apps ;\n", +diff --git a/tools/build/v2/tools/builtin.jam b/tools/build/v2/tools/builtin.jam +index 176de13..1c3466f 100644 +--- a/tools/build/v2/tools/builtin.jam ++++ b/tools/build/v2/tools/builtin.jam +@@ -41,7 +41,7 @@ import generate ; + + + .os-names = aix bsd cygwin darwin freebsd hpux iphone linux netbsd openbsd osf +- qnx qnxnto sgi solaris unix unixware windows ++ qnx qnxnto sgi solaris unix unixware windows haiku + elf # Not actually an OS -- used for targeting bare metal where object + # format is ELF. This catches both -elf and -eabi gcc targets and well + # as other compilers targeting ELF. It is not clear how often we need +@@ -76,6 +76,7 @@ local rule default-host-os ( ) + case COHERENT : host-os = unix ; + case DRAGONFLYBSD : host-os = bsd ; + case IRIX : host-os = sgi ; ++ case HAIKU : host-os = haiku ; + case MACOSX : host-os = darwin ; + case KFREEBSD : host-os = freebsd ; + case LINUX : host-os = linux ; +diff --git a/tools/build/v2/tools/builtin.py b/tools/build/v2/tools/builtin.py +index 35c1a40..c430fad 100644 +--- a/tools/build/v2/tools/builtin.py ++++ b/tools/build/v2/tools/builtin.py +@@ -103,6 +103,7 @@ def default_host_os(): + elif host_os == 'MACOSX': host_os = 'darwin' + elif host_os == 'KFREEBSD': host_os = 'freebsd' + elif host_os == 'LINUX': host_os = 'linux' ++ elif host_os == 'HAIKU': host_os = 'haiku' + else: host_os = 'unix' + return host_os.lower() + +diff --git a/tools/build/v2/tools/gcc.jam b/tools/build/v2/tools/gcc.jam +index ef90f05..2de76cf 100644 +--- a/tools/build/v2/tools/gcc.jam ++++ b/tools/build/v2/tools/gcc.jam +@@ -1029,10 +1029,11 @@ rule setup-threading ( targets * : sources * : properties * ) + case cygwin : option = -mthreads ; + case solaris : option = -pthreads ; libs = rt ; + case beos : # No threading options. ++ case haiku : option = ; + case *bsd : option = -pthread ; # There is no -lrt on BSD. + case sgi : # gcc on IRIX does not support multi-threading. + case darwin : # No threading options. +- case * : option = -pthread ; libs = rt ; ++ case * : option = -pthreads ; libs = rt ; + } + + if $(option) +diff --git a/tools/build/v2/tools/gcc.py b/tools/build/v2/tools/gcc.py +index c2f3b02..4f60d22 100644 +--- a/tools/build/v2/tools/gcc.py ++++ b/tools/build/v2/tools/gcc.py +@@ -677,6 +677,9 @@ elif bjam.variable('UNIX'): + elif host_os_name == 'BeOS': + # BeOS has no threading options, don't set anything here. + pass ++ elif host_os_name == 'Haiku': ++ flags('gcc', 'OPTIONS', ['multi'], ['-lroot']) ++ # there is no -lrt on HAIKU + elif host_os_name.endswith('BSD'): + flags('gcc', 'OPTIONS', ['multi'], ['-pthread']) + # there is no -lrt on BSD +diff --git a/tools/build/v2/tools/python.jam b/tools/build/v2/tools/python.jam +index d48bb78..070f5d2 100644 +--- a/tools/build/v2/tools/python.jam ++++ b/tools/build/v2/tools/python.jam +@@ -639,13 +639,14 @@ local rule system-library-dependencies ( target-os ) + case qnx* : return ; + case darwin : return ; + case windows : return ; ++ case haiku : return ; + + case hpux : return rt ; + case *bsd : return pthread gcc:util ; + + case aix : return pthread dl ; + +- case * : return pthread dl ++ case * : return ; pthread dl + gcc:util linux:util ; + } + } +-- +1.8.3.4 + + +From 0d11043b05a45a1bc8091387ba45f1fe41fe2e55 Mon Sep 17 00:00:00 2001 +From: Scott McCreary +Date: Sun, 22 Dec 2013 10:01:23 -0800 +Subject: applying patch type_traits.patch + + +diff --git a/boost/config/platform/haiku.hpp b/boost/config/platform/haiku.hpp +index 1b15c7e..9a3becd 100644 +--- a/boost/config/platform/haiku.hpp ++++ b/boost/config/platform/haiku.hpp +@@ -9,18 +9,26 @@ + + #define BOOST_PLATFORM "Haiku" + +-#define BOOST_NO_INTRINSIC_WCHAR_T + #define BOOST_HAS_UNISTD_H ++#define GLIBC_HAVE_LONG_LONG ++#define BOOST_HAS_STDINT_H ++#define BOOST_HASH_NO_EXTENSIONS + + #define BOOST_HAS_BETHREADS + + #ifndef BOOST_DISABLE_THREADS + # define BOOST_HAS_THREADS + #endif ++#define BOOST_NO_CXX11_HDR_TYPE_TRAITS ++#define BOOST_NO_CXX11_ATOMIC_SMART_PTR ++#define BOOST_NO_CXX11_STATIC_ASSERT ++#define BOOST_NO_CXX11_VARIADIC_MACROS + + // + // thread API's not auto detected: + // ++#define BOOST_HAS_SCHED_YIELD ++#define BOOST_HAS_PTHREAD_YIELD + #define BOOST_HAS_GETTIMEOFDAY + + // boilerplate code: +-- +1.8.3.4 +