boost-libs-2017Q1: Patches for CentOS + Yum GCC, which cannot build fiber

This commit is contained in:
Jason Bacon 2017-06-07 14:22:53 -05:00
parent 31c70c51d3
commit 6370a4d7f9
6 changed files with 224 additions and 0 deletions

View File

@ -249,6 +249,7 @@ SUBDIR+= bogomips
SUBDIR+= boinc-git
SUBDIR+= bonnie++-current
SUBDIR+= boo
SUBDIR+= boost-libs-2017Q1
SUBDIR+= boost-test-suite
SUBDIR+= boost-threadpool
SUBDIR+= bowtie

6
boost-libs-2017Q1/DESCR Normal file
View File

@ -0,0 +1,6 @@
Boost is a set of free, peer-reviewed, C++ libraries. The emphasis is on
portable libraries which work well with the ISO C++ Standard Library.
This package adds static and shared binary libraries for Boost. All
libraries are included here, except Boost.Python, which can be found in
the py-boost package.

View File

@ -0,0 +1,78 @@
# $NetBSD: Makefile,v 1.51.2.1 2017/04/16 14:55:01 bsiegert Exp $
BOOST_PACKAGE= libs
BOOST_COMMENT= (binary libraries)
BOOST_CONFIG= installed
BOOST_INSTALL_LIBS= yes
.include "../../meta-pkgs/boost/Makefile.common"
INSTALLATION_DIRS+= lib
BJAM_ARGS+= --without-python
PLIST_VARS+= context fiber log long_double_math
.if ${OPSYS} == "NetBSD" && ((${MACHINE_ARCH} == "i386") || (!empty(MACHINE_ARCH:Mearm*) && !empty(PKGSRC_COMPILER:Mgcc)))
BJAM_ARGS+= pch=off
.endif
.if !empty(MACHINE_ARCH:Malpha) || !empty(MACHINE_ARCH:Mm68k) || !empty(MACHINE_ARCH:Msparc64)
BJAM_ARGS+= --without-context
BJAM_ARGS+= --without-coroutine
BJAM_ARGS+= --without-coroutine2
.else
PLIST.context= yes
.endif
# Darwin GCC is unable to build Boost.Log
.if ${OPSYS} == "Darwin" && !empty(PKGSRC_COMPILER:Mgcc)
BJAM_ARGS+= --without-log
.else
PLIST.log= yes
.endif
.include "../../mk/compiler.mk"
# fiber requires thread_local support, unavailable in older compilers
# (old darwin, netbsd <6, CentOS 6). if fiber becomes necessary, set GCC_REQD
# on other boost-* packages, too.
# fiber requires context, so also disable it where context cannot be built
# Additionally fiber checks std::timed_mutex.
.if ((${OPSYS} == "Darwin" && ${OS_VERSION:R} < 14) || \
!empty(MACHINE_PLATFORM:MNetBSD-[0-7]*-*)) || \
!empty(MACHINE_ARCH:Malpha) || !empty(MACHINE_ARCH:Mm68k) || \
!empty(MACHINE_ARCH:Msparc64) || \
(exists(/etc/redhat-release) && !empty(CC_VERSION:Mgcc-4.4.*)) || \
(${OPSYS} == "NetBSD" && !empty(PKGSRC_COMPILER:Mclang))
BJAM_ARGS+= --without-fiber
.else
PLIST.fiber= yes
.endif
.if ${OPSYS} != "NetBSD" && ${OPSYS} != "FreeBSD"
PLIST.long_double_math= yes
.endif
UNLIMIT_RESOURCES+= stacksize
MAKE_ENV+= BZIP2_INCLUDE=${BUILDLINK_PREFIX.bzip2}/include
MAKE_ENV+= BZIP2_LIBPATH=${BUILDLINK_PREFIX.bzip2}/lib
MAKE_ENV+= EXPAT_INCLUDE=${BUILDLINK_PREFIX.expat}/include
MAKE_ENV+= EXPAT_LIBPATH=${BUILDLINK_PREFIX.expat}/lib
MAKE_ENV+= ICU_PATH=${BUILDLINK_PREFIX.icu}
MAKE_ENV+= ZLIB_INCLUDE=${BUILDLINK_PREFIX.zlib}/include
MAKE_ENV+= ZLIB_LIBPATH=${BUILDLINK_PREFIX.zlib}/lib
.include "../../devel/boost-jam/bjam.mk"
do-build: bjam-build
do-install: boost-install-libs
.include "../../archivers/bzip2/buildlink3.mk"
.include "../../converters/libiconv/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../textproc/expat/buildlink3.mk"
.include "../../textproc/icu/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

99
boost-libs-2017Q1/PLIST Normal file
View File

