adds a more specific option for this boost::context dependency, which was
previously only used by the radosgw beast frontend. see
http://tracker.ceph.com/issues/20048 for more background
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit
b589b73c70bc4c644b7a040d9aee5083881254b9)
Conflicts:
src/include/config-h.in.cmake (missing HAVE_GETENTROPY from
https://github.com/ceph/ceph/pull/17972)
include_directories(src/blkin/blkin-lib)
endif(WITH_BLKIN)
+option(WITH_BOOST_CONTEXT "Enable boost::asio stackful coroutines" ON)
+if(WITH_BOOST_CONTEXT)
+ set(HAVE_BOOST_CONTEXT ON)
+endif()
+
#option for RGW
option(WITH_RADOSGW "Rados Gateway is enabled" ON)
option(WITH_RADOSGW_FCGI_FRONTEND "Rados Gateway's FCGI frontend is enabled" OFF)
if(WITH_RADOSGW_FCGI_FRONTEND)
find_package(fcgi REQUIRED)
endif()
+ if(WITH_RADOSGW_BEAST_FRONTEND AND NOT WITH_BOOST_CONTEXT)
+ message(WARNING "disabling WITH_RADOSGW_BEAST_FRONTEND, which depends on WITH_BOOST_CONTEXT")
+ set(WITH_RADOSGW_BEAST_FRONTEND OFF)
+ endif()
endif(WITH_RADOSGW)
if(WITH_MGR)
list(APPEND BOOST_COMPONENTS python)
endif()
+if(WITH_BOOST_CONTEXT)
+ list(APPEND BOOST_COMPONENTS context coroutine)
+endif()
set(Boost_USE_MULTITHREADED ON)
# require minimally the bundled version
-DWITH_OCF=ON \
%endif
%ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le %{ix86} x86_64
- -DWITH_RADOSGW_BEAST_FRONTEND=ON \
+ -DWITH_BOOST_CONTEXT=ON \
%else
- -DWITH_RADOSGW_BEAST_FRONTEND=OFF \
+ -DWITH_BOOST_CONTEXT=OFF \
%endif
-DBOOST_J=%{_smp_ncpus}
endif
ifneq (,$(filter $(DEB_HOST_ARCH), arm armel armhf arm64 i386 amd64 mips mipsel powerpc ppc64))
- # beast depends on libboost_context which only support the archs above
- extraopts += -DWITH_RADOSGW_BEAST_FRONTEND=ON
+ # libboost_context only support the archs above
+ extraopts += -DWITH_BOOST_CONTEXT=ON
else
- extraopts += -DWITH_RADOSGW_BEAST_FRONTEND=OFF
+ extraopts += -DWITH_BOOST_CONTEXT=OFF
endif
%:
/* Define to 1 if you have the `getprogname' function. */
#cmakedefine HAVE_GETPROGNAME 1
+/* Defined if boost::context is available */
+#cmakedefine HAVE_BOOST_CONTEXT
+
#endif /* CONFIG_H */