1From f44a417e60b61bca55986c0eb146b466f5570606 Mon Sep 17 00:00:00 2001 2From: Adrien Destugues <pulkomandy@gmail.com> 3Date: Sat, 6 Aug 2016 22:27:19 +0200 4Subject: Import changes from 1.55.0: buildtools 5 6 7diff --git a/tools/build/src/engine/boehm_gc/include/gc_config_macros.h b/tools/build/src/engine/boehm_gc/include/gc_config_macros.h 8index 762162a..723b4c3 100644 9--- a/tools/build/src/engine/boehm_gc/include/gc_config_macros.h 10+++ b/tools/build/src/engine/boehm_gc/include/gc_config_macros.h 11@@ -62,7 +62,7 @@ 12 13 # if defined(GC_SOLARIS_THREADS) || defined(GC_FREEBSD_THREADS) || \ 14 defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \ 15- defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \ 16+ defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || defined(GC_HAIKU_THREADS) || \ 17 defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \ 18 defined(GC_AIX_THREADS) || defined(GC_NETBSD_THREADS) || \ 19 (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__)) || \ 20diff --git a/tools/build/src/engine/boehm_gc/include/private/gcconfig.h b/tools/build/src/engine/boehm_gc/include/private/gcconfig.h 21index 61cf9eac..427a9be 100644 22--- a/tools/build/src/engine/boehm_gc/include/private/gcconfig.h 23+++ b/tools/build/src/engine/boehm_gc/include/private/gcconfig.h 24@@ -219,6 +219,12 @@ 25 # define I386 26 # define HAIKU 27 # define mach_type_known 28+# endif 29+# if defined(__HAIKU__) && defined(__x86_64__) 30+# define X86_64 31+# define HAIKU 32+# define mach_type_known 33+# endif 34 # if defined(LINUX) && (defined(i386) || defined(__i386__)) 35 # define I386 36 # define mach_type_known 37@@ -1025,6 +1031,13 @@ 38 # extern int etext[]; 39 # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) 40 # endif 41+# ifdef HAIKU 42+# define OS_TYPE "HAIKU" 43+# include <OS.h> 44+# define GETPAGESIZE() B_PAGE_SIZE 45+ extern int etext[]; 46+# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) 47+# endif 48 # ifdef SOLARIS 49 # define OS_TYPE "SOLARIS" 50 extern int _etext[], _end[]; 51diff --git a/tools/build/src/engine/boehm_gc/os_dep.c b/tools/build/src/engine/boehm_gc/os_dep.c 52index 2dd087f..8be17f8 100644 53--- a/tools/build/src/engine/boehm_gc/os_dep.c 54+++ b/tools/build/src/engine/boehm_gc/os_dep.c 55@@ -776,6 +776,15 @@ ptr_t GC_get_main_stack_base(void){ 56 } 57 # endif /* BEOS */ 58 59+# ifdef HAIKU 60+# include <OS.h> 61+ptr_t GC_get_main_stack_base(void){ 62+ thread_info th; 63+ get_thread_info(find_thread(NULL),&th); 64+ return th.stack_end; 65+} 66+# endif /* HAIKU */ 67+ 68 69 # ifdef HAIKU 70 # include <OS.h> 71@@ -1106,7 +1115,7 @@ ptr_t GC_get_main_stack_base(void) 72 73 #endif /* FREEBSD_STACKBOTTOM */ 74 75-#if !defined(BEOS) && !defined(AMIGA) && !defined(MSWIN32) \ 76+#if !defined(BEOS) && !defined(__HAIKU__) && !defined(AMIGA) && !defined(MSWIN32) \ 77 && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS) \ 78 && !defined(CYGWIN32) && !defined(HAIKU) 79 80diff --git a/tools/build/src/engine/jam.h b/tools/build/src/engine/jam.h 81index a6abf41..b774a59 100644 82--- a/tools/build/src/engine/jam.h 83+++ b/tools/build/src/engine/jam.h 84@@ -162,6 +162,11 @@ 85 #define OS_BEOS 86 #define NO_VFORK 87 #endif 88+#ifdef __HAIKU__ 89+ #define unix 90+ #define OSMINOR "OS=HAIKU" 91+ #define OS_HAIKU 92+#endif 93 #ifdef __bsdi__ 94 #define OSMINOR "OS=BSDI" 95 #define OS_BSDI 96diff --git a/tools/build/src/tools/builtin.py b/tools/build/src/tools/builtin.py 97index 1a80c3f..031c014 100644 98--- a/tools/build/src/tools/builtin.py 99+++ b/tools/build/src/tools/builtin.py 100@@ -82,7 +82,7 @@ def variant (name, parents_or_properties, explicit_properties = []): 101 feature.compose ("<variant>" + name, explicit_properties.all()) 102 103 __os_names = """ 104- amiga aix appletv bsd cygwin darwin dos emx freebsd hpux iphone linux netbsd 105+ amiga aix appletv bsd cygwin darwin dos emx freebsd haiku hpux iphone linux netbsd 106 openbsd osf qnx qnxnto sgi solaris sun sunos svr4 sysv ultrix unix unixware 107 vms windows 108 """.split() 109-- 1102.37.3 111 112 113From 172a909099b905fee46a60ef9a00ab9996ec6c0f Mon Sep 17 00:00:00 2001 114From: Adrien Destugues <pulkomandy@gmail.com> 115Date: Sat, 6 Aug 2016 22:27:41 +0200 116Subject: Import changes from 1.55.0: sourcecode 117 118 119diff --git a/boost/thread/detail/platform.hpp b/boost/thread/detail/platform.hpp 120index 172a601..c706e40 100644 121--- a/boost/thread/detail/platform.hpp 122+++ b/boost/thread/detail/platform.hpp 123@@ -34,7 +34,7 @@ 124 #if ! defined BOOST_THREAD_WIN32 125 # define BOOST_THREAD_WIN32 126 #endif 127-#elif defined(__BEOS__) 128+#elif defined(__BEOS__) || defined(__HAIKU__) 129 # define BOOST_THREAD_BEOS 130 #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) 131 # define BOOST_THREAD_MACOS 132-- 1332.37.3 134 135 136From d4d11ecff10e4c9381fc8d42dc2af0eceef87bde Mon Sep 17 00:00:00 2001 137From: Jerome Duval <jerome.duval@gmail.com> 138Date: Sat, 14 Oct 2017 11:47:09 +0200 139Subject: Haiku needs bsd and _BSD_SOURCE. 140 141 142diff --git a/tools/build/src/engine/build.jam b/tools/build/src/engine/build.jam 143index de567dd..a66d791 100644 144--- a/tools/build/src/engine/build.jam 145+++ b/tools/build/src/engine/build.jam 146@@ -590,6 +590,11 @@ if $(OS) = VMS 147 { 148 --defs += VMS ; 149 } 150+if $(OS) = HAIKU 151+{ 152+ --defs += _BSD_SOURCE ; 153+ --libs += -lbsd ; 154+} 155 --defs += YYSTACKSIZE=5000 ; 156 157 if $(with-python) 158diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh 159index 005e4d9..ac4f43f 100755 160--- a/tools/build/src/engine/build.sh 161+++ b/tools/build/src/engine/build.sh 162@@ -156,6 +156,13 @@ case $BOOST_JAM_TOOLSET in 163 BOOST_JAM_OS="NT" 164 ;; 165 166+ *haiku*) 167+ BOOST_JAM_CC=cc 168+ BOOST_JAM_OPT_JAM="$BOOST_JAM_OPT_JAM -D_BSD_SOURCE -lbsd" 169+ BOOST_JAM_OPT_MKJAMBASE="$BOOST_JAM_OPT_MKJAMBASE -D_BSD_SOURCE -lbsd" 170+ BOOST_JAM_OPT_YYACC="$BOOST_JAM_OPT_YYACC -D_BSD_SOURCE -lbsd" 171+ ;; 172+ 173 *) 174 BOOST_JAM_CC=gcc 175 esac 176-- 1772.37.3 178 179 180From 7a66a0e6901e0fb5b1b10c0fba6c28a6b5643e2f Mon Sep 17 00:00:00 2001 181From: Alexander von Gluck IV <kallisti5@unixzen.com> 182Date: Wed, 3 Feb 2021 08:36:01 -0600 183Subject: boost/beast: Fix macro seeing , as args on gcc8 184 185 186diff --git a/boost/beast/core/impl/buffers_prefix.hpp b/boost/beast/core/impl/buffers_prefix.hpp 187index e4a484b..139dfb2 100644 188--- a/boost/beast/core/impl/buffers_prefix.hpp 189+++ b/boost/beast/core/impl/buffers_prefix.hpp 190@@ -43,9 +43,9 @@ public: 191 using value_type = buffers_type<Buffers>; 192 #endif 193 194- BOOST_STATIC_ASSERT(std::is_same< 195+ BOOST_STATIC_ASSERT((std::is_same< 196 typename const_iterator::value_type, 197- typename buffers_prefix_view::value_type>::value); 198+ typename buffers_prefix_view::value_type>::value)); 199 200 using pointer = value_type const*; 201 using reference = value_type; 202-- 2032.37.3 204 205 206From 787d04874f14762b62b17b307779acd703e2745f Mon Sep 17 00:00:00 2001 207From: begasus <begasus@gmail.com> 208Date: Sun, 18 Dec 2022 16:46:28 +0100 209Subject: Fix build, tip provided by Jessicah and waddlesplash 210 211 212diff --git a/libs/filesystem/src/operations.cpp b/libs/filesystem/src/operations.cpp 213index 91fe4d5..8b27cc6 100644 214--- a/libs/filesystem/src/operations.cpp 215+++ b/libs/filesystem/src/operations.cpp 216@@ -2186,12 +2186,17 @@ namespace 217 error_code ec = path_max(path_size); 218 if (ec) 219 return ec; 220- const std::size_t buffer_size = (sizeof(dirent) - sizeof(dirent().d_name)) 221- + path_size + 1; // + 1 for "\0" 222- buffer = std::malloc(buffer_size); 223+ #ifdef __HAIKU__ 224+ buffer = std::malloc(sizeof(dirent) 225+ + path_size + 1); 226+ #else 227+ const std::size_t buffer_size = (sizeof(dirent) - sizeof(dirent().d_name)) 228+ + path_size + 1; // + 1 for "\0" 229+ buffer = std::malloc(buffer_size); 230 if (BOOST_UNLIKELY(!buffer)) 231 return make_error_code(boost::system::errc::not_enough_memory); 232 std::memset(buffer, 0, buffer_size); 233+ #endif 234 return ok; 235 } 236 237-- 2382.37.3 239 240 241From 6e1b2ce2272d11cca5f7b279dec5cbd46b32f6b8 Mon Sep 17 00:00:00 2001 242From: PulkoMandy <pulkomandy@pulkomandy.tk> 243Date: Fri, 13 Jan 2023 21:26:43 +0100 244Subject: Haiku currently doesn't have cfsetspeed 245 246 247diff --git a/boost/asio/impl/serial_port_base.ipp b/boost/asio/impl/serial_port_base.ipp 248index c7ff518..5174970 100644 249--- a/boost/asio/impl/serial_port_base.ipp 250+++ b/boost/asio/impl/serial_port_base.ipp 251@@ -114,7 +114,8 @@ BOOST_ASIO_SYNC_OP_VOID serial_port_base::baud_rate::store( 252 ec = boost::asio::error::invalid_argument; 253 BOOST_ASIO_SYNC_OP_VOID_RETURN(ec); 254 } 255-# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) 256+# if (defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE)) && !defined(__HAIKU__) 257+ // TODO re-enable this for Haiku once cfsetspeed is implemented (#18220) 258 ::cfsetspeed(&storage, baud); 259 # else 260 ::cfsetispeed(&storage, baud); 261-- 2622.37.3 263 264