@ -0,0 +1,99 @@
@comment $NetBSD: PLIST,v 1.33 2017/01/02 09:41:50 ryoon Exp $
lib/libboost_atomic.a
lib/libboost_atomic.so
lib/libboost_atomic.so.${BOOST_VERSION}
lib/libboost_chrono.a
lib/libboost_chrono.so
lib/libboost_chrono.so.${BOOST_VERSION}
lib/libboost_container.a
lib/libboost_container.so
lib/libboost_container.so.${BOOST_VERSION}
${PLIST.context}lib/libboost_context.a
${PLIST.context}lib/libboost_context.so
${PLIST.context}lib/libboost_context.so.${BOOST_VERSION}
${PLIST.context}lib/libboost_coroutine.a
${PLIST.context}lib/libboost_coroutine.so
${PLIST.context}lib/libboost_coroutine.so.${BOOST_VERSION}
lib/libboost_date_time.a
lib/libboost_date_time.so
lib/libboost_date_time.so.${BOOST_VERSION}
lib/libboost_exception.a
${PLIST.fiber}lib/libboost_fiber.a
${PLIST.fiber}lib/libboost_fiber.so
${PLIST.fiber}lib/libboost_fiber.so.${BOOST_VERSION}
lib/libboost_filesystem.a
lib/libboost_filesystem.so
lib/libboost_filesystem.so.${BOOST_VERSION}
lib/libboost_graph.a
lib/libboost_graph.so
lib/libboost_graph.so.${BOOST_VERSION}
lib/libboost_iostreams.a
lib/libboost_iostreams.so
lib/libboost_iostreams.so.${BOOST_VERSION}
lib/libboost_locale.a
lib/libboost_locale.so
lib/libboost_locale.so.${BOOST_VERSION}
${PLIST.log}lib/libboost_log.a
${PLIST.log}lib/libboost_log.so
${PLIST.log}lib/libboost_log.so.${BOOST_VERSION}
${PLIST.log}lib/libboost_log_setup.a
${PLIST.log}lib/libboost_log_setup.so
${PLIST.log}lib/libboost_log_setup.so.${BOOST_VERSION}
lib/libboost_math_c99.a
lib/libboost_math_c99.so
lib/libboost_math_c99.so.${BOOST_VERSION}
lib/libboost_math_c99f.a
lib/libboost_math_c99f.so
lib/libboost_math_c99f.so.${BOOST_VERSION}
${PLIST.long_double_math}lib/libboost_math_c99l.a
${PLIST.long_double_math}lib/libboost_math_c99l.so
${PLIST.long_double_math}lib/libboost_math_c99l.so.${BOOST_VERSION}
lib/libboost_math_tr1.a
lib/libboost_math_tr1.so
lib/libboost_math_tr1.so.${BOOST_VERSION}
lib/libboost_math_tr1f.a
lib/libboost_math_tr1f.so
lib/libboost_math_tr1f.so.${BOOST_VERSION}
${PLIST.long_double_math}lib/libboost_math_tr1l.a
${PLIST.long_double_math}lib/libboost_math_tr1l.so
${PLIST.long_double_math}lib/libboost_math_tr1l.so.${BOOST_VERSION}
lib/libboost_prg_exec_monitor.a
lib/libboost_prg_exec_monitor.so
lib/libboost_prg_exec_monitor.so.${BOOST_VERSION}
lib/libboost_program_options.a
lib/libboost_program_options.so
lib/libboost_program_options.so.${BOOST_VERSION}
lib/libboost_random.a
lib/libboost_random.so
lib/libboost_random.so.${BOOST_VERSION}
lib/libboost_regex.a
lib/libboost_regex.so
lib/libboost_regex.so.${BOOST_VERSION}
lib/libboost_serialization.a
lib/libboost_serialization.so
lib/libboost_serialization.so.${BOOST_VERSION}
lib/libboost_signals.a
lib/libboost_signals.so
lib/libboost_signals.so.${BOOST_VERSION}
lib/libboost_system.a
lib/libboost_system.so
lib/libboost_system.so.${BOOST_VERSION}
lib/libboost_test_exec_monitor.a
lib/libboost_thread.a
lib/libboost_thread.so
lib/libboost_thread.so.${BOOST_VERSION}
lib/libboost_timer.a
lib/libboost_timer.so
lib/libboost_timer.so.${BOOST_VERSION}
lib/libboost_type_erasure.a
lib/libboost_type_erasure.so
lib/libboost_type_erasure.so.${BOOST_VERSION}
lib/libboost_unit_test_framework.a
lib/libboost_unit_test_framework.so
lib/libboost_unit_test_framework.so.${BOOST_VERSION}
lib/libboost_wave.a
lib/libboost_wave.so
lib/libboost_wave.so.${BOOST_VERSION}
lib/libboost_wserialization.a
lib/libboost_wserialization.so
lib/libboost_wserialization.so.${BOOST_VERSION}

View File

@ -0,0 +1,26 @@
# $NetBSD: buildlink3.mk,v 1.42 2017/01/01 15:32:47 adam Exp $
BUILDLINK_TREE+= boost-libs
.if !defined(BOOST_LIBS_BUILDLINK3_MK)
BOOST_LIBS_BUILDLINK3_MK:=
# Use a dependency pattern that guarantees the proper ABI.
BUILDLINK_API_DEPENDS.boost-libs+= boost-libs-1.63.*
BUILDLINK_ABI_DEPENDS.boost-libs?= boost-libs>=1.63.0
BUILDLINK_PKGSRCDIR.boost-libs?= ../../devel/boost-libs
.include "../../mk/bsd.fast.prefs.mk"
# Sync with meta-pkgs/boost/Makefile.common
.if ${OPSYS} == "OpenBSD"
GCC_REQD+= 4.6
.elif ${LOWER_VENDOR} == "redhat"
GCC_REQD+= 4.4
.else
GCC_REQD+= 4.5
.endif
.include "../../devel/boost-headers/buildlink3.mk"
.endif # BOOST_LIBS_BUILDLINK3_MK
BUILDLINK_TREE+= -boost-libs

View File

@ -0,0 +1,14 @@
# $NetBSD: hacks.mk,v 1.5 2014/12/15 11:46:34 jperkin Exp $
.if !defined(BOOST_LIBS_HACKS_MK)
BOOST_LIBS_HACKS_MK= defined
.include "../../mk/compiler.mk"
# gcc 4 on sparc64 catches an illegal instruction when compiling graphml.cpp
.if ${MACHINE_ARCH} == "sparc64" && !empty(CC_VERSION:Mgcc-4*)
PKG_HACKS+= optimisation
BUILDLINK_TRANSFORM+= opt:-O3:-O1
.endif
.endif # BOOST_LIBS_HACKS_MK