[rtems-tools] record does not compile with llvm9
list at c-mauderer.de
list at c-mauderer.de
Tue Dec 17 14:48:16 UTC 2019
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);
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
More information about the devel
mailing list