[lldb-dev] Compiler requirements for compiling lldb?

Zachary Turner zturner at google.com
Mon Jul 7 19:37:44 PDT 2014


Alternatively you could make the second argument passed on the stack
instead of by reference.  It returns by value anyway, so it's not like
there's no precedent for it.


On Mon, Jul 7, 2014 at 7:35 PM, Reid Kleckner <rnk at google.com> wrote:

> Yes, gcc is important.  The build was broken by r212500:
>
> http://llvm-amd64.freebsd.your.org/b/builders/lldb-amd64-freebsd/builds/2276
>
> I just grabbed that link because it was in #llvm IRC.
>
> IsValid needs to take a const ref in order to lifetime extend the
> temporary parameter.  Or, maybe the code is broken some other way.
>
>
> On Mon, Jul 7, 2014 at 7:11 PM, Randy Smith <rdsmith at chromium.org> wrote:
>
>>
>> Is there a goal of keeping lldb compatible with building with gcc?  I've
>> been building successfully with gcc 4.8.2, but compiling at r212507 just
>> broke with that gcc on a source line that was recently (today) changed.
>>  Full log below; key excerpts here:
>>
>>
>> /usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp:693:115:
>> error: no matching function for call to
>> ‘lldb_private::OptionValidator::IsValid(lldb_private::Platform&,
>> lldb_private::ExecutionContext)’
>>
>>              if (validator &&
>> !validator->IsValid(*interpreter.GetPlatform(true),
>> interpreter.GetExecutionContext()))
>>
>> /usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include/lldb/lldb-private-types.h:61:22:
>> note:   no known conversion for argument 2 from
>> ‘lldb_private::ExecutionContext’ to ‘lldb_private::ExecutionContext&’
>>
>>
>> I'm happy to upgrade to compiling with clang if that's needed; I'm just
>> wanting to confirm policy and call out that the web page instructions may
>> need to be changed.
>>
>> (If this is pilot error on my part, sincere apologies for the spam.  But
>> at the moment I don't see how it could be pilot error.)
>>
>> -- Randy
>>
>>
>>
>> FAILED: /usr/local/google/home/rdsmith/toolchains/bin/g++
>> -DGTEST_HAS_RTTI=0 -DHAVE_ROUND -D_DEBUG -D_GNU_SOURCE
>> -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC
>> -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings
>> -Wno-missing-field-initializers -pedantic -Wno-lo\
>>
>> ng-long -Wno-maybe-uninitialized -Wnon-virtual-dtor -Wno-comment
>> -std=c++11 -ffunction-sections -fdata-sections -Wno-deprecated-declarations
>> -Wno-unknown-pragmas -Wno-deprecated-register  -fno-exceptions -fno-rtti
>> -fPIC -g -Itools/lldb/source/Interpreter
>> -I/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/s\
>>
>> ource/Interpreter
>> -I/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include
>> -Itools/lldb/include -Iinclude
>> -I/usr/local/google/home/rdsmith/Sandboxen/llvm/include
>> -I/usr/include/python2.7
>> -I/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/../clang/include
>> -Itools/lldb/../clang/include -I/usr/local\
>>
>> /google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/.
>> -I/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Plugins/Process/Linux
>> -I/usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Plugins/Process/POSIX
>>   -fno-exceptions -fno-rtti -MMD -MT
>> tools/lldb/source/Interpreter/CMakeFiles/lldb\
>>
>> Interpreter.dir/Args.cpp.o -MF
>> tools/lldb/source/Interpreter/CMakeFiles/lldbInterpreter.dir/Args.cpp.o.d
>> -o
>> tools/lldb/source/Interpreter/CMakeFiles/lldbInterpreter.dir/Args.cpp.o
>> -c
>> /usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp
>>
>>
>>
>> /usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp:
>> In member function ‘lldb_private::Error
>> lldb_private::Args::ParseOptions(lldb_private::Options&)’:
>>
>>
>>
>>
>> */usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp*
>> :693:115: error: no matching function for call to
>> ‘lldb_private::OptionValidator::IsValid(lldb_private::Platform&,
>> lldb_private::ExecutionContext)’
>>
>>
>>              if (validator &&
>> !validator->IsValid(*interpreter.GetPlatform(true),
>> interpreter.GetExecutionContext()))
>>
>>
>>
>>
>>
>>                                           ^
>>
>>
>>
>>
>>
>> */usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp*
>> :693:115: note: candidate is:
>>
>>
>>
>>
>> In file included from
>> */usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include/lldb/Interpreter/Args.h:22*
>> :0,
>>
>>
>>
>>                  from
>> */usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/source/Interpreter/Args.cpp*
>> :17:
>>
>>
>>
>>
>> */usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include/lldb/lldb-private-types.h*
>> :61:22: note: virtual bool
>> lldb_private::OptionValidator::IsValid(lldb_private::Platform&,
>> lldb_private::ExecutionContext&) const
>>
>>
>>          virtual bool IsValid(Platform &platform, ExecutionContext
>> &target) const = 0;
>>
>>
>>
>>
>>                       ^
>>
>>
>>
>>
>>
>>
>> */usr/local/google/home/rdsmith/Sandboxen/llvm/tools/lldb/include/lldb/lldb-private-types.h*
>> :61:22: note:   no known conversion for argument 2 from
>> ‘lldb_private::ExecutionContext’ to ‘lldb_private::ExecutionContext&’
>>
>>
>>
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>
>>
>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20140707/ee460cae/attachment.html>


More information about the lldb-dev mailing list