diff options
| -rw-r--r-- | autobuild.xml | 12 | ||||
| -rw-r--r-- | indra/cmake/00-Common.cmake | 7 | ||||
| -rw-r--r-- | indra/cmake/Boost.cmake | 54 | ||||
| -rw-r--r-- | indra/cmake/Copy3rdPartyLibs.cmake | 5 | ||||
| -rw-r--r-- | indra/llcommon/llcoros.cpp | 2 | ||||
| -rw-r--r-- | indra/llcommon/llcoros.h | 6 | ||||
| -rw-r--r-- | indra/llcommon/lleventcoro.h | 16 | ||||
| -rw-r--r-- | indra/llcommon/tests/lleventcoro_test.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | indra/newview/llviewerprecompiledheaders.h | 2 | ||||
| -rw-r--r-- | indra/viewer_components/login/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | indra/viewer_components/login/lllogin.cpp | 1 | 
12 files changed, 72 insertions, 51 deletions
| diff --git a/autobuild.xml b/autobuild.xml index 11c2da52dc..5df49d5a39 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -186,9 +186,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>ac37d0038c91b0672fa31a02731f0eac</string> +              <string>d935c41632303f704bda003a463d929a</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/268347/arch/Darwin/installer/boost-1.52.0-darwin-20121218.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/270616/arch/Darwin/installer/boost-1.52.0-darwin-20130220.tar.bz2</string>              </map>              <key>name</key>              <string>darwin</string> @@ -198,9 +198,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>146ed8a8c2ef8ab3f0a6c4f214fc5c22</string> +              <string>45c5f3440f2f0c36ba9f79f66f4a2e5c</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/268347/arch/Linux/installer/boost-1.52.0-linux-20121218.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/270616/arch/Linux/installer/boost-1.52.0-linux-20130221.tar.bz2</string>              </map>              <key>name</key>              <string>linux</string> @@ -210,9 +210,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>3ea60f17d986b7e8a3351298734bdca4</string> +              <string>b004df5ef67142a2d1efb1d60d7e2da0</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/268347/arch/CYGWIN/installer/boost-1.52.0-windows-20121218.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/270616/arch/CYGWIN/installer/boost-1.52.0-windows-20130220.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 452fd5f356..084ba7ea98 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -192,12 +192,7 @@ endif (LINUX)  if (DARWIN) -  # NOTE (per http://lists.apple.com/archives/darwin-dev/2008/Jan/msg00232.html): -  # > Why the bus error? What am I doing wrong?  -  # This is a known issue where getcontext(3) is writing past the end of the -  # ucontext_t struct when _XOPEN_SOURCE is not defined (rdar://problem/5578699 ). -  # As a workaround, define _XOPEN_SOURCE before including ucontext.h. -  add_definitions(-DLL_DARWIN=1 -D_XOPEN_SOURCE) +  add_definitions(-DLL_DARWIN=1)    set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names,-search_paths_first")    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")    set(DARWIN_extra_cstar_flags "-mlong-branch -g") diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index 1acb2bbbfd..cff762e1f0 100644 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -7,11 +7,12 @@ set(Boost_FIND_REQUIRED ON)  if (STANDALONE)    include(FindBoost) +  set(BOOST_CONTEXT_LIBRARY boost_context-mt) +  set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)    set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)    set(BOOST_REGEX_LIBRARY boost_regex-mt)    set(BOOST_SIGNALS_LIBRARY boost_signals-mt)    set(BOOST_SYSTEM_LIBRARY boost_system-mt) -  set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)    set(BOOST_THREAD_LIBRARY boost_thread-mt)  else (STANDALONE)    use_prebuilt_binary(boost) @@ -20,6 +21,12 @@ else (STANDALONE)    if (WINDOWS)      if(MSVC80) +      set(BOOST_CONTEXT_LIBRARY  +          optimized libboost_context-vc80-mt-${BOOST_VERSION} +          debug libboost_context-vc80-mt-gd-${BOOST_VERSION}) +      set(BOOST_FILESYSTEM_LIBRARY  +          optimized libboost_filesystem-vc80-mt-${BOOST_VERSION} +          debug libboost_filesystem-vc80-mt-gd-${BOOST_VERSION})        set(BOOST_PROGRAM_OPTIONS_LIBRARY             optimized libboost_program_options-vc80-mt-${BOOST_VERSION}            debug libboost_program_options-vc80-mt-gd-${BOOST_VERSION}) @@ -32,59 +39,74 @@ else (STANDALONE)        set(BOOST_SYSTEM_LIBRARY             optimized libboost_system-vc80-mt-${BOOST_VERSION}            debug libboost_system-vc80-mt-gd-${BOOST_VERSION}) -      set(BOOST_FILESYSTEM_LIBRARY  -          optimized libboost_filesystem-vc80-mt-${BOOST_VERSION} -          debug libboost_filesystem-vc80-mt-gd-${BOOST_VERSION}) +      set(BOOST_THREAD_LIBRARY  +          optimized libboost_thread-vc80-mt-${BOOST_VERSION} +          debug libboost_thread-vc80-mt-gd-${BOOST_VERSION})      else(MSVC80)        # MSVC 10.0 config +      set(BOOST_CONTEXT_LIBRARY  +          optimized libboost_context-mt +          debug libboost_context-mt-gd) +      set(BOOST_FILESYSTEM_LIBRARY  +          optimized libboost_filesystem-mt +          debug libboost_filesystem-mt-gd)        set(BOOST_PROGRAM_OPTIONS_LIBRARY             optimized libboost_program_options-mt            debug libboost_program_options-mt-gd)        set(BOOST_REGEX_LIBRARY            optimized libboost_regex-mt            debug libboost_regex-mt-gd) +      set(BOOST_SIGNALS_LIBRARY  +          optimized libboost_signals-mt +          debug libboost_signals-mt-gd)        set(BOOST_SYSTEM_LIBRARY             optimized libboost_system-mt            debug libboost_system-mt-gd) -      set(BOOST_FILESYSTEM_LIBRARY  -          optimized libboost_filesystem-mt -          debug libboost_filesystem-mt-gd)        set(BOOST_THREAD_LIBRARY             optimized libboost_thread-mt            debug libboost_thread-mt-gd)      endif (MSVC80)    elseif (LINUX) +    set(BOOST_CONTEXT_LIBRARY +        optimized boost_context-mt +        debug boost_context-mt-d) +    set(BOOST_FILESYSTEM_LIBRARY +        optimized boost_filesystem-mt +        debug boost_filesystem-mt-d)      set(BOOST_PROGRAM_OPTIONS_LIBRARY          optimized boost_program_options-mt          debug boost_program_options-mt-d)      set(BOOST_REGEX_LIBRARY          optimized boost_regex-mt          debug boost_regex-mt-d) +    set(BOOST_SIGNALS_LIBRARY +        optimized boost_signals-mt +        debug boost_signals-mt-d)      set(BOOST_SYSTEM_LIBRARY          optimized boost_system-mt          debug boost_system-mt-d) -    set(BOOST_FILESYSTEM_LIBRARY -        optimized boost_filesystem-mt -        debug boost_filesystem-mt-d)      set(BOOST_THREAD_LIBRARY          optimized boost_thread-mt          debug boost_thread-mt-d)    elseif (DARWIN) -    set(BOOST_PROGRAM_OPTIONS_LIBRARY -        optimized boost_program_options-mt -        debug boost_program_options-mt-d) +    set(BOOST_CONTEXT_LIBRARY +        optimized boost_context-mt +        debug boost_context-mt-d) +    set(BOOST_FILESYSTEM_LIBRARY +        optimized boost_filesystem-mt +        debug boost_filesystem-mt-d)      set(BOOST_PROGRAM_OPTIONS_LIBRARY          optimized boost_program_options-mt          debug boost_program_options-mt-d)      set(BOOST_REGEX_LIBRARY          optimized boost_regex-mt          debug boost_regex-mt-d) +    set(BOOST_SIGNALS_LIBRARY +        optimized boost_signals-mt +        debug boost_signals-mt-d)      set(BOOST_SYSTEM_LIBRARY          optimized boost_system-mt          debug boost_system-mt-d) -    set(BOOST_FILESYSTEM_LIBRARY -        optimized boost_filesystem-mt -        debug boost_filesystem-mt-d)      set(BOOST_THREAD_LIBRARY          optimized boost_thread-mt          debug boost_thread-mt-d) diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index c32e357da3..8457cf5359 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -254,12 +254,13 @@ elseif(LINUX)          libapr-1.so.0          libaprutil-1.so.0          libatk-1.0.so +        libboost_context-mt.so.${BOOST_VERSION}.0 +        libboost_filesystem-mt.so.${BOOST_VERSION}.0          libboost_program_options-mt.so.${BOOST_VERSION}.0          libboost_regex-mt.so.${BOOST_VERSION}.0 -        libboost_thread-mt.so.${BOOST_VERSION}.0 -        libboost_filesystem-mt.so.${BOOST_VERSION}.0          libboost_signals-mt.so.${BOOST_VERSION}.0          libboost_system-mt.so.${BOOST_VERSION}.0 +        libboost_thread-mt.so.${BOOST_VERSION}.0          libbreakpad_client.so.0          libcollada14dom.so          libcrypto.so.1.0.0 diff --git a/indra/llcommon/llcoros.cpp b/indra/llcommon/llcoros.cpp index 0b5829eb7e..9122704306 100644 --- a/indra/llcommon/llcoros.cpp +++ b/indra/llcommon/llcoros.cpp @@ -115,7 +115,7 @@ std::string LLCoros::getNameByID(const void* self_id) const      // passed to us comes.      for (CoroMap::const_iterator mi(mCoros.begin()), mend(mCoros.end()); mi != mend; ++mi)      { -        namespace coro_private = boost::coroutines::detail; +        namespace coro_private = boost::dcoroutines::detail;          if (static_cast<void*>(coro_private::coroutine_accessor::get_impl(const_cast<coro&>(*mi->second)).get())              == self_id)          { diff --git a/indra/llcommon/llcoros.h b/indra/llcommon/llcoros.h index d75f28ec1a..03df406b68 100644 --- a/indra/llcommon/llcoros.h +++ b/indra/llcommon/llcoros.h @@ -29,7 +29,7 @@  #if ! defined(LL_LLCOROS_H)  #define LL_LLCOROS_H -#include <boost/coroutine/coroutine.hpp> +#include <boost/dcoroutine/coroutine.hpp>  #include "llsingleton.h"  #include <boost/ptr_container/ptr_map.hpp>  #include <string> @@ -78,8 +78,8 @@  class LL_COMMON_API LLCoros: public LLSingleton<LLCoros>  {  public: -    /// Canonical boost::coroutines::coroutine signature we use -    typedef boost::coroutines::coroutine<void()> coro; +    /// Canonical boost::dcoroutines::coroutine signature we use +    typedef boost::dcoroutines::coroutine<void()> coro;      /// Canonical 'self' type      typedef coro::self self; diff --git a/indra/llcommon/lleventcoro.h b/indra/llcommon/lleventcoro.h index 88a5e6ec74..a42af63b65 100644 --- a/indra/llcommon/lleventcoro.h +++ b/indra/llcommon/lleventcoro.h @@ -29,8 +29,8 @@  #if ! defined(LL_LLEVENTCORO_H)  #define LL_LLEVENTCORO_H -#include <boost/coroutine/coroutine.hpp> -#include <boost/coroutine/future.hpp> +#include <boost/dcoroutine/coroutine.hpp> +#include <boost/dcoroutine/future.hpp>  #include <boost/optional.hpp>  #include <string>  #include <stdexcept> @@ -206,13 +206,13 @@ LLSD postAndWait(SELF& self, const LLSD& event, const LLEventPumpOrPumpName& req                   const LLEventPumpOrPumpName& replyPump, const LLSD& replyPumpNamePath=LLSD())  {      // declare the future -    boost::coroutines::future<LLSD> future(self); +    boost::dcoroutines::future<LLSD> future(self);      // make a callback that will assign a value to the future, and listen on      // the specified LLEventPump with that callback      std::string listenerName(LLEventDetail::listenerNameForCoro(self));      LLTempBoundListener connection(          replyPump.getPump().listen(listenerName, -                                   voidlistener(boost::coroutines::make_callback(future)))); +                                   voidlistener(boost::dcoroutines::make_callback(future))));      // skip the "post" part if requestPump is default-constructed      if (requestPump)      { @@ -257,7 +257,7 @@ namespace LLEventDetail       * This helper is specifically for the two-pump version of waitForEventOn().       * We use a single future object, but we want to listen on two pumps with it.       * Since we must still adapt from (the callable constructed by) -     * boost::coroutines::make_callback() (void return) to provide an event +     * boost::dcoroutines::make_callback() (void return) to provide an event       * listener (bool return), we've adapted LLVoidListener for the purpose. The       * basic idea is that we construct a distinct instance of WaitForEventOnHelper       * -- binding different instance data -- for each of the pumps. Then, when a @@ -331,16 +331,16 @@ LLEventWithID postAndWait2(SELF& self, const LLSD& event,                             const LLSD& replyPump1NamePath=LLSD())  {      // declare the future -    boost::coroutines::future<LLEventWithID> future(self); +    boost::dcoroutines::future<LLEventWithID> future(self);      // either callback will assign a value to this future; listen on      // each specified LLEventPump with a callback      std::string name(LLEventDetail::listenerNameForCoro(self));      LLTempBoundListener connection0(          replyPump0.getPump().listen(name + "a", -                               LLEventDetail::wfeoh(boost::coroutines::make_callback(future), 0))); +                               LLEventDetail::wfeoh(boost::dcoroutines::make_callback(future), 0)));      LLTempBoundListener connection1(          replyPump1.getPump().listen(name + "b", -                               LLEventDetail::wfeoh(boost::coroutines::make_callback(future), 1))); +                               LLEventDetail::wfeoh(boost::dcoroutines::make_callback(future), 1)));      // skip the "post" part if requestPump is default-constructed      if (requestPump)      { diff --git a/indra/llcommon/tests/lleventcoro_test.cpp b/indra/llcommon/tests/lleventcoro_test.cpp index 901ba35b2f..8d12529613 100644 --- a/indra/llcommon/tests/lleventcoro_test.cpp +++ b/indra/llcommon/tests/lleventcoro_test.cpp @@ -64,10 +64,10 @@  // Boost.Coroutine #include is the *first* #include of the platform header.  // That means that client code must generally #include Boost.Coroutine headers  // before anything else. -#include <boost/coroutine/coroutine.hpp> +#include <boost/dcoroutine/coroutine.hpp>  // Normally, lleventcoro.h obviates future.hpp. We only include this because  // we implement a "by hand" test of future functionality. -#include <boost/coroutine/future.hpp> +#include <boost/dcoroutine/future.hpp>  #include <boost/bind.hpp>  #include <boost/range.hpp> @@ -87,7 +87,7 @@  /*****************************************************************************  *   from the banana.cpp example program borrowed for test<1>()  *****************************************************************************/ -namespace coroutines = boost::coroutines; +namespace coroutines = boost::dcoroutines;  using coroutines::coroutine;  template<typename Iter> @@ -122,7 +122,7 @@ typedef coroutine<std::string::iterator(void)> match_coroutine_type;  *   Test helpers  *****************************************************************************/  // I suspect this will be typical of coroutines used in Linden software -typedef boost::coroutines::coroutine<void()> coroutine_type; +typedef boost::dcoroutines::coroutine<void()> coroutine_type;  /// Simulate an event API whose response is immediate: sent on receipt of the  /// initial request, rather than after some delay. This is the case that @@ -173,10 +173,10 @@ namespace tut                  // ... do whatever preliminary stuff must happen ...                  // declare the future -                boost::coroutines::future<LLSD> future(self); +                boost::dcoroutines::future<LLSD> future(self);                  // tell the future what to wait for                  LLTempBoundListener connection( -                    LLEventPumps::instance().obtain("source").listen("coro", voidlistener(boost::coroutines::make_callback(future)))); +                    LLEventPumps::instance().obtain("source").listen("coro", voidlistener(boost::dcoroutines::make_callback(future))));                  ensure("Not yet", ! future);                  // attempting to dereference ("resolve") the future causes the calling                  // coroutine to wait for it diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index e93d73ad0e..fe7ceaeba6 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1823,6 +1823,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}      ${viewer_LIBRARIES}      ${BOOST_PROGRAM_OPTIONS_LIBRARY}      ${BOOST_REGEX_LIBRARY} +    ${BOOST_CONTEXT_LIBRARY}      ${DBUSGLIB_LIBRARIES}      ${OPENGL_LIBRARIES}      ${FMODWRAPPER_LIBRARY} # must come after LLAudio diff --git a/indra/newview/llviewerprecompiledheaders.h b/indra/newview/llviewerprecompiledheaders.h index 0316f79973..a565005f30 100644 --- a/indra/newview/llviewerprecompiledheaders.h +++ b/indra/newview/llviewerprecompiledheaders.h @@ -33,8 +33,6 @@  // in viewer.  // It is used to precompile headers for improved build speed. -#include <boost/coroutine/coroutine.hpp> -  #include "linden_common.h"  // Work around stupid Microsoft STL warning diff --git a/indra/viewer_components/login/CMakeLists.txt b/indra/viewer_components/login/CMakeLists.txt index 7720619df3..28b87bf663 100644 --- a/indra/viewer_components/login/CMakeLists.txt +++ b/indra/viewer_components/login/CMakeLists.txt @@ -46,6 +46,11 @@ if(LL_TESTS)    SET(lllogin_TEST_SOURCE_FILES        lllogin.cpp        ) +  set_source_files_properties( +    lllogin.cpp +    PROPERTIES +    LL_TEST_ADDITIONAL_LIBRARIES "${BOOST_CONTEXT_LIBRARY}" +    )    LL_ADD_PROJECT_UNIT_TESTS(lllogin "${lllogin_TEST_SOURCE_FILES}")  endif(LL_TESTS) diff --git a/indra/viewer_components/login/lllogin.cpp b/indra/viewer_components/login/lllogin.cpp index bdcb068200..3357ad812d 100644 --- a/indra/viewer_components/login/lllogin.cpp +++ b/indra/viewer_components/login/lllogin.cpp @@ -23,7 +23,6 @@   * $/LicenseInfo$   */ -#include <boost/coroutine/coroutine.hpp>  #include "linden_common.h"  #include "llsd.h"  #include "llsdutil.h" | 
