From 4719c5f10a3c25c067755823ae420d956188cb1c Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 6 Aug 2016 22:27:19 +0200 Subject: Import changes from 1.55.0: buildtools diff --git a/tools/build/src/engine/jam.h b/tools/build/src/engine/jam.h index 4e8ffa6..646c26f 100644 --- a/tools/build/src/engine/jam.h +++ b/tools/build/src/engine/jam.h @@ -163,6 +163,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 -- 2.45.2 From 6fc142b52e4cd6cd9ee52f0c0a9c14dd4a653a7b Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 6 Aug 2016 22:27:41 +0200 Subject: Import changes from 1.55.0: sourcecode diff --git a/boost/thread/detail/platform.hpp b/boost/thread/detail/platform.hpp index 172a601..c706e40 100644 --- a/boost/thread/detail/platform.hpp +++ b/boost/thread/detail/platform.hpp @@ -34,7 +34,7 @@ #if ! defined BOOST_THREAD_WIN32 # define BOOST_THREAD_WIN32 #endif -#elif defined(__BEOS__) +#elif defined(__BEOS__) || defined(__HAIKU__) # define BOOST_THREAD_BEOS #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) # define BOOST_THREAD_MACOS -- 2.45.2 From d0d275d71bf429e4c620d22ead3c788c9b9c60ee Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Sat, 14 Oct 2017 11:47:09 +0200 Subject: Haiku needs bsd and _BSD_SOURCE. diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh index 912c947..9a04222 100755 --- a/tools/build/src/engine/build.sh +++ b/tools/build/src/engine/build.sh @@ -327,6 +327,22 @@ case "${B2_TOOLSET}" in CXX_VERSION_OPT=${CXX_VERSION_OPT:---version} B2_CXXFLAGS_RELEASE="-O2 -s" B2_CXXFLAGS_DEBUG="-O0 -g" + + CXX=${CXX:=g++} + # Check whether it's MinGW GCC, which has Windows headers and none of POSIX ones. + machine=$(${CXX} -dumpmachine 2>/dev/null) + if [ $? -ne 0 ]; then + echo "B2_TOOLSET is gcc, but the 'gcc' command cannot be executed." + echo "Make sure 'gcc' is in PATH, or use a different toolset." + exit 1 + fi + case $machine in + *haiku*) + B2_CXX="${CXX} -x c++ -std=c++17" + B2_CXXFLAGS_RELEASE="-O2 -s -D_DEFAULT_SOURCE -lbsd" + B2_CXXFLAGS_DEBUG="-O0 -g" + ;; + esac ;; intel-*) -- 2.45.2 From f96928da13af8cfacf7d08f5c8a1e6142d1059e0 Mon Sep 17 00:00:00 2001 From: Begasus Date: Fri, 25 Aug 2023 10:15:17 +0200 Subject: Add auto_index binary to tools diff --git a/tools/Jamfile.v2 b/tools/Jamfile.v2 index e1391c7..a580eb1 100644 --- a/tools/Jamfile.v2 +++ b/tools/Jamfile.v2 @@ -18,6 +18,7 @@ project ; TOOLS = + auto_index/build//auto_index bcp//bcp inspect/build//inspect quickbook//quickbook -- 2.45.2 From 8ea67e71c939df555c66ef8c959944bbf6189ab4 Mon Sep 17 00:00:00 2001 From: Begasus Date: Sun, 27 Aug 2023 19:13:24 +0200 Subject: Fix missing functions to build libboost_locale diff --git a/boost/config/platform/haiku.hpp b/boost/config/platform/haiku.hpp index 04244c5..e22ac4f 100644 --- a/boost/config/platform/haiku.hpp +++ b/boost/config/platform/haiku.hpp @@ -16,11 +16,6 @@ # 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: // -- 2.45.2 From 3d79d002365c922ddcdc59d3902c4821f9648aca Mon Sep 17 00:00:00 2001 From: Begasus Date: Mon, 28 Aug 2023 18:08:06 +0200 Subject: Fix building the tests diff --git a/libs/predef/test/build.jam b/libs/predef/test/build.jam index d67d932..6406018 100644 --- a/libs/predef/test/build.jam +++ b/libs/predef/test/build.jam @@ -12,7 +12,7 @@ project : requirements # Add explicit dependency since we don't have header scanner for # .m and .mm files. - ../include/boost/predef.h + $(BOOST_ROOT)/boost/predef.h ; using testing ; diff --git a/libs/uuid/test/Jamfile.v2 b/libs/uuid/test/Jamfile.v2 index 023515e..5815a3e 100644 --- a/libs/uuid/test/Jamfile.v2 +++ b/libs/uuid/test/Jamfile.v2 @@ -65,12 +65,12 @@ rule test_all all_rules += [ compile compile/decl_header.cpp : "BOOST_UUID_TEST_HEADER=uuid.hpp" "BOOST_UUID_NO_TYPE_TRAITS" - ../include/boost/uuid/uuid.hpp : + $(BOOST_ROOT)/boost/uuid/uuid.hpp : compile_uuid_no_type_traits ] ; all_rules += [ compile compile/decl_header.cpp : "BOOST_UUID_TEST_HEADER=uuid.hpp" "BOOST_UUID_NO_SIMD" - ../include/boost/uuid/uuid.hpp : + $(BOOST_ROOT)/boost/uuid/uuid.hpp : compile_uuid_no_simd ] ; # ECHO All rules: $(all_rules) ; -- 2.45.2 From 7e1ebde9d822b307ed3d2b89d4391cd668963897 Mon Sep 17 00:00:00 2001 From: PulkoMandy Date: Fri, 13 Jan 2023 21:26:43 +0100 Subject: Haiku currently doesn't have cfsetspeed diff --git a/boost/asio/impl/serial_port_base.ipp b/boost/asio/impl/serial_port_base.ipp index 3fa96fd..76924d4 100644 --- a/boost/asio/impl/serial_port_base.ipp +++ b/boost/asio/impl/serial_port_base.ipp @@ -114,7 +114,8 @@ BOOST_ASIO_SYNC_OP_VOID serial_port_base::baud_rate::store( ec = boost::asio::error::invalid_argument; BOOST_ASIO_SYNC_OP_VOID_RETURN(ec); } -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) +# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) && !defined(__HAIKU__) +// TODO re-enable this for Haiku once cfsetspeed is implemented (#18220) ::cfsetspeed(&storage, baud); # else ::cfsetispeed(&storage, baud); -- 2.45.2 From 52042035419e0cc88f44b2d6a6c26bfff1b3291f Mon Sep 17 00:00:00 2001 From: Conrad Poelman Date: Mon, 3 Aug 2020 18:35:35 -0400 Subject: Remove deprecated inheritance from std::iterator diff --git a/boost/numeric/ublas/detail/iterator.hpp b/boost/numeric/ublas/detail/iterator.hpp index 1723a30..3f5cae8 100644 --- a/boost/numeric/ublas/detail/iterator.hpp +++ b/boost/numeric/ublas/detail/iterator.hpp @@ -107,8 +107,12 @@ namespace boost { namespace numeric { namespace ublas { * via the post increment operator. */ template - struct forward_iterator_base: - public std::iterator { + struct forward_iterator_base { + typedef IC iterator_category; + typedef T value_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef T& reference; typedef I derived_iterator_type; typedef T derived_value_type; @@ -145,9 +149,13 @@ namespace boost { namespace numeric { namespace ublas { * via the post increment and post decrement operator. */ template - struct bidirectional_iterator_base: - public std::iterator { - typedef I derived_iterator_type; + struct forward_iterator_base { + typedef IC iterator_category; + typedef T value_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef T& reference; + typedef I derived_iterator_type; typedef T derived_value_type; // Arithmetic @@ -200,8 +208,12 @@ namespace boost { namespace numeric { namespace ublas { */ template // ISSUE the default for D seems rather dangerous as it can easily be (silently) incorrect - struct random_access_iterator_base: - public std::iterator { + struct forward_iterator_base { + typedef IC iterator_category; + typedef T value_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef T& reference; typedef I derived_iterator_type; typedef T derived_value_type; typedef D derived_difference_type; -- 2.45.2 From c55b93b70dcf474047445746984b305870861684 Mon Sep 17 00:00:00 2001 From: Schrijvers Luc Date: Sat, 6 Jul 2024 17:27:48 +0200 Subject: build fix for sourcetrail diff --git a/boost/process/detail/posix/is_running.hpp b/boost/process/detail/posix/is_running.hpp index 0f86b44..99a13dc 100644 --- a/boost/process/detail/posix/is_running.hpp +++ b/boost/process/detail/posix/is_running.hpp @@ -17,10 +17,12 @@ namespace boost { namespace process { namespace detail { namespace posix { // This bit arrangement of status codes is not guaranteed by POSIX, but (according to comments in // the glibc header) is the same across systems in practice. constexpr int still_active = 0x017f; +#if !defined(__HAIKU__) 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) { -- 2.45.2 From 2111b689eecc46ca4ecdb6b5b869e9a2f001dc53 Mon Sep 17 00:00:00 2001 From: Oscar Lesta Date: Fri, 20 Dec 2024 22:32:12 -0300 Subject: Fix build issue related to dirent->d_name[]. diff --git a/libs/filesystem/src/directory.cpp b/libs/filesystem/src/directory.cpp index 0cf5025..9c28ada 100644 --- a/libs/filesystem/src/directory.cpp +++ b/libs/filesystem/src/directory.cpp @@ -318,8 +318,13 @@ inline std::size_t get_path_max() #endif } +#ifdef __HAIKU__ + if ((max + 1) < NAME_MAX) + max = NAME_MAX - 1; +#else if ((max + 1) < sizeof(dirent().d_name)) max = sizeof(dirent().d_name) - 1; +#endif return max; } @@ -481,7 +486,11 @@ system::error_code dir_itr_create(boost::intrusive_ptr< detail::dir_itr_imp >& i // buffer that is enough for PATH_MAX as the directory name. Still, this doesn't guarantee there won't be // a buffer overrun. The readdir_r API is fundamentally flawed and we should avoid it as much as possible // in favor of readdir. +#ifdef __HAIKU__ + extra_size = (NAME_MAX) + path_max() + 1u; // + 1 for "\0" +#else extra_size = (sizeof(dirent) - sizeof(dirent().d_name)) + path_max() + 1u; // + 1 for "\0" +#endif } } #endif // defined(BOOST_FILESYSTEM_USE_READDIR_R) -- 2.45.2