From 52155e1d78650fd0360104f70df987dceed06cb2 Mon Sep 17 00:00:00 2001 From: Ben Hamilton Date: Fri, 10 Jun 2016 16:01:34 -0700 Subject: [PATCH] Make Fibers library conditional on working Boost.Context fcontext_t Summary: Boost 1.61 removes the `boost::context::fcontext_t` type which Folly Fibers depends on. This makes the Fibers library conditional on a working `fcontext_t`, so Folly will build (just without Fibers) if it's not present. Depends On D3419638 Fixes https://github.com/facebook/folly/issues/413 Reviewed By: Orvid Differential Revision: D3420097 fbshipit-source-id: 876f8f76a2d0dda4ce5085c27875ab6aaa7b86c0 --- folly/Makefile.am | 70 +++++++++++++++++++++++++--------------------- folly/configure.ac | 1 + 2 files changed, 39 insertions(+), 32 deletions(-) diff --git a/folly/Makefile.am b/folly/Makefile.am index 45547c9d..bfd670cd 100644 --- a/folly/Makefile.am +++ b/folly/Makefile.am @@ -97,32 +97,6 @@ nobase_follyinclude_HEADERS = \ experimental/EventCount.h \ experimental/Instructions.h \ experimental/bser/Bser.h \ - fibers/AddTasks.h \ - fibers/AddTasks-inl.h \ - fibers/Baton.h \ - fibers/Baton-inl.h \ - fibers/BoostContextCompatibility.h \ - fibers/EventBaseLoopController.h \ - fibers/EventBaseLoopController-inl.h \ - fibers/Fiber.h \ - fibers/Fiber-inl.h \ - fibers/FiberManager.h \ - fibers/FiberManager-inl.h \ - fibers/FiberManagerMap.h \ - fibers/ForEach.h \ - fibers/ForEach-inl.h \ - fibers/GenericBaton.h \ - fibers/GuardPageAllocator.h \ - fibers/LoopController.h \ - fibers/Promise.h \ - fibers/Promise-inl.h \ - fibers/SimpleLoopController.h \ - fibers/TimedMutex.h \ - fibers/TimedMutex-inl.h \ - fibers/TimeoutController.h \ - fibers/traits.h \ - fibers/WhenN.h \ - fibers/WhenN-inl.h \ experimental/FunctionScheduler.h \ experimental/FutureDAG.h \ experimental/io/FsUtil.h \ @@ -467,12 +441,6 @@ libfolly_la_SOURCES = \ experimental/bser/Dump.cpp \ experimental/bser/Load.cpp \ experimental/DynamicParser.cpp \ - fibers/Baton.cpp \ - fibers/Fiber.cpp \ - fibers/FiberManager.cpp \ - fibers/FiberManagerMap.cpp \ - fibers/GuardPageAllocator.cpp \ - fibers/TimeoutController.cpp \ experimental/FunctionScheduler.cpp \ experimental/io/FsUtil.cpp \ experimental/JSONSchema.cpp \ @@ -496,6 +464,44 @@ if !HAVE_BITS_FUNCTEXCEPT_H libfollybase_la_SOURCES += detail/FunctionalExcept.cpp endif +if HAVE_BOOST_CONTEXT +nobase_follyinclude_HEADERS += \ + fibers/AddTasks.h \ + fibers/AddTasks-inl.h \ + fibers/Baton.h \ + fibers/Baton-inl.h \ + fibers/BoostContextCompatibility.h \ + fibers/EventBaseLoopController.h \ + fibers/EventBaseLoopController-inl.h \ + fibers/Fiber.h \ + fibers/Fiber-inl.h \ + fibers/FiberManager.h \ + fibers/FiberManager-inl.h \ + fibers/FiberManagerMap.h \ + fibers/ForEach.h \ + fibers/ForEach-inl.h \ + fibers/GenericBaton.h \ + fibers/GuardPageAllocator.h \ + fibers/LoopController.h \ + fibers/Promise.h \ + fibers/Promise-inl.h \ + fibers/SimpleLoopController.h \ + fibers/TimedMutex.h \ + fibers/TimedMutex-inl.h \ + fibers/TimeoutController.h \ + fibers/traits.h \ + fibers/WhenN.h \ + fibers/WhenN-inl.h + +libfolly_la_SOURCES += \ + fibers/Baton.cpp \ + fibers/Fiber.cpp \ + fibers/FiberManager.cpp \ + fibers/FiberManagerMap.cpp \ + fibers/GuardPageAllocator.cpp \ + fibers/TimeoutController.cpp +endif + libfollybase_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LT_VERSION) libfolly_la_LIBADD = libfollybase.la diff --git a/folly/configure.ac b/folly/configure.ac index e3981b2c..48a99b5b 100644 --- a/folly/configure.ac +++ b/folly/configure.ac @@ -536,6 +536,7 @@ AM_CONDITIONAL([HAVE_BITS_FUNCTEXCEPT_H], [test "$ac_cv_header_bits_functexcept_ AM_CONDITIONAL([HAVE_EXTRANDOM_SFMT19937], [test "$folly_cv_prog_cc_have_extrandom_sfmt19937" = "yes"]) AM_CONDITIONAL([FOLLY_TESTMAIN], [test "x${use_follytestmain}" = "xyes"]) +AM_CONDITIONAL([HAVE_BOOST_CONTEXT], [test "x${ax_cv_boost_context}" = "xyes"]) # Output AC_CONFIG_FILES([Makefile -- 2.34.1