boost: bump to v1.7.5

This commit is contained in:
lean 2021-03-28 00:17:34 +08:00
parent b1eec3e73b
commit 41544f0156
6 changed files with 120 additions and 1586 deletions

View File

@ -11,13 +11,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=boost
PKG_VERSION:=1.73.0
PKG_SOURCE_VERSION:=1_73_0
PKG_RELEASE:=1
PKG_VERSION:=1.75.0
PKG_SOURCE_VERSION:=1_75_0
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)_$(PKG_SOURCE_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/$(PKG_NAME)/$(PKG_NAME)/$(PKG_VERSION) https://dl.bintray.com/boostorg/release/$(PKG_VERSION)/source/
PKG_HASH:=4eb3b8d442b426dc35346235c8733b5ae35ba431690e38c6a8263dce9fcbb402
PKG_HASH:=953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb
PKG_MAINTAINER:=Carlos M. Ferreira <carlosmf.pt@gmail.com>
PKG_LICENSE:=BSL-1.0
@ -32,7 +32,6 @@ PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
define Package/boost/Default
SECTION:=libs
@ -43,7 +42,7 @@ define Package/boost/Default
endef
define Package/boost/description
This package provides the Boost v1.73.0 libraries.
This package provides the Boost v1.75.0 libraries.
Boost is a set of free, peer-reviewed, portable C++ source libraries.
This package provides the following run-time libraries:
@ -60,9 +59,11 @@ This package provides the following run-time libraries:
- graph
- - graph-parallel
- iostreams
- locale (Requires kernel being compiled with full language support)
- json
- locale
- log
- math
- nowide
- program_options
- python3
- random
@ -76,10 +77,10 @@ This package provides the following run-time libraries:
- wave
There are many more header-only libraries supported by Boost.
See more at http://www.boost.org/doc/libs/1_72_0/
See more at http://www.boost.org/doc/libs/1_75_0/
endef
PKG_BUILD_DEPENDS:=boost/host PACKAGE_python3:python3
PKG_BUILD_DEPENDS:=boost/host
include ../../lang/python/python3-version.mk
BOOST_PYTHON3_VER=$(PYTHON3_VERSION)
@ -116,7 +117,7 @@ define Package/boost/config
# Invisible config dependency
config boost-context-exclude
bool
default y if (TARGET_arc770 || TARGET_archs38 || TARGET_octeon || TARGET_octeontx)
default y if (TARGET_arc770 || TARGET_archs38)
default n
config boost-coroutine-exclude
@ -277,12 +278,10 @@ define Package/boost/config
select PACKAGE_boost-graph
default m if ALL
$(foreach lib,$(BOOST_LIBS), \
$(foreach lib,$(BOOST_LIBS),
config PACKAGE_boost-$(lib)
prompt "Boost $(lib) $(if $(findstring python3,$(lib)),$(paren_left)v$(BOOST_PYTHON3_VER)$(paren_right) ,)library."
default m if ALL
$(if $(findstring locale,$(lib)),depends on BUILD_NLS,)\
$(if $(findstring python3,$(lib)),depends on PACKAGE_python3,)\
$(if $(findstring fiber,$(lib)),depends on !boost-fiber-exclude,)\
$(if $(findstring context,$(lib)),depends on !boost-context-exclude,)
$(if $(findstring coroutine,$(lib)),depends on !boost-coroutine-exclude,)
@ -302,12 +301,17 @@ endef
define Build/Configure
endef
define Package/boost/Default/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/libboost_$(2)*.so* $(1)/usr/lib/
endef
# 1: short name
# 2: dependencies on other boost libraries (short name)
# 3: dependencies on other packages
# 4: conditional/inward dependencies
# 5: dependencies compiled only when this package has been selected
define DefineBoostLibrary
BOOST_DEPENDS+= +$(if $(4),$(4):boost-$(1),boost-$(1))
PKG_CONFIG_DEPENDS+= CONFIG_PACKAGE_boost-$(1)
@ -316,13 +320,17 @@ define DefineBoostLibrary
define Package/boost-$(1)
$(call Package/boost/Default)
TITLE+= ($(1))
DEPENDS+= $$(foreach lib,$(2),+boost-$$(lib)) $(3) $(if $(4),@$(4),)
DEPENDS+= $(foreach lib,$(2),+boost-$(lib)) $(3) $(if $(4),@$(4),) $(patsubst %,+PACKAGE_boost-$(1):%,$(5))
HIDDEN:=1
endef
define Package/boost-$(1)/description
This package contains the Boost $(1) library.
endef
define Package/boost-$(1)/install
$(if $(CONFIG_boost-static-libs),true,$(call Package/boost/Default/install,$$(1),$(1)))
endef
endef
$(eval $(call DefineBoostLibrary,atomic,system))
@ -336,15 +344,17 @@ $(eval $(call DefineBoostLibrary,date_time))
$(eval $(call DefineBoostLibrary,fiber,coroutine filesystem,,!boost-fiber-exclude))
$(eval $(call DefineBoostLibrary,filesystem,system))
$(eval $(call DefineBoostLibrary,graph,regex))
$(eval $(call DefineBoostLibrary,iostreams,,+zlib +liblzma +libbz2 +zstd))
$(eval $(call DefineBoostLibrary,locale,system,$(ICONV_DEPENDS),BUILD_NLS))
$(eval $(call DefineBoostLibrary,iostreams,,,,zlib liblzma libbz2 libzstd))
$(eval $(call DefineBoostLibrary,json,container))
$(eval $(call DefineBoostLibrary,locale,system chrono thread,,,icu))
$(eval $(call DefineBoostLibrary,log,system chrono date_time thread filesystem regex))
$(eval $(call DefineBoostLibrary,math))
#$(eval $(call DefineBoostLibrary,mpi,,)) # OpenMPI does no exist in OpenWRT at this time.
$(eval $(call DefineBoostLibrary,nowide))
$(eval $(call DefineBoostLibrary,program_options))
$(eval $(call DefineBoostLibrary,python3,,,PACKAGE_python3))
$(eval $(call DefineBoostLibrary,python3,,,,python3-base))
$(eval $(call DefineBoostLibrary,random,system))
$(eval $(call DefineBoostLibrary,regex))
$(eval $(call DefineBoostLibrary,regex,,,,icu))
$(eval $(call DefineBoostLibrary,serialization))
$(eval $(call DefineBoostLibrary,wserialization,serialization))
$(eval $(call DefineBoostLibrary,stacktrace))
@ -367,17 +377,17 @@ define Host/Compile
endef
CONFIGURE_PREFIX:=$(PKG_INSTALL_DIR)
TARGET_LDFLAGS += -pthread -lrt
TARGET_LDFLAGS += -pthread -lrt -lstdc++ -Wl,--gc-sections,--as-needed,--print-gc-sections
TARGET_CFLAGS += \
$(if $(CONFIG_SOFT_FLOAT),-DBOOST_NO_FENV_H) -fPIC
$(if $(CONFIG_SOFT_FLOAT),-DBOOST_NO_FENV_H) -fPIC -ffunction-sections -fdata-sections -flto
EXTRA_CXXFLAGS += $(if $(CONFIG_GCC_USE_VERSION_5),-std=gnu++14,-std=gnu++17)
EXTRA_CXXFLAGS += $(if $(CONFIG_GCC_USE_VERSION_10),-std=gnu++20,$(if $(CONFIG_GCC_USE_VERSION_5),-std=gnu++14,-std=gnu++17))
ifneq ($(findstring mips,$(ARCH)),)
BOOST_ABI = o32
ifneq ($(findstring 64,$(ARCH)),)
BOOST_ABI = o64
BOOST_ABI = n64
endif
else ifneq ($(findstring arm,$(ARCH)),)
BOOST_ABI = aapcs
@ -426,8 +436,7 @@ define Build/Compile
) \
) \
) \
$(if $(CONFIG_PACKAGE_boost-locale),boost.locale.iconv=on -sICONV_PATH=$(ICONV_PREFIX) boost.locale.posix=$(if $(USE_MUSL),on,off), \
boost.locale.iconv=off) \
$(if $(CONFIG_PACKAGE_boost-locale),boost.locale.std=off boost.locale.posix=off) \
\
$(if $(CONFIG_PACKAGE_boost-iostreams),-sNO_BZIP2=1 -sZLIB_INCLUDE=$(STAGING_DIR)/usr/include \
-sZLIB_LIBPATH=$(STAGING_DIR)/usr/lib) \
@ -480,28 +489,16 @@ define Host/Install
$(CP) $(HOST_BUILD_DIR)/tools/build/src/engine/b2 $(STAGING_DIR_HOSTPKG)/bin/
endef
define Package/boost/Default/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/libboost_$(2)*.so* $(1)/usr/lib/
endef
define Package/boost-test/install
$(if $(CONFIG_boost-static-libs),true,
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/libboost_unit_test_framework*.so* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/lib/libboost_prg_exec_monitor*.so* $(1)/usr/lib/
endef
define BuildBoostLibrary
define Package/boost-$(1)/install
$(call Package/boost/Default/install,$$(1),$(1))
endef
$$(eval $$(call BuildPackage,boost-$(1)))
$(CP) $(PKG_INSTALL_DIR)/lib/libboost_{unit_test_framework,prg_exec_monitor}*.so* $(1)/usr/lib/
)
endef
$(eval $(call HostBuild))
$(foreach lib,$(BOOST_LIBS),$(eval $(call BuildBoostLibrary,$(lib))))
$(foreach lib,$(BOOST_LIBS),$(eval $(call BuildPackage,boost-$(lib))))
$(eval $(call BuildPackage,boost-test))
$(eval $(call BuildPackage,boost-libs))
$(eval $(call BuildPackage,boost))

View File

@ -1,68 +0,0 @@
From 95d82acc57bb7d8bae431f7a6ce0707aac3ef33f Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Thu, 5 Sep 2019 19:41:13 -0700
Subject: [PATCH] Use eventfd() function with uClibc
The Boost eventfd code either directly makes the eventfd system call
using __NR_eventfd (when __GLIBC_MINOR is less than 8), or otherwise
uses the eventfd() function provided by the C library.
However, since uClibc pretends to be glibc 2.2, the Boost eventfd code
directly uses the system call. While it works fine on most
architectures, it doesn't on ARC since __NR_eventfd is not defined on
this architecture. However, eventfd() is properly implemented.
So, this patch adjusts the logic used by Boost to consider uClibc as a
C library providing the eventfd() function.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
a/boost/asio/detail/impl/eventfd_select_interrupter.ipp | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/boost/asio/detail/impl/eventfd_select_interrupter.ipp b/boost/asio/detail/impl/eventfd_select_interrupter.ipp
index 38d4b2a61..e16cc8b00 100644
--- a/boost/asio/detail/impl/eventfd_select_interrupter.ipp
+++ b/boost/asio/detail/impl/eventfd_select_interrupter.ipp
@@ -23,11 +23,11 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
-#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
+#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 2
# include <asm/unistd.h>
-#else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
+#else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 2
# include <sys/eventfd.h>
-#endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
+#endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 2
#include <boost/asio/detail/cstdint.hpp>
#include <boost/asio/detail/eventfd_select_interrupter.hpp>
#include <boost/asio/detail/throw_error.hpp>
@@ -46,14 +46,14 @@ eventfd_select_interrupter::eventfd_select_interrupter()
void eventfd_select_interrupter::open_descriptors()
{
-#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
+#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 2
write_descriptor_ = read_descriptor_ = syscall(__NR_eventfd, 0);
if (read_descriptor_ != -1)
{
::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK);
::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC);
}
-#else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
+#else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 2
# if defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK)
write_descriptor_ = read_descriptor_ =
::eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK);
@@ -70,7 +70,7 @@ void eventfd_select_interrupter::open_descriptors()
::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC);
}
}
-#endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
+#endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 2
if (read_descriptor_ == -1)
{

View File

@ -1,11 +0,0 @@
--- a/boost/outcome/experimental/status-code/status_code_ptr.hpp 2020-04-28 09:23:14.792565200 +0100
+++ b/boost/outcome/experimental/status-code/status_code_ptr.hpp 2020-04-28 09:24:34.311741000 +0100
@@ -103,7 +103,7 @@
#endif
virtual void _do_erased_copy(status_code<void> &dst, const status_code<void> &src, size_t /*unused*/) const override // NOLINT
{
- assert(dst.domain() == *this);
+ // Note that dst will not have its domain set
assert(src.domain() == *this);
auto &d = static_cast<_mycode &>(dst); // NOLINT
const auto &_s = static_cast<const _mycode &>(src); // NOLINT

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,70 @@
--- a/libs/context/src/asm/jump_mips64_n64_elf_gas.S
+++ b/libs/context/src/asm/jump_mips64_n64_elf_gas.S
@@ -67,7 +67,7 @@ jump_fcontext:
sd $ra, 144($sp) # save RA
sd $ra, 152($sp) # save RA as PC
-
+#if defined(__mips_hard_float)
s.d $f24, 0($sp) # save F24
s.d $f25, 8($sp) # save F25
s.d $f26, 16($sp) # save F26
@@ -76,6 +76,7 @@ jump_fcontext:
s.d $f29, 40($sp) # save F29
s.d $f30, 48($sp) # save F30
s.d $f31, 56($sp) # save F31
+#endif
# store SP (pointing to old context-data) in v0 as return
move $v0, $sp
@@ -83,6 +84,7 @@ jump_fcontext:
# get SP (pointing to new context-data) from a0 param
move $sp, $a0
+#if defined(__mips_hard_float)
l.d $f24, 0($sp) # restore F24
l.d $f25, 8($sp) # restore F25
l.d $f26, 16($sp) # restore F26
@@ -91,6 +93,7 @@ jump_fcontext:
l.d $f29, 40($sp) # restore F29
l.d $f30, 48($sp) # restore F30
l.d $f31, 56($sp) # restore F31
+#endif
ld $s0, 64($sp) # restore S0
ld $s1, 72($sp) # restore S1
--- a/libs/context/src/asm/ontop_mips64_n64_elf_gas.S
+++ b/libs/context/src/asm/ontop_mips64_n64_elf_gas.S
@@ -67,7 +67,7 @@ ontop_fcontext:
sd $ra, 144($sp) # save RA
sd $ra, 152($sp) # save RA as PC
-
+#if defined(__mips_hard_float)
s.d $f24, 0($sp) # save F24
s.d $f25, 8($sp) # save F25
s.d $f26, 16($sp) # save F26
@@ -76,6 +76,7 @@ ontop_fcontext:
s.d $f29, 40($sp) # save F29
s.d $f30, 48($sp) # save F30
s.d $f31, 56($sp) # save F31
+#endif
# store SP (pointing to context-data) in t0
move $t0, $sp
@@ -83,6 +84,7 @@ ontop_fcontext:
# restore SP (pointing to context-data) from a0
move $sp, $a0
+#if defined(__mips_hard_float)
l.d $f24, 0($sp) # restore F24
l.d $f25, 8($sp) # restore F25
l.d $f26, 16($sp) # restore F26
@@ -91,6 +93,7 @@ ontop_fcontext:
l.d $f29, 40($sp) # restore F29
l.d $f30, 48($sp) # restore F30
l.d $f31, 56($sp) # restore F31
+#endif
ld $s0, 64($sp) # restore S0
ld $s1, 72($sp) # restore S1

View File

@ -0,0 +1,11 @@
--- a/boost/fiber/detail/cpu_relax.hpp
+++ b/boost/fiber/detail/cpu_relax.hpp
@@ -47,7 +47,7 @@ namespace detail {
# else
# define cpu_relax() asm volatile ("nop" ::: "memory");
# endif
-#elif BOOST_ARCH_MIPS && (__mips_isa_rev > 1)
+#elif BOOST_ARCH_MIPS && (((__mips_isa_rev > 1) && defined(__mips32)) || ((__mips_isa_rev > 2) && defined(__mips64)))
# define cpu_relax() asm volatile ("pause" ::: "memory");
#elif BOOST_ARCH_PPC
// http://code.metager.de/source/xref/gnu/glibc/sysdeps/powerpc/sys/platform/ppc.h