Bug 1434470

Summary: lldd package dependencies may be incorrect [Was lldb failed to start because of unfound library symbols]
Product: [Fedora] Fedora Reporter: Andrew Stitcher <astitcher>
Component: lldbAssignee: Tom Stellard <tstellar>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 25CC: airlied, davejohansen, tstellar
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: lldb-3.9.1-1.fc25.2 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-03-31 02:22:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Andrew Stitcher 2017-03-21 14:53:57 UTC
Description of problem:

lldb 3.9.1 will not start because some necessary symbols are missing from the chain of shared obects that it is linked with.

Version-Release number of selected component (if applicable):

3.9.1

How reproducible:

100% for me

Steps to Reproduce:
lldb

OR

ldd -r /usr/bin/lldb

OR

ldd -r /lib64/liblldb.so.3.9.1 | c++filt
-- This last gives most targeted information

Actual results:

$ ldd -r /lib64/liblldb.so.3.9.1 | c++filt
	linux-vdso.so.1 (0x00007fff5c5ec000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f72f6fb1000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f72f6dad000)
	libclangAnalysis.so => /lib64/libclangAnalysis.so (0x00007f72f6b23000)
	libclangAST.so => /lib64/libclangAST.so (0x00007f72f663a000)
	libclangBasic.so => /lib64/libclangBasic.so (0x00007f72f61f5000)
	libclangCodeGen.so => /lib64/libclangCodeGen.so (0x00007f72f5cf9000)
	libclangDriver.so => /lib64/libclangDriver.so (0x00007f72f59f2000)
	libclangEdit.so => /lib64/libclangEdit.so (0x00007f72f57e3000)
	libclangFrontend.so => /lib64/libclangFrontend.so (0x00007f72f54dd000)
	libclangLex.so => /lib64/libclangLex.so (0x00007f72f522f000)
	libclangParse.so => /lib64/libclangParse.so (0x00007f72f4f57000)
	libclangRewrite.so => /lib64/libclangRewrite.so (0x00007f72f4d46000)
	libclangRewriteFrontend.so => /lib64/libclangRewriteFrontend.so (0x00007f72f4ae0000)
	libclangSema.so => /lib64/libclangSema.so (0x00007f72f436b000)
	libclangSerialization.so => /lib64/libclangSerialization.so (0x00007f72f402a000)
	libncurses.so.6 => /lib64/libncurses.so.6 (0x00007f72f3e01000)
	libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f72f3bd5000)
	libform.so.6 => /lib64/libform.so.6 (0x00007f72f39c3000)
	libpanel.so.6 => /lib64/libpanel.so.6 (0x00007f72f37bf000)
	libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007f72f33df000)
	libxml2.so.2 => /lib64/libxml2.so.2 (0x00007f72f3078000)
	libffi.so.6 => /lib64/libffi.so.6 (0x00007f72f2e70000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f72f2c68000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f72f2a50000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f72f26c8000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f72f23bf000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f72f21a8000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f72f1de2000)
	/lib64/ld-linux-x86-64.so.2 (0x000055770732a000)
	libLLVM-3.8.so => /lib64/libLLVM-3.8.so (0x00007f72ef5ff000)
	libutil.so.1 => /lib64/libutil.so.1 (0x00007f72ef3fa000)
	liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f72ef1d4000)
undefined symbol: clang::ClassTemplateSpecializationDecl::Create(clang::ASTContext&, clang::TagTypeKind, clang::DeclContext*, clang::SourceLocation, clang::SourceLocation, clang::ClassTemplateDecl*, llvm::ArrayRef<clang::TemplateArgument>, clang::ClassTemplateSpecializationDecl*)	(/lib64/liblldb.so.3.9.1)
undefined symbol: clang::ObjCContainerDecl::FindPropertyDeclaration(clang::IdentifierInfo const*, clang::ObjCPropertyQueryKind) const	(/lib64/liblldb.so.3.9.1)
undefined symbol: clang::UsingShadowDecl::UsingShadowDecl(clang::Decl::Kind, clang::ASTContext&, clang::DeclContext*, clang::SourceLocation, clang::UsingDecl*, clang::NamedDecl*)	(/lib64/liblldb.so.3.9.1)
undefined symbol: clang::CodeGenerator::ReleaseModule()	(/lib64/liblldb.so.3.9.1)
undefined symbol: clang::IndirectFieldDecl::Create(clang::ASTContext&, clang::DeclContext*, clang::SourceLocation, clang::IdentifierInfo*, clang::QualType, llvm::MutableArrayRef<clang::NamedDecl*>)	(/lib64/liblldb.so.3.9.1)
undefined symbol: clang::CreateLLVMCodeGen(clang::DiagnosticsEngine&, llvm::StringRef, clang::HeaderSearchOptions const&, clang::PreprocessorOptions const&, clang::CodeGenOptions const&, llvm::LLVMContext&, clang::CoverageSourceInfo*)	(/lib64/liblldb.so.3.9.1)
undefined symbol: clang::CXXConstructorDecl::Create(clang::ASTContext&, clang::CXXRecordDecl*, clang::SourceLocation, clang::DeclarationNameInfo const&, clang::QualType, clang::TypeSourceInfo*, bool, bool, bool, bool, clang::InheritedConstructor)	(/lib64/liblldb.so.3.9.1)

