NTAP / quant

QUIC implementation for POSIX and IoT platforms
BSD 2-Clause "Simplified" License
289 stars 35 forks source link

cannot build netmap based quant #52

Closed Winters123 closed 4 years ago

Winters123 commented 4 years ago

Hi Lars,

I installed netmap and it works fine. But after executing make, only client and server based on socket can be generated. How can we leverage warpcore on quant? or how can we generate both socket and warpcore based quant at the same time?

Thanks in advance!

larseggert commented 4 years ago

Can you post the output of cmake? If the netmap headers are detected correctly, the netmap versions of the client and server should be built automatically.

Winters123 commented 4 years ago

Sure. I noticed netmap.h has been found actually..

-- The C compiler identification is GNU 8.3.0

-- The CXX compiler identification is GNU 8.3.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 -- Looking for benchmark::Initialize -- Looking for benchmark::Initialize - not found -- Looking for ProfilerStart -- Looking for ProfilerStart - not found -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found suitable version "1.1.1", minimum required is "1.1.0") -- Performing Test _pipe -- Performing Test _pipe - Success -- Performing Test _Wextra -- Performing Test _Wextra - Success -- Performing Test _Wpedantic -- Performing Test _Wpedantic - Success -- Performing Test _Weverything -- Performing Test _Weverything - Failed -- Performing Test _Werror -- Performing Test _Werror - Success -- Performing Test _fcolor_diagnostics -- Performing Test _fcolor_diagnostics - Failed -- Performing Test _fdiagnostics_color_always -- Performing Test _fdiagnostics_color_always - Success -- Performing Test _fstack_usage -- Performing Test _fstack_usage - Success -- Performing Test _Wno_disabled_macro_expansion -- Performing Test _Wno_disabled_macro_expansion - Success -- Performing Test _Wno_missing_field_initializers -- Performing Test _Wno_missing_field_initializers - Success -- Performing Test _Wno_extra_semi_stmt -- Performing Test _Wno_extra_semi_stmt - Success -- Performing Test _Wno_covered_switch_default -- Performing Test _Wno_covered_switch_default - Success -- Performing Test _Wno_missing_braces -- Performing Test _Wno_missing_braces - Success -- Performing Test _fcomment_block_commands_dotfile -- Performing Test _fcomment_block_commands_dotfile - Failed -- Performing Test _Wno_c__98_compat -- Performing Test _Wno_c__98_compat - Success -- Performing Test _Wno_global_constructors -- Performing Test _Wno_global_constructors - Success -- Looking for sanitizer/asan_interface.h -- Looking for sanitizer/asan_interface.h - found -- Performing Test _fsanitize_address_undefined -- Performing Test _fsanitize_address_undefined - Success -- Performing Test _Og -- Performing Test _Og - Success -- Performing Test _fno_omit_frame_pointer -- Performing Test _fno_omit_frame_pointer - Success -- Performing Test _fsanitize_address_use_after_scope -- Performing Test _fsanitize_address_use_after_scope - Success -- Performing Test _fno_optimize_sibling_calls -- Performing Test _fno_optimize_sibling_calls - Success -- Performing Test _fno_common -- Performing Test _fno_common - Success -- Performing Test _fsanitize_unsigned_integer_overflow -- Performing Test _fsanitize_unsigned_integer_overflow - Failed -- Performing Test _fsanitize_implicit_conversion -- Performing Test _fsanitize_implicit_conversion - Failed -- Performing Test _fsanitize_nullability -- Performing Test _fsanitize_nullability - Failed -- Performing Test _fsanitize_memory -- Performing Test _fsanitize_memory - Failed -- Performing Test _fsanitize_memory_track_origins -- Performing Test _fsanitize_memory_track_origins - Failed -- Performing Test _fsanitize_memory_use_after_dtor -- Performing Test _fsanitize_memory_use_after_dtor - Failed -- Found http-parser: /usr/lib/x86_64-linux-gnu/libhttp_parser.so -- Found Doxygen: /usr/bin/doxygen (found version "1.8.13") found components: doxygen missing components: dot -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.1") -- Looking for backtrace -- Looking for backtrace - found -- Looking for epoll_create -- Looking for epoll_create - found -- Looking for kqueue -- Looking for kqueue - not found -- Looking for recvmmsg -- Looking for recvmmsg - found -- Looking for sendmmsg -- Looking for sendmmsg - found -- Looking for htobe64 -- Looking for htobe64 - found -- Looking for htobe64 -- Looking for htobe64 - not found -- Looking for net/netmap_user.h -- Looking for net/netmap_user.h - found -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") -- Detecting USDT support Traceback (most recent call last): File "/usr/bin/dtrace", line 445, in sys.exit(main()) File "/usr/bin/dtrace", line 390, in main except ParseException: NameError: global name 'ParseException' is not defined -- Detecting USDT support - not found -- Checking for module 'libbrotlidec' -- No package 'libbrotlidec' found -- Checking for module 'libbrotlienc' -- No package 'libbrotlienc' found -- Enabling OpenSSL support -- Found PTLS: /home/distrib/xiangrui/QUIC/quant/quant/Debug/lib/deps/picotls/libpicotls-core.a -- picotls/include: /home/distrib/xiangrui/QUIC/quant/quant/lib/deps/picotls/include -- picotls libraries: /home/distrib/xiangrui/QUIC/quant/quant/Debug/lib/deps/picotls/libpicotls-core.a;/home/distrib/xiangrui/QUIC/quant/quant/Debug/lib/deps/picotls/libpicotls-minicrypto.a;/home/distrib/xiangrui/QUIC/quant/quant/Debug/lib/deps/picotls/libpicotls-openssl.a -- root: /usr -- OpenSSL_VERSION: 1.1.1 -- OpenSSL_INCLUDE_DIR: /usr/include -- OpenSSL_LIBRARIES: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so -- Configuring done -- Generating done -- Build files have been written to: /home/distrib/xiangrui/QUIC/quant/quant/Debug

larseggert commented 4 years ago

-- Looking for net/netmap_user.h - found So netmap is detected. What's in the bin directory after you build?

Winters123 commented 4 years ago

there are only five files : client CMakeFiles cmake_install.cmake Makefile server

larseggert commented 4 years ago

Can you git pull and try again?

Winters123 commented 4 years ago

the new version works fine for me. Thanks 👍 . Is this because that CMakeList.txt didn't set netmap.h to its include directory?

larseggert commented 4 years ago

Yeah, for some reason, when I build with Ninja, it picks it up from the warpcore dependency, but apprently nit when building with make.