Files
haikuports/dev-libs/boost/patches/boost-1.55.0.patchset

404 lines
14 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
From f194ab93c5c29020d5f0f4915b1f554645986587 Mon Sep 17 00:00:00 2001
From: Scott McCreary <scottmc2@gmail.com>
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 <boost/config/posix_features.hpp>
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 <OS.h>
+# 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 <OS.h>
+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', ['<threading>multi'], ['-lroot'])
+ # there is no -lrt on HAIKU
elif host_os_name.endswith('BSD'):
flags('gcc', 'OPTIONS', ['<threading>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 <library>rt ;
case *bsd : return <library>pthread <toolset>gcc:<library>util ;
case aix : return <library>pthread <library>dl ;
- case * : return <library>pthread <library>dl
+ case * : return ; <library>pthread <library>dl
<toolset>gcc:<library>util <toolset-intel:platform>linux:<library>util ;
}
}
--
1.8.3.4
From 0d11043b05a45a1bc8091387ba45f1fe41fe2e55 Mon Sep 17 00:00:00 2001
From: Scott McCreary <scottmc2@gmail.com>
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