Menu

Problems compiling cppcheck

2020-12-08
2020-12-09
  • Till Kolditz

    Till Kolditz - 2020-12-08

    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?

     
  • Till Kolditz

    Till Kolditz - 2020-12-09

    btw, system is Ubuntu 20.10

     
  • Daniel Marjamäki

    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.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.