Hello,
I can’t compile lldb on opensuse linux 12 64bit.
I get many warnings and the error:
llvm[5]: Compiling Host.cpp for Release build
/home/cedric/llvmroot/src/llvm/tools/lldb/source/Host/linux/Host.cpp:344:30: error:
no matching function for call to ‘GetModuleSpecifications’
const size_t num_specs = ObjectFile::GetModuleSpecifications (filesp…
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cedric/llvmroot/src/llvm/tools/lldb/source/Host/linux/…/…/…/include/lldb/Symbol/ObjectFile.h:183:5: note:
candidate function not viable: requires 4 arguments, but 3 were provided
GetModuleSpecifications (const FileSpec &file,
^
/home/cedric/llvmroot/src/llvm/tools/lldb/source/Host/linux/…/…/…/include/lldb/Symbol/ObjectFile.h:189:5: note:
candidate function not viable: requires 6 arguments, but 3 were provided
GetModuleSpecifications (const lldb_private::FileSpec& file,
^
1 error generated.
(Almost full log available.)
The configure I used:
configure --enable-cxx11--enable_optimized --disable_assertions
I could compile the latest clang++, libc++ etc. Only lldb won’t compile.
Any ideas?
Thanks
Hello,
I can't compile lldb on opensuse linux 12 64bit.
I get many warnings and the error:
llvm[5]: Compiling Host.cpp for Release build
/home/cedric/llvmroot/src/llvm/tools/lldb/source/Host/linux/Host.cpp:344:30:
error:
no matching function for call to 'GetModuleSpecifications'
const size_t num_specs = ObjectFile::GetModuleSpecifications (filesp...
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cedric/llvmroot/src/llvm/tools/lldb/source/Host/linux/../../../include/lldb/Symbol/ObjectFile.h:183:5:
note:
candidate function not viable: requires 4 arguments, but 3 were
provided
GetModuleSpecifications (const FileSpec &file,
^
/home/cedric/llvmroot/src/llvm/tools/lldb/source/Host/linux/../../../include/lldb/Symbol/ObjectFile.h:189:5:
note:
candidate function not viable: requires 6 arguments, but 3 were
provided
GetModuleSpecifications (const lldb_private::FileSpec& file,
^
1 error generated.
(Almost full log available.)
The configure I used:
configure --enable-cxx11--enable_optimized --disable_assertions
I could compile the latest clang++, libc++ etc. Only lldb won't compile.
Any ideas?
I don't think you're doing anything wrong - it looks like an extra
parameter was added to the call and this case was missed.
Index: include/lldb/Symbol/ObjectFile.h
===================================================================
--- include/lldb/Symbol/ObjectFile.h (revision 186210)
+++ include/lldb/Symbol/ObjectFile.h (revision 186211)
@@ -182,6 +182,7 @@
static size_t
GetModuleSpecifications (const FileSpec &file,
lldb::offset_t file_offset,
+ lldb::offset_t file_size,
ModuleSpecList &specs);
Can you try passing in the file size ( filespec.GetByteSize() ) as the 3rd
parameter in linux/Host.cpp and see if that this fixes it?
Oh this is the fix I just sent. If you review rev 186211, it just needs a 0 there.
https://gist.github.com/TTimo/5996746
TTimo
Yeah, there's a bit of code in ObjectFile::GetModuleSpecifications() which does the FileSpec::GetByteSize() call for you if you pass in a 0 as a part of r186211 -- I committed Timothee's patch. Thanks!