Expected results:

$ ldd -r /lib64/liblldb.so.3.9.1 | c++filt
	linux-vdso.so.1 (0x00007fff5c5ec000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f72f6fb1000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f72f6dad000)
	libclangAnalysis.so => /lib64/libclangAnalysis.so (0x00007f72f6b23000)
	libclangAST.so => /lib64/libclangAST.so (0x00007f72f663a000)
	libclangBasic.so => /lib64/libclangBasic.so (0x00007f72f61f5000)
	libclangCodeGen.so => /lib64/libclangCodeGen.so (0x00007f72f5cf9000)
	libclangDriver.so => /lib64/libclangDriver.so (0x00007f72f59f2000)
	libclangEdit.so => /lib64/libclangEdit.so (0x00007f72f57e3000)
	libclangFrontend.so => /lib64/libclangFrontend.so (0x00007f72f54dd000)
	libclangLex.so => /lib64/libclangLex.so (0x00007f72f522f000)
	libclangParse.so => /lib64/libclangParse.so (0x00007f72f4f57000)
	libclangRewrite.so => /lib64/libclangRewrite.so (0x00007f72f4d46000)
	libclangRewriteFrontend.so => /lib64/libclangRewriteFrontend.so (0x00007f72f4ae0000)
	libclangSema.so => /lib64/libclangSema.so (0x00007f72f436b000)
	libclangSerialization.so => /lib64/libclangSerialization.so (0x00007f72f402a000)
	libncurses.so.6 => /lib64/libncurses.so.6 (0x00007f72f3e01000)
	libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f72f3bd5000)
	libform.so.6 => /lib64/libform.so.6 (0x00007f72f39c3000)
	libpanel.so.6 => /lib64/libpanel.so.6 (0x00007f72f37bf000)
	libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007f72f33df000)
	libxml2.so.2 => /lib64/libxml2.so.2 (0x00007f72f3078000)
	libffi.so.6 => /lib64/libffi.so.6 (0x00007f72f2e70000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f72f2c68000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f72f2a50000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f72f26c8000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f72f23bf000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f72f21a8000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f72f1de2000)
	/lib64/ld-linux-x86-64.so.2 (0x000055770732a000)
	libLLVM-3.8.so => /lib64/libLLVM-3.8.so (0x00007f72ef5ff000)
	libutil.so.1 => /lib64/libutil.so.1 (0x00007f72ef3fa000)
	liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f72ef1d4000)

Comment 1 Andrew Stitcher 2017-03-21 14:57:43 UTC
(In reply to Andrew Stitcher from comment #0)
> ..
> ldd -r /lib64/liblldb.so.3.9.1 | c++filt
> -- This last gives most targeted information
> 
> Actual results:
> 
> $ ldd -r /lib64/liblldb.so.3.9.1 | c++filt
> 	linux-vdso.so.1 (0x00007fff5c5ec000)
> 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f72f6fb1000)
> 	libdl.so.2 => /lib64/libdl.so.2 (0x00007f72f6dad000)
> 	libclangAnalysis.so => /lib64/libclangAnalysis.so (0x00007f72f6b23000)
> 	libclangAST.so => /lib64/libclangAST.so (0x00007f72f663a000)
> 	libclangBasic.so => /lib64/libclangBasic.so (0x00007f72f61f5000)
> 	libclangCodeGen.so => /lib64/libclangCodeGen.so (0x00007f72f5cf9000)
> 	libclangDriver.so => /lib64/libclangDriver.so (0x00007f72f59f2000)
> 	libclangEdit.so => /lib64/libclangEdit.so (0x00007f72f57e3000)
> 	libclangFrontend.so => /lib64/libclangFrontend.so (0x00007f72f54dd000)
> 	libclangLex.so => /lib64/libclangLex.so (0x00007f72f522f000)
> 	libclangParse.so => /lib64/libclangParse.so (0x00007f72f4f57000)
> 	libclangRewrite.so => /lib64/libclangRewrite.so (0x00007f72f4d46000)
> 	libclangRewriteFrontend.so => /lib64/libclangRewriteFrontend.so
> (0x00007f72f4ae0000)
> 	libclangSema.so => /lib64/libclangSema.so (0x00007f72f436b000)
> 	libclangSerialization.so => /lib64/libclangSerialization.so
> (0x00007f72f402a000)
> 	libncurses.so.6 => /lib64/libncurses.so.6 (0x00007f72f3e01000)
> 	libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f72f3bd5000)
> 	libform.so.6 => /lib64/libform.so.6 (0x00007f72f39c3000)
> 	libpanel.so.6 => /lib64/libpanel.so.6 (0x00007f72f37bf000)
> 	libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007f72f33df000)
> 	libxml2.so.2 => /lib64/libxml2.so.2 (0x00007f72f3078000)
> 	libffi.so.6 => /lib64/libffi.so.6 (0x00007f72f2e70000)
> 	librt.so.1 => /lib64/librt.so.1 (0x00007f72f2c68000)
> 	libz.so.1 => /lib64/libz.so.1 (0x00007f72f2a50000)
> 	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f72f26c8000)
> 	libm.so.6 => /lib64/libm.so.6 (0x00007f72f23bf000)
> 	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f72f21a8000)
> 	libc.so.6 => /lib64/libc.so.6 (0x00007f72f1de2000)
> 	/lib64/ld-linux-x86-64.so.2 (0x000055770732a000)
> 	libLLVM-3.8.so => /lib64/libLLVM-3.8.so (0x00007f72ef5ff000)

