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 hashboost::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_allocatorboost::coroutines::stack_traits'
auto mss = static_cast