Nmjfry
June 22, 2023, 9:13am
1
I am trying to build an out of tree tool I am working on as part of CIRCT, but when I define a command line option, I get the above error.
I had some trouble building and installing LLVM, and I suspect I haven’t set up my CMakeLists properly. I really don’t know where to start debugging this, if anyone has some suggestions I would really appreciate it!
1 Like
Hi Nicholas,
A quick grep suggests me you need to link LLVMSupport into your application.
Hope this helps. Best regards,
Thomas
Nmjfry
June 22, 2023, 9:37am
3
Hello Thomas! ty for the reply
Unfortunately (I think ) I have already added it :
target_link_libraries(alpaca LLVMSupport LLVMPasses LLVMCore LLVMIRReader MLIRIR)
and the here is the full debug output (shows LLVMSupport) :
[build] FAILED: alpaca
[build] : && /usr/bin/clang++-17 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG CMakeFiles/alpaca.dir/main.cpp.o CMakeFiles/alpaca.dir/src/UFGenerator.cpp.o CMakeFiles/alpaca.dir/src/InstructionParser.cpp.o -o alpaca -L/usr/local/lib -L/usr/local/include -Wl,-rpath,/usr/local/lib:/usr/local/include /usr/local/lib/libLLVMSupport.a /usr/local/lib/libLLVMPasses.a /usr/local/lib/libLLVMCore.a /usr/local/lib/libLLVMIRReader.a /usr/local/lib/libMLIRIR.a /usr/local/lib/libLLVMCodeGen.a /usr/local/lib/libLLVMCodeGenTypes.a /usr/local/lib/libLLVMCoroutines.a /usr/local/lib/libLLVMipo.a /usr/local/lib/libLLVMBitWriter.a /usr/local/lib/libLLVMFrontendOpenMP.a /usr/local/lib/libLLVMLinker.a /usr/local/lib/libLLVMIRPrinter.a /usr/local/lib/libLLVMObjCARCOpts.a /usr/local/lib/libLLVMScalarOpts.a /usr/local/lib/libLLVMAggressiveInstCombine.a /usr/local/lib/libLLVMInstCombine.a /usr/local/lib/libLLVMTarget.a /usr/local/lib/libLLVMVectorize.a /usr/local/lib/libLLVMInstrumentation.a /usr/local/lib/libLLVMTransformUtils.a /usr/local/lib/libLLVMAnalysis.a /usr/local/lib/libLLVMProfileData.a /usr/local/lib/libLLVMSymbolize.a /usr/local/lib/libLLVMDebugInfoPDB.a /usr/local/lib/libLLVMDebugInfoMSF.a /usr/local/lib/libLLVMDebugInfoDWARF.a /usr/local/lib/libLLVMObject.a /usr/local/lib/libLLVMIRReader.a /usr/local/lib/libLLVMAsmParser.a /usr/local/lib/libLLVMBitReader.a /usr/local/lib/libLLVMCore.a /usr/local/lib/libLLVMRemarks.a /usr/local/lib/libLLVMBitstreamReader.a /usr/local/lib/libLLVMMCParser.a /usr/local/lib/libLLVMTextAPI.a /usr/local/lib/libLLVMMC.a /usr/local/lib/libLLVMBinaryFormat.a /usr/local/lib/libLLVMTargetParser.a /usr/local/lib/libLLVMDebugInfoCodeView.a /usr/local/lib/libMLIRSupport.a /usr/local/lib/libLLVMSupport.a -lrt -ldl -lm /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libtinfo.so /usr/local/lib/libLLVMDemangle.a && :
[build] /usr/bin/ld: CMakeFiles/alpaca.dir/main.cpp.o:(.data.rel.ro._ZTIN4llvm2cl15OptionValueCopyIbEE[_ZTIN4llvm2cl15OptionValueCopyIbEE]+0x10): undefined reference to `typeinfo for llvm::cl::GenericOptionValue'
[build] clang++-17: error: linker command failed with exit code 1 (use -v to see invocation)
[build] ninja: build stopped: subcommand failed.
[proc] The command: /usr/local/bin/cmake --build /home/fry/stage/ALPACA/build --config Release --target all -- exited with code: 1
[driver] Build completed: 00:00:00.195
[build] Build finished with exit code 1
typeinfo errors in general hint that LLVM is built without RTTI (the default) and your client code is built with it.
1 Like
Nmjfry
June 22, 2023, 9:48am
5
Exactly that, worked like a charm!
Thank you so much
FYI I just added this, idk if there is a better way:
set(NO_RTTI "-fno-rtti")
add_definitions(${NO_RTTI})