erpc-io / eRPC

Efficient RPCs for datacenter networks
Other
851 stars 138 forks source link

failed to make with error: use of old-style cast #30

Closed lemonChar closed 4 years ago

lemonChar commented 5 years ago

I met this error when I first ran on Boost 1.70.0. Then I degraded to Boost 1.69.0. And I met the error again. I noticed that there was an issue similar with my case for Boost 1.67+. So I degraded to Boost 1.61.0 and tried it again. But the error still existed. error output: _{CMAKE}/boost/function/functiontemplate.hpp:638:69 error: use of old-style cast [-Werror=old-style-cast] _functor.member.obj_ref.obj_ptr = (void *)(f.getpointer());

More output: In file included from /home/wyl/.local/include/boost/function/detail/maybe_include.hpp:50:0, from /home/wyl/.local/include/boost/function/detail/function_iterate.hpp:14, from /home/wyl/.local/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:72, from /home/wyl/.local/include/boost/function.hpp:70, from /home/wyl/.local/include/boost/algorithm/string/detail/find_iterator.hpp:18, from /home/wyl/.local/include/boost/algorithm/string/find_iterator.hpp:24, from /home/wyl/.local/include/boost/algorithm/string/iter_find.hpp:27, from /home/wyl/.local/include/boost/algorithm/string/split.hpp:16, from /home/wyl/.local/include/boost/algorithm/string.hpp:23, from /home/wyl/eRPC/src/common.h:12, from /home/wyl/eRPC/src/transport.h:8, from /home/wyl/eRPC/src/transport_impl/infiniband/ib_transport.h:9, from /home/wyl/eRPC/src/transport_impl/infiniband/ib_transport_datapath.cc:3:

anujkaliaiitd commented 5 years ago

Thanks for raising the issue. Boost is included as a "system" include directory (see CMakeLists.txt), which should ideally prevent this issue. But it seems to not be broken.

Can you please provide the following:

lemonChar commented 5 years ago

Thanks for your quick reply. I ran eRPC on Ubuntu 16.04. And I downloaded boost source code from https://sourceforge.net/projects/boost/files/boost/1.61.0/boost_1_61_0.tar.gz Then I complied it.

Here is the output: ./scripts/clean.sh cmake . -DPERF=OFF -DTRANSPORT=infiniband _-- The C compiler identification is GNU 5.4.0 -- The CXX compiler identification is GNU 5.4.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found GTest: /home/wyl/.local/lib/libgtest.a
-- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE
-- Compilation not optimized for performance. -- Profile-guided optimization is disabled. -- Logging level = warn. -- Debugging is enabled. Perf will be low. -- Testing is enabled. Performance will be low. -- LTO is disabled. Performance will be low. -- Boost version: 1.61.0 -- Boost include directory = /home/wyl/.local/include -- Selected transport = infiniband. -- Compiling eRPC as a library -- No autorun_appfile found. No application will be compiled. -- Configuring done -- Generating done -- Build files have been written to: /home/wyl/eRPC

lemonChar commented 5 years ago

I can run it normally now by delete _add_definitions(-Wall -Wextra -Werror -pedantic -Wsign-conversion -Wold-style-cast) adddefinitions(-Wno-unused-function -Wno-nested-anon-types -Wno-keyword-macro)

Maybe this is owing to my g++ version (5.4.0). I noticed that you seemed to using g++ 8.

anujkaliaiitd commented 5 years ago

Ignoring the warnings is a valid workaround. I'll get back to this bug in a few days.

anujkaliaiitd commented 4 years ago

Heh "few days". eRPC now doesn't require Boost.