From e14e032cabedaa1bc491d99823e91ba76de10cef Mon Sep 17 00:00:00 2001 From: Mahno Date: Sat, 8 Feb 2025 13:27:58 +0800 Subject: [PATCH] enable cmake config and dynamic linking --- boost.spec | 392 +++++++++++++++++++++++++++++++++++++++++- dynamic_linking.patch | 13 ++ 2 files changed, 403 insertions(+), 2 deletions(-) create mode 100644 dynamic_linking.patch diff --git a/boost.spec b/boost.spec index ebb3b83..752998d 100644 --- a/boost.spec +++ b/boost.spec @@ -18,7 +18,7 @@ Patch3: boost-1.81-random-Update-multiprecision_int_test.cpp-to-not-accidental.p Patch4: boost-1.81-random-test-Add-missing-includes.patch # https://github.com/boostorg/phoenix/pull/116 Patch5: boost-1.81-phoenix-Update-avoid-placeholders-uarg1.10-ODR-violates.patch - +Patch6: dynamic_linking.patch Requires: %{name}-atomic%{?_isa} = %{version}-%{release} Requires: %{name}-chrono%{?_isa} = %{version}-%{release} Requires: %{name}-container%{?_isa} = %{version}-%{release} @@ -254,6 +254,151 @@ Requires: boost-chrono%{?_isa} = %{version}-%{release} Requires: boost-filesystem%{?_isa} = %{version}-%{release} Requires: boost-thread%{?_isa} = %{version}-%{release} +%package test-devel +Summary: Development headers for Boost.test +%description test-devel +Development header files and libraries for Boost.test + +%package stacktrace-devel +Summary: Development headers for Boost.stacktrace +%description stacktrace-devel +Development header files and libraries for Boost.stacktrace + +%package serialization-devel +Summary: Development headers for Boost.serialization +%description serialization-devel +Development header files and libraries for Boost.serialization + +%package python3-devel +Summary: Development headers for Boost.python3 +%description python3-devel +Development header files and libraries for Boost.python3 + +%package math-devel +Summary: Development headers for Boost.math +%description math-devel +Development header files and libraries for Boost.math + +%package log-devel +Summary: Development headers for Boost.log +%description log-devel +Development header files and libraries for Boost.log + +%package wave-devel +Summary: Development headers for Boost.wave +%description wave-devel +Development header files and libraries for Boost.wave + +%package url-devel +Summary: Development headers for Boost.url +%description url-devel +Development header files and libraries for Boost.url + +%package type_erase-devel +Summary: Development headers for Boost.type_erase +%description type_erase-devel +Development header files and libraries for Boost.type_erase + +%package timer-devel +Summary: Development headers for Boost.timer +%description timer-devel +Development header files and libraries for Boost.timer + +%package thread-devel +Summary: Development headers for Boost.thread +%description thread-devel +Development header files and libraries for Boost.thread + +%package system-devel +Summary: Development headers for Boost.system +%description system-devel +Development header files and libraries for Boost.system + +%package regex-devel +Summary: Development headers for Boost.regex +%description regex-devel +Development header files and libraries for Boost.regex + +%package random-devel +Summary: Development headers for Boost.random +%description random-devel +Development header files and libraries for Boost.random + +%package program-options-devel +Summary: Development headers for Boost.program-options +%description program-options-devel +Development header files and libraries for Boost.program-options + +%package nowide-devel +Summary: Development headers for Boost.nowide +%description nowide-devel +Development header files and libraries for Boost.nowide + +%package locale-devel +Summary: Development headers for Boost.locale +%description locale-devel +Development header files and libraries for Boost.locale + +%package json-devel +Summary: Development headers for Boost.json +%description json-devel +Development header files and libraries for Boost.json + +%package iostreams-devel +Summary: Development headers for Boost.iostreams +%description iostreams-devel +Development header files and libraries for Boost.iostreams + +%package graph-devel +Summary: Development headers for Boost.graph +%description graph-devel +Development header files and libraries for Boost.graph + +%package filesystem-devel +Summary: Development headers for Boost.filesystem +%description filesystem-devel +Development header files and libraries for Boost.filesystem + +%package fiber-devel +Summary: Development headers for Boost.fiber +%description fiber-devel +Development header files and libraries for Boost.fiber + +%package date-time-devel +Summary: Development headers for Boost.date-time +%description date-time-devel +Development header files and libraries for Boost.date-time + +%package coroutine-devel +Summary: Development headers for Boost.coroutine +%description coroutine-devel +Development header files and libraries for Boost.coroutine + +%package contract-devel +Summary: Development headers for Boost.contract +%description contract-devel +Development header files and libraries for Boost.contract + +%package context-devel +Summary: Development headers for Boost.context +%description context-devel +Development header files and libraries for Boost.context + +%package container-devel +Summary: Development headers for Boost.container +%description container-devel +Development header files and libraries for Boost.container + +%package chrono-devel +Summary: Development headers for Boost.chrono +%description chrono-devel +Development header files and libraries for Boost.chrono + +%package atomic-devel +Summary: Development headers for Boost.atomic +%description atomic-devel +Development header files and libraries for Boost.atomic + %description wave An implementation of the mandated C99/C++ preprocessor functionality. @@ -263,6 +408,64 @@ Requires: boost%{?_isa} = %{version}-%{release} Provides: boost-static Obsoletes: boost-static < %{version} +Requires: %{name}-test%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-stacktrace%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-serialization%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-python3%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-math%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-log%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-wave%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-url%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-type_erase%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-timer%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-thread%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-system%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-regex%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-random%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-program-options%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-nowide%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-locale%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-json%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-iostreams%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-graph%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-filesystem%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-fiber%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-date-time%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-coroutine%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-contract%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-context%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-container%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-chrono%{?_isa}-devel = %{version}-%{release} + +Requires: %{name}-atomic%{?_isa}-devel = %{version}-%{release} + %description devel Headers shared object symbolic links for the Boost C++ libraries and static Boost C++ libraries distributed with boost. @@ -282,7 +485,8 @@ as that on the Boost web page (http://www.boost.org/doc/libs/%{version_enc}). %build ./bootstrap.sh --with-toolset=%{__cc} -%define opt_build -d+2 -q %{?_smp_mflags} --no-cmake-config +# cmake config is enabled +%define opt_build -d+2 -q %{?_smp_mflags} %define opt_feature release debug-symbols=on pch=off %define opt_libs --without-mpi --without-graph_parallel %define b2_options %{opt_build} %{opt_feature} %{opt_libs} @@ -449,6 +653,190 @@ find libs -name example -exec cp {} boost-example --parents -r \; %{_libdir}/*.so %{_libdir}/*.a +%files test-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_test-%{version} +%{_libdir}/libboost_prg_exec_monitor.so.%{version} +%{_libdir}/libboost_unit_test_framework.so.%{version} +%{_libdir}/libboost_test_exec_monitor.so.%{version} + +%files stacktrace-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_stacktrace-%{version} +%{_libdir}/libboost_stacktrace_addr2line.so.%{version} +%{_libdir}/libboost_stacktrace_basic.so.%{version} +%{_libdir}/libboost_stacktrace_noop.so.%{version} + +%files serialization-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_serialization-%{version} +%{_libdir}/libboost_serialization.so.%{version} +%{_libdir}/libboost_wserialization.so.%{version} + +%files python3-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_python3-%{version} +%{_libdir}/libboost_python%{python3_version_nodots}.so.%{version} +%{_libdir}/libboost_numpy%{python3_version_nodots}.so.%{version} + +%files math-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_math-%{version} +%{_libdir}/libboost_math_c99.so.%{version} +%{_libdir}/libboost_math_c99f.so.%{version} +%ifnarch ppc64le +%{_libdir}/libboost_math_c99l.so.%{version} +%endif +%{_libdir}/libboost_math_tr1.so.%{version} +%{_libdir}/libboost_math_tr1f.so.%{version} +%ifnarch ppc64le +%{_libdir}/libboost_math_tr1l.so.%{version} +%endif + +%files log-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_log-%{version} +%{_libdir}/libboost_log.so.%{version} +%{_libdir}/libboost_log_setup.so.%{version} + +%files wave-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_wave-%{version} +%{_libdir}/cmake/boost_wave-%{version}/* +%{_libdir}/libboost_wave.so.%{version} + +%files url-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_url-%{version} +%{_libdir}/cmake/boost_url-%{version}/* +%{_libdir}/libboost_url.so.%{version} + +%files type_erase-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_type_erase-%{version} +%{_libdir}/cmake/boost_type_erase-%{version}/* +%{_libdir}/libboost_type_erase.so.%{version} + +%files timer-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_timer-%{version} +%{_libdir}/cmake/boost_timer-%{version}/* +%{_libdir}/libboost_timer.so.%{version} + +%files thread-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_thread-%{version} +%{_libdir}/cmake/boost_thread-%{version}/* +%{_libdir}/libboost_thread.so.%{version} + +%files system-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_system-%{version} +%{_libdir}/cmake/boost_system-%{version}/* +%{_libdir}/libboost_system.so.%{version} + +%files regex-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_regex-%{version} +%{_libdir}/cmake/boost_regex-%{version}/* +%{_libdir}/libboost_regex.so.%{version} + +%files random-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_random-%{version} +%{_libdir}/cmake/boost_random-%{version}/* +%{_libdir}/libboost_random.so.%{version} + +%files program-options-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_program-options-%{version} +%{_libdir}/cmake/boost_program-options-%{version}/* +%{_libdir}/libboost_program-options.so.%{version} + +%files nowide-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_nowide-%{version} +%{_libdir}/cmake/boost_nowide-%{version}/* +%{_libdir}/libboost_nowide.so.%{version} + +%files locale-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_locale-%{version} +%{_libdir}/cmake/boost_locale-%{version}/* +%{_libdir}/libboost_locale.so.%{version} + +%files json-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_json-%{version} +%{_libdir}/cmake/boost_json-%{version}/* +%{_libdir}/libboost_json.so.%{version} + +%files iostreams-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_iostreams-%{version} +%{_libdir}/cmake/boost_iostreams-%{version}/* +%{_libdir}/libboost_iostreams.so.%{version} + +%files graph-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_graph-%{version} +%{_libdir}/cmake/boost_graph-%{version}/* +%{_libdir}/libboost_graph.so.%{version} + +%files filesystem-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_filesystem-%{version} +%{_libdir}/cmake/boost_filesystem-%{version}/* +%{_libdir}/libboost_filesystem.so.%{version} + +%files fiber-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_fiber-%{version} +%{_libdir}/cmake/boost_fiber-%{version}/* +%{_libdir}/libboost_fiber.so.%{version} + +%files date-time-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_date-time-%{version} +%{_libdir}/cmake/boost_date-time-%{version}/* +%{_libdir}/libboost_date-time.so.%{version} + +%files coroutine-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_coroutine-%{version} +%{_libdir}/cmake/boost_coroutine-%{version}/* +%{_libdir}/libboost_coroutine.so.%{version} + +%files contract-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_contract-%{version} +%{_libdir}/cmake/boost_contract-%{version}/* +%{_libdir}/libboost_contract.so.%{version} + +%files context-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_context-%{version} +%{_libdir}/cmake/boost_context-%{version}/* +%{_libdir}/libboost_context.so.%{version} + +%files container-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_container-%{version} +%{_libdir}/cmake/boost_container-%{version}/* +%{_libdir}/libboost_container.so.%{version} + +%files chrono-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_chrono-%{version} +%{_libdir}/cmake/boost_chrono-%{version}/* +%{_libdir}/libboost_chrono.so.%{version} + +%files atomic-devel +%license LICENSE_1_0.txt +%dir %{_libdir}/cmake/boost_atomic-%{version} +%{_libdir}/cmake/boost_atomic-%{version}/* +%{_libdir}/libboost_atomic.so.%{version} + %changelog * Sun Apr 28 2024 yinsist - 1.83.0-4 - Disable libquadmath dependency for RISC-V as gcc does not currently support RISC-V's libquadmath diff --git a/dynamic_linking.patch b/dynamic_linking.patch new file mode 100644 index 0000000..769c13d --- /dev/null +++ b/dynamic_linking.patch @@ -0,0 +1,13 @@ +Index: boost_1_80_0/libs/test/build/Jamfile.v2 +=================================================================== +--- boost_1_80_0.orig/libs/test/build/Jamfile.v2 ++++ boost_1_80_0/libs/test/build/Jamfile.v2 +@@ -95,7 +95,7 @@ lib boost_test_exec_monitor + : # sources + $(TEST_EXEC_MON_SOURCES).cpp + : # requirements +- static ++ # static + : # default build + : # usage-requirements + shared:BOOST_TEST_DYN_LINK=1