[lldb-dev] Unable to build LLDB 4.0 on Debian Linux

2017-04-28 Thread Andy Gibbs via lldb-dev
Hi,


I am having a problem building the 4.0 release branch of LLDB on Debian 
Stretch.  Cmake returns the following fault:


  -- LLDB version: 4.0.0
  -- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.4")
  -- Performing Test HAVE_PROCESS_VM_READV
  -- Performing Test HAVE_PROCESS_VM_READV - Success
  -- Found Curses: /usr/lib/x86_64-linux-gnu/libcurses.so
  -- Looking for __GLIBCXX__
  -- Looking for __GLIBCXX__ - found
  -- Performing Test LLDB_USING_LIBSTDCXX_4_9
  -- Performing Test LLDB_USING_LIBSTDCXX_4_9 - Success
  -- Looking for backtrace
  -- Looking for backtrace - not found
  -- Could NOT find Backtrace (missing:  Backtrace_LIBRARY)
  -- Found Doxygen: /usr/bin/doxygen (found version "1.8.13")
  -- Found SWIG: /usr/bin/swig3.0 (found version "3.0.10")
  -- Performing Test CXX_SUPPORTS_NO_MACRO_REDEFINED
  -- Performing Test CXX_SUPPORTS_NO_MACRO_REDEFINED - Success
  -- Symbols (liblldb): exporting all symbols from the lldb namespace
  CMake Error: The following variables are used in this project, but they are 
set to NOTFOUND.
  Please set them or make sure they are set and tested correctly in the CMake 
files:
  Backtrace_LIBRARY (ADVANCED)
  linked by target "liblldb" in directory clang-4.0/tools/lldb/source/API
  linked by target "LLDBBreakpointTests" in directory 
clang-4.0/tools/lldb/unittests/Breakpoint
  linked by target "LLDBCoreTests" in directory 
clang-4.0/tools/lldb/unittests/Core
  linked by target "EditlineTests" in directory 
clang-4.0/tools/lldb/unittests/Editline
  linked by target "ExpressionTests" in directory 
clang-4.0/tools/lldb/unittests/Expression
  linked by target "HostTests" in directory 
clang-4.0/tools/lldb/unittests/Host
  linked by target "InterpreterTests" in directory 
clang-4.0/tools/lldb/unittests/Interpreter
  linked by target "LanguageCPlusPlusTests" in directory 
clang-4.0/tools/lldb/unittests/Language/CPlusPlus
  linked by target "LLDBPlatformTests" in directory 
clang-4.0/tools/lldb/unittests/Platform
  linked by target "ProcessGdbRemoteTests" in directory 
clang-4.0/tools/lldb/unittests/Process/gdb-remote
  linked by target "LLDBMinidumpTests" in directory 
clang-4.0/tools/lldb/unittests/Process/minidump
  linked by target "ScriptInterpreterPythonTests" in directory 
clang-4.0/tools/lldb/unittests/ScriptInterpreter/Python
  linked by target "SymbolTests" in directory 
clang-4.0/tools/lldb/unittests/Symbol
  linked by target "SymbolFileDWARFTests" in directory 
clang-4.0/tools/lldb/unittests/SymbolFile/DWARF
  linked by target "UnwindAssemblyx86Tests" in directory 
clang-4.0/tools/lldb/unittests/UnwindAssembly/x86
  linked by target "UtilityTests" in directory 
clang-4.0/tools/lldb/unittests/Utility

  -- Configuring incomplete, errors occurred!
  See also "build-4.0/bootstrap/CMakeFiles/CMakeOutput.log".
  See also "build-4.0/bootstrap/CMakeFiles/CMakeError.log".



The output from CMakeError.log is:


  Determining if the backtrace exist failed with the following output:
  Change Dir: build-4.0/bootstrap/CMakeFiles/CMakeTmp

  Run Build Command:"build-4.0/bin/ninja" "cmTC_1e735"
  [1/2] Building C object CMakeFiles/cmTC_1e735.dir/CheckSymbolExists.c.o
  FAILED: CMakeFiles/cmTC_1e735.dir/CheckSymbolExists.c.o
  /usr/bin/cc-fPIC -Wall -W -Wno-unused-parameter -Wwrite-strings 
-Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-comment -Werror 
-Werror=date-time -ffunction-sections -fdata-sections -o 
CMakeFiles/cmTC_1e735.dir/CheckSymbolExists.c.o   -c 
build-4.0/bootstrap/CMakeFiles/CMakeTmp/CheckSymbolExists.c
  build-4.0/bootstrap/CMakeFiles/CMakeTmp/CheckSymbolExists.c: In function 
‘main’:
  build-4.0/bootstrap/CMakeFiles/CMakeTmp/CheckSymbolExists.c:8:11: error: ISO 
C forbids conversion of function pointer to object pointer type 
[-Werror=pedantic]
 return ((int*)(&backtrace))[argc];
 ^
  cc1: all warnings being treated as errors
  ninja: build stopped: subcommand failed.

  File build-4.0/bootstrap/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
  /* */
  #include 

  int main(int argc, char** argv)
  {
(void)argv;
  #ifndef backtrace
return ((int*)(&backtrace))[argc];
  #else
(void)argc;
return 0;
  #endif
  }



It seems that the detection routine is invalid.  The gcc in use is 6.3.0.  
Anyone any idea how to fix / work around this problem?


Many thanks,


Andy




___
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev


Re: [lldb-dev] Unable to build LLDB 4.0 on Debian Linux

2017-05-12 Thread Andy Gibbs via lldb-dev
Sorry not to have come back sooner.


The problem is not the -Werror (I think) but the -pedantic that gets added 
during lldb configuration.  Having looked through the cmake files, I cannot see 
how this is added though.  Interestingly enough the backtrace detection is run 
earlier in configuration, possibly in the llvm part itself, where it passes 
without problem.  The only difference in the log file is that earlier on there 
is no -pedantic option given.


Also, although this is an aside, if clang is the compiler, it also passes (with 
the -pedantic).  Problem is, then I need to build clang to build clang :o)


Cheers,

Andy



From: Zachary Turner 
Sent: 02 May 2017 13:50
To: Pavel Labath; Andy Gibbs
Cc: lldb-dev@lists.llvm.org
Subject: Re: [lldb-dev] Unable to build LLDB 4.0 on Debian Linux

This is in cmake detection code though, the options you set for your build have 
no bearing there right?

This looks like a bug in cmake to me, perhaps a newer cmake version can fix it?
On Tue, May 2, 2017 at 3:24 AM Pavel Labath via lldb-dev 
mailto:lldb-dev@lists.llvm.org>> wrote:
What's the cmake command you are using?

It sounds like you somehow ended up enabling -Werror, which is
confusing the backtrace-detection code (and probably most of the other
cmake compile checks).

One of the workarounds would be to disable -Werror.

pl

On 28 April 2017 at 22:36, Andy Gibbs via lldb-dev
mailto:lldb-dev@lists.llvm.org>> wrote:
> Hi,
>
>
> I am having a problem building the 4.0 release branch of LLDB on Debian
> Stretch.  Cmake returns the following fault:
>
>
>   -- LLDB version: 4.0.0
>   -- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version
> "2.9.4")
>   -- Performing Test HAVE_PROCESS_VM_READV
>   -- Performing Test HAVE_PROCESS_VM_READV - Success
>   -- Found Curses: /usr/lib/x86_64-linux-gnu/libcurses.so
>   -- Looking for __GLIBCXX__
>   -- Looking for __GLIBCXX__ - found
>   -- Performing Test LLDB_USING_LIBSTDCXX_4_9
>   -- Performing Test LLDB_USING_LIBSTDCXX_4_9 - Success
>   -- Looking for backtrace
>   -- Looking for backtrace - not found
>   -- Could NOT find Backtrace (missing:  Backtrace_LIBRARY)
>   -- Found Doxygen: /usr/bin/doxygen (found version "1.8.13")
>   -- Found SWIG: /usr/bin/swig3.0 (found version "3.0.10")
>   -- Performing Test CXX_SUPPORTS_NO_MACRO_REDEFINED
>   -- Performing Test CXX_SUPPORTS_NO_MACRO_REDEFINED - Success
>   -- Symbols (liblldb): exporting all symbols from the lldb namespace
>   CMake Error: The following variables are used in this project, but they
> are set to NOTFOUND.
>   Please set them or make sure they are set and tested correctly in the
> CMake files:
>   Backtrace_LIBRARY (ADVANCED)
>   linked by target "liblldb" in directory
> clang-4.0/tools/lldb/source/API
>   linked by target "LLDBBreakpointTests" in directory
> clang-4.0/tools/lldb/unittests/Breakpoint
>   linked by target "LLDBCoreTests" in directory
> clang-4.0/tools/lldb/unittests/Core
>   linked by target "EditlineTests" in directory
> clang-4.0/tools/lldb/unittests/Editline
>   linked by target "ExpressionTests" in directory
> clang-4.0/tools/lldb/unittests/Expression
>   linked by target "HostTests" in directory
> clang-4.0/tools/lldb/unittests/Host
>   linked by target "InterpreterTests" in directory
> clang-4.0/tools/lldb/unittests/Interpreter
>   linked by target "LanguageCPlusPlusTests" in directory
> clang-4.0/tools/lldb/unittests/Language/CPlusPlus
>   linked by target "LLDBPlatformTests" in directory
> clang-4.0/tools/lldb/unittests/Platform
>   linked by target "ProcessGdbRemoteTests" in directory
> clang-4.0/tools/lldb/unittests/Process/gdb-remote
>   linked by target "LLDBMinidumpTests" in directory
> clang-4.0/tools/lldb/unittests/Process/minidump
>   linked by target "ScriptInterpreterPythonTests" in directory
> clang-4.0/tools/lldb/unittests/ScriptInterpreter/Python
>   linked by target "SymbolTests" in directory
> clang-4.0/tools/lldb/unittests/Symbol
>   linked by target "SymbolFileDWARFTests" in directory
> clang-4.0/tools/lldb/unittests/SymbolFile/DWARF
>   linked by target "UnwindAssemblyx86Tests" in directory
> clang-4.0/tools/lldb/unittests/UnwindAssembly/x86
>   linked by target "UtilityTests" in directory
> clang-4.0/tools/lldb/unittests/Utility
>
>   -- Configuring incomplete, errors occurred!
>   See also "build-4.0/bootstrap/CMakeFiles/CMakeOutput.log".
>   See also "build-4.0/bootstrap/CMakeFiles/CMakeError.log".
>
>
>
> The output f