Rafael Sadowski writes: > First of all, thank you for this work. I am very impressed. > I have no objections at first glance. Even audio/py-tagpy is happy > but I think we need some bulk builds here. Amd64 and !amd64? > Can anybody manage this? If these are happy, ok rsadowski@ with the > tweak below.
Here is a revised diff using your feedback. I also shortened the comment in the patch. > > Comments below. > > Rafael Sadowski > > On Sat Jan 18, 2020 at 09:32:22PM -0800, Nam Nguyen wrote: >> This diff for devel/boost fixes python 3 bindings and is needed for >> upcoming updates to net/libtorrent-rasterbar and net/deluge. CC >> maintainers and kn@ because python 3 bindings were a blocker for a >> net/libtorrent-rasterbar update. >> >> * Fixes python 3 bindings >> * Bumps REVISION-main >> * Bumps SO_VERSION because libboost_python3.so.9.0 now correctly uses >> python 3 bringing with it modified function signatures like >> init_module. >> * Contains an upstream compilation fix for python 3.7 >> >> before fix: >> $ nm -g /usr/local/lib/libboost_python3.so.9.0 >> 0003d210 T _ZN5boost6python6detail11init_moduleEPKcPFvvE >> $ nm -g /usr/local/lib/libboost_python.so.9.0 >> 0003d210 T _ZN5boost6python6detail11init_moduleEPKcPFvvE >> >> after fix: >> $ nm -g /usr/local/lib/libboost_python3.so.9.0 >> 0003b730 T _ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE >> $ nm -g /usr/local/lib/libboost_python.so.9.0 >> 0003d210 T _ZN5boost6python6detail11init_moduleEPKcPFvvE >> >> boost/python/module_init.hpp: >> # if PY_VERSION_HEX >= 0x03000000 >> BOOST_PYTHON_DECL PyObject* init_module(PyModuleDef&, void(*)()); >> #else >> BOOST_PYTHON_DECL PyObject* init_module(char const* name, void(*)()); >> #endif >> >> After the fix it now correctly uses python 2 and python 3 bindings. The >> way I arrived at this was to see that list.o was compiled with: >> >> "clang++" -c -x c++ -O2 -pipe -pthread -O2 -pipe -pthread -O3 >> -Wno-inline >> -Wall -m64 -O2 -pipe -pthread -O2 -pipe -pthread -DBOOST_ALL_NO_LIB=1 >> -DBOOST_PYTHON_SOURCE -DBOOST_PYTHON_STATIC_LIB -DNDEBUG -I"." >> -I"/usr/local/include/python3.7m" -o >> >> "bin.v2/libs/python/build/clang-gnu-linux-8.0.1/release/link-static/pch-off/threadapi-pthread/list.o" >> "libs/python/src/list.cpp" >> >> Then, list.o was reused in the creation of libboost_python3.so.9.0 and >> libboost_python.so.9.0. list.o was never recompiled against python 2. >> >> "clang++" -o >> >> "bin.v2/libs/python/build/clang-gnu-linux-8.0.1/release/pch-off/threadapi-pthread/libboost_python3.so.9.0" >> -Wl,-soname -Wl,libboost_python3.so.9.0 -shared -Wl,--start-group >> >> "bin.v2/libs/python/build/clang-gnu-linux-8.0.1/release/pch-off/threadapi-pthread/list.o" >> >> "clang++" -o >> >> "bin.v2/libs/python/build/clang-gnu-linux-8.0.1/release/pch-off/threadapi-pthread/libboost_python.so.9.0" >> -Wl,-soname -Wl,libboost_python.so.9.0 -shared -Wl,--start-group >> >> "bin.v2/libs/python/build/clang-gnu-linux-8.0.1/release/pch-off/threadapi-pthread/list.o" >> >> My plan was to: >> 1. Build only python 3 bindings using --with-python and stash the >> objects in ${PY3_DIR}. >> 2. Delete list .o objects to force recompilation. >> 3. Rebuild entire project with python 2. >> >> Now, during step 3, it will rebuild list.o against python 2. >> >> "clang++" -c -x c++ -O2 -pipe -pthread -O2 -pipe -pthread -O3 >> -Wno-inline >> -Wall -m64 -O2 -pipe -pthread -O2 -pipe -pthread -DBOOST_ALL_NO_LIB=1 >> -DBOOST_PYTHON_SOURCE -DBOOST_PYTHON_STATIC_LIB -DNDEBUG -I"." >> -I"/usr/local/include/python2.7" -o >> >> "bin.v2/libs/python/build/clang-gnu-linux-8.0.1/release/link-static/pch-off/threadapi-pthread/list.o" >> "libs/python/src/list.cpp" >> >> Also, boostrap.sh contains: >> >> using python : $PYTHON_VERSION : $PYTHON_ROOT ; >> >> This was not expressive enough for my needs to simply provide >> $PYTHON_VERSION and $PYTHON_ROOT. Instead I use sed to get lines of the >> form: >> >> using python : 2.7 : /usr/local : /usr/local/include/python2.7 ; >> using python : 3.7 : /usr/local : /usr/local/include/python3.7m ; >> >> Sources: >> tools/build/src/tools/python.jam >> https://stackoverflow.com/questions/28830653/build-boost-with-multiple-python-versions >> https://www.boost.org/doc/libs/1_67_0/libs/python/doc/html/building/configuring_boost_build.html >> >> The patch is an upstream fix for a compilation error with python 3.7. >> https://github.com/boostorg/python/commit/660487c43fde76f3e64f1cb2e644500da92fe582 >> >> boost 1.67 changes the python naming convention to be of the form >> libboost_python{27,37}.so.9.0. boost 1.67 also tries to allow building >> against multiple versions of python in one run of b2. > > Nice to know! >> >> >> While my initial >> approach was to try to backport 1.67 fixes alluded to in the changelog, >> I quickly abandoned this effort because I was not getting >> libtorrent-rasterbar to link properly. `make port-lib-depends-check' >> inside libtorrent-rasterbar would report that boost_python3 was >> unused. I suggest revisiting this during the next boost update. >> >> https://www.boost.org/users/history/version_1_67_0.html >> https://github.com/boostorg/python/commit/d4d41d94aecc9f8098aabd3587fcb95458451f71 >> >> Python: >> >> The library name now includes the version suffix of the Python >> version used to compile it. For example, a variant compiled with >> Python 2.7 will produce library names boost_python27 and >> boost_numpy27, etc.. Combined with a related fix in Boost.Build, >> this means that it is now possible to build variants for multiple >> Python versions in a single build process. >> >> To test I tried games/freeorion and games/vegastrike, which compiled and >> started fine. graphics/openexr compiled fine but no further >> testing. graphics/openimageio was tested with graphics/blender, which >> started fine. net/libtorrent-rasterbar and net/deluge correctly use >> these new boost python 3 bindings. >> >> Feedback and tests are welcome. Index: Makefile =================================================================== RCS file: /cvs/ports/devel/boost/Makefile,v retrieving revision 1.91 diff -u -p -r1.91 Makefile --- Makefile 27 Nov 2019 05:17:35 -0000 1.91 +++ Makefile 19 Jan 2020 10:16:56 -0000 @@ -11,14 +11,14 @@ VERSION= 1.66.0 DISTNAME= boost_${VERSION:S/./_/g} PKGNAME-main= boost-${VERSION} PKGNAME-md= boost-md-${VERSION} -REVISION-main= 8 +REVISION-main= 9 REVISION-md= 3 CATEGORIES= devel MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=boost/} EXTRACT_SUFX= .tar.bz2 FIX_EXTRACT_PERMISSIONS = Yes -SO_VERSION= 9.0 +SO_VERSION= 10.0 BOOST_LIBS= boost_atomic-mt \ boost_chrono-mt boost_chrono \ boost_container-mt boost_container \ @@ -136,6 +136,12 @@ PY2_BOOTSTRAP= --with-python=${LOCALBASE PY3_BOOTSTRAP= --with-python=${LOCALBASE}/bin/python${MODPY_DEFAULT_VERSION_3} \ --with-python-version=${MODPY_DEFAULT_VERSION_3} \ +PY2_INC= ${LOCALBASE}/include/python${MODPY_DEFAULT_VERSION_2} + +PY3_INC= ${LOCALBASE}/include/python${MODPY_DEFAULT_VERSION_3}m + +PY3_DIR= ${WRKSRC}/lib.py3 + # python.port.mk makes assumptions about an empty CONFIGURE_STYLE CONFIGURE_STYLE= none @@ -159,22 +165,36 @@ do-configure: @cd ${WRKSRC}/tools/build/src/engine && \ ${SETENV} CC="${CC}" CFLAGS="${CFLAGS}" /bin/sh ./build.sh cc && \ cp bin.openbsd*/b2 bin.openbsd*/bjam ${WRKSRC} + cp ${WRKSRC}/bootstrap.sh ${WRKSRC}/bootstrap.sh.bak @cd ${WRKSRC} && chmod -R a+x ./ && \ /bin/sh ./bootstrap.sh ${BOOTSTRAP} + mkdir ${PY3_DIR} # b2 doesn't seem to respect python parameter, we need to run twice with -# separate python environments +# separate python environments. Remove .o files to force python recompilation. do-build: export ${MAKE_ENV}; \ cd ${WRKSRC} && chmod -R a+x ./ && \ - /bin/sh ./bootstrap.sh ${BOOTSTRAP} ${PY2_BOOTSTRAP} && \ - ./b2 ${BJAM_CONFIG} python=${MODPY_DEFAULT_VERSION_2} && \ + cp ${WRKSRC}/bootstrap.sh.bak ${WRKSRC}/bootstrap.sh && \ + rm ${WRKSRC}/project-config.jam && \ + sed -i 's;\(using python.*PYTHON_ROOT\).*;\1 : ${PY3_INC} \;;' \ + ${WRKSRC}/bootstrap.sh && \ /bin/sh ./bootstrap.sh ${BOOTSTRAP} ${PY3_BOOTSTRAP} && \ - ./b2 ${BJAM_CONFIG} python=${MODPY_DEFAULT_VERSION_3}\ + ./b2 ${BJAM_CONFIG} --with-python python=${MODPY_DEFAULT_VERSION_3} && \ + mv ${WRKSRC}/stage/lib/lib*python3* ${PY3_DIR} && \ + cp ${WRKSRC}/bootstrap.sh.bak ${WRKSRC}/bootstrap.sh && \ + rm ${WRKSRC}/project-config.jam && \ + cd ${WRKSRC} && \ + find bin.v2/libs/python -name "*.o" -type f -delete && \ + sed -i 's;\(using python.*PYTHON_ROOT\).*;\1 : ${PY2_INC} \;;' \ + ${WRKSRC}/bootstrap.sh && \ + /bin/sh ./bootstrap.sh ${BOOTSTRAP} ${PY2_BOOTSTRAP} && \ + ./b2 ${BJAM_CONFIG} python=${MODPY_DEFAULT_VERSION_2}\ do-install: # Libs and includes: ${INSTALL_DATA} ${WRKSRC}/stage/lib/lib!(*.so) ${PREFIX}/lib + ${INSTALL_DATA} ${PY3_DIR}/lib!(*.so) ${PREFIX}/lib @cd ${WRKSRC} && \ find boost -type d -exec ${INSTALL_DATA_DIR} ${PREFIX}/include/{} \; @cd ${WRKSRC} && \ Index: patches/patch-libs_python_src_converter_builtin_converters_cpp =================================================================== RCS file: patches/patch-libs_python_src_converter_builtin_converters_cpp diff -N patches/patch-libs_python_src_converter_builtin_converters_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-libs_python_src_converter_builtin_converters_cpp 19 Jan 2020 10:16:56 -0000 @@ -0,0 +1,26 @@ +$OpenBSD$ + +XXX remove after updating to boost 1.67 + +Fix: https://github.com/boostorg/python/commit/660487c43fde76f3e64f1cb2e644500da92fe582 + +Index: libs/python/src/converter/builtin_converters.cpp +--- libs/python/src/converter/builtin_converters.cpp.orig ++++ libs/python/src/converter/builtin_converters.cpp +@@ -45,10 +45,15 @@ namespace + { + return PyString_Check(obj) ? PyString_AsString(obj) : 0; + } +-#else ++#elif PY_VERSION_HEX < 0x03070000 + void* convert_to_cstring(PyObject* obj) + { + return PyUnicode_Check(obj) ? _PyUnicode_AsString(obj) : 0; ++ } ++#else ++ void* convert_to_cstring(PyObject* obj) ++ { ++ return PyUnicode_Check(obj) ? const_cast<void*>(reinterpret_cast<const void*>(_PyUnicode_AsString(obj))) : 0; + } + #endif + Index: pkg/PLIST-main =================================================================== RCS file: /cvs/ports/devel/boost/pkg/PLIST-main,v retrieving revision 1.7 diff -u -p -r1.7 PLIST-main --- pkg/PLIST-main 3 Jan 2019 07:29:58 -0000 1.7 +++ pkg/PLIST-main 19 Jan 2020 10:16:56 -0000 @@ -14036,129 +14036,129 @@ include/boost/xpressive/xpressive_dynami include/boost/xpressive/xpressive_fwd.hpp include/boost/xpressive/xpressive_static.hpp include/boost/xpressive/xpressive_typeof.hpp -lib/libboost_atomic-mt.a +@static-lib lib/libboost_atomic-mt.a @lib lib/libboost_atomic-mt.so.${LIBboost_atomic-mt_VERSION} -lib/libboost_chrono-mt.a +@static-lib lib/libboost_chrono-mt.a @lib lib/libboost_chrono-mt.so.${LIBboost_chrono-mt_VERSION} -lib/libboost_chrono.a +@static-lib lib/libboost_chrono.a @lib lib/libboost_chrono.so.${LIBboost_chrono_VERSION} -lib/libboost_container-mt.a +@static-lib lib/libboost_container-mt.a @lib lib/libboost_container-mt.so.${LIBboost_container-mt_VERSION} -lib/libboost_container.a +@static-lib lib/libboost_container.a @lib lib/libboost_container.so.${LIBboost_container_VERSION} -lib/libboost_date_time-mt.a +@static-lib lib/libboost_date_time-mt.a @lib lib/libboost_date_time-mt.so.${LIBboost_date_time-mt_VERSION} -lib/libboost_date_time.a +@static-lib lib/libboost_date_time.a @lib lib/libboost_date_time.so.${LIBboost_date_time_VERSION} -lib/libboost_exception-mt.a -lib/libboost_exception.a -lib/libboost_filesystem-mt.a +@static-lib lib/libboost_exception-mt.a +@static-lib lib/libboost_exception.a +@static-lib lib/libboost_filesystem-mt.a @lib lib/libboost_filesystem-mt.so.${LIBboost_filesystem-mt_VERSION} -lib/libboost_filesystem.a +@static-lib lib/libboost_filesystem.a @lib lib/libboost_filesystem.so.${LIBboost_filesystem_VERSION} -lib/libboost_graph-mt.a +@static-lib lib/libboost_graph-mt.a @lib lib/libboost_graph-mt.so.${LIBboost_graph-mt_VERSION} -lib/libboost_graph.a +@static-lib lib/libboost_graph.a @lib lib/libboost_graph.so.${LIBboost_graph_VERSION} -lib/libboost_iostreams-mt.a +@static-lib lib/libboost_iostreams-mt.a @lib lib/libboost_iostreams-mt.so.${LIBboost_iostreams-mt_VERSION} -lib/libboost_iostreams.a +@static-lib lib/libboost_iostreams.a @lib lib/libboost_iostreams.so.${LIBboost_iostreams_VERSION} -lib/libboost_locale-mt.a +@static-lib lib/libboost_locale-mt.a @lib lib/libboost_locale-mt.so.${LIBboost_locale-mt_VERSION} -lib/libboost_log-mt.a +@static-lib lib/libboost_log-mt.a @lib lib/libboost_log-mt.so.${LIBboost_log-mt_VERSION} -lib/libboost_log.a +@static-lib lib/libboost_log.a @lib lib/libboost_log.so.${LIBboost_log_VERSION} -lib/libboost_log_setup-mt.a +@static-lib lib/libboost_log_setup-mt.a @lib lib/libboost_log_setup-mt.so.${LIBboost_log_setup-mt_VERSION} -lib/libboost_log_setup.a +@static-lib lib/libboost_log_setup.a @lib lib/libboost_log_setup.so.${LIBboost_log_setup_VERSION} -lib/libboost_math_c99-mt.a +@static-lib lib/libboost_math_c99-mt.a @lib lib/libboost_math_c99-mt.so.${LIBboost_math_c99-mt_VERSION} -lib/libboost_math_c99.a +@static-lib lib/libboost_math_c99.a @lib lib/libboost_math_c99.so.${LIBboost_math_c99_VERSION} -lib/libboost_math_c99f-mt.a +@static-lib lib/libboost_math_c99f-mt.a @lib lib/libboost_math_c99f-mt.so.${LIBboost_math_c99f-mt_VERSION} -lib/libboost_math_c99f.a +@static-lib lib/libboost_math_c99f.a @lib lib/libboost_math_c99f.so.${LIBboost_math_c99f_VERSION} -lib/libboost_math_c99l-mt.a +@static-lib lib/libboost_math_c99l-mt.a @lib lib/libboost_math_c99l-mt.so.${LIBboost_math_c99l-mt_VERSION} -lib/libboost_math_c99l.a +@static-lib lib/libboost_math_c99l.a @lib lib/libboost_math_c99l.so.${LIBboost_math_c99l_VERSION} -lib/libboost_math_tr1-mt.a +@static-lib lib/libboost_math_tr1-mt.a @lib lib/libboost_math_tr1-mt.so.${LIBboost_math_tr1-mt_VERSION} -lib/libboost_math_tr1.a +@static-lib lib/libboost_math_tr1.a @lib lib/libboost_math_tr1.so.${LIBboost_math_tr1_VERSION} -lib/libboost_math_tr1f-mt.a +@static-lib lib/libboost_math_tr1f-mt.a @lib lib/libboost_math_tr1f-mt.so.${LIBboost_math_tr1f-mt_VERSION} -lib/libboost_math_tr1f.a +@static-lib lib/libboost_math_tr1f.a @lib lib/libboost_math_tr1f.so.${LIBboost_math_tr1f_VERSION} -lib/libboost_math_tr1l-mt.a +@static-lib lib/libboost_math_tr1l-mt.a @lib lib/libboost_math_tr1l-mt.so.${LIBboost_math_tr1l-mt_VERSION} -lib/libboost_math_tr1l.a +@static-lib lib/libboost_math_tr1l.a @lib lib/libboost_math_tr1l.so.${LIBboost_math_tr1l_VERSION} -lib/libboost_num${MODPY_PY_PREFIX}mt.a -@lib lib/libboost_num${MODPY_PY_PREFIX}mt.so.${LIBboost_numpy-mt_VERSION} -lib/libboost_numpy.a +@static-lib lib/libboost_num${MODPY_PY_PREFIX}mt.a +@lib lib/libboost_num${MODPY_PY_PREFIX}mt.so.${LIBboost_num${MODPY_PY_PREFIX}mt_VERSION} +@static-lib lib/libboost_numpy.a @lib lib/libboost_numpy.so.${LIBboost_numpy_VERSION} -lib/libboost_prg_exec_monitor-mt.a +@static-lib lib/libboost_prg_exec_monitor-mt.a @lib lib/libboost_prg_exec_monitor-mt.so.${LIBboost_prg_exec_monitor-mt_VERSION} -lib/libboost_prg_exec_monitor.a +@static-lib lib/libboost_prg_exec_monitor.a @lib lib/libboost_prg_exec_monitor.so.${LIBboost_prg_exec_monitor_VERSION} -lib/libboost_program_options-mt.a +@static-lib lib/libboost_program_options-mt.a @lib lib/libboost_program_options-mt.so.${LIBboost_program_options-mt_VERSION} -lib/libboost_program_options.a +@static-lib lib/libboost_program_options.a @lib lib/libboost_program_options.so.${LIBboost_program_options_VERSION} -lib/libboost_python-mt.a +@static-lib lib/libboost_python-mt.a @lib lib/libboost_python-mt.so.${LIBboost_python-mt_VERSION} -lib/libboost_python.a +@static-lib lib/libboost_python.a @lib lib/libboost_python.so.${LIBboost_python_VERSION} -lib/libboost_python3-mt.a +@static-lib lib/libboost_python3-mt.a @lib lib/libboost_python3-mt.so.${LIBboost_python3-mt_VERSION} -lib/libboost_python3.a +@static-lib lib/libboost_python3.a @lib lib/libboost_python3.so.${LIBboost_python3_VERSION} -lib/libboost_random-mt.a +@static-lib lib/libboost_random-mt.a @lib lib/libboost_random-mt.so.${LIBboost_random-mt_VERSION} -lib/libboost_random.a +@static-lib lib/libboost_random.a @lib lib/libboost_random.so.${LIBboost_random_VERSION} -lib/libboost_regex-mt.a +@static-lib lib/libboost_regex-mt.a @lib lib/libboost_regex-mt.so.${LIBboost_regex-mt_VERSION} -lib/libboost_regex.a +@static-lib lib/libboost_regex.a @lib lib/libboost_regex.so.${LIBboost_regex_VERSION} -lib/libboost_serialization-mt.a +@static-lib lib/libboost_serialization-mt.a @lib lib/libboost_serialization-mt.so.${LIBboost_serialization-mt_VERSION} -lib/libboost_serialization.a +@static-lib lib/libboost_serialization.a @lib lib/libboost_serialization.so.${LIBboost_serialization_VERSION} -lib/libboost_signals-mt.a +@static-lib lib/libboost_signals-mt.a @lib lib/libboost_signals-mt.so.${LIBboost_signals-mt_VERSION} -lib/libboost_signals.a +@static-lib lib/libboost_signals.a @lib lib/libboost_signals.so.${LIBboost_signals_VERSION} -lib/libboost_system-mt.a +@static-lib lib/libboost_system-mt.a @lib lib/libboost_system-mt.so.${LIBboost_system-mt_VERSION} -lib/libboost_system.a +@static-lib lib/libboost_system.a @lib lib/libboost_system.so.${LIBboost_system_VERSION} -lib/libboost_test_exec_monitor-mt.a -lib/libboost_test_exec_monitor.a -lib/libboost_thread-mt.a +@static-lib lib/libboost_test_exec_monitor-mt.a +@static-lib lib/libboost_test_exec_monitor.a +@static-lib lib/libboost_thread-mt.a @lib lib/libboost_thread-mt.so.${LIBboost_thread-mt_VERSION} -lib/libboost_timer-mt.a +@static-lib lib/libboost_timer-mt.a @lib lib/libboost_timer-mt.so.${LIBboost_timer-mt_VERSION} -lib/libboost_timer.a +@static-lib lib/libboost_timer.a @lib lib/libboost_timer.so.${LIBboost_timer_VERSION} -lib/libboost_type_erasure-mt.a +@static-lib lib/libboost_type_erasure-mt.a @lib lib/libboost_type_erasure-mt.so.${LIBboost_type_erasure-mt_VERSION} -lib/libboost_type_erasure.a +@static-lib lib/libboost_type_erasure.a @lib lib/libboost_type_erasure.so.${LIBboost_type_erasure_VERSION} -lib/libboost_unit_test_framework-mt.a +@static-lib lib/libboost_unit_test_framework-mt.a @lib lib/libboost_unit_test_framework-mt.so.${LIBboost_unit_test_framework-mt_VERSION} -lib/libboost_unit_test_framework.a +@static-lib lib/libboost_unit_test_framework.a @lib lib/libboost_unit_test_framework.so.${LIBboost_unit_test_framework_VERSION} -lib/libboost_wave-mt.a +@static-lib lib/libboost_wave-mt.a @lib lib/libboost_wave-mt.so.${LIBboost_wave-mt_VERSION} -lib/libboost_wserialization-mt.a +@static-lib lib/libboost_wserialization-mt.a @lib lib/libboost_wserialization-mt.so.${LIBboost_wserialization-mt_VERSION} -lib/libboost_wserialization.a +@static-lib lib/libboost_wserialization.a @lib lib/libboost_wserialization.so.${LIBboost_wserialization_VERSION} share/boost-build/ share/boost-build/__init__.py Index: pkg/PLIST-md =================================================================== RCS file: /cvs/ports/devel/boost/pkg/PLIST-md,v retrieving revision 1.1 diff -u -p -r1.1 PLIST-md --- pkg/PLIST-md 13 Dec 2018 19:52:46 -0000 1.1 +++ pkg/PLIST-md 19 Jan 2020 10:16:56 -0000 @@ -1,21 +1,21 @@ @comment $OpenBSD: PLIST-md,v 1.1 2018/12/13 19:52:46 sthen Exp $ -lib/libboost_context-mt.a +@static-lib lib/libboost_context-mt.a @lib lib/libboost_context-mt.so.${LIBboost_context-mt_VERSION} -lib/libboost_coroutine-mt.a +@static-lib lib/libboost_coroutine-mt.a @lib lib/libboost_coroutine-mt.so.${LIBboost_coroutine-mt_VERSION} -lib/libboost_coroutine.a +@static-lib lib/libboost_coroutine.a @lib lib/libboost_coroutine.so.${LIBboost_coroutine_VERSION} -lib/libboost_fiber-mt.a +@static-lib lib/libboost_fiber-mt.a @lib lib/libboost_fiber-mt.so.${LIBboost_fiber-mt_VERSION} -lib/libboost_stacktrace_addr2line-mt.a +@static-lib lib/libboost_stacktrace_addr2line-mt.a @lib lib/libboost_stacktrace_addr2line-mt.so.${LIBboost_stacktrace_addr2line-mt_VERSION} -lib/libboost_stacktrace_addr2line.a +@static-lib lib/libboost_stacktrace_addr2line.a @lib lib/libboost_stacktrace_addr2line.so.${LIBboost_stacktrace_addr2line_VERSION} -lib/libboost_stacktrace_basic-mt.a +@static-lib lib/libboost_stacktrace_basic-mt.a @lib lib/libboost_stacktrace_basic-mt.so.${LIBboost_stacktrace_basic-mt_VERSION} -lib/libboost_stacktrace_basic.a +@static-lib lib/libboost_stacktrace_basic.a @lib lib/libboost_stacktrace_basic.so.${LIBboost_stacktrace_basic_VERSION} -lib/libboost_stacktrace_noop-mt.a +@static-lib lib/libboost_stacktrace_noop-mt.a @lib lib/libboost_stacktrace_noop-mt.so.${LIBboost_stacktrace_noop-mt_VERSION} -lib/libboost_stacktrace_noop.a +@static-lib lib/libboost_stacktrace_noop.a @lib lib/libboost_stacktrace_noop.so.${LIBboost_stacktrace_noop_VERSION}