generated from gaoyang3513/SDK_RK3288
[Mod] First commit
This commit is contained in:
65
package/boost/0001-json-array-erase-relocate.patch
Normal file
65
package/boost/0001-json-array-erase-relocate.patch
Normal file
@ -0,0 +1,65 @@
|
||||
From 07d7c3b2e0f8c6b269ba167117cd3e549df2f342 Mon Sep 17 00:00:00 2001
|
||||
From: Vinnie Falco <vinnie.falco@gmail.com>
|
||||
Date: Wed, 13 Apr 2022 05:49:05 -0700
|
||||
Subject: [PATCH] array::erase relocates correctly
|
||||
|
||||
fix #692
|
||||
|
||||
Signed-off-by: Michael Nosthoff<buildroot@heine.tech>
|
||||
[Upstream status: https://github.com/boostorg/json/issues/692]
|
||||
---
|
||||
boost/json/impl/array.ipp | 5 ++++-
|
||||
test/array.cpp | 16 ++++++++++++++++
|
||||
2 files changed, 20 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/boost/json/impl/array.ipp b/boost/json/impl/array.ipp
|
||||
index 4d067fb5..a2c7fd6d 100644
|
||||
--- a/boost/json/impl/array.ipp
|
||||
+++ b/boost/json/impl/array.ipp
|
||||
@@ -491,8 +491,11 @@ erase(
|
||||
auto const p = &(*t_)[0] +
|
||||
(pos - &(*t_)[0]);
|
||||
destroy(p, p + 1);
|
||||
- relocate(p, p + 1, 1);
|
||||
--t_->size;
|
||||
+ if(t_->size > 0)
|
||||
+ relocate(p, p + 1,
|
||||
+ t_->size - (p -
|
||||
+ &(*t_)[0]));
|
||||
return p;
|
||||
}
|
||||
|
||||
diff --git a/libs/json/test/array.cpp b/libs/json/test/array.cpp
|
||||
index 1cc87566..4516cc78 100644
|
||||
--- a/libs/json/test/array.cpp
|
||||
+++ b/libs/json/test/array.cpp
|
||||
@@ -1269,6 +1269,21 @@ class array_test
|
||||
array{nullptr, "a", "b"}));
|
||||
}
|
||||
|
||||
+ void
|
||||
+ testIssue692()
|
||||
+ {
|
||||
+ array a;
|
||||
+ object obj;
|
||||
+ obj["test1"] = "hello";
|
||||
+ a.push_back(obj);
|
||||
+ a.push_back(obj);
|
||||
+ a.push_back(obj);
|
||||
+ a.push_back(obj);
|
||||
+ a.push_back(obj);
|
||||
+ while(a.size())
|
||||
+ a.erase(a.begin());
|
||||
+ }
|
||||
+
|
||||
void
|
||||
run()
|
||||
{
|
||||
@@ -1283,6 +1298,7 @@ class array_test
|
||||
testExceptions();
|
||||
testEquality();
|
||||
testHash();
|
||||
+ testIssue692();
|
||||
}
|
||||
};
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
From 1a55d1d9c6d1cf7739645080bdd92fe903b4211e Mon Sep 17 00:00:00 2001
|
||||
From: Nikita Kniazev <nok.raven@gmail.com>
|
||||
Date: Wed, 28 Jul 2021 21:06:54 +0300
|
||||
Subject: [PATCH] Rename mips1 to mips and alias mips1 to mips
|
||||
|
||||
[Retrieved from:
|
||||
https://github.com/boostorg/config/commit/1a55d1d9c6d1cf7739645080bdd92fe903b4211e]
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
checks/architecture/Jamfile.jam | 3 ++-
|
||||
checks/architecture/{mips1.cpp => mips.cpp} | 4 ++--
|
||||
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||
rename checks/architecture/{mips1.cpp => mips.cpp} (89%)
|
||||
|
||||
diff --git a/libs/config/checks/architecture/Jamfile.jam b/libs/config/checks/architecture/Jamfile.jam
|
||||
index 2ba54f9ad..c3779d917 100644
|
||||
--- a/libs/config/checks/architecture/Jamfile.jam
|
||||
+++ b/libs/config/checks/architecture/Jamfile.jam
|
||||
@@ -18,7 +18,8 @@ obj 64 : 64.cpp ;
|
||||
|
||||
obj arm : arm.cpp ;
|
||||
obj combined : combined.cpp ;
|
||||
-obj mips1 : mips1.cpp ;
|
||||
+obj mips : mips.cpp ;
|
||||
+alias mips1 : mips ; # Backwards compatibility
|
||||
obj power : power.cpp ;
|
||||
obj riscv : riscv.cpp ;
|
||||
obj sparc : sparc.cpp ;
|
||||
diff --git a/libs/config/checks/architecture/mips1.cpp b/libs/config/checks/architecture/mips.cpp
|
||||
similarity index 89%
|
||||
rename from checks/architecture/mips1.cpp
|
||||
rename to checks/architecture/mips.cpp
|
||||
index b4a670b89..85f85583d 100644
|
||||
--- a/libs/config/checks/architecture/mips1.cpp
|
||||
+++ b/libs/config/checks/architecture/mips.cpp
|
||||
@@ -1,4 +1,4 @@
|
||||
-// mips1.cpp
|
||||
+// mips.cpp
|
||||
//
|
||||
// Copyright (c) 2012 Steven Watanabe
|
||||
//
|
||||
@@ -7,5 +7,5 @@
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#if !(defined(__mips) || defined(_MIPS_ISA_MIPS1) || defined(_R3000))
|
||||
-#error "Not MIPS1"
|
||||
+#error "Not MIPS"
|
||||
#endif
|
||||
364
package/boost/Config.in
Normal file
364
package/boost/Config.in
Normal file
@ -0,0 +1,364 @@
|
||||
comment "boost needs a toolchain w/ C++, threads, wchar"
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
|
||||
|
||||
config BR2_PACKAGE_BOOST
|
||||
bool "boost"
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
# Boost could theorically be built with threading=single, but
|
||||
# that unfortunately doesn't work. Until someone fixes that,
|
||||
# let's depend on threads.
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_USE_WCHAR
|
||||
help
|
||||
A general purpose C++ library
|
||||
|
||||
http://www.boost.org/
|
||||
|
||||
if BR2_PACKAGE_BOOST
|
||||
|
||||
config BR2_PACKAGE_BOOST_ATOMIC
|
||||
bool "boost-atomic"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
help
|
||||
C++11-style atomic<>.
|
||||
|
||||
config BR2_PACKAGE_BOOST_CHRONO
|
||||
bool "boost-chrono"
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
help
|
||||
Useful time utilities. C++11.
|
||||
|
||||
config BR2_PACKAGE_BOOST_CONTAINER
|
||||
bool "boost-container"
|
||||
help
|
||||
Standard library containers and extensions.
|
||||
|
||||
# see
|
||||
# http://www.boost.org/doc/libs/1_78_0/libs/context/doc/html/context/architectures.html
|
||||
# for the list of supported architectures. Sparc pretends to be
|
||||
# supported, but it doesn't build.
|
||||
config BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
bool
|
||||
default y if ((BR2_arm || BR2_armeb) && BR2_ARM_CPU_HAS_ARM)
|
||||
default y if (BR2_aarch64 || BR2_aarch64_be)
|
||||
default y if BR2_i386
|
||||
default y if BR2_mips
|
||||
default y if BR2_mipsel
|
||||
default y if BR2_powerpc
|
||||
default y if BR2_x86_64
|
||||
|
||||
config BR2_PACKAGE_BOOST_CONTEXT
|
||||
bool "boost-context"
|
||||
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
|
||||
|| BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
select BR2_PACKAGE_BOOST_THREAD if !BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
help
|
||||
C++11 context switching library.
|
||||
|
||||
config BR2_PACKAGE_BOOST_CONTRACT
|
||||
bool "boost-contract"
|
||||
# pthread_condattr_setclock
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
help
|
||||
Contract programming for C++.
|
||||
|
||||
comment "boost-contract needs a toolchain w/ NPTL"
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
|
||||
config BR2_PACKAGE_BOOST_COROUTINE
|
||||
bool "boost-coroutine"
|
||||
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context, boost-thread
|
||||
select BR2_PACKAGE_BOOST_CHRONO
|
||||
select BR2_PACKAGE_BOOST_CONTEXT
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
select BR2_PACKAGE_BOOST_THREAD
|
||||
help
|
||||
deprecated coroutine library, the non-depricated coroutine2
|
||||
library is a header-only library and does not need to be
|
||||
selected.
|
||||
|
||||
comment "boost-coroutine needs a toolchain not affected by GCC bug 64735"
|
||||
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
|
||||
config BR2_PACKAGE_BOOST_DATE_TIME
|
||||
bool "boost-date_time"
|
||||
help
|
||||
A set of date-time libraries based on generic programming
|
||||
concepts.
|
||||
|
||||
config BR2_PACKAGE_BOOST_EXCEPTION
|
||||
bool "boost-exception"
|
||||
help
|
||||
The Boost Exception library supports transporting of arbitrary
|
||||
data in exception objects, and transporting of exceptions
|
||||
between threads.
|
||||
|
||||
config BR2_PACKAGE_BOOST_FIBER
|
||||
bool "boost-fiber"
|
||||
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
# mips support uses the "pause" instruction, only available
|
||||
# since mips32r2/mips64r2.
|
||||
depends on !BR2_MIPS_CPU_MIPS32 && !BR2_MIPS_CPU_MIPS64
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context
|
||||
select BR2_PACKAGE_BOOST_CONTEXT
|
||||
select BR2_PACKAGE_BOOST_FILESYSTEM
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
help
|
||||
C++11 userland threads library.
|
||||
|
||||
comment "boost-fiber needs a toolchain w/ NPTL"
|
||||
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
|
||||
comment "boost-fiber needs a toolchain not affected by GCC bug 64735"
|
||||
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
|
||||
|| BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
|
||||
config BR2_PACKAGE_BOOST_FILESYSTEM
|
||||
bool "boost-filesystem"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
|
||||
select BR2_PACKAGE_BOOST_ATOMIC
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
help
|
||||
The Boost Filesystem Library provides portable facilities to
|
||||
query and manipulate paths, files, and directories.
|
||||
|
||||
config BR2_PACKAGE_BOOST_GRAPH
|
||||
bool "boost-graph"
|
||||
select BR2_PACKAGE_BOOST_REGEX
|
||||
help
|
||||
The BGL graph interface and graph components are generic, in
|
||||
the same sense as the the Standard Template Library (STL).
|
||||
|
||||
config BR2_PACKAGE_BOOST_GRAPH_PARALLEL
|
||||
bool "boost-graph_parallel"
|
||||
help
|
||||
The PBGL graph interface and graph components are generic, in
|
||||
the same sense as the the Standard Template Library (STL).
|
||||
|
||||
config BR2_PACKAGE_BOOST_IOSTREAMS
|
||||
bool "boost-iostreams"
|
||||
select BR2_PACKAGE_BZIP2
|
||||
select BR2_PACKAGE_ZLIB
|
||||
help
|
||||
Boost.IOStreams provides a framework for defining streams,
|
||||
stream buffers and i/o filters.
|
||||
|
||||
config BR2_PACKAGE_BOOST_JSON
|
||||
bool "boost-json"
|
||||
select BR2_PACKAGE_BOOST_CONTAINER
|
||||
help
|
||||
Boost.JSON is a portable C++ library which provides containers
|
||||
and algorithms that implement JavaScript Object Notation, or
|
||||
simply "JSON", a lightweight data-interchange format.
|
||||
|
||||
To use the library "header-only" this option is not needed.
|
||||
|
||||
config BR2_PACKAGE_BOOST_LOCALE
|
||||
bool "boost-locale"
|
||||
# When boost-locale is enabled with icu support, Boost no
|
||||
# longer supports building the libboost_* libraries as static
|
||||
# libraries, causing build failures when other boost features
|
||||
# than boost-locale are enabled. To work around this, we
|
||||
# prevent using boost-locale on static linking configurations
|
||||
# with icu enabled. See
|
||||
# https://svn.boost.org/trac/boost/ticket/9685 for more
|
||||
# details.
|
||||
depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU)
|
||||
depends on !(BR2_TOOLCHAIN_HAS_GCC_BUG_64735 && BR2_PACKAGE_ICU) # boost-thread
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
|
||||
|| !BR2_PACKAGE_ICU # boost-thread
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
select BR2_PACKAGE_BOOST_THREAD if BR2_PACKAGE_ICU
|
||||
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
|
||||
help
|
||||
Provide localization and Unicode handling tools for C++.
|
||||
|
||||
comment "boost-locale needs a toolchain w/ dynamic library"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on BR2_PACKAGE_ICU
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
||||
comment "boost-locale needs a toolchain not affected by GCC bug 64735"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on BR2_PACKAGE_ICU
|
||||
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
|
||||
config BR2_PACKAGE_BOOST_LOG
|
||||
bool "boost-log"
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
|
||||
select BR2_PACKAGE_BOOST_ATOMIC
|
||||
select BR2_PACKAGE_BOOST_DATE_TIME
|
||||
select BR2_PACKAGE_BOOST_FILESYSTEM
|
||||
select BR2_PACKAGE_BOOST_REGEX
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
select BR2_PACKAGE_BOOST_THREAD
|
||||
help
|
||||
Logging library.
|
||||
|
||||
comment "boost-log needs a toolchain w/ NPTL"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
|
||||
comment "boost-log needs a toolchain not affected by GCC bug 64735"
|
||||
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
|
||||
config BR2_PACKAGE_BOOST_MATH
|
||||
bool "boost-math"
|
||||
help
|
||||
Boost.Math includes several contributions in the domain of
|
||||
mathematics:
|
||||
|
||||
The Greatest Common Divisor and Least Common
|
||||
Multiple library provides run-time and compile-time evaluation
|
||||
of the greatest common divisor (GCD) or least common multiple
|
||||
(LCM) of two integers.
|
||||
|
||||
The Special Functions library currently provides eight
|
||||
templated special functions, in namespace boost.
|
||||
|
||||
The Complex Number Inverse Trigonometric Functions are the
|
||||
inverses of trigonometric functions currently present in the
|
||||
C++ standard.
|
||||
|
||||
Quaternions are a relative of complex numbers often used to
|
||||
parameterise rotations in three dimentional space.
|
||||
|
||||
Octonions, like quaternions, are a relative of complex
|
||||
numbers.
|
||||
|
||||
config BR2_PACKAGE_BOOST_MPI
|
||||
bool "boost-mpi"
|
||||
help
|
||||
Message Passing Interface library, for use in
|
||||
distributed-memory parallel application programming.
|
||||
|
||||
config BR2_PACKAGE_BOOST_NOWIDE
|
||||
bool "boost-nowide"
|
||||
help
|
||||
Library for cross-platform, unicode aware programming.
|
||||
|
||||
config BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
|
||||
bool "boost-program_options"
|
||||
help
|
||||
The program_options library allows program developers to
|
||||
obtain program options, that is (name, value) pairs from the
|
||||
user, via conventional methods such as command line and config
|
||||
file.
|
||||
|
||||
config BR2_PACKAGE_BOOST_PYTHON
|
||||
bool "boost-python"
|
||||
depends on BR2_PACKAGE_PYTHON3
|
||||
help
|
||||
The Boost Python Library is a framework for interfacing Python
|
||||
and C++. It allows you to quickly and seamlessly expose C++
|
||||
classes functions and objects to Python, and vice-versa,
|
||||
using no special tools -- just your C++ compiler.
|
||||
|
||||
config BR2_PACKAGE_BOOST_RANDOM
|
||||
bool "boost-random"
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
help
|
||||
A complete system for random number generation.
|
||||
|
||||
config BR2_PACKAGE_BOOST_REGEX
|
||||
bool "boost-regex"
|
||||
help
|
||||
A new infrastructure for generic algorithms that builds on top
|
||||
of the new iterator concepts.
|
||||
|
||||
config BR2_PACKAGE_BOOST_SERIALIZATION
|
||||
bool "boost-serialization"
|
||||
help
|
||||
Serialization for persistence and marshalling.
|
||||
|
||||
config BR2_PACKAGE_BOOST_STACKTRACE
|
||||
bool "boost-stacktrace"
|
||||
depends on !BR2_STATIC_LIBS
|
||||
help
|
||||
Gather, store, copy and print backtraces.
|
||||
|
||||
comment "boost-stacktrace needs a toolchain w/ dynamic library"
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
||||
config BR2_PACKAGE_BOOST_SYSTEM
|
||||
bool "boost-system"
|
||||
help
|
||||
Operating system support, including the diagnostics support
|
||||
that will be part of the C++0x standard library.
|
||||
|
||||
config BR2_PACKAGE_BOOST_TEST
|
||||
bool "boost-test"
|
||||
depends on BR2_USE_MMU # fork()
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
select BR2_PACKAGE_BOOST_TIMER
|
||||
help
|
||||
Support for simple program testing, full unit testing, and for
|
||||
program execution monitoring.
|
||||
|
||||
config BR2_PACKAGE_BOOST_THREAD
|
||||
bool "boost-thread"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::current_exception
|
||||
select BR2_PACKAGE_BOOST_CHRONO
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
help
|
||||
Portable C++ multi-threading. C++11, C++14.
|
||||
|
||||
comment "boost-thread needs a toolchain not affected by GCC bug 64735"
|
||||
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
|
||||
config BR2_PACKAGE_BOOST_TIMER
|
||||
bool "boost-timer"
|
||||
select BR2_PACKAGE_BOOST_CHRONO
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
help
|
||||
Event timer, progress timer, and progress display classes.
|
||||
|
||||
config BR2_PACKAGE_BOOST_TYPE_ERASURE
|
||||
bool "boost-type_erasure"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
select BR2_PACKAGE_BOOST_THREAD
|
||||
help
|
||||
Runtime polymorphism based on concepts.
|
||||
|
||||
comment "boost-type_erasure needs a toolchain not affected by GCC bug 64735"
|
||||
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
|
||||
config BR2_PACKAGE_BOOST_WAVE
|
||||
bool "boost-wave"
|
||||
# limitation of assembler for coldfire
|
||||
# error: Tried to convert PC relative branch to absolute jump
|
||||
depends on !BR2_m68k_cf
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
|
||||
select BR2_PACKAGE_BOOST_DATE_TIME
|
||||
select BR2_PACKAGE_BOOST_FILESYSTEM
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
select BR2_PACKAGE_BOOST_THREAD
|
||||
help
|
||||
The Boost.Wave library is a Standards conformant, and highly
|
||||
configurable implementation of the mandated C99/C++
|
||||
preprocessor functionality packed behind an easy to use
|
||||
iterator interface.
|
||||
|
||||
comment "boost-wave needs a toolchain not affected by GCC bug 64735"
|
||||
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
|
||||
endif
|
||||
5
package/boost/boost.hash
Normal file
5
package/boost/boost.hash
Normal file
@ -0,0 +1,5 @@
|
||||
# From https://www.boost.org/users/history/version_1_79_0.html
|
||||
sha256 475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39 boost_1_79_0.tar.bz2
|
||||
|
||||
# Locally computed
|
||||
sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 LICENSE_1_0.txt
|
||||
186
package/boost/boost.mk
Normal file
186
package/boost/boost.mk
Normal file
@ -0,0 +1,186 @@
|
||||
################################################################################
|
||||
#
|
||||
# boost
|
||||
#
|
||||
################################################################################
|
||||
|
||||
BOOST_VERSION = 1.79.0
|
||||
BOOST_SOURCE = boost_$(subst .,_,$(BOOST_VERSION)).tar.bz2
|
||||
BOOST_SITE = https://boostorg.jfrog.io/artifactory/main/release/$(BOOST_VERSION)/source
|
||||
BOOST_INSTALL_STAGING = YES
|
||||
BOOST_LICENSE = BSL-1.0
|
||||
BOOST_LICENSE_FILES = LICENSE_1_0.txt
|
||||
BOOST_CPE_ID_VENDOR = boost
|
||||
|
||||
# keep host variant as minimal as possible
|
||||
HOST_BOOST_FLAGS = --without-icu --with-toolset=gcc \
|
||||
--without-libraries=$(subst $(space),$(comma),atomic chrono context \
|
||||
contract container coroutine date_time exception fiber filesystem graph \
|
||||
graph_parallel iostreams json locale log math mpi nowide program_options \
|
||||
python random serialization stacktrace test thread timer \
|
||||
type_erasure wave)
|
||||
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_ATOMIC),,atomic)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CHRONO),,chrono)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTAINER),,container)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTEXT),,context)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTRACT),,contract)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_COROUTINE),,coroutine)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_DATE_TIME),,date_time)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_EXCEPTION),,exception)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_FIBER),,fiber)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_FILESYSTEM),,filesystem)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_GRAPH),,graph)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_GRAPH_PARALLEL),,graph_parallel)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_IOSTREAMS),,iostreams)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_JSON),,json)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_LOCALE),,locale)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_LOG),,log)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_MATH),,math)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_MPI),,mpi)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_NOWIDE),,nowide)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_PROGRAM_OPTIONS),,program_options)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_PYTHON),,python)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_RANDOM),,random)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_REGEX),,regex)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_SERIALIZATION),,serialization)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_STACKTRACE),,stacktrace)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_SYSTEM),,system)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_TEST),,test)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_THREAD),,thread)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_TIMER),,timer)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_TYPE_ERASURE),,type_erasure)
|
||||
BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_WAVE),,wave)
|
||||
|
||||
BOOST_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS)
|
||||
|
||||
BOOST_FLAGS = --with-toolset=gcc
|
||||
|
||||
ifeq ($(BR2_PACKAGE_ICU),y)
|
||||
BOOST_FLAGS += --with-icu=$(STAGING_DIR)/usr
|
||||
BOOST_DEPENDENCIES += icu
|
||||
else
|
||||
BOOST_FLAGS += --without-icu
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_BOOST_IOSTREAMS),y)
|
||||
BOOST_DEPENDENCIES += bzip2 zlib
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_BOOST_PYTHON),y)
|
||||
BOOST_FLAGS += \
|
||||
--with-python-root=$(HOST_DIR) \
|
||||
--with-python=$(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR)
|
||||
BOOST_TARGET_CXXFLAGS += -I$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR)
|
||||
BOOST_DEPENDENCIES += python3
|
||||
endif
|
||||
|
||||
HOST_BOOST_OPTS += --no-cmake-config toolset=gcc threading=multi \
|
||||
variant=release link=shared runtime-link=shared -j$(PARALLEL_JOBS) -q \
|
||||
--ignore-site-config --layout=system --prefix=$(HOST_DIR) \
|
||||
--user-config=$(@D)/user-config.jam
|
||||
|
||||
ifeq ($(BR2_MIPS_OABI32),y)
|
||||
BOOST_ABI = o32
|
||||
else ifeq ($(BR2_arm)$(BR2_armeb)$(BR2_aarch64)$(BR2_aarch64_be),y)
|
||||
BOOST_ABI = aapcs
|
||||
else
|
||||
BOOST_ABI = sysv
|
||||
endif
|
||||
|
||||
BOOST_OPTS += --no-cmake-config \
|
||||
toolset=gcc \
|
||||
threading=multi \
|
||||
abi=$(BOOST_ABI) \
|
||||
variant=$(if $(BR2_ENABLE_RUNTIME_DEBUG),debug,release) \
|
||||
-j$(PARALLEL_JOBS) \
|
||||
-q \
|
||||
--ignore-site-config \
|
||||
--layout=system \
|
||||
--user-config=$(@D)/user-config.jam
|
||||
|
||||
ifeq ($(BR2_sparc64),y)
|
||||
BOOST_OPTS += architecture=sparc instruction-set=ultrasparc
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_sparc),y)
|
||||
BOOST_OPTS += architecture=sparc instruction-set=v8
|
||||
endif
|
||||
|
||||
# By default, Boost build and installs both the shared and static
|
||||
# variants. Override that if we want static only or shared only.
|
||||
ifeq ($(BR2_STATIC_LIBS),y)
|
||||
BOOST_OPTS += link=static runtime-link=static
|
||||
else ifeq ($(BR2_SHARED_LIBS),y)
|
||||
BOOST_OPTS += link=shared runtime-link=shared
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_BOOST_LOCALE),y)
|
||||
ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
|
||||
# posix backend needs monetary.h which isn't available on uClibc
|
||||
BOOST_OPTS += boost.locale.posix=off
|
||||
endif
|
||||
|
||||
BOOST_DEPENDENCIES += $(if $(BR2_ENABLE_LOCALE),,libiconv)
|
||||
endif
|
||||
|
||||
BOOST_WITHOUT_FLAGS_COMMASEPARATED += $(subst $(space),$(comma),$(strip $(BOOST_WITHOUT_FLAGS)))
|
||||
BOOST_FLAGS += $(if $(BOOST_WITHOUT_FLAGS_COMMASEPARATED), --without-libraries=$(BOOST_WITHOUT_FLAGS_COMMASEPARATED))
|
||||
|
||||
# how verbose should the build be?
|
||||
BOOST_OPTS += $(if $(QUIET),-d0,-d+1)
|
||||
HOST_BOOST_OPTS += $(if $(QUIET),-d0,-d+1)
|
||||
|
||||
define BOOST_CONFIGURE_CMDS
|
||||
cd $(@D) && ./bootstrap.sh $(BOOST_FLAGS)
|
||||
echo "using gcc : `$(TARGET_CC) -dumpversion` : $(TARGET_CXX) : <cxxflags>\"$(BOOST_TARGET_CXXFLAGS)\" <linkflags>\"$(TARGET_LDFLAGS)\" ;" > $(@D)/user-config.jam
|
||||
sed -i "s/: -O.* ;/: $(TARGET_OPTIMIZATION) ;/" $(@D)/tools/build/src/tools/gcc.jam
|
||||
endef
|
||||
|
||||
define BOOST_BUILD_CMDS
|
||||
cd $(@D) && $(TARGET_MAKE_ENV) ./b2 $(BOOST_OPTS)
|
||||
endef
|
||||
|
||||
define BOOST_INSTALL_TARGET_CMDS
|
||||
cd $(@D) && $(TARGET_MAKE_ENV) ./b2 $(BOOST_OPTS) \
|
||||
--prefix=$(TARGET_DIR)/usr install
|
||||
endef
|
||||
|
||||
define BOOST_INSTALL_STAGING_CMDS
|
||||
cd $(@D) && $(TARGET_MAKE_ENV) ./b2 $(BOOST_OPTS) \
|
||||
--prefix=$(STAGING_DIR)/usr install
|
||||
endef
|
||||
|
||||
# These hooks will help us to detect missing select in Config.in
|
||||
# Indeed boost buildsystem can select a library even if the user has
|
||||
# disable it
|
||||
define BOOST_REMOVE_TARGET_LIBRARIES
|
||||
rm -rf $(TARGET_DIR)/usr/lib/libboost_*
|
||||
endef
|
||||
|
||||
BOOST_PRE_INSTALL_TARGET_HOOKS += BOOST_REMOVE_TARGET_LIBRARIES
|
||||
|
||||
define BOOST_CHECK_TARGET_LIBRARIES
|
||||
@$(foreach disabled,$(BOOST_WITHOUT_FLAGS),\
|
||||
! ls $(TARGET_DIR)/usr/lib/libboost_$(disabled)* 1>/dev/null 2>&1 || \
|
||||
! echo "libboost_$(disabled) shouldn't have been installed: missing select in boost/Config.in" || \
|
||||
exit 1;)
|
||||
endef
|
||||
|
||||
BOOST_POST_INSTALL_TARGET_HOOKS += BOOST_CHECK_TARGET_LIBRARIES
|
||||
|
||||
define HOST_BOOST_CONFIGURE_CMDS
|
||||
cd $(@D) && ./bootstrap.sh $(HOST_BOOST_FLAGS)
|
||||
echo "using gcc : `$(HOST_CC) -dumpversion` : $(HOSTCXX) : <cxxflags>\"$(HOST_CXXFLAGS)\" <linkflags>\"$(HOST_LDFLAGS)\" ;" > $(@D)/user-config.jam
|
||||
endef
|
||||
|
||||
define HOST_BOOST_BUILD_CMDS
|
||||
cd $(@D) && ./b2 $(HOST_BOOST_OPTS)
|
||||
endef
|
||||
|
||||
define HOST_BOOST_INSTALL_CMDS
|
||||
cd $(@D) && ./b2 $(HOST_BOOST_OPTS) install
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
$(eval $(host-generic-package))
|
||||
Reference in New Issue
Block a user