Hello, if I try to compile the rtems-tools on my Arch Linux system with a llvm library version 9 I get the error at the end of the mail. It seems that the API for symbolizeCode changed between version 8 and 9 of llvm.
I created a patch (see follow up mail) that uses the same adaption like in llvm-symbolizer.cpp in the official llvm sources: https://github.com/llvm/llvm-project/commit/b2c4b8bded3ff2efaaebe0d8b33c65116f9ef8de#diff-50901f5ee3b98d3dd5cab7c8edf984faR216 It compiles on llvm9 but I didn't test it on llvm7 or 8. Beneath that it's an untested change. Best regards Christian Error message: [240/255] Compiling trace/record/record-client.c [241/255] Compiling trace/record/record-main-lttng.cc [242/255] Compiling trace/record/record-text.c [243/255] Compiling trace/record/record-client-base.cc [244/255] Linking build/rtemstoolkit/librld.a [245/255] Linking build/linkers/rtems-ld [246/255] Linking build/linkers/rtems-addr2line [247/255] Linking build/tester/covoar/libccovoar.a [248/255] Linking build/linkers/rtems-ra [249/255] Linking build/tester/covoar/trace-converter ../trace/record/record-main-lttng.cc: In member function 'std::map<long unsigned int, std::vector<char, std::allocator<char> > >::iterator LTTNGClient::ResolveAddress(const ClientItem&)': ../trace/record/record-main-lttng.cc:329:69: error: no matching function for call to 'llvm::symbolize::LLVMSymbolizer::symbolizeCode(std::string&, const uint64_t&)' 329 | auto res_or_err = symbolizer_.symbolizeCode(elf_file_, item.data); | ^ In file included from ../trace/record/record-main-lttng.cc:45: /usr/include/llvm/DebugInfo/Symbolize/Symbolize.h:55:24: note: candidate: 'llvm::Expected<llvm::DILineInfo> llvm::symbolize::LLVMSymbolizer::symbolizeCode(const llvm::object::ObjectFile&, llvm::object::SectionedAddress)' 55 | Expected<DILineInfo> symbolizeCode(const ObjectFile &Obj, | ^~~~~~~~~~~~~ /usr/include/llvm/DebugInfo/Symbolize/Symbolize.h:55:56: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'const llvm::object::ObjectFile&' 55 | Expected<DILineInfo> symbolizeCode(const ObjectFile &Obj, | ~~~~~~~~~~~~~~~~~~^~~ /usr/include/llvm/DebugInfo/Symbolize/Symbolize.h:57:24: note: candidate: 'llvm::Expected<llvm::DILineInfo> llvm::symbolize::LLVMSymbolizer::symbolizeCode(const string&, llvm::object::SectionedAddress)' 57 | Expected<DILineInfo> symbolizeCode(const std::string &ModuleName, | ^~~~~~~~~~~~~ /usr/include/llvm/DebugInfo/Symbolize/Symbolize.h:58:63: note: no known conversion for argument 2 from 'const uint64_t' {aka 'const long unsigned int'} to 'llvm::object::SectionedAddress' 58 | object::SectionedAddress ModuleOffset); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel