On 05/22/14 12:56, Dominik Charousset wrote:
I created the boost libraries and tried the boost.actor configure again and it worked. However, the subsequent make failed because compiler could not find memcmp, as shown by the terminal session at the end of this post. Note that I did do a `git diff` which showed the only' difference was in the ./configure. Also, there were several warnings.
Is there something I should do to get the make to work?
[snip] I modified the configure arguments as shown in 1st attachment. Now, at the `make` step, it aborts at the same place, but with a message about incompatible args instead of not finding the memcmp function. The complete terminal session is in 2nd attachment.
Thank you for your patience. The function memcmp is defined in <cstring>, which was simply not included. I don’t know why I never got this error (I’ve tested on SuSE 13.1, Ubuntu 13.10, Fedora, Mac OS, MinGW @ Win7). Btw, you don’t have to pass both GCC and Clang to the configure script. I would recommend using the compiler you’ve used to build the Boost libraries to avoid running into ABI incompatibilities.
I have added the missing include in the master branch and fixed the mismatched-tags warnings as well. Hope that fixes your issues. Oh, and don’t be surprised that almost each file has changed if you’re running git pull: the license has been changed from LGPL to the Boost Software License.
Best regards, Dominik
Did a pull yesterday: evansl@evansl-Inspiron-531:~/prog_dev/boost/sandbox/boost.actor.dir/boost.actor$ git pull remote: Counting objects: 359, done. remote: Compressing objects: 100% (260/260), done. remote: Total 359 (delta 209), reused 122 (delta 92) Receiving objects: 100% (359/359), 320.70 KiB | 379 KiB/s, done. Resolving deltas: 100% (209/209), done. From https://github.com/Neverlord/boost.actor e0411b5..e618a54 master -> origin/master From https://github.com/Neverlord/boost.actor * [new tag] preliminary_submission_2 -> preliminary_submission_2 Updating e0411b5..e618a54 Fast-forward CMakeLists.txt | 4 +- LICENCE | 525 +------------------- boost.actor.files | 39 +- boost/actor/abstract_actor.hpp | 32 +- boost/actor/abstract_channel.hpp | 32 +- . . . src/yield_interface.cpp | 32 +- unit_testing/test_broker.cpp | 32 +- unit_testing/test_intrusive_containers.cpp | 32 +- unit_testing/test_typed_spawn.cpp | 32 +- 276 files changed, 3215 insertions(+), 6606 deletions(-) delete mode 100644 boost/actor/io/ipv4_acceptor.hpp delete mode 100644 boost/actor/io/ipv4_io_stream.hpp create mode 100644 boost/actor/io/tcp_acceptor.hpp create mode 100644 boost/actor/io/tcp_io_stream.hpp create mode 100644 examples/remote_actors/simple_broker.cpp rename src/{ipv4_acceptor.cpp => tcp_acceptor.cpp} (64%) rename src/{ipv4_io_stream.cpp => tcp_io_stream.cpp} (65%) evansl@evansl-Inspiron-531:~/prog_dev/boost/sandbox/boost.actor.dir/boost.actor$ Then did configure again (with just the --with-clang flag: ~/prog_dev/boost/sandbox/boost.actor.dir/boost.actor $ . ../boost.actor.configure.sh -- The C compiler identification is GNU -- The CXX compiler identification is Clang -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /home/evansl/dwnlds/llvm/versions/3.4/configurations/Release/install/bin/clang++ -- Check for working CXX compiler: /home/evansl/dwnlds/llvm/versions/3.4/configurations/Release/install/bin/clang++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Found clang++ version 3.4 -- NOTE: Automatically added -stdlib=libc++ flag, you can override this by defining CMAKE_CXX_FLAGS (see 'configure --help') -- Looking for C++ include valgrind/valgrind.h -- Looking for C++ include valgrind/valgrind.h - found -- Build type: -- Boost version: 1.56.0 -- Found the following Boost libraries: -- system -- context -- coroutine -- thread -- Boost version: 1.56.0 -- Found the following Boost libraries: -- program_options -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) ====================| Build Summary |==================== Build type: RelWithDebInfo Debug mode: no Log level: none Context switching: yes Valgrind: yes Build examples: yes Build unit tests: yes Build static: no Bulid static only: no Build OpenCL: no With mem. mgmt.: yes CXX: /home/evansl/dwnlds/llvm/versions/3.4/configurations/Release/install/bin/clang++ CXXFLAGS: -std=c++11 -Wextra -Wall -pedantic -ftemplate-backtrace-limit=0 -pthread -O2 -g LD_DIRS: /home/evansl/prog_dev/boost/boost-modular/modular-boost/install/lib LIBRARIES: /home/evansl/prog_dev/boost/boost-modular/modular-boost/install/lib/libboost_coroutine.so;/home/evansl/prog_dev/boost/boost-modular/modular-boost/install/lib/libboost_context.so;/home/evansl/prog_dev/boost/boost-modular/modular-boost/install/lib/libboost_system.so Source directory: /home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor Build directory: /home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build Executable path: /home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build/bin Library path: /home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build/lib Install prefix: /usr/local Boost: /home/evansl/prog_dev/boost/boost-modular/modular-boost/install/include =========================================================== -- Configuring done -- Generating done -- Build files have been written to: /home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build ~/prog_dev/boost/sandbox/boost.actor.dir/boost.actor $ However, when tried make, got other errors: make[1]: Entering directory `/home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build' make[2]: Entering directory `/home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build' make[3]: Entering directory `/home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build' Scanning dependencies of target libboost_actor make[3]: Leaving directory `/home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build' make[3]: Entering directory `/home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build' [ 0%] Building CXX object CMakeFiles/libboost_actor.dir/src/middleman_event_handler_epoll.cpp.o [ 1%] Building CXX object CMakeFiles/libboost_actor.dir/src/abstract_actor.cpp.o In file included from /home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/src/abstract_actor.cpp:31: /home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/./boost/actor/actor_addr.hpp:116:1: warning: 'hash' defined as a class template here but previously declared as a struct template [-Wmismatched-tags] class hash<boost::actor::actor_addr> { ^ . . . [ 20%] Building CXX object CMakeFiles/libboost_actor.dir/src/cs_thread.cpp.o /home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/src/cs_thread.cpp:154:61: error: no member named 'minimum_stacksize' in 'boost::coroutines::basic_standard_stack_allocator<boost::coroutines::stack_traits>' auto mss = static_cast<intptr_t>( stack_allocator::minimum_stacksize() ~~~~~~~~~~~~~~~~~^ /home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/src/cs_thread.cpp:158:13: error: assigning to 'context' (aka 'void **') from incompatible type 'fcontext_t' (aka 'void *') ctx = ctxn::make_fcontext(sinf.sp, sinf.size, cst_trampoline); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/src/cs_thread.cpp:160:24: error: member reference base type 'ctxn::fcontext_t' (aka 'void *') is not a structure or union ctx->fc_stack.sp, ~~~^ ~~~~~~~~ 3 errors generated. make[3]: *** [CMakeFiles/libboost_actor.dir/src/cs_thread.cpp.o] Error 1 make[3]: Leaving directory `/home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build' make[2]: *** [CMakeFiles/libboost_actor.dir/all] Error 2 make[2]: Leaving directory `/home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build' make[1]: *** [all] Error 2 make[1]: Leaving directory `/home/evansl/prog_dev/boost/sandbox/boost.actor.dir/boost.actor/build' make: *** [all] Error 2 ~/prog_dev/boost/sandbox/boost.actor.dir/boost.actor $ Please, how should I correct the errors? -regards, Larry