I’m trying out the release candidate(?) as follows:
svn co http://llvm.org/svn/llvm-project/llvm/branches/release_38 llvm
svn co http://llvm.org/svn/llvm-project/cfe/branches/release_38 cfe
svn co http://llvm.org/svn/llvm-project/lldb/branches/release_38 lldb
cd llvm/tools
ln -s …/…/cfe clang
ln -s …/…/lldb lldb
cd …
mkdir build
cd build
cmake -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_INSTALL_PREFIX=/tools/llvm/rel_38 -DLLVM_TARGETS_TO_BUILD=“X86;CppBackend” -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON …
cmake --build . – -j4
sudo cmake --build . --target install
LLVM fundamentally works: I am able to link the LLVM libraries with my application, and my application passes its regression tests.
clang fundamentally works: it is able to compile a program.
But lldb:
dej@slam:~$ export LD_LIBRARY_PATH=/tools/llvm/rel_38/lib
dej@slam:~$ export PATH=/tools/llvm/rel_38/bin:$PATH
dej@slam:~$ lldb /bin/ls
(lldb) target create “/bin/ls”
Current executable set to ‘/bin/ls’ (x86_64).
(lldb) r
Process 13656 launched: ‘/bin/ls’ (x86_64)
Segmentation fault (core dumped)
dej@slam:~$ gdb lldb core
…
(gdb) bt
#0 0x00007fd9971b5671 in LLVMDisasmInstruction ()
from /tools/llvm/rel_38/bin/…/lib/…/lib/libLLVM-3.8.so
#1 0x00007fd999e350c2 in AssemblyParse_x86::instruction_length(lldb_private::Address, int&) () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#2 0x00007fd999e37d08 in AssemblyParse_x86::get_non_call_site_unwind_plan(lldb_private::UnwindPlan&) () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#3 0x00007fd999e38e95 in UnwindAssembly_x86::GetNonCallSiteUnwindPlanFromAssembly(lldb_private::AddressRange&, lldb_private::Thread&, lldb_private::UnwindPlan&) () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#4 0x00007fd999c8693b in lldb_private::FuncUnwinders::GetAssemblyUnwindPlan(lldb_private::Target&, lldb_private::Thread&, int) ()
from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#5 0x00007fd999c88594 in lldb_private::FuncUnwinders::GetUnwindPlanAtNonCallSite(lldb_private::Target&, lldb_private::Thread&, int) ()
from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#6 0x00007fd999dfb16d in lldb_private::RegisterContextLLDB::GetFullUnwindPlanForFrame() () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#7 0x00007fd999dfff90 in lldb_private::RegisterContextLLDB::InitializeZerothFrame() () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#8 0x00007fd999e01e83 in lldb_private::RegisterContextLLDB::RegisterContextLLDB(lldb_private::Thread&, std::shared_ptr<lldb_private::RegisterContextLLDB> const&, lldb_private::SymbolContext&, unsigned int, lldb_private::UnwindLLDB&) ()
from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#9 0x00007fd999df5d43 in lldb_private::UnwindLLDB::AddFirstFrame() ()
from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#10 0x00007fd999df63d0 in lldb_private::UnwindLLDB::DoGetFrameInfoAtIndex(unsigned int, unsigned long&, unsigned long&) ()
from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#11 0x00007fd999d1049b in lldb_private::StackFrameList::GetFramesUpTo(unsigned int) () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#12 0x00007fd999d11a23 in lldb_private::StackFrameList::GetFrameAtIndex(unsigned int) () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#13 0x00007fd999ce4ae1 in lldb_private::GetStackFrameAtIndex(unsigned int) () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#14 0x00007fd999cc839a in lldb_private::StopInfoBreakpoint::ShouldStopSynchronous(lldb_private::Event*) () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#15 0x00007fd999ce75b3 in lldb_private::ShouldStop(lldb_private::Event*) () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#16 0x00007fd999cee452 in lldb_private::ThreadList::ShouldStop(lldb_private::Event*) () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#17 0x00007fd999cb505b in lldb_private::Process::ShouldBroadcastEvent(lldb_private::Event*) () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#18 0x00007fd999cb5111 in lldb_private::Process::HandlePrivateEvent(std::shared_ptr<lldb_private::Event>&) ()
from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#19 0x00007fd999cb5f73 in lldb_private::Process::RunPrivateStateThread(bool) ()
from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#20 0x00007fd999b45d67 in lldb_private::HostNativeThreadBase::ThreadCreateTrampoline(void*) () from /tools/llvm/rel_38/bin/…/lib/liblldb.so.3.8.0
#21 0x00007fd9990e6182 in start_thread (arg=0x7fd990f62700)
at pthread_create.c:312
#22 0x00007fd9983da47d in clone ()
at …/sysdeps/unix/sysv/linux/x86_64/clone.S:111
Is LLDB expected to be working on Linux x64_64?