Hi, I managed to set up my environment so that the following works
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<home-path>/.local/ -DFILESDIR=<home-path>/.local/share/cppcheck -DUSE_Z3=ON -DHAVE_RULES=ON -DBUILD_GUI=ON -DWITH_QCHART=ON -DQt5_DIR=/usr/lib/qt5/bin -DANALYZE_MEMORY=ON -DANALYZE_ADDRESS=ON -DANALYZE_THREAD=ON - DANALYZE_UNDEFINED=ON -DANALYZE_DATAFLOW=ON ../cppcheck/
I use ninja build tools (1.10.0) with clang (10.0.1) and get many "multiple definition" errors like this one:
FAILED: bin/cppcheck : && /usr/bin/c++ -O3 -DNDEBUG -fsanitize=memory -fsanitize=dataflow -rdynamic cli/CMakeFiles/cli_objs.dir/cmdlineparser.cpp.o cli/CMakeFiles/cli_objs.dir/cppcheckexecutor.cpp.o cli/CMakeFiles/cli_objs.dir/filelister.cpp.o cli/CMakeFiles/cli_objs.dir/threadexecutor.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_anal yzerinfo.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_astutils.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_bughuntingchecks.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_check.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_check64bit.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkassert.cpp.o lib/CMakeFiles/lib_objs.dir/buil d/mc_checkautovariables.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkbool.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkboost.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkbufferoverrun.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkclass.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkcondition.cpp.o lib/CM akeFiles/lib_objs.dir/build/mc_checkexceptionsafety.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkfunctions.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkinternal.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkio.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkleakautovar.cpp.o lib/CMakeFiles/lib_objs.dir/build /mc_checkmemoryleak.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checknullpointer.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkother.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkpostfixoperator.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checksizeof.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkstl.cpp.o lib/CM akeFiles/lib_objs.dir/build/mc_checkstring.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checktype.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkuninitvar.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkunusedfunctions.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_checkunusedvar.cpp.o lib/CMakeFiles/lib_objs.dir/build/m c_checkvaarg.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_clangimport.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_cppcheck.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_ctu.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_errorlogger.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_errortypes.cpp.o lib/CMakeFiles/lib_objs.dir/build/m c_exprengine.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_forwardanalyzer.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_importproject.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_library.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_mathlib.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_path.cpp.o lib/CMakeFiles/lib_objs.dir/buil d/mc_pathanalysis.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_pathmatch.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_platform.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_preprocessor.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_programmemory.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_reverseanalyzer.cpp.o lib/CMakeFiles/l ib_objs.dir/build/mc_settings.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_suppressions.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_symboldatabase.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_templatesimplifier.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_timer.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_token.cpp.o lib/CMa keFiles/lib_objs.dir/build/mc_tokenize.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_tokenlist.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_utils.cpp.o lib/CMakeFiles/lib_objs.dir/build/mc_valueflow.cpp.o externals/simplecpp/CMakeFiles/simplecpp_objs.dir/simplecpp.cpp.o externals/tinyxml2/CMakeFiles/tinyxml2_objs.dir/tin yxml2.cpp.o cli/CMakeFiles/cppcheck.dir/main.cpp.o -o bin/cppcheck -lpcre -lz3 && : /usr/bin/ld: /usr/lib/llvm-10/lib/clang/10.0.1/lib/linux/libclang_rt.msan-x86_64.a(msan_interceptors.cpp.o):(.bss._ZN14__interception11real_mmap64E+0x0): multiple definition of `__interception::real_mmap64'; /usr/lib/llvm-10/lib/clang/10.0.1/lib/linux/libclang_rt.dfsan-x86_64.a(dfsan_interceptors.cpp.o):(.bss._ZN14_ _interception11real_mmap64E+0x0): first defined here /usr/bin/ld: /usr/lib/llvm-10/lib/clang/10.0.1/lib/linux/libclang_rt.msan-x86_64.a(msan_interceptors.cpp.o):(.bss._ZN14__interception9real_mmapE+0x0): multiple definition of `__interception::real_mmap'; /usr/lib/llvm-10/lib/clang/10.0.1/lib/linux/libclang_rt.dfsan-x86_64.a(dfsan_interceptors.cpp.o):(.bss._ZN14__inte rception9real_mmapE+0x0): first defined here /usr/bin/ld: /usr/lib/llvm-10/lib/clang/10.0.1/lib/linux/libclang_rt.msan-x86_64.a(msan_interceptors.cpp.o): in function `__interceptor_mmap': (.text.__interceptor_mmap+0x0): multiple definition of `__interceptor_mmap'; /usr/lib/llvm-10/lib/clang/10.0.1/lib/linux/libclang_rt.dfsan-x86_64.a(dfsan_interceptors.cpp.o):(.text.__interceptor_mmap+0x0): first defined here /usr/bin/ld: /usr/lib/llvm-10/lib/clang/10.0.1/lib/linux/libclang_rt.msan-x86_64.a(msan_interceptors.cpp.o): in function `__interceptor_mmap64': (.text.__interceptor_mmap64+0x0): multiple definition of `__interceptor_mmap64'; /usr/lib/llvm-10/lib/clang/10.0.1/lib/linux/libclang_rt.dfsan-x86_64.a(dfsan_interceptors.cpp.o):(.text.__interceptor_mmap64+0x0): first defined here /usr/bin/ld: /usr/lib/llvm-10/lib/clang/10.0.1/lib/linux/libclang_rt.msan-x86_64.a(interception_linux.cpp.o): in function `__interception::InterceptFunction(char const*, unsigned long*, unsigned long, unsigned long)': (.text._ZN14__interception17InterceptFunctionEPKcPmmm+0x0): multiple definition of `__interception::InterceptFunction(char const*, unsigned long*, unsigned long, unsigned long)'; /usr/lib/llvm-10/lib/clang/10.0.1/lib/linux/libclang_rt.dfsan-x86_64.a(interception_linux.cpp.o):(.text._ZN14__interception17InterceptFunc tionEPKcPmmm+0x0): first defined here
I searched the web for hints about how to solve this but couldn't find any working solution. Any idea anyone?
btw, system is Ubuntu 20.10
I don't know.. but well I've heard somewhere it's best to run 1 sanitizer at a time.
Log in to post a comment.
Hi, I managed to set up my environment so that the following works
I use ninja build tools (1.10.0) with clang (10.0.1) and get many "multiple definition" errors like this one:
I searched the web for hints about how to solve this but couldn't find any working solution.
Any idea anyone?
btw, system is Ubuntu 20.10
I don't know.. but well I've heard somewhere it's best to run 1 sanitizer at a time.