I strongly suspect this is the problem as it's the wrong version of llvm - I'd expect it to be at least 3.9 not 3.8

> 	libutil.so.1 => /lib64/libutil.so.1 (0x00007f72ef3fa000)
> 	liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f72ef1d4000)
> undefined symbol:
> clang::ClassTemplateSpecializationDecl::Create(clang::ASTContext&,
> clang::TagTypeKind, clang::DeclContext*, clang::SourceLocation,
> clang::SourceLocation, clang::ClassTemplateDecl*,
> llvm::ArrayRef<clang::TemplateArgument>,
> clang::ClassTemplateSpecializationDecl*)	(/lib64/liblldb.so.3.9.1)
> undefined symbol:
> clang::ObjCContainerDecl::FindPropertyDeclaration(clang::IdentifierInfo
> const*, clang::ObjCPropertyQueryKind) const	(/lib64/liblldb.so.3.9.1)
> undefined symbol: clang::UsingShadowDecl::UsingShadowDecl(clang::Decl::Kind,
> clang::ASTContext&, clang::DeclContext*, clang::SourceLocation,
> clang::UsingDecl*, clang::NamedDecl*)	(/lib64/liblldb.so.3.9.1)
> undefined symbol: clang::CodeGenerator::ReleaseModule()
> (/lib64/liblldb.so.3.9.1)
> undefined symbol: clang::IndirectFieldDecl::Create(clang::ASTContext&,
> clang::DeclContext*, clang::SourceLocation, clang::IdentifierInfo*,
> clang::QualType, llvm::MutableArrayRef<clang::NamedDecl*>)
> (/lib64/liblldb.so.3.9.1)
> undefined symbol: clang::CreateLLVMCodeGen(clang::DiagnosticsEngine&,
> llvm::StringRef, clang::HeaderSearchOptions const&,
> clang::PreprocessorOptions const&, clang::CodeGenOptions const&,
> llvm::LLVMContext&, clang::CoverageSourceInfo*)	(/lib64/liblldb.so.3.9.1)
> undefined symbol: clang::CXXConstructorDecl::Create(clang::ASTContext&,
> clang::CXXRecordDecl*, clang::SourceLocation, clang::DeclarationNameInfo
> const&, clang::QualType, clang::TypeSourceInfo*, bool, bool, bool, bool,
> clang::InheritedConstructor)	(/lib64/liblldb.so.3.9.1)
> 
> Expected results:
> 
> $ ldd -r /lib64/liblldb.so.3.9.1 | c++filt
...

The expected results are just a supposition. The significant point being no unresolved symbols rather than the specific libraries. As I note above one of the linked libraries looks suspicious.

Comment 2 Andrew Stitcher 2017-03-21 15:51:41 UTC
This issue just went away with a package update, but it indicates that the lldb package dependencies must be wrong.

Comment 3 Fedora Update System 2017-03-22 09:22:20 UTC
lldb-3.9.1-1.fc25.2 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-4ed6584beb

Comment 4 Fedora Update System 2017-03-22 20:22:48 UTC
lldb-3.9.1-1.fc25.2 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-4ed6584beb

Comment 5 Fedora Update System 2017-03-31 02:22:24 UTC
lldb-3.9.1-1.fc25.2 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.