From 5605dc87477d9246c2263bd53470f0161d334803 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Wed, 27 Feb 2013 22:37:18 +0100 Subject: [PATCH] Make Boost.Context support conditional --- boost.spec | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/boost.spec b/boost.spec index 55cb58f..8757c0e 100644 --- a/boost.spec +++ b/boost.spec @@ -5,12 +5,12 @@ %define boost_docdir __tmp_docdir %define boost_examplesdir __tmp_examplesdir -# Configuration of MPI back-ends %ifarch %{arm} %bcond_with mpich2 %else %bcond_without mpich2 %endif + %ifarch s390 s390x %{arm} # No OpenMPI support on these arches %bcond_with openmpi @@ -18,14 +18,23 @@ %bcond_without openmpi %endif -# Configuration of Python 3 +%ifnarch %{ix86} x86_64 + # Avoid using Boost.Context on non-x86 arches. s390 is not + # supported at all and there were _syntax errors_ in PPC code. This + # should be enabled on a case-by-case basis as the arches are tested + # and fixed. + %bcond_with context +%else + %bcond_without context +%endif + %bcond_without python3 Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.53.0 %define version_enc 1_53_0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python %define toplev_dirname %{name}_%{version_enc} @@ -45,7 +54,9 @@ Source2: libboost_thread-mt.so # to have interested parties install them explicitly. Requires: boost-atomic = %{version}-%{release} Requires: boost-chrono = %{version}-%{release} +%if %{with context} Requires: boost-context = %{version}-%{release} +%endif Requires: boost-date-time = %{version}-%{release} Requires: boost-filesystem = %{version}-%{release} Requires: boost-graph = %{version}-%{release} @@ -136,6 +147,7 @@ Group: System Environment/Libraries Run-Time support for Boost.Chrono, a set of useful time utilities. +%if %{with context} %package context Summary: Run-Time component of boost context switching library Group: System Environment/Libraries @@ -144,6 +156,7 @@ Group: System Environment/Libraries Run-Time support for Boost.Context, a foundational library that provides a sort of cooperative multitasking on a single thread. +%endif %package date-time Summary: Run-Time component of boost date-time library @@ -543,6 +556,9 @@ sed 's/%%{version}/%{version}/g' %{SOURCE2} > $(basename %{SOURCE2}) echo ============================= build serial ================== ./b2 -d+2 -q %{?_smp_mflags} --layout=tagged \ --without-mpi --without-graph_parallel --build-dir=serial \ +%if !%{with context} + --without-context \ +%endif variant=release threading=single,multi debug-symbols=on pch=off \ python=%{python2_version} stage @@ -595,7 +611,6 @@ rm -rf $RPM_BUILD_ROOT cd %{_builddir}/%{toplev_dirname} %if %{with openmpi} || %{with mpich2} -module list # First, purge all modules so that user environment doesn't conflict # with the build. module purge ||: @@ -636,6 +651,9 @@ export PATH=/bin${PATH:+:}$PATH echo ============================= install serial ================== ./b2 -d+2 -q %{?_smp_mflags} --layout=tagged \ --without-mpi --without-graph_parallel --build-dir=serial \ +%if !%{with context} + --without-context \ +%endif --prefix=$RPM_BUILD_ROOT%{_prefix} \ --libdir=$RPM_BUILD_ROOT%{_libdir} \ variant=release threading=single,multi debug-symbols=on pch=off \ @@ -738,9 +756,11 @@ rm -rf $RPM_BUILD_ROOT %postun chrono -p /sbin/ldconfig +%if %{with context} %post context -p /sbin/ldconfig %postun context -p /sbin/ldconfig +%endif %post date-time -p /sbin/ldconfig @@ -826,10 +846,12 @@ rm -rf $RPM_BUILD_ROOT %doc LICENSE_1_0.txt %{_libdir}/libboost_chrono*.so.%{sonamever} +%if %{with context} %files context %defattr(-, root, root, -) %doc LICENSE_1_0.txt %{_libdir}/libboost_context*.so.%{sonamever} +%endif %files date-time %defattr(-, root, root, -) @@ -1016,6 +1038,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/bjam.1* %changelog +* Wed Feb 27 2013 Petr Machata - 1.53.0-4 +- Make Boost.Context support conditional + * Mon Feb 11 2013 Petr Machata - 1.53.0-3 - Fix Boost.Context on ppc64 - Future-proof the linker script boost_thread-mt.so