diff options
Diffstat (limited to 'package/boost')
5 files changed, 192 insertions, 97 deletions
diff --git a/package/boost/Makefile b/package/boost/Makefile index 4bd6b2c44..4bd846e0f 100644 --- a/package/boost/Makefile +++ b/package/boost/Makefile @@ -1,162 +1,182 @@ # This file is part of the OpenADK project. OpenADK is copyrighted # material, please see the LICENCE file in the top-level directory. -include ${TOPDIR}/rules.mk +include ${ADK_TOPDIR}/rules.mk PKG_NAME:= boost -PKG_VERSION:= 1_47_0 +PKG_VERSION:= 1.84.0 +PKG_EXTRAVER:= 1_84 PKG_RELEASE:= 1 -PKG_MD5SUM:= ff180a5276bec773a7625cac7e2288e8 -PKG_DESCR:= boost C++ library -PKG_SECTION:= libs +PKG_HASH:= a5800f405508f5df8114558ca9855d2640a2de8f0445f051fa1c7c3383045724 +PKG_DESCR:= portable c++ library +PKG_SECTION:= libs/misc +PKG_BUILDDEP:= python3-host +PKG_NEEDS:= c++ PKG_URL:= http://www.boost.org/ PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=boost/} +PKG_OPTS:= dev -DISTFILES:= boost_1_47_0.tar.gz -WRKDIST= ${WRKDIR}/${PKG_NAME}_${PKG_VERSION} +DISTFILES:= boost_$(PKG_EXTRAVER)_0.tar.gz +WRKDIST= ${WRKDIR}/${PKG_NAME}_$(PKG_EXTRAVER)_0 -PKG_ARCH_DEPENDS:= !mips +PKG_FLAVOURS_BOOST:= DATE_TIME JSON GRAPH GRAPH_PARALLEL IOSTREAMS LOG MATH PROGRAM_OPTIONS PYTHON REGEX SERIALIZATION TEST WAVE -PKG_SUBPKGS:= BOOST BOOST_DEV -PKGSD_BOOST_DEV:= boost header files -PKGSC_BOOST_DEV:= devel +PKGFD_DATE_TIME:= with date-time +PKGFD_JSON:= with json +PKGFD_PYTHON:= with python +PKGFB_PYTHON:= python3 +PKGFS_PYTHON:= python3 +PKGFD_IOSTREAMS:= with iostreams +PKGFD_GRAPH:= with graph +PKGFD_GRAPH_PARALLEL:= with graph_parallel +PKGFD_MATH:= with math +PKGFD_LOG:= with log +PKGFD_PROGRAM_OPTIONS:= with program_options +PKGFD_REGEX:= with regex +PKGFD_SERIALIZATION:= with serialization +PKGFD_TEST:= with test +PKGFD_WAVE:= with wave -PKG_CHOICES_BOOST:= STATIC SHARED BOTH -PKGCD_STATIC:= install static libs -PKGCD_SHARED:= install shared libs -PKGCD_BOTH:= install static and shared libs +include ${ADK_TOPDIR}/mk/package.mk -PKG_FLAVOURS_BOOST:= date_time graph graph_parallel iostreams math program_options python regex serialization signals system test thread wave +$(eval $(call PKG_template,BOOST,boost,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) -PKGFD_date_time:= with date-time -PKGFD_python:= with Python -PKGFB_python:= python2 -PKGFS_python:= python2 -PKGFD_iostreams:= with iostreams -PKGFD_graph:= with graph -PKGFD_graph_parallel:= with graph_parallel -PKGFD_math:= with math -PKGFD_program_options:= with program_options -PKGFD_regex:= with regex -PKGFD_serialization:= with serialization -PKGFD_signals:= with signals -PKGFD_system:= with system -PKGFD_test:= with test -PKGFD_thread:= with thread -PKGFD_wave:= with wave - -include ${TOPDIR}/mk/package.mk - -$(eval $(call PKG_template,BOOST,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) -$(eval $(call PKG_template,BOOST_DEV,boost-dev,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_BOOST_DEV},${PKGSC_BOOST_DEV})) +include ${ADK_TOPDIR}/mk/python3.mk CONFIG_STYLE:= manual BUILD_STYLE:= manual INSTALL_STYLE:= manual -CONFIGURE_ARGS += \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) \ - --prefix=${WRKINST}/usr \ +CONFIGURE_ARGS+= --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --prefix=${WRKINST}/usr \ + --ignore-site-config \ + --without-mpi \ + --without-context \ + --without-coroutine \ + --without-locale ifneq (${ADK_PACKAGE_BOOST_IOSTREAMS},) - CONFIGURE_ARGS += -sNO_BZIP2=1 -sZLIB_INCLUDE=${STAGING_DIR}/usr/include -sZLIB_LIBPATH=${STAGING_DIR}/usr/lib +CONFIGURE_ARGS+= -sNO_BZIP2=1 -sZLIB_INCLUDE=${STAGING_TARGET_DIR}/usr/include -sZLIB_LIBPATH=${STAGING_TARGET_DIR}/usr/lib else - CONFIGURE_ARGS += --without-iostreams +CONFIGURE_ARGS+= --without-iostreams endif ifeq (${ADK_PACKAGE_BOOST_DATE_TIME},) - CONFIGURE_ARGS+=--without-date_time +CONFIGURE_ARGS+= --without-date_time +endif +ifeq (${ADK_PACKAGE_BOOST_JSON},) +CONFIGURE_ARGS+= --without-json endif ifeq (${ADK_PACKAGE_BOOST_PYTHON},) - CONFIGURE_ARGS+=--without-python +CONFIGURE_ARGS+= --without-python endif ifeq (${ADK_PACKAGE_BOOST_GRAPH},) - CONFIGURE_ARGS+=--without-graph +CONFIGURE_ARGS+= --without-graph endif -ifeq (${ADK_PACKAGE_BOOST_math},) - CONFIGURE_ARGS+=--without-math +ifeq (${ADK_PACKAGE_BOOST_LOG},) +CONFIGURE_ARGS+= --without-log +endif +ifeq (${ADK_PACKAGE_BOOST_MATH},) +CONFIGURE_ARGS+= --without-math endif ifeq (${ADK_PACKAGE_BOOST_PROGRAM_OPTIONS},) - CONFIGURE_ARGS+=--without-program_options +CONFIGURE_ARGS+= --without-program_options endif ifeq (${ADK_PACKAGE_BOOST_REGEX},) - CONFIGURE_ARGS+=--without-regex +CONFIGURE_ARGS+= --without-regex endif ifeq (${ADK_PACKAGE_BOOST_SERIALIZATION},) - CONFIGURE_ARGS+=--without-serialization +CONFIGURE_ARGS+= --without-serialization endif -ifeq (${ADK_PACKAGE_BOOST_SIGNALS},) - CONFIGURE_ARGS+=--without-signals +ifeq (${ADK_PACKAGE_BOOST_TEST},) +CONFIGURE_ARGS+= --without-test endif -ifeq (${ADK_PACKAGE_BOOST_SYSTEM},) - CONFIGURE_ARGS+=--without-system +ifeq (${ADK_PACKAGE_BOOST_WAVE},) +CONFIGURE_ARGS+= --without-wave endif -ifeq (${ADK_PACKAGE_BOOST_TEST},) - CONFIGURE_ARGS+=--without-test + +ifeq ($(ADK_TARGET_ARCH),aarch64) +BOOST_ARCH:= architecture=arm endif -ifeq (${ADK_PACKAGE_BOOST_THREAD},) - CONFIGURE_ARGS+=--without-thread +ifeq ($(ADK_TARGET_ARCH),arm) +BOOST_ARCH:= architecture=arm endif -ifeq (${ADK_PACKAGE_BOOST_WAVE},) - CONFIGURE_ARGS+=--without-wave +ifeq ($(ADK_TARGET_CPU_MIPS_MIPS32),y) +BOOST_ARCH:= architecture=mips32 +endif +ifeq ($(ADK_TARGET_CPU_MIPS_MIPS32R2),y) +BOOST_ARCH:= architecture=mips32r2 +endif +ifeq ($(ADK_TARGET_ARCH),mips64) +BOOST_ARCH:= architecture=mips64 +endif +ifeq ($(ADK_TARGET_ARCH),ppc) +BOOST_ARCH:= architecture=power +endif +ifeq ($(ADK_TARGET_ARCH),sparc) +BOOST_ARCH:= architecture=sparc +endif +ifeq ($(ADK_TARGET_ARCH),x86_64) +BOOST_ARCH:= architecture=x86 +endif + +ifeq ($(ADK_TARGET_ARCH),arm) +BOOST_ABI:= abi=aapcs +endif +ifeq ($(ADK_TARGET_ARCH),aarch64) +BOOST_ABI:= abi=aapcs +endif +ifeq ($(ADK_TARGET_ARCH),mips) +BOOST_ABI:= abi=o32 endif # some variables for build -GPP_PATH:= ${STAGING_HOST_DIR}/bin/${GNU_TARGET_NAME}-g++ +GPP_PATH:= ${TOOLCHAIN_DIR}/usr/bin/${GNU_TARGET_NAME}-g++ GPP_VERSION:= "`${GPP_PATH} -v 2>&1 | tail -1 | awk '{print $$3}'`" -BJAM_PATH:= "`find ${WRKBUILD} -type f -name "bjam"`" -PYTHON_PATH:= ${STAGING_TARGET_DIR}/usr/bin/python +BJAM_PATH:= "`find ${WRKBUILD} -type f -name "b2$(EXEEXT)"`" +PYTHON_PATH:= ${STAGING_HOST_DIR}/usr/bin/python PYTHON_INCLUDE:="`find ${STAGING_TARGET_DIR}/usr/include/ -maxdepth 1 -type d -name "python*" | head -1`" PYTHON_LIB:= "`find ${STAGING_TARGET_DIR}/usr/lib/ -maxdepth 1 -type d -name "python*" | head -1`" -USER_JAM:= ${WRKBUILD}/tools/build/v2/user-config.jam +USER_JAM:= ${WRKBUILD}/tools/build/user-config.jam + +ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY)$(ADK_TARGET_BINFMT_FLAT),y) +LINKMODE:= static +else +LINKMODE:= shared +endif pre-build: @echo "build bjam..." - cd $(WRKBUILD)/tools/build/v2/engine; ./build.sh gcc + cd $(WRKBUILD)/tools/build/src/engine; ./build.sh gcc do-build: @echo "build boost library..." -# remove exisiting using gcc line from user.jam - ${SED} "/^using gcc/d" ${USER_JAM} -# add using gcc line with determined options to user.jam - echo "using gcc : ${GPP_VERSION} : ${GPP_PATH} ;" >> ${USER_JAM}; - -# remove exisiting using python line from user.jam - ${SED} "/^using python/d" ${USER_JAM} + echo "using gcc : ${GPP_VERSION} : ${GPP_PATH} : <compileflags>\"${TARGET_CFLAGS}\" ;" > ${USER_JAM}; ifneq (${ADK_PACKAGE_BOOST_PYTHON},) -# add using python line with determined options to user.jam echo "using python : ${PYTHON_VERSION} : ${PYTHON_PATH} : ${PYTHON_INCLUDE} : ${PYTHON_LIB} ;" >> ${USER_JAM}; endif - -# run bjam to build boost - ( cd ${WRKBUILD}; \ + (cd ${WRKBUILD}; \ ${BJAM_PATH} \ - -sBUILD=release \ - --toolset=gcc-${GPP_VERSION} \ - --build-type=minimal \ - --layout=versioned \ + -d 2 \ + target-os=linux \ + variant=release \ + threading=multi \ + link=$(LINKMODE) \ + runtime-link=$(LINKMODE) \ + $(BOOST_ARCH) \ + $(BOOST_ABI) \ + binary-format=elf \ + toolset=gcc-${GPP_VERSION} \ + --user-config=${USER_JAM} \ + --layout=system \ --disable-long-double \ - --without-mpi \ ${CONFIGURE_ARGS} \ install \ ) boost-install: ${INSTALL_DIR} ${IDIR_BOOST}/usr/lib -ifneq (${ADK_PACKAGE_BOOST_SHARED},) ${CP} ${WRKINST}/usr/lib/*.so* ${IDIR_BOOST}/usr/lib -endif -ifneq (${ADK_PACKAGE_BOOST_STATIC},) - ${CP} ${WRKINST}/usr/lib/*.a ${IDIR_BOOST}/usr/lib -endif -ifneq (${ADK_PACKAGE_BOOST_BOTH},) - ${CP} ${WRKINST}/usr/lib/*.a ${IDIR_BOOST}/usr/lib - ${CP} ${WRKINST}/usr/lib/*.so* ${IDIR_BOOST}/usr/lib -endif - -boost-dev-install: - ${INSTALL_DIR} ${IDIR_BOOST_DEV}/usr/include - ${CP} ${WRKINST}/usr/include/* ${IDIR_BOOST_DEV}/usr/include -include ${TOPDIR}/mk/pkg-bottom.mk +include ${ADK_TOPDIR}/mk/pkg-bottom.mk diff --git a/package/boost/patches/patch-boost_config_platform_linux_hpp b/package/boost/patches/patch-boost_config_platform_linux_hpp new file mode 100644 index 000000000..4035fafa0 --- /dev/null +++ b/package/boost/patches/patch-boost_config_platform_linux_hpp @@ -0,0 +1,16 @@ +--- boost_1_67_0.orig/boost/config/platform/linux.hpp 2018-04-11 15:49:01.000000000 +0200 ++++ boost_1_67_0/boost/config/platform/linux.hpp 2018-05-14 05:53:50.072807086 +0200 +@@ -47,6 +47,13 @@ + + #endif + ++// uClibc has no support for fenv.h, and also a few architectures ++// don't have fenv.h support at all (or incomplete support) even with ++// glibc. ++#if defined(__UCLIBC__) || defined(__nios2__) || defined(__microblaze__) ++# define BOOST_NO_FENV_H ++#endif ++ + // + // If glibc is past version 2 then we definitely have + // gettimeofday, earlier versions may or may not have it: diff --git a/package/boost/patches/patch-boost_test_impl_debug_ipp b/package/boost/patches/patch-boost_test_impl_debug_ipp new file mode 100644 index 000000000..737c582fe --- /dev/null +++ b/package/boost/patches/patch-boost_test_impl_debug_ipp @@ -0,0 +1,11 @@ +--- boost_1_61_0.orig/boost/test/impl/debug.ipp 2016-05-05 23:14:46.000000000 +0200 ++++ boost_1_61_0/boost/test/impl/debug.ipp 2016-06-16 23:10:01.380033812 +0200 +@@ -46,7 +46,7 @@ namespace std { using ::memset; using :: + + #elif defined(unix) || defined(__unix) // ********************* UNIX + +-# define BOOST_UNIX_BASED_DEBUG ++//# define BOOST_UNIX_BASED_DEBUG + + // Boost.Test + #include <boost/test/utils/class_properties.hpp> diff --git a/package/boost/patches/patch-libs_context_src_asm_jump_arm_aapcs_elf_gas_S b/package/boost/patches/patch-libs_context_src_asm_jump_arm_aapcs_elf_gas_S new file mode 100644 index 000000000..dfbf217a8 --- /dev/null +++ b/package/boost/patches/patch-libs_context_src_asm_jump_arm_aapcs_elf_gas_S @@ -0,0 +1,24 @@ +--- boost_1_67_0.orig/libs/context/src/asm/jump_arm_aapcs_elf_gas.S 2018-04-11 15:49:01.000000000 +0200 ++++ boost_1_67_0/libs/context/src/asm/jump_arm_aapcs_elf_gas.S 2018-05-14 06:53:04.847209932 +0200 +@@ -50,10 +50,6 @@ jump_fcontext: + + @ prepare stack for FPU + sub sp, sp, #64 +-#if (defined(__VFP_FP__) && !defined(__SOFTFP__)) +- @ save S16-S31 +- vstmia sp, {d8-d15} +-#endif + + @ store RSP (pointing to context-data) in A1 + mov a1, sp +@@ -61,10 +57,6 @@ jump_fcontext: + @ restore RSP (pointing to context-data) from A2 + mov sp, a2 + +-#if (defined(__VFP_FP__) && !defined(__SOFTFP__)) +- @ restore S16-S31 +- vldmia sp, {d8-d15} +-#endif + @ prepare stack for FPU + add sp, sp, #64 + diff --git a/package/boost/patches/patch-libs_context_src_asm_ontop_arm_aapcs_elf_gas_S b/package/boost/patches/patch-libs_context_src_asm_ontop_arm_aapcs_elf_gas_S new file mode 100644 index 000000000..c54038510 --- /dev/null +++ b/package/boost/patches/patch-libs_context_src_asm_ontop_arm_aapcs_elf_gas_S @@ -0,0 +1,24 @@ +--- boost_1_67_0.orig/libs/context/src/asm/ontop_arm_aapcs_elf_gas.S 2018-04-11 15:49:01.000000000 +0200 ++++ boost_1_67_0/libs/context/src/asm/ontop_arm_aapcs_elf_gas.S 2018-05-14 06:30:06.658068445 +0200 +@@ -50,10 +50,6 @@ ontop_fcontext: + + @ prepare stack for FPU + sub sp, sp, #64 +-#if (defined(__VFP_FP__) && !defined(__SOFTFP__)) +- @ save S16-S31 +- vstmia sp, {d8-d15} +-#endif + + @ store RSP (pointing to context-data) in A1 + mov a1, sp +@@ -64,10 +60,6 @@ ontop_fcontext: + @ store parent context in A2 + mov a2, a1 + +-#if (defined(__VFP_FP__) && !defined(__SOFTFP__)) +- @ restore S16-S31 +- vldmia sp, {d8-d15} +-#endif + @ prepare stack for FPU + add sp, sp, #64 + |
