1From 8b1be1258d061ef9db9b2b22f95813d051374cfb 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 8a48ec20f7fb03bd5fbcefd5f1e7259bb37fbdb6 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 389501f44db62e8041e7629da8b4ada6dec2e003 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 a92b70f..e1655dd 100644 144--- a/tools/build/src/engine/build.jam 145+++ b/tools/build/src/engine/build.jam 146@@ -583,6 +583,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 7e46e38..67293a0 100755 160--- a/tools/build/src/engine/build.sh 161+++ b/tools/build/src/engine/build.sh 162@@ -150,6 +150,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 e92ab804d523656e6e1954dc74b347e563508ef4 Mon Sep 17 00:00:00 2001 181From: begasus <begasus@gmail.com> 182Date: Sun, 18 Dec 2022 08:16:06 +0100 183Subject: fix build, kudos to Jessicah and waddlesplash 184 185 186diff --git a/libs/filesystem/src/operations.cpp b/libs/filesystem/src/operations.cpp 187index 53dcdb7..f424785 100644 188--- a/libs/filesystem/src/operations.cpp 189+++ b/libs/filesystem/src/operations.cpp 190@@ -2112,8 +2112,13 @@ namespace 191 error_code ec = path_max(path_size); 192 if (ec)return ec; 193 dirent de; 194- buffer = std::malloc((sizeof(dirent) - sizeof(de.d_name)) 195- + path_size + 1); // + 1 for "/0" 196+ #ifdef __HAIKU__ 197+ buffer = std::malloc(sizeof(dirent) 198+ + path_size + 1); 199+ #else 200+ buffer = std::malloc((sizeof(dirent) - sizeof(de.d_name)) 201+ + path_size + 1); // + 1 for "/0" 202+ #endif 203 return ok; 204 } 205 206-- 2072.37.3 208 209 210From 499e9f8a1b17b694a23bd08d6fb8591cc693bf0b Mon Sep 17 00:00:00 2001 211From: PulkoMandy <pulkomandy@pulkomandy.tk> 212Date: Fri, 13 Jan 2023 22:10:19 +0100 213Subject: Temporarily disable use of cfsetspeed in Haiku 214 215It is not available for now. 216 217diff --git a/boost/asio/impl/serial_port_base.ipp b/boost/asio/impl/serial_port_base.ipp 218index 9954f77..a558e8e 100644 219--- a/boost/asio/impl/serial_port_base.ipp 220+++ b/boost/asio/impl/serial_port_base.ipp 221@@ -114,7 +114,8 @@ BOOST_ASIO_SYNC_OP_VOID serial_port_base::baud_rate::store( 222 ec = boost::asio::error::invalid_argument; 223 BOOST_ASIO_SYNC_OP_VOID_RETURN(ec); 224 } 225-# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) 226+# if (defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE)) && !defined(__HAIKU__) 227+ // TODO enable this when Haiku implements cfsetpseed (#18220) 228 ::cfsetspeed(&storage, baud); 229 # else 230 ::cfsetispeed(&storage, baud); 231-- 2322.37.3 233 234