boost: 1.63 Revision 3 -> Python 3.6 Support Fixed and Unsupported Target Fixes

Update:
 - Python 3.6 support fixed. It is now correctly compiled and available.

Fixes:
 - disabled context and fiber for unsupported targets

There are several architectures which are not supported by context nor
 fiber. Because of this, Boost build was failing targets. This created the
 situation where the other boost libs were not being built and consequently,
 becoming unavailable  at the OpenWRT/LEDE repositories.
To solve this issue, it was necessary to disabled fiber and context for
 the incompatible targets.

Boost.Fiber is disabled for:
 -> ar7, rb532, brcm63xx.smp, brcm63xx, brcm47xx, brcm47xx.legacy, brcm2708,
    au1000, ath25, adm8668 and adm5120.

Boost.Context is disabled for:
 -> avr32, octeon and netlogic.

Signed-off-by: Carlos Miguel Ferreira <carlosmf.pt@gmail.com>
This commit is contained in:
Carlos Miguel Ferreira 2017-02-22 02:58:50 +00:00
parent 4bceecac96
commit 21091fa0ac
No known key found for this signature in database
GPG Key ID: 33A82DFF65092E55
1 changed files with 93 additions and 45 deletions

View File

@ -18,7 +18,7 @@ include $(INCLUDE_DIR)/target.mk
PKG_NAME:=boost
PKG_VERSION:=1.63.0
PKG_SOURCE_VERSION:=1_63_0
PKG_RELEASE:=2
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)_$(PKG_SOURCE_VERSION).tar.bz2
PKG_SOURCE_URL:=https://sourceforge.net/projects/boost/files/boost/$(PKG_VERSION)
@ -56,6 +56,14 @@ Boost is a set of free, peer-reviewed, portable C++ source libraries.
| - Boost.Locale |
| - Boost.Coroutine2 |
| - Boost.Fiber |
| Also, due to hardware contraints, the following libs and those that are |
| dependent, are disabled for some Targets. |
| - Boost.Context |
| - Disabled for -> avr32, octeon and netlogic. |
| - Boost.Fiber |
| - Disabled for -> ar7, rb532, brcm63xx.smp, brcm63xx, brcm47xx, |
| brcm47xx.legacy, brcm2708_bcm2708, au1000, ath25, |
| adm8668 and adm5120. |
-----------------------------------------------------------------------------
This package provides the following run-time libraries:
@ -64,11 +72,11 @@ This package provides the following run-time libraries:
- container
- context
- coroutine (Deprecated - use Coroutine2)
- - coroutine2 (Requires GCC v5 and up)
- - coroutine2 (Requires GCC v5 or newer)
- date_time
- exception
- filesystem
- fiber (Requires GCC v5 and up)
- fiber (Requires GCC v5 or newer)
- graph
- - graph-parallel
- iostreams
@ -227,34 +235,69 @@ define Package/boost/config
config boost-libs-all
bool "Include all Boost libraries."
default m if ALL
select PACKAGE_boost-libs
select boost-test-pkg
select boost-coroutine2
select boost-graph-parallel
select PACKAGE_boost-container
select PACKAGE_boost-date_time
select PACKAGE_boost-iostreams
select PACKAGE_boost-math
select PACKAGE_boost-program_options
select PACKAGE_boost-serialization
select PACKAGE_boost-signals
select PACKAGE_boost-regex
select PACKAGE_boost-graph if PACKAGE_boost-regex
select PACKAGE_boost-system
select PACKAGE_boost-atomic if PACKAGE_boost-system
select PACKAGE_boost-chrono if PACKAGE_boost-system
select PACKAGE_boost-random if PACKAGE_boost-system
select PACKAGE_boost-filesystem if PACKAGE_boost-system
select PACKAGE_boost-locale if PACKAGE_boost-system
select PACKAGE_boost-timer if PACKAGE_boost-chrono
select PACKAGE_boost-thread if PACKAGE_boost-chrono&&PACKAGE_boost-atomic
select PACKAGE_boost-context if PACKAGE_boost-chrono&&PACKAGE_boost-thread
select PACKAGE_boost-coroutine if PACKAGE_boost-context
select PACKAGE_boost-fiber if boost-coroutine2
select PACKAGE_boost-log if PACKAGE_boost-chrono&&PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem&&PACKAGE_boost-regex
select PACKAGE_boost-wave if PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem
select PACKAGE_boost-python
select PACKAGE_boost-python3
select boost-test-pkg if PACKAGE_boost-system&&PACKAGE_boost-timer
select boost-coroutine2 if PACKAGE_boost-coroutine
select boost-graph-parallel if PACKAGE_boost-graph
config boost-test-pkg
depends on PACKAGE_boost-system&&PACKAGE_boost-timer
bool "Boost test package."
default m if ALL
select PACKAGE_boost-test
config boost-coroutine2
depends on !@GCC_VERSION_4_8
depends on !@GCC_VERSION_4_8&&PACKAGE_boost-coroutine
bool "Boost couroutine2 support."
select PACKAGE_boost-coroutine
default n
default m if ALL
config boost-graph-parallel
depends on PACKAGE_boost-graph
bool "Boost parallel graph support."
select PACKAGE_boost-graph
default n
default m if ALL
$(foreach lib,$(BOOST_LIBS), \
config PACKAGE_boost-$(lib)
prompt "Boost $(lib) library."
default m if ALL
$(if $(findstring locale,$(lib)),depends on BUILD_NLS,)\
$(if $(findstring graph,$(lib)),depends on PACKAGE_boost-regex,)\
$(if $(findstring atomic,$(lib)),depends on PACKAGE_boost-system,)\
$(if $(findstring chrono,$(lib)),depends on PACKAGE_boost-system,)\
$(if $(findstring random,$(lib)),depends on PACKAGE_boost-system,)\
$(if $(findstring filesystem,$(lib)),depends on PACKAGE_boost-system,)\
$(if $(findstring locale,$(lib)),depends on PACKAGE_boost-system&&BUILD_NLS,)\
$(if $(findstring timer,$(lib)),depends on PACKAGE_boost-chrono,)\
$(if $(findstring thread,$(lib)),depends on PACKAGE_boost-chrono&&PACKAGE_boost-atomic,)\
$(if $(findstring context,$(lib)),depends on PACKAGE_boost-chrono&&PACKAGE_boost-thread&&@(!TARGET_avr32&&!TARGET_octeon&&!TARGET_netlogic),)\
$(if $(findstring coroutine,$(lib)),depends on PACKAGE_boost-context,)\
$(if $(findstring fiber,$(lib)),depends on @boost-coroutine2&&@(!TARGET_ar7&&!TARGET_rb532&&!TARGET_brcm63xx_smp&&!TARGET_brcm63xx&&!TARGET_brcm47xx&&!TARGET_brcm47xx_legacy&&!TARGET_brcm2708_bcm2708&&!TARGET_au1000&&!TARGET_ath25&&!TARGET_adm8668&&!TARGET_adm5120),)\
$(if $(findstring log,$(lib)),depends on PACKAGE_boost-chrono&&PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem&&PACKAGE_boost-regex,)\
$(if $(findstring wave,$(lib)),depends on PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem,)\
$(if $(findstring python,$(lib)),depends on PACKAGE_$(lib),)
)
endmenu
@ -266,14 +309,13 @@ define Package/boost-test
$(call Package/boost/Default)
TITLE+= (test)
HIDDEN:=1
DEPENDS+=+boost-system +boost-timer
endef
define Build/Configure
endef
# 1: short name
# 2: dependencies on other boost libraries (short name)
# 2: dependencies on other boost libraries (short name) - Deprecated
# 3: dependencies on other packages
# 4: conditional/inward dependencies
define DefineBoostLibrary
@ -286,7 +328,7 @@ define DefineBoostLibrary
define Package/boost-$(1)
$(call Package/boost/Default)
TITLE+= ($(1))
DEPENDS+= $$(foreach lib,$(2),+boost-$$(lib)) $(3) $(if $(4),@$(4),)
DEPENDS+= $(3) $(if $(4),@$(4),)
HIDDEN:=1
endef
@ -295,32 +337,37 @@ define DefineBoostLibrary
endef
endef
$(eval $(call DefineBoostLibrary,atomic,system,))
$(eval $(call DefineBoostLibrary,chrono,system,))
$(eval $(call DefineBoostLibrary,container,,))
$(eval $(call DefineBoostLibrary,context,chrono system thread,))
$(eval $(call DefineBoostLibrary,coroutine,system chrono context thread,))
$(eval $(call DefineBoostLibrary,date_time,,))
#$(eval $(call DefineBoostLibrary,exception,,))
$(eval $(call DefineBoostLibrary,fiber,coroutine,,))
$(eval $(call DefineBoostLibrary,filesystem,system,))
$(eval $(call DefineBoostLibrary,graph,regex,))
$(eval $(call DefineBoostLibrary,iostreams,,+zlib))
$(eval $(call DefineBoostLibrary,locale,system,$(ICONV_DEPENDS),BUILD_NLS))
$(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,program_options,,))
## If you are thinking in making changes to the following list, for some reason, the order of what follows matters.
$(eval $(call DefineBoostLibrary,container,,,))
$(eval $(call DefineBoostLibrary,date_time,,,))
$(eval $(call DefineBoostLibrary,iostreams,,+zlib,))
$(eval $(call DefineBoostLibrary,math,,,))
$(eval $(call DefineBoostLibrary,program_options,,,))
$(eval $(call DefineBoostLibrary,serialization,,,))
$(eval $(call DefineBoostLibrary,signals,,,))
$(eval $(call DefineBoostLibrary,regex,,,))
$(eval $(call DefineBoostLibrary,graph,,,))
$(eval $(call DefineBoostLibrary,system,,,))
$(eval $(call DefineBoostLibrary,atomic,,,))
$(eval $(call DefineBoostLibrary,chrono,,,))
$(eval $(call DefineBoostLibrary,random,,,))
$(eval $(call DefineBoostLibrary,filesystem,,,))
$(eval $(call DefineBoostLibrary,locale,,$(ICONV_DEPENDS),BUILD_NLS))
$(eval $(call DefineBoostLibrary,timer,,,))
$(eval $(call DefineBoostLibrary,thread,,,))
$(eval $(call DefineBoostLibrary,context,,,))
$(eval $(call DefineBoostLibrary,coroutine,,,))
$(eval $(call DefineBoostLibrary,fiber,,,))
$(eval $(call DefineBoostLibrary,log,,,))
$(eval $(call DefineBoostLibrary,wave,,,))
$(eval $(call DefineBoostLibrary,python,,,PACKAGE_python))
$(eval $(call DefineBoostLibrary,python3,,,PACKAGE_python3))
$(eval $(call DefineBoostLibrary,random,system,))
$(eval $(call DefineBoostLibrary,regex,,))
$(eval $(call DefineBoostLibrary,serialization,,))
$(eval $(call DefineBoostLibrary,signals,,))
$(eval $(call DefineBoostLibrary,system,,))
$(eval $(call DefineBoostLibrary,thread,system chrono atomic,))
$(eval $(call DefineBoostLibrary,timer,chrono))
$(eval $(call DefineBoostLibrary,wave,date_time thread filesystem,))
#$(eval $(call DefineBoostLibrary,mpi,,)) # OpenMPI does no exist in OpenWRT at this time.
#$(eval $(call DefineBoostLibrary,exception,,))
define Host/Compile
@ -332,8 +379,6 @@ CONFIGURE_PREFIX:=$(PKG_INSTALL_DIR)
TARGET_LDFLAGS += -pthread -lrt
TARGET_CFLAGS += \
$(if $(CONFIG_PACKAGE_boost-python), -I$(STAGING_DIR)/usr/include/python2.7/) \
$(if $(CONFIG_PACKAGE_boost-python3), -I$(STAGING_DIR)/usr/include/python3.5/) \
$(if $(CONFIG_SOFT_FLOAT),-DBOOST_NO_FENV_H) -fPIC
EXTRA_CXXFLAGS += $(if $(CONFIG_GCC_VERSION_4_8),-std=gnu++11,-std=gnu++14)
@ -353,16 +398,17 @@ endif
comma := ,
define Build/Compile
$(info Selected Boost API $(BOOST_ABI) for architecture $(ARCH) and cpu $(CPU_TYPE) $(CPU_SUBTYPE))
( cd $(PKG_BUILD_DIR) ; \
echo "using gcc : $(ARCH) : $(GNU_TARGET_NAME)-gcc : <compileflags>\"$(TARGET_CFLAGS)\" <cxxflags>\"$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS)\" <linkflags>\"$(TARGET_LDFLAGS)\" ;" > tools/build/src/user-config.jam ; \
$(if $(CONFIG_PACKAGE_boost-python3), \
echo "using python : 3.5 : $(STAGING_DIR_ROOT)/usr/bin/python3 : $(STAGING_DIR)/usr/include/python3.5/ ;" >> \
echo "using python : 3.6 : : $(STAGING_DIR)/usr/include/python3.6/ ;" >> \
tools/build/src/user-config.jam; \
) \
$(if $(CONFIG_PACKAGE_boost-python), \
echo "using python : 2.7 : $(STAGING_DIR_ROOT)/usr/bin/python : $(STAGING_DIR)/usr/include/python2.7/ ;" >> \
echo "using python : 2.7 : : $(STAGING_DIR)/usr/include/python2.7/ ;" >> \
tools/build/src/user-config.jam; \
) \
b2 \
@ -392,6 +438,8 @@ define Build/Compile
$(if $(or $(CONFIG_PACKAGE_boost-python),$(CONFIG_PACKAGE_boost-python3)),,--without-python), \
$(if $(CONFIG_PACKAGE_boost-$(lib)),,--without-$(lib))) \
) \
$(if $(CONFIG_PACKAGE_boost-python),python=2.7,) \
$(if $(CONFIG_PACKAGE_boost-python3),python=3.6,) \
$(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) \
\