Closed CraneXHu closed 3 years ago
Can you provide full CMake output? Note that we don't officially support GCC 10 since the default with 20.04 LTS is still 9.x. Last I heard, however, we did compile with GCC 10.
-- The CXX compiler identification is GNU 10.2.0
-- 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
-- Welcome to NoisePage!
Home Page: https://noise.page/
Version: 1.0.0.0
Dependencies: All found!
-- Note that following NoisePage options are just a sample and may not be the full list. Check compile_commands.json to be sure. -- noisepage_objlib COMPILE_DEFINITIONS: NDEBUG;NOISEPAGE_USE_LOGGING -- noisepage_objlib COMPILE_FEATURES: cxx_std_17 -- noisepage_objlib COMPILE_OPTIONS: -Werror;-Wall;-march=native;-mcx16;-O3;-fdiagnostics-color=always -- noisepage_objlib LINK_OPTIONS: -fuse-ld=lld -- noisepage_objlib LINK_LIBRARIES: count;cppzmq;fast_float;gflags;ips4o::ips4o;madoka::madoka;nlohmann_json::nlohmann_json;pg_query::pg_query;xbyak::xbyak;xxHash::xxhash;/home/cranehu/Documents/noisepage/build/_deps/build/spdlog/libspdlog.a;/usr/lib/x86_64-linux-gnu/libevent.so;/usr/lib/x86_64-linux-gnu/libevent_pthreads.so;/usr/lib/x86_64-linux-gnu/libevent.so;/usr/lib/x86_64-linux-gnu/libjemalloc.so;/usr/lib/x86_64-linux-gnu/libpqxx.so;LLVMCore;LLVMipo;LLVMMCJIT;LLVMX86CodeGen;LLVMX86Desc;LLVMX86Info;LLVMSupport;LLVMX86CodeGen;LLVMX86AsmParser;LLVMX86AsmPrinter;LLVMX86Desc;LLVMX86Disassembler;LLVMX86Info;LLVMX86Utils;/usr/lib/x86_64-linux-gnu/libtbb.so -- noisepage COMPILE_OPTIONS: -Werror;-Wall -- noisepage LINK_LIBRARIES: noisepage_static -- tpl COMPILE_OPTIONS: -Werror;-Wall -- tpl LINK_LIBRARIES: noisepage_static;util_static -- noisepage_test_util_static COMPILE_DEFINITIONS: NOISEPAGE_BUILD_ROOT=/home/cranehu/Documents/noisepage/build -- noisepage_test_util_static COMPILE_OPTIONS: -Werror;-Wall -- noisepage_test_util_static LINK_LIBRARIES: /home/cranehu/Documents/noisepage/build/lib/libgtest.a;/home/cranehu/Documents/noisepage/build/lib/libgmock.a;util_static;pqxx -- tpcc_test COMPILE_OPTIONS: -Werror;-Wall;-fvisibility=hidden -- tpcc_test LINK_LIBRARIES: /home/cranehu/Documents/noisepage/build/lib/libgmock_main.a;noisepage_test_util_shared -- noisepage_benchmark_util COMPILE_OPTIONS: -Werror;-Wall -- noisepage_benchmark_util LINK_LIBRARIES: /home/cranehu/Documents/noisepage/build/lib/libgmock_main.a;noisepage_test_util_static;benchmark -- tpcc_benchmark COMPILE_OPTIONS: -Werror;-Wall -- tpcc_benchmark LINK_LIBRARIES: noisepage_benchmark_util -- [ADDED] check-censored -- [FOUND] cpplint (https://raw.githubusercontent.com/cpplint/cpplint/5b4259ef4c94d34e98192f53466c8af5e9d1c259/cpplint.py) -- [ADDED] check-lint (/home/cranehu/Documents/noisepage/build/_deps/src/cpplint/cpplint.py) -- [ADDED] check-tpl -- [ADDED] clang-format and check-clang-format (/usr/bin/clang-format-8) -- [ADDED] check-clang-tidy (/usr/bin/clang-tidy-8) -- Configuring done -- Generating done -- Build files have been written to: /home/cranehu/Documents/noisepage/build
2. run ninja noisepage
ninja: error: rules.ninja:21: invalid pool depth depth = 4294967295
I set depth to 4, there is no problem.
3. run ninja noisepage again
[0/2] Re-checking globbed directories...
[3/118] Building CXX object CMakeFiles...ge_objlib.dir/Unity/unity_39_cxx.cxx.o
FAILED: CMakeFiles/noisepage_objlib.dir/Unity/unity_39_cxx.cxx.o
/usr/bin/c++ -DGFLAGS_IS_A_DLL=0 -DNDEBUG -DNOISEPAGE_USE_LOGGING -I../src/include -I_deps/src/count/count/../include -I_deps/src/cppzmq -I_deps/build/gflags/include -I_deps/src/ips4o/ips4o -I_deps/src/ips4o -I_deps/src/madoka -I_deps/src/nlohmann_json/include -I_deps/src/xbyak -isystem /usr/lib/llvm-8/include -isystem _deps/src -isystem _deps/src/spdlog/include -isystem _deps/src/fast_float/include -isystem /usr/include/pgm-5.2 -isystem ../third_party/libpg_query/../src/postgres/include -isystem ../third_party/libpg_query/.. -O3 -DNDEBUG -fPIC -Werror -Wall -march=native -mcx16 -O3 -fdiagnostics-color=always -std=c++17 -MD -MT CMakeFiles/noisepage_objlib.dir/Unity/unity_39_cxx.cxx.o -MF CMakeFiles/noisepage_objlib.dir/Unity/unity_39_cxx.cxx.o.d -o CMakeFiles/noisepage_objlib.dir/Unity/unity_39_cxx.cxx.o -c CMakeFiles/noisepage_objlib.dir/Unity/unity_39_cxx.cxx
In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:109,
from /usr/lib/gcc/x86_64-linux-gnu/10/include/x86intrin.h:32,
from ../src/include/common/hash_util.h:3,
from ../src/include/storage/storage_defs.h:15,
from ../src/include/storage/storage_util.h:9,
from ../src/include/storage/projected_row.h:8,
from /home/cranehu/Documents/noisepage/src/storage/projected_row.cpp:1,
from CMakeFiles/noisepage_objlib.dir/Unity/unity_39_cxx.cxx:3:
/usr/lib/gcc/x86_64-linux-gnu/10/include/bmi2intrin.h: In member function ‘uint32_t noisepage::execution::util::BitVector<WordType, Allocator>::NthOne(uint32_t) const [with WordType = long unsigned int; Allocator = std::allocator~~~~
In file included from ../src/include/execution/sql/tuple_id_list.h:9,
from ../src/include/execution/sql/vector_projection.h:11,
from /home/cranehu/Documents/noisepage/src/storage/storage_util.cpp:8,
from CMakeFiles/noisepage_objlib.dir/Unity/unity_39_cxx.cxx:9:
../src/include/execution/util/bit_vector.h:357:40: note: called from here
357 | const WordType mask = _pdep_u64(static_cast~~~^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:109,
from /usr/lib/gcc/x86_64-linux-gnu/10/include/x86intrin.h:32,
from ../src/include/common/hash_util.h:3,
from ../src/include/storage/storage_defs.h:15,
from ../src/include/storage/storage_util.h:9,
from ../src/include/storage/projected_row.h:8,
from /home/cranehu/Documents/noisepage/src/storage/projected_row.cpp:1,
from CMakeFiles/noisepage_objlib.dir/Unity/unity_39_cxx.cxx:3:
/usr/lib/gcc/x86_64-linux-gnu/10/include/bmi2intrin.h:69:1: error: inlining failed in call to ‘always_inline’ ‘long long unsigned int _pdep_u64(long long unsigned int, long long unsigned int)’: target specific option mismatch
69 | _pdep_u64 (unsigned long long X, unsigned long long Y)
| ^~~~~
In file included from ../src/include/execution/sql/tuple_id_list.h:9,
from ../src/include/execution/sql/vector_projection.h:11,
from /home/cranehu/Documents/noisepage/src/storage/storage_util.cpp:8,
from CMakeFiles/noisepage_objlib.dir/Unity/unity_39_cxx.cxx:9:
../src/include/execution/util/bit_vector.h:357:40: note: called from here
357 | const WordType mask = _pdep_u64(static_cast~~~^~~~~~~~~~~
[4/118] Building CXX object CMakeFiles...ge_objlib.dir/Unity/unity_38_cxx.cxx.o
ninja: build stopped: subcommand failed.
Since it's failing in x86intrin.h
and the CPU is an i3-2330M (Sandy Bridge) I'm going to guess that system will not work to build NoisePage. We generally require Haswell or newer to compile since we use AVX2 instructions.
Bug Report
Summary
Failed to run command ninja noisepage.
Build failed message
/usr/lib/gcc/x86_64-linux-gnu/10/include/bmi2intrin.h:69:1: error: inlining failed in call to ‘always_inline’ ‘long long unsigned int _pdep_u64(long long unsigned int, long long unsigned int)’: target specific option mismatch
Environment
OS: VM Ubuntu (LTS) 20.04.
Compiler: GCC 10.