GithubHelp home page GithubHelp logo

decide on branch policy about libclang HOT 10 CLOSED

chetant avatar chetant commented on July 20, 2024
decide on branch policy

from libclang.

Comments (10)

sethfowler avatar sethfowler commented on July 20, 2024

I agree, once #33 is fixed.

from libclang.

ghorn avatar ghorn commented on July 20, 2024

awesome. getting excited about the status of this library

from libclang.

sethfowler avatar sethfowler commented on July 20, 2024

Since I suspect a new release is coming soon, I'm going to go ahead and merge the llvm3.4 branch to master and delete llvm3.3.

We now know that we need GHC 7.8 to be released to fix #33. I'm hopeful that happens soon, in which case @chetant's code in llvm3.4_ghc7.8 should take care of the problem once it's rebased and merged.

from libclang.

chetant avatar chetant commented on July 20, 2024

@sethfowler FYI, I'd recommend you rebase now, as that code also works with ghc 7.6.3 (that's the only version I tested it with).
ghci 7.6.3 doesn't work, but the static linking is fine and much more imp. the linking does not depend on an external build directory.

from libclang.

sethfowler avatar sethfowler commented on July 20, 2024

@chetant, great, I didn't realize that!

I'm suffering from build system fatigue at the moment (the update to the release version of LLVM 3.4 was a bit bumpy) but I'll plan to do the rebase soon.

from libclang.

chetant avatar chetant commented on July 20, 2024

@sethfowler , just merged llvm3.4_ghc7.8 with master and fixed tests, put the -j4 flag for make back in, as I couldn't find a decent workaround. Tested on ubuntu 13.10, ghc 7.6.3 and ghc-HEAD. We're getting close to an actual release on Hackage! Could you confirm this works on a Mac?

from libclang.

sethfowler avatar sethfowler commented on July 20, 2024

@chetant, fails on OS X for me. Looks like it's not pulling in libstdc++ correctly. Here's the log:

-*- mode: compilation; default-directory: "~/Code/pygmalion/" -*-
Compilation started at Tue Mar 11 15:24:10

make
cabal install -fbuild-pygindex-clang
Resolving dependencies...
Configuring pygmalion-0.1.0.0...
Building pygmalion-0.1.0.0...
Preprocessing library pygmalion-0.1.0.0...
In-place registering pygmalion-0.1.0.0...
Preprocessing executable 'pyg' for pygmalion-0.1.0.0...
Linking dist/build/pyg/pyg ...
Preprocessing executable 'pygd' for pygmalion-0.1.0.0...
Linking dist/build/pygd/pygd ...
Preprocessing executable 'pygindex-clang' for pygmalion-0.1.0.0...
Linking dist/build/pygindex-clang/pygindex-clang ...
Undefined symbols for architecture x86_64:
  "std::string::find_last_not_of(char, unsigned long) const", referenced from:
      llvm::SMDiagnostic::print(char const*, llvm::raw_ostream&, bool) const in libHSLibClang-3.4.0.a(SourceMgr.o)
  "std::string::find(char const*, unsigned long, unsigned long) const", referenced from:
      llvm::sys::getDefaultTargetTriple() in libHSLibClang-3.4.0.a(Host.o)
      clang::DiagnoseTwoPhaseLookup(clang::Sema&, clang::SourceLocation, clang::CXXScopeSpec const&, clang::LookupResult&, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>) in libHSLibClang-3.4.0.a(SemaOverload.o)
      (anonymous namespace)::ASTPrinter::TraverseDecl(clang::Decl*) in libHSLibClang-3.4.0.a(ASTConsumers.o)
      clang::driver::Driver::generateCompilationDiagnostics(clang::driver::Compilation&, clang::driver::Command const*) in libHSLibClang-3.4.0.a(Driver.o)
      llvm::SpecialCaseList::parse(llvm::MemoryBuffer const*, std::string&) in libHSLibClang-3.4.0.a(SpecialCaseList.o)
  "std::string::find(char, unsigned long) const", referenced from:
      llvm::sys::FindProgramByName(std::string const&) in libHSLibClang-3.4.0.a(Program.o)
      clang::Sema::BuildCallToMemberFunction(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation) in libHSLibClang-3.4.0.a(SemaOverload.o)
      clang::declvisitor::Base<clang::declvisitor::make_ptr, (anonymous namespace)::DeclPrinter, void>::Visit(clang::Decl*) in libHSLibClang-3.4.0.a(DeclPrinter.o)
      llvm::AssemblyWriter::printModule(llvm::Module const*) in libHSLibClang-3.4.0.a(AsmWriter.o)
  "std::string::rfind(char const*, unsigned long, unsigned long) const", referenced from:
      clang::driver::Driver::generateCompilationDiagnostics(clang::driver::Compilation&, clang::driver::Command const*) in libHSLibClang-3.4.0.a(Driver.o)
  "std::string::rfind(char, unsigned long) const", referenced from:
      clang::driver::tools::Clang::getDependencyFileName(llvm::opt::ArgList const&, llvm::SmallVector<clang::driver::InputInfo, 4u> const&) in libHSLibClang-3.4.0.a(Tools.o)
  "std::string::compare(char const*) const", referenced from:
      llvm::CreateInfoOutputFile() in libHSLibClang-3.4.0.a(Timer.o)
      clang::CompilerInstance::createDiagnostics(clang::DiagnosticOptions*, clang::DiagnosticConsumer*, bool, clang::CodeGenOptions const*) in libHSLibClang-3.4.0.a(CompilerInstance.o)
      clang::CompilerInstance::createOutputFile(llvm::StringRef, bool, bool, llvm::StringRef, llvm::StringRef, bool, bool) in libHSLibClang-3.4.0.a(CompilerInstance.o)
      clang::CompilerInstance::createOutputFile(llvm::StringRef, std::string&, bool, bool, llvm::StringRef, llvm::StringRef, bool, bool, std::string*, std::string*) in libHSLibClang-3.4.0.a(CompilerInstance.o)
      llvm::isCurrentDebugType(char const*) in libHSLibClang-3.4.0.a(Debug.o)
      (anonymous namespace)::VersionPrinter::print() in libHSLibClang-3.4.0.a(CommandLine.o)
      (anonymous namespace)::SparcTargetInfo::handleTargetFeatures(std::vector<std::string, std::allocator<std::string> >&, clang::DiagnosticsEngine&) in libHSLibClang-3.4.0.a(Targets.o)
      ...
  "std::__basic_file<char>::is_open() const", referenced from:
      clang::LayoutOverrideSource::LayoutOverrideSource(llvm::StringRef) in libHSLibClang-3.4.0.a(LayoutOverrideSource.o)
  "std::basic_ios<char, std::char_traits<char> >::widen(char) const", referenced from:
      clang::LayoutOverrideSource::LayoutOverrideSource(llvm::StringRef) in libHSLibClang-3.4.0.a(LayoutOverrideSource.o)
  "std::string::_M_leak_hard()", referenced from:
      llvm::sys::fs::directory_entry::replace_filename(llvm::Twine const&, llvm::sys::fs::file_status) in libHSLibClang-3.4.0.a(Path.o)
      clang::ASTContext::getObjCEncodingForTypeImpl(clang::QualType, std::string&, bool, bool, clang::FieldDecl const*, bool, bool, bool, bool, bool, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      AddObjCKeyValueCompletions(clang::ObjCPropertyDecl*, bool, clang::QualType, clang::ASTContext&, llvm::SmallPtrSet<clang::Selector, 16u>&, (anonymous namespace)::ResultBuilder&) in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      clang::Lexer::Stringify(std::string const&, bool) in libHSLibClang-3.4.0.a(Lexer.o)
      clang::Lexer::getSpelling(clang::Token const&, clang::SourceManager const&, clang::LangOptions const&, bool*) in libHSLibClang-3.4.0.a(Lexer.o)
      clang::Lexer::SaveLineComment(clang::Token&, char const*) in libHSLibClang-3.4.0.a(Lexer.o)
      llvm::StringRef::lower() const in libHSLibClang-3.4.0.a(StringRef.o)
      ...
  "std::string::_M_replace_aux(unsigned long, unsigned long, unsigned long, char)", referenced from:
      clang::Lexer::Stringify(std::string const&, bool) in libHSLibClang-3.4.0.a(Lexer.o)
      clang::ASTReader::MaybeAddSystemRootToFilename(clang::serialization::ModuleFile&, std::string&) in libHSLibClang-3.4.0.a(ASTReader.o)
      llvm::DOT::EscapeString(std::string const&) in libHSLibClang-3.4.0.a(GraphWriter.o)
      llvm::DOTGraphTraits<clang::CFG const*>::getNodeLabel(clang::CFGBlock const*, clang::CFG const*) in libHSLibClang-3.4.0.a(CFG.o)
      llvm::DOTGraphTraits<clang::Stmt const*>::getNodeLabel(clang::Stmt const*, clang::Stmt const*) in libHSLibClang-3.4.0.a(StmtViz.o)
  "std::string::_M_replace_safe(unsigned long, unsigned long, char const*, unsigned long)", referenced from:
      std::string& std::string::_M_replace_dispatch<unsigned long long const*>(__gnu_cxx::__normal_iterator<char*, std::string>, __gnu_cxx::__normal_iterator<char*, std::string>, unsigned long long const*, unsigned long long const*, std::__false_type) in libHSLibClang-3.4.0.a(ASTReader.o)
      std::string& std::string::_M_replace_dispatch<unsigned long long*>(__gnu_cxx::__normal_iterator<char*, std::string>, __gnu_cxx::__normal_iterator<char*, std::string>, unsigned long long*, unsigned long long*, std::__false_type) in libHSLibClang-3.4.0.a(GlobalModuleIndex.o)
  "std::string::_Rep::_M_destroy(std::allocator<char> const&)", referenced from:
      _clang_disposeIndex in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_createTranslationUnit in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_parseTranslationUnit_Impl in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_reparseTranslationUnit_Impl in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_getCursorSpelling in libHSLibClang-3.4.0.a(CIndex.o)
      _getDeclSpelling in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_getCursorDisplayName in libHSLibClang-3.4.0.a(CIndex.o)
      ...
  "std::string::_Rep::_S_max_size", referenced from:
      std::string& std::string::_M_replace_dispatch<unsigned long long const*>(__gnu_cxx::__normal_iterator<char*, std::string>, __gnu_cxx::__normal_iterator<char*, std::string>, unsigned long long const*, unsigned long long const*, std::__false_type) in libHSLibClang-3.4.0.a(ASTReader.o)
      std::string& std::string::_M_replace_dispatch<unsigned long long*>(__gnu_cxx::__normal_iterator<char*, std::string>, __gnu_cxx::__normal_iterator<char*, std::string>, unsigned long long*, unsigned long long*, std::__false_type) in libHSLibClang-3.4.0.a(GlobalModuleIndex.o)
  "std::string::_Rep::_S_terminal", referenced from:
      llvm::TimerGroup::TimerGroup(llvm::StringRef) in libHSLibClang-3.4.0.a(Timer.o)
      charUnitsToString(clang::CharUnits const&) in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForTypeQualifier(clang::Decl::ObjCDeclQualifier, std::string&) const in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForTypeImpl(clang::QualType, std::string&, bool, bool, clang::FieldDecl const*, bool, bool, bool, bool, bool, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      EncodeBitField(clang::ASTContext const*, std::string&, clang::QualType, clang::FieldDecl const*) in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForStructureImpl(clang::RecordDecl*, std::string&, clang::FieldDecl const*, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::CodeCompletionResult::CreateCodeCompletionString(clang::ASTContext&, clang::Preprocessor&, clang::CodeCompletionAllocator&, clang::CodeCompletionTUInfo&, bool) in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      ...
  "std::string::_Rep::_S_empty_rep_storage", referenced from:
      _clang_createIndex in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_disposeIndex in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_createTranslationUnit in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_parseTranslationUnit_Impl in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_reparseTranslationUnit_Impl in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_getCursorSpelling in libHSLibClang-3.4.0.a(CIndex.o)
      _getDeclSpelling in libHSLibClang-3.4.0.a(CIndex.o)
      ...
  "std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&)", referenced from:
      llvm::TimerGroup::TimerGroup(llvm::StringRef) in libHSLibClang-3.4.0.a(Timer.o)
      charUnitsToString(clang::CharUnits const&) in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForTypeImpl(clang::QualType, std::string&, bool, bool, clang::FieldDecl const*, bool, bool, bool, bool, bool, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      EncodeBitField(clang::ASTContext const*, std::string&, clang::QualType, clang::FieldDecl const*) in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::GCCAsmStmt::generateAsmString(clang::ASTContext const&) const in libHSLibClang-3.4.0.a(Stmt.o)
      clang::Lexer::getSpelling(clang::Token const&, clang::SourceManager const&, clang::LangOptions const&, bool*) in libHSLibClang-3.4.0.a(Lexer.o)
      llvm::PrintStatistics(llvm::raw_ostream&) in libHSLibClang-3.4.0.a(Statistic.o)
      ...
  "std::string::swap(std::string&)", referenced from:
      clang::Decl::getAvailability(std::string*) const in libHSLibClang-3.4.0.a(DeclBase.o)
      clang::QualType::getAsStringInternal(clang::Type const*, clang::Qualifiers, std::string&, clang::PrintingPolicy const&) in libHSLibClang-3.4.0.a(TypePrinter.o)
  "std::string::append(char const*, unsigned long)", referenced from:
      (anonymous namespace)::CaptureCompletionResults::ProcessCodeCompleteResults(clang::Sema&, clang::CodeCompletionContext, clang::CodeCompletionResult*, unsigned int) in libHSLibClang-3.4.0.a(CIndexCodeCompletion.o)
      llvm::raw_fd_ostream::raw_fd_ostream(char const*, std::string&, llvm::sys::fs::OpenFlags) in libHSLibClang-3.4.0.a(raw_ostream.o)
      llvm::raw_string_ostream::~raw_string_ostream() in libHSLibClang-3.4.0.a(raw_ostream.o)
      llvm::raw_string_ostream::write_impl(char const*, unsigned long) in libHSLibClang-3.4.0.a(raw_ostream.o)
      clang::ASTContext::getObjCEncodingForBlock(clang::BlockExpr const*) const in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForTypeImpl(clang::QualType, std::string&, bool, bool, clang::FieldDecl const*, bool, bool, bool, bool, bool, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForMethodDecl(clang::ObjCMethodDecl const*, std::string&, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      ...
  "std::string::append(std::string const&)", referenced from:
      llvm::raw_fd_ostream::raw_fd_ostream(char const*, std::string&, llvm::sys::fs::OpenFlags) in libHSLibClang-3.4.0.a(raw_ostream.o)
      clang::ASTContext::getObjCEncodingForBlock(clang::BlockExpr const*) const in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForFunctionDecl(clang::FunctionDecl const*, std::string&) in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForTypeImpl(clang::QualType, std::string&, bool, bool, clang::FieldDecl const*, bool, bool, bool, bool, bool, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForMethodDecl(clang::ObjCMethodDecl const*, std::string&, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForPropertyDecl(clang::ObjCPropertyDecl const*, clang::Decl const*, std::string&) const in libHSLibClang-3.4.0.a(ASTContext.o)
      EncodeBitField(clang::ASTContext const*, std::string&, clang::QualType, clang::FieldDecl const*) in libHSLibClang-3.4.0.a(ASTContext.o)
      ...
  "std::string::append(unsigned long, char)", referenced from:
      FormatFunctionParameter(clang::ASTContext&, clang::PrintingPolicy const&, clang::ParmVarDecl const*, bool, bool) in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      clang::GCCAsmStmt::generateAsmString(clang::ASTContext const&) const in libHSLibClang-3.4.0.a(Stmt.o)
      clang::TextDiagnostic::emitSnippetAndCaret(clang::SourceLocation, clang::DiagnosticsEngine::Level, llvm::SmallVectorImpl<clang::CharSourceRange>&, llvm::ArrayRef<clang::FixItHint>, clang::SourceManager const&) in libHSLibClang-3.4.0.a(TextDiagnostic.o)
      (anonymous namespace)::DeclPrinter::VisitFunctionDecl(clang::FunctionDecl*) in libHSLibClang-3.4.0.a(DeclPrinter.o)
      clang::driver::InputInfo::getAsString() const in libHSLibClang-3.4.0.a(Driver.o)
      (anonymous namespace)::AsmParser::parseMSInlineAsm(void*, std::string&, unsigned int&, unsigned int&, llvm::SmallVectorImpl<std::pair<void*, bool> >&, llvm::SmallVectorImpl<std::string>&, llvm::SmallVectorImpl<std::string>&, llvm::MCInstrInfo const*, llvm::MCInstPrinter const*, llvm::MCAsmParserSemaCallback&) in libHSLibClang-3.4.0.a(AsmParser.o)
      llvm::Attribute::getAsString(bool) const in libHSLibClang-3.4.0.a(Attributes.o)
      ...
  "std::string::assign(char const*, unsigned long)", referenced from:
      (anonymous namespace)::CaptureCompletionResults::ProcessCodeCompleteResults(clang::Sema&, clang::CodeCompletionContext, clang::CodeCompletionResult*, unsigned int) in libHSLibClang-3.4.0.a(CIndexCodeCompletion.o)
      clang::ASTContext::getObjCEncodingForPropertyDecl(clang::ObjCPropertyDecl const*, clang::Decl const*, std::string&) const in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForStructureImpl(clang::RecordDecl*, std::string&, clang::FieldDecl const*, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      CheckAvailability(clang::ASTContext&, clang::AvailabilityAttr const*, std::string*) in libHSLibClang-3.4.0.a(DeclBase.o)
      clang::CompilerInstance::createOutputFile(llvm::StringRef, std::string&, bool, bool, llvm::StringRef, llvm::StringRef, bool, bool, std::string*, std::string*) in libHSLibClang-3.4.0.a(CompilerInstance.o)
      clang::CompilerInvocation::CompilerInvocation() in libHSLibClang-3.4.0.a(CompilerInstance.o)
      AddTemplateParameterChunks(clang::ASTContext&, clang::PrintingPolicy const&, clang::TemplateDecl const*, clang::CodeCompletionBuilder&, unsigned int, unsigned int, bool) in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      ...
  "std::string::assign(std::string const&)", referenced from:
      std::vector<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >, std::allocator<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> > > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >*, std::vector<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >, std::allocator<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> > > > >, std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> > const&) in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_setClangResourcesPath in libHSLibClang-3.4.0.a(CIndexer.o)
      clang::CIndexer::setClangResourcesPath(char const*) in libHSLibClang-3.4.0.a(CIndexer.o)
      clang::CIndexer::getClangResourcesPath() in libHSLibClang-3.4.0.a(CIndexer.o)
      void std::__final_insertion_sort<__gnu_cxx::__normal_iterator<std::pair<llvm::TimeRecord, std::string>*, std::vector<std::pair<llvm::TimeRecord, std::string>, std::allocator<std::pair<llvm::TimeRecord, std::string> > > > >(__gnu_cxx::__normal_iterator<std::pair<llvm::TimeRecord, std::string>*, std::vector<std::pair<llvm::TimeRecord, std::string>, std::allocator<std::pair<llvm::TimeRecord, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<llvm::TimeRecord, std::string>*, std::vector<std::pair<llvm::TimeRecord, std::string>, std::allocator<std::pair<llvm::TimeRecord, std::string> > > >) in libHSLibClang-3.4.0.a(Timer.o)
      void std::__insertion_sort<__gnu_cxx::__normal_iterator<std::pair<llvm::TimeRecord, std::string>*, std::vector<std::pair<llvm::TimeRecord, std::string>, std::allocator<std::pair<llvm::TimeRecord, std::string> > > > >(__gnu_cxx::__normal_iterator<std::pair<llvm::TimeRecord, std::string>*, std::vector<std::pair<llvm::TimeRecord, std::string>, std::allocator<std::pair<llvm::TimeRecord, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<llvm::TimeRecord, std::string>*, std::vector<std::pair<llvm::TimeRecord, std::string>, std::allocator<std::pair<llvm::TimeRecord, std::string> > > >) in libHSLibClang-3.4.0.a(Timer.o)
      __gnu_cxx::__normal_iterator<std::pair<llvm::TimeRecord, std::string>*, std::vector<std::pair<llvm::TimeRecord, std::string>, std::allocator<std::pair<llvm::TimeRecord, std::string> > > > std::__unguarded_partition<__gnu_cxx::__normal_iterator<std::pair<llvm::TimeRecord, std::string>*, std::vector<std::pair<llvm::TimeRecord, std::string>, std::allocator<std::pair<llvm::TimeRecord, std::string> > > >, std::pair<llvm::TimeRecord, std::string> >(__gnu_cxx::__normal_iterator<std::pair<llvm::TimeRecord, std::string>*, std::vector<std::pair<llvm::TimeRecord, std::string>, std::allocator<std::pair<llvm::TimeRecord, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<llvm::TimeRecord, std::string>*, std::vector<std::pair<llvm::TimeRecord, std::string>, std::allocator<std::pair<llvm::TimeRecord, std::string> > > >, std::pair<llvm::TimeRecord, std::string>) in libHSLibClang-3.4.0.a(Timer.o)
      ...
  "std::string::resize(unsigned long, char)", referenced from:
      clang::Lexer::getSpelling(clang::Token const&, clang::SourceManager const&, clang::LangOptions const&, bool*) in libHSLibClang-3.4.0.a(Lexer.o)
      clang::PredefinedExpr::ComputeName(clang::PredefinedExpr::IdentType, clang::Decl const*) in libHSLibClang-3.4.0.a(Expr.o)
      llvm::convertUTF16ToUTF8String(llvm::ArrayRef<char>, std::string&) in libHSLibClang-3.4.0.a(ConvertUTFWrapper.o)
      llvm::sys::getDefaultTargetTriple() in libHSLibClang-3.4.0.a(Host.o)
      clang::comments::(anonymous namespace)::cleanupBrief(std::string&) in libHSLibClang-3.4.0.a(CommentBriefParser.o)
      llvm::Regex::isValid(std::string&) in libHSLibClang-3.4.0.a(Regex.o)
      clang::TextDiagnostic::emitSnippetAndCaret(clang::SourceLocation, clang::DiagnosticsEngine::Level, llvm::SmallVectorImpl<clang::CharSourceRange>&, llvm::ArrayRef<clang::FixItHint>, clang::SourceManager const&) in libHSLibClang-3.4.0.a(TextDiagnostic.o)
      ...
  "std::string::replace(unsigned long, unsigned long, char const*, unsigned long)", referenced from:
      llvm::Timer::init(llvm::StringRef) in libHSLibClang-3.4.0.a(Timer.o)
      llvm::Timer::init(llvm::StringRef, llvm::TimerGroup&) in libHSLibClang-3.4.0.a(Timer.o)
      llvm::NamedRegionTimer::NamedRegionTimer(llvm::StringRef, llvm::StringRef, bool) in libHSLibClang-3.4.0.a(Timer.o)
      clang::ASTContext::getObjCEncodingForTypeImpl(clang::QualType, std::string&, bool, bool, clang::FieldDecl const*, bool, bool, bool, bool, bool, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::StoredDiagnostic::StoredDiagnostic(clang::DiagnosticsEngine::Level, clang::Diagnostic const&) in libHSLibClang-3.4.0.a(Diagnostic.o)
      clang::ASTReader::MaybeAddSystemRootToFilename(clang::serialization::ModuleFile&, std::string&) in libHSLibClang-3.4.0.a(ASTReader.o)
      ParseDirective(llvm::StringRef, clang::VerifyDiagnosticConsumer::ExpectedData*, clang::SourceManager&, clang::Preprocessor*, clang::SourceLocation, clang::VerifyDiagnosticConsumer::DirectiveStatus&) in libHSLibClang-3.4.0.a(VerifyDiagnosticConsumer.o)
      ...
  "std::string::reserve(unsigned long)", referenced from:
      llvm::raw_fd_ostream::raw_fd_ostream(char const*, std::string&, llvm::sys::fs::OpenFlags) in libHSLibClang-3.4.0.a(raw_ostream.o)
      clang::ASTContext::getObjCEncodingForTypeQualifier(clang::Decl::ObjCDeclQualifier, std::string&) const in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForTypeImpl(clang::QualType, std::string&, bool, bool, clang::FieldDecl const*, bool, bool, bool, bool, bool, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      EncodeBitField(clang::ASTContext const*, std::string&, clang::QualType, clang::FieldDecl const*) in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForStructureImpl(clang::RecordDecl*, std::string&, clang::FieldDecl const*, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::CodeCompletionResult::CreateCodeCompletionString(clang::ASTContext&, clang::Preprocessor&, clang::CodeCompletionAllocator&, clang::CodeCompletionTUInfo&, bool) in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      AddTemplateParameterChunks(clang::ASTContext&, clang::PrintingPolicy const&, clang::TemplateDecl const*, clang::CodeCompletionBuilder&, unsigned int, unsigned int, bool) in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      ...
  "std::string::_M_mutate(unsigned long, unsigned long, unsigned long)", referenced from:
      (anonymous namespace)::CaptureCompletionResults::ProcessCodeCompleteResults(clang::Sema&, clang::CodeCompletionContext, clang::CodeCompletionResult*, unsigned int) in libHSLibClang-3.4.0.a(CIndexCodeCompletion.o)
      llvm::raw_fd_ostream::raw_fd_ostream(char const*, std::string&, llvm::sys::fs::OpenFlags) in libHSLibClang-3.4.0.a(raw_ostream.o)
      CheckAvailability(clang::ASTContext&, clang::AvailabilityAttr const*, std::string*) in libHSLibClang-3.4.0.a(DeclBase.o)
      clang::LangOptions::resetNonModularOptions() in libHSLibClang-3.4.0.a(LangOptions.o)
      clang::PreprocessorOptions::resetNonModularOptions() in libHSLibClang-3.4.0.a(CompilerInstance.o)
      clang::DiagnosticsEngine::ReportDelayed() in libHSLibClang-3.4.0.a(Diagnostic.o)
      clang::Sema::CodeCompleteObjCSelector(clang::Scope*, llvm::ArrayRef<clang::IdentifierInfo*>) in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      ...
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:
      _clang_createTranslationUnit in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_parseTranslationUnit_Impl in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_reparseTranslationUnit_Impl in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_codeCompleteAt_Impl in libHSLibClang-3.4.0.a(CIndexCodeCompletion.o)
      _clang_setClangResourcesPath in libHSLibClang-3.4.0.a(CIndexer.o)
      clang::CIndexer::setClangResourcesPath(char const*) in libHSLibClang-3.4.0.a(CIndexer.o)
      llvm::raw_fd_ostream::raw_fd_ostream(char const*, std::string&, llvm::sys::fs::OpenFlags) in libHSLibClang-3.4.0.a(raw_ostream.o)
      ...
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&)", referenced from:
      clang::cxindex::Logger::make(llvm::StringRef, bool) in libHSLibClang-3.4.0.a(CIndex.o)
      clang::cxindex::Logger::make(llvm::StringRef, bool) in libHSLibClang-3.4.0.a(CIndexCodeCompletion.o)
      (anonymous namespace)::CXDiagnosticRenderer::emitDiagnosticMessage(clang::SourceLocation, clang::PresumedLoc, clang::DiagnosticsEngine::Level, llvm::StringRef, llvm::ArrayRef<clang::CharSourceRange>, clang::SourceManager const*, llvm::PointerUnion<clang::Diagnostic const*, clang::StoredDiagnostic const*>) in libHSLibClang-3.4.0.a(CIndexDiagnostic.o)
      (anonymous namespace)::CXDiagnosticRenderer::emitNote(clang::SourceLocation, llvm::StringRef, clang::SourceManager const*) in libHSLibClang-3.4.0.a(CIndexDiagnostic.o)
      clang::cxindex::Logger::make(llvm::StringRef, bool) in libHSLibClang-3.4.0.a(CXSourceLocation.o)
      clang::CIndexer::getClangResourcesPath() in libHSLibClang-3.4.0.a(CIndexer.o)
      llvm::cl::opt<std::string, true, llvm::cl::parser<std::string> >::handleOccurrence(unsigned int, llvm::StringRef, llvm::StringRef) in libHSLibClang-3.4.0.a(Timer.o)
      ...
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)", referenced from:
      _clang_parseTranslationUnit_Impl in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_reparseTranslationUnit_Impl in libHSLibClang-3.4.0.a(CIndex.o)
      clang::PrintingPolicy::PrintingPolicy(clang::PrintingPolicy const&) in libHSLibClang-3.4.0.a(CIndex.o)
      std::vector<std::string, std::allocator<std::string> >::vector(std::vector<std::string, std::allocator<std::string> > const&) in libHSLibClang-3.4.0.a(CIndex.o)
      std::vector<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >, std::allocator<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> > > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >*, std::vector<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >, std::allocator<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> > > > >, std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> > const&) in libHSLibClang-3.4.0.a(CIndex.o)
      _clang_codeCompleteAt_Impl in libHSLibClang-3.4.0.a(CIndexCodeCompletion.o)
      llvm::SmallVectorTemplateBase<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >, false>::grow(unsigned long) in libHSLibClang-3.4.0.a(CIndexCodeCompletion.o)
      ...
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&, unsigned long, unsigned long)", referenced from:
      clang::Preprocessor::ExpandBuiltinMacro(clang::Token&) in libHSLibClang-3.4.0.a(PPMacroExpansion.o)
      (anonymous namespace)::PragmaDiagnosticHandler::HandlePragma(clang::Preprocessor&, clang::PragmaIntroducerKind, clang::Token&) in libHSLibClang-3.4.0.a(Pragma.o)
      clang::TextDiagnostic::emitSnippetAndCaret(clang::SourceLocation, clang::DiagnosticsEngine::Level, llvm::SmallVectorImpl<clang::CharSourceRange>&, llvm::ArrayRef<clang::FixItHint>, clang::SourceManager const&) in libHSLibClang-3.4.0.a(TextDiagnostic.o)
      clang::ApplyHeaderSearchOptions(clang::HeaderSearch&, clang::HeaderSearchOptions const&, clang::LangOptions const&, llvm::Triple const&) in libHSLibClang-3.4.0.a(InitHeaderSearch.o)
      clang::declvisitor::Base<clang::declvisitor::make_ptr, (anonymous namespace)::DeclPrinter, void>::Visit(clang::Decl*) in libHSLibClang-3.4.0.a(DeclPrinter.o)
      clang::driver::Driver::GetFilePath(char const*, clang::driver::ToolChain const&) const in libHSLibClang-3.4.0.a(Driver.o)
      clang::driver::tools::Clang::getDependencyFileName(llvm::opt::ArgList const&, llvm::SmallVector<clang::driver::InputInfo, 4u> const&) in libHSLibClang-3.4.0.a(Tools.o)
      ...
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(unsigned long, char, std::allocator<char> const&)", referenced from:
      llvm::TimerGroup::PrintQueuedTimers(llvm::raw_ostream&) in libHSLibClang-3.4.0.a(Timer.o)
      llvm::StringRef::lower() const in libHSLibClang-3.4.0.a(StringRef.o)
      llvm::StringRef::upper() const in libHSLibClang-3.4.0.a(StringRef.o)
      llvm::PrintStatistics(llvm::raw_ostream&) in libHSLibClang-3.4.0.a(Statistic.o)
      clang::TargetInfo::convertConstraint(char const*&) const in libHSLibClang-3.4.0.a(TargetInfo.o)
      (anonymous namespace)::X86TargetInfo::convertConstraint(char const*&) const in libHSLibClang-3.4.0.a(Targets.o)
      (anonymous namespace)::ARMTargetInfo::convertConstraint(char const*&) const in libHSLibClang-3.4.0.a(Targets.o)
      ...
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()", referenced from:
      __GLOBAL__I_a in libHSLibClang-3.4.0.a(Debug.o)
  "std::__basic_file<char>::~__basic_file()", referenced from:
      clang::LayoutOverrideSource::LayoutOverrideSource(llvm::StringRef) in libHSLibClang-3.4.0.a(LayoutOverrideSource.o)
  "std::basic_filebuf<char, std::char_traits<char> >::close()", referenced from:
      clang::LayoutOverrideSource::LayoutOverrideSource(llvm::StringRef) in libHSLibClang-3.4.0.a(LayoutOverrideSource.o)
  "std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(char const*, std::_Ios_Openmode)", referenced from:
      clang::LayoutOverrideSource::LayoutOverrideSource(llvm::StringRef) in libHSLibClang-3.4.0.a(LayoutOverrideSource.o)
  "std::_List_node_base::hook(std::_List_node_base*)", referenced from:
      clang::CompilerInstance::addOutputFile(clang::CompilerInstance::OutputFile const&) in libHSLibClang-3.4.0.a(CompilerInstance.o)
      clang::CompilerInstance::createOutputFile(llvm::StringRef, bool, bool, llvm::StringRef, llvm::StringRef, bool, bool) in libHSLibClang-3.4.0.a(CompilerInstance.o)
      clang::DiagnosticsEngine::Reset() in libHSLibClang-3.4.0.a(Diagnostic.o)
      clang::DiagnosticsEngine::setDiagnosticMapping(unsigned int, clang::diag::Mapping, clang::SourceLocation) in libHSLibClang-3.4.0.a(Diagnostic.o)
      clang::Sema::CodeCompleteModuleImport(clang::SourceLocation, llvm::ArrayRef<std::pair<clang::IdentifierInfo*, clang::SourceLocation> >) in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      clang::Sema::CodeCompleteOrdinaryName(clang::Scope*, clang::Sema::ParserCompletionContext) in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      AddPrettyFunctionResults(clang::LangOptions const&, (anonymous namespace)::ResultBuilder&) in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      ...
  "std::_List_node_base::swap(std::_List_node_base&, std::_List_node_base&)", referenced from:
      clang::CXXBasePaths::swap(clang::CXXBasePaths&) in libHSLibClang-3.4.0.a(CXXInheritance.o)
      void std::list<std::pair<std::pair<clang::SourceLocation, clang::PartialDiagnostic>, llvm::SmallVector<std::pair<clang::SourceLocation, clang::PartialDiagnostic>, 1u> >, std::allocator<std::pair<std::pair<clang::SourceLocation, clang::PartialDiagnostic>, llvm::SmallVector<std::pair<clang::SourceLocation, clang::PartialDiagnostic>, 1u> > > >::sort<clang::(anonymous namespace)::SortDiagBySourceLocation>(clang::(anonymous namespace)::SortDiagBySourceLocation) in libHSLibClang-3.4.0.a(AnalysisBasedWarnings.o)
  "std::_List_node_base::unhook()", referenced from:
      (anonymous namespace)::ResultBuilder::ExitScope() in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      std::list<llvm::DenseMap<clang::DeclarationName, llvm::TinyPtrVector<clang::NamedDecl*>, llvm::DenseMapInfo<clang::DeclarationName> >, std::allocator<llvm::DenseMap<clang::DeclarationName, llvm::TinyPtrVector<clang::NamedDecl*>, llvm::DenseMapInfo<clang::DeclarationName> > > >::_M_erase(std::_List_iterator<llvm::DenseMap<clang::DeclarationName, llvm::TinyPtrVector<clang::NamedDecl*>, llvm::DenseMapInfo<clang::DeclarationName> > >) in libHSLibClang-3.4.0.a(SemaLookup.o)
      clang::CXXRecordDecl::lookupInBases(bool (*)(clang::CXXBaseSpecifier const*, clang::CXXBasePath&, void*), void*, clang::CXXBasePaths&) const in libHSLibClang-3.4.0.a(CXXInheritance.o)
  "std::_List_node_base::transfer(std::_List_node_base*, std::_List_node_base*)", referenced from:
      void std::list<std::pair<std::pair<clang::SourceLocation, clang::PartialDiagnostic>, llvm::SmallVector<std::pair<clang::SourceLocation, clang::PartialDiagnostic>, 1u> >, std::allocator<std::pair<std::pair<clang::SourceLocation, clang::PartialDiagnostic>, llvm::SmallVector<std::pair<clang::SourceLocation, clang::PartialDiagnostic>, 1u> > > >::sort<clang::(anonymous namespace)::SortDiagBySourceLocation>(clang::(anonymous namespace)::SortDiagBySourceLocation) in libHSLibClang-3.4.0.a(AnalysisBasedWarnings.o)
  "std::locale::~locale()", referenced from:
      clang::LayoutOverrideSource::LayoutOverrideSource(llvm::StringRef) in libHSLibClang-3.4.0.a(LayoutOverrideSource.o)
  "std::ios_base::~ios_base()", referenced from:
      clang::LayoutOverrideSource::LayoutOverrideSource(llvm::StringRef) in libHSLibClang-3.4.0.a(LayoutOverrideSource.o)
  "std::_Rb_tree_decrement(std::_Rb_tree_node_base*)", referenced from:
      std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, clang::NamedDecl*>, std::_Select1st<std::pair<unsigned long long const, clang::NamedDecl*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, clang::NamedDecl*> > >::_M_insert_equal(std::_Rb_tree_iterator<std::pair<unsigned long long const, clang::NamedDecl*> >, std::pair<unsigned long long const, clang::NamedDecl*> const&) in libHSLibClang-3.4.0.a(ASTContext.o)
      std::_Rb_tree<clang::FileEntry, clang::FileEntry, std::_Identity<clang::FileEntry>, std::less<clang::FileEntry>, std::allocator<clang::FileEntry> >::_M_insert_unique(clang::FileEntry const&) in libHSLibClang-3.4.0.a(FileManager.o)
      std::_Rb_tree<llvm::sys::fs::UniqueID, std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry>, std::_Select1st<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> >, std::less<llvm::sys::fs::UniqueID>, std::allocator<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> >, std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> const&) in libHSLibClang-3.4.0.a(FileManager.o)
      std::_Rb_tree<llvm::sys::fs::UniqueID, std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry>, std::_Select1st<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> >, std::less<llvm::sys::fs::UniqueID>, std::allocator<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> > >::_M_insert_unique(std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> const&) in libHSLibClang-3.4.0.a(FileManager.o)
      std::_Rb_tree<std::pair<clang::DiagnosticIDs::Level, std::string>, std::pair<std::pair<clang::DiagnosticIDs::Level, std::string> const, unsigned int>, std::_Select1st<std::pair<std::pair<clang::DiagnosticIDs::Level, std::string> const, unsigned int> >, std::less<std::pair<clang::DiagnosticIDs::Level, std::string> >, std::allocator<std::pair<std::pair<clang::DiagnosticIDs::Level, std::string> const, unsigned int> > >::_M_insert_unique(std::pair<std::pair<clang::DiagnosticIDs::Level, std::string> const, unsigned int> const&) in libHSLibClang-3.4.0.a(DiagnosticIDs.o)
      clang::SourceManager::associateFileChunkWithMacroArgExp(std::map<unsigned int, clang::SourceLocation, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, clang::SourceLocation> > >&, clang::FileID, clang::SourceLocation, clang::SourceLocation, unsigned int) const in libHSLibClang-3.4.0.a(SourceManager.o)
      clang::SourceManager::getMacroArgExpandedLocation(clang::SourceLocation) const in libHSLibClang-3.4.0.a(SourceManager.o)
      ...
  "std::_Rb_tree_increment(std::_Rb_tree_node_base const*)", referenced from:
      clang::driver::toolchains::Generic_GCC::GCCInstallationDetector::print(llvm::raw_ostream&) const in libHSLibClang-3.4.0.a(ToolChains.o)
      llvm::AttrBuilder::merge(llvm::AttrBuilder const&) in libHSLibClang-3.4.0.a(Attributes.o)
      llvm::AttrBuilder::operator==(llvm::AttrBuilder const&) in libHSLibClang-3.4.0.a(Attributes.o)
  "std::_Rb_tree_increment(std::_Rb_tree_node_base*)", referenced from:
      clang::ASTContext::getObjCEncodingForStructureImpl(clang::RecordDecl*, std::string&, clang::FieldDecl const*, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, clang::NamedDecl*>, std::_Select1st<std::pair<unsigned long long const, clang::NamedDecl*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, clang::NamedDecl*> > >::_M_insert_equal(std::_Rb_tree_iterator<std::pair<unsigned long long const, clang::NamedDecl*> >, std::pair<unsigned long long const, clang::NamedDecl*> const&) in libHSLibClang-3.4.0.a(ASTContext.o)
      std::_Rb_tree<clang::FileEntry, clang::FileEntry, std::_Identity<clang::FileEntry>, std::less<clang::FileEntry>, std::allocator<clang::FileEntry> >::erase(std::_Rb_tree_iterator<clang::FileEntry>, std::_Rb_tree_iterator<clang::FileEntry>) in libHSLibClang-3.4.0.a(FileManager.o)
      std::_Rb_tree<llvm::sys::fs::UniqueID, std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry>, std::_Select1st<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> >, std::less<llvm::sys::fs::UniqueID>, std::allocator<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> >, std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> const&) in libHSLibClang-3.4.0.a(FileManager.o)
      std::_Rb_tree<unsigned int, std::pair<unsigned int const, clang::SourceLocation>, std::_Select1st<std::pair<unsigned int const, clang::SourceLocation> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, clang::SourceLocation> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<unsigned int const, clang::SourceLocation> >, std::pair<unsigned int const, clang::SourceLocation> const&) in libHSLibClang-3.4.0.a(SourceManager.o)
      std::_Rb_tree<clang::FileID, std::pair<clang::FileID const, std::vector<clang::LineEntry, std::allocator<clang::LineEntry> > >, std::_Select1st<std::pair<clang::FileID const, std::vector<clang::LineEntry, std::allocator<clang::LineEntry> > > >, std::less<clang::FileID>, std::allocator<std::pair<clang::FileID const, std::vector<clang::LineEntry, std::allocator<clang::LineEntry> > > > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<clang::FileID const, std::vector<clang::LineEntry, std::allocator<clang::LineEntry> > > >, std::pair<clang::FileID const, std::vector<clang::LineEntry, std::allocator<clang::LineEntry> > > const&) in libHSLibClang-3.4.0.a(SourceManager.o)
      clang::Sema::CodeCompleteNamespaceDecl(clang::Scope*) in libHSLibClang-3.4.0.a(SemaCodeComplete.o)
      ...
  "std::__throw_logic_error(char const*)", referenced from:
      llvm::TimerGroup::TimerGroup(llvm::StringRef) in libHSLibClang-3.4.0.a(Timer.o)
      charUnitsToString(clang::CharUnits const&) in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::ASTContext::getObjCEncodingForTypeImpl(clang::QualType, std::string&, bool, bool, clang::FieldDecl const*, bool, bool, bool, bool, bool, bool) const in libHSLibClang-3.4.0.a(ASTContext.o)
      EncodeBitField(clang::ASTContext const*, std::string&, clang::QualType, clang::FieldDecl const*) in libHSLibClang-3.4.0.a(ASTContext.o)
      clang::GCCAsmStmt::generateAsmString(clang::ASTContext const&) const in libHSLibClang-3.4.0.a(Stmt.o)
      clang::Lexer::getSpelling(clang::Token const&, clang::SourceManager const&, clang::LangOptions const&, bool*) in libHSLibClang-3.4.0.a(Lexer.o)
      llvm::PrintStatistics(llvm::raw_ostream&) in libHSLibClang-3.4.0.a(Statistic.o)
      ...
  "std::__throw_length_error(char const*)", referenced from:
      std::vector<llvm::SmallVector<CXCursor, 2u>*, std::allocator<llvm::SmallVector<CXCursor, 2u>*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::SmallVector<CXCursor, 2u>**, std::vector<llvm::SmallVector<CXCursor, 2u>*, std::allocator<llvm::SmallVector<CXCursor, 2u>*> > >, llvm::SmallVector<CXCursor, 2u>* const&) in libHSLibClang-3.4.0.a(CXCursor.o)
      std::vector<CXTUResourceUsageEntry, std::allocator<CXTUResourceUsageEntry> >::_M_insert_aux(__gnu_cxx::__normal_iterator<CXTUResourceUsageEntry*, std::vector<CXTUResourceUsageEntry, std::allocator<CXTUResourceUsageEntry> > >, CXTUResourceUsageEntry const&) in libHSLibClang-3.4.0.a(CIndex.o)
      std::vector<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >, std::allocator<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> > > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >*, std::vector<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >, std::allocator<std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> > > > >, std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> > const&) in libHSLibClang-3.4.0.a(CIndex.o)
      void std::vector<char const*, std::allocator<char const*> >::_M_range_insert<char const* const*>(__gnu_cxx::__normal_iterator<char const**, std::vector<char const*, std::allocator<char const*> > >, char const* const*, char const* const*, std::forward_iterator_tag) in libHSLibClang-3.4.0.a(CIndex.o)
      std::vector<char const*, std::allocator<char const*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<char const**, std::vector<char const*, std::allocator<char const*> > >, char const* const&) in libHSLibClang-3.4.0.a(CIndex.o)
      std::vector<clang::CXDiagnosticImpl*, std::allocator<clang::CXDiagnosticImpl*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<clang::CXDiagnosticImpl**, std::vector<clang::CXDiagnosticImpl*, std::allocator<clang::CXDiagnosticImpl*> > >, clang::CXDiagnosticImpl* const&) in libHSLibClang-3.4.0.a(CIndexDiagnostic.o)
      std::vector<clang::cxstring::CXStringBuf*, std::allocator<clang::cxstring::CXStringBuf*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<clang::cxstring::CXStringBuf**, std::vector<clang::cxstring::CXStringBuf*, std::allocator<clang::cxstring::CXStringBuf*> > >, clang::cxstring::CXStringBuf* const&) in libHSLibClang-3.4.0.a(CXString.o)
      ...
  "std::__throw_out_of_range(char const*)", referenced from:
      clang::Preprocessor::ExpandBuiltinMacro(clang::Token&) in libHSLibClang-3.4.0.a(PPMacroExpansion.o)
      clang::Preprocessor::Handle_Pragma(clang::Token&) in libHSLibClang-3.4.0.a(Pragma.o)
      (anonymous namespace)::PragmaDiagnosticHandler::HandlePragma(clang::Preprocessor&, clang::PragmaIntroducerKind, clang::Token&) in libHSLibClang-3.4.0.a(Pragma.o)
      clang::declvisitor::Base<clang::declvisitor::make_ptr, (anonymous namespace)::DeclPrinter, void>::Visit(clang::Decl*) in libHSLibClang-3.4.0.a(DeclPrinter.o)
      clang::driver::Driver::GetFilePath(char const*, clang::driver::ToolChain const&) const in libHSLibClang-3.4.0.a(Driver.o)
      llvm::SMDiagnostic::print(char const*, llvm::raw_ostream&, bool) const in libHSLibClang-3.4.0.a(SourceMgr.o)
  "std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:
      std::_Rb_tree<clang::FileEntry, clang::FileEntry, std::_Identity<clang::FileEntry>, std::less<clang::FileEntry>, std::allocator<clang::FileEntry> >::erase(std::_Rb_tree_iterator<clang::FileEntry>, std::_Rb_tree_iterator<clang::FileEntry>) in libHSLibClang-3.4.0.a(FileManager.o)
      llvm::SmallSet<unsigned int, 16u, std::less<unsigned int> >::erase(unsigned int const&) in libHSLibClang-3.4.0.a(ASTReader.o)
      clang::Sema::CorrectTypo(clang::DeclarationNameInfo const&, clang::Sema::LookupNameKind, clang::Scope*, clang::CXXScopeSpec*, clang::CorrectionCandidateCallback&, clang::DeclContext*, bool, clang::ObjCObjectPointerType const*, bool) in libHSLibClang-3.4.0.a(SemaLookup.o)
      (anonymous namespace)::TypoCorrectionConsumer::addCorrection(clang::TypoCorrection) in libHSLibClang-3.4.0.a(SemaLookup.o)
      clang::edit::EditedSource::commitRemove(clang::SourceLocation, clang::edit::FileOffset, unsigned int) in libHSLibClang-3.4.0.a(EditedSource.o)
      std::_Rb_tree<std::pair<clang::CXXRecordDecl*, clang::Sema::CXXSpecialMember>, std::pair<clang::CXXRecordDecl*, clang::Sema::CXXSpecialMember>, std::_Identity<std::pair<clang::CXXRecordDecl*, clang::Sema::CXXSpecialMember> >, std::less<std::pair<clang::CXXRecordDecl*, clang::Sema::CXXSpecialMember> >, std::allocator<std::pair<clang::CXXRecordDecl*, clang::Sema::CXXSpecialMember> > >::erase(std::pair<clang::CXXRecordDecl*, clang::Sema::CXXSpecialMember> const&) in libHSLibClang-3.4.0.a(SemaDeclCXX.o)
      llvm::ConstantUniqueMap<llvm::ExprMapKeyType, llvm::ExprMapKeyType const&, llvm::Type, llvm::ConstantExpr, false>::remove(llvm::ConstantExpr*) in libHSLibClang-3.4.0.a(Constants.o)
      ...
  "std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:
      std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, clang::NamedDecl*>, std::_Select1st<std::pair<unsigned long long const, clang::NamedDecl*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, clang::NamedDecl*> > >::_M_insert_equal(std::_Rb_tree_iterator<std::pair<unsigned long long const, clang::NamedDecl*> >, std::pair<unsigned long long const, clang::NamedDecl*> const&) in libHSLibClang-3.4.0.a(ASTContext.o)
      std::_Rb_tree<clang::FileEntry, clang::FileEntry, std::_Identity<clang::FileEntry>, std::less<clang::FileEntry>, std::allocator<clang::FileEntry> >::_M_insert_unique(clang::FileEntry const&) in libHSLibClang-3.4.0.a(FileManager.o)
      std::_Rb_tree<llvm::sys::fs::UniqueID, std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry>, std::_Select1st<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> >, std::less<llvm::sys::fs::UniqueID>, std::allocator<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> >, std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> const&) in libHSLibClang-3.4.0.a(FileManager.o)
      std::_Rb_tree<llvm::sys::fs::UniqueID, std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry>, std::_Select1st<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> >, std::less<llvm::sys::fs::UniqueID>, std::allocator<std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> > >::_M_insert_unique(std::pair<llvm::sys::fs::UniqueID const, clang::DirectoryEntry> const&) in libHSLibClang-3.4.0.a(FileManager.o)
      std::_Rb_tree<std::pair<clang::DiagnosticIDs::Level, std::string>, std::pair<std::pair<clang::DiagnosticIDs::Level, std::string> const, unsigned int>, std::_Select1st<std::pair<std::pair<clang::DiagnosticIDs::Level, std::string> const, unsigned int> >, std::less<std::pair<clang::DiagnosticIDs::Level, std::string> >, std::allocator<std::pair<std::pair<clang::DiagnosticIDs::Level, std::string> const, unsigned int> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::pair<clang::DiagnosticIDs::Level, std::string> const, unsigned int> const&) in libHSLibClang-3.4.0.a(DiagnosticIDs.o)
      std::_Rb_tree<unsigned int, std::pair<unsigned int const, clang::SourceLocation>, std::_Select1st<std::pair<unsigned int const, clang::SourceLocation> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, clang::SourceLocation> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<unsigned int const, clang::SourceLocation> >, std::pair<unsigned int const, clang::SourceLocation> const&) in libHSLibClang-3.4.0.a(SourceManager.o)
      std::_Rb_tree<unsigned int, std::pair<unsigned int const, clang::SourceLocation>, std::_Select1st<std::pair<unsigned int const, clang::SourceLocation> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, clang::SourceLocation> > >::_M_insert_unique(std::pair<unsigned int const, clang::SourceLocation> const&) in libHSLibClang-3.4.0.a(SourceManager.o)
      ...
  "std::basic_istream<char, std::char_traits<char> >& std::getline<char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char)", referenced from:
      clang::LayoutOverrideSource::LayoutOverrideSource(llvm::StringRef) in libHSLibClang-3.4.0.a(LayoutOverrideSource.o)
  "VTT for std::basic_ifstream<char, std::char_traits<char> >", referenced from:
      clang::LayoutOverrideSource::LayoutOverrideSource(llvm::StringRef) in libHSLibClang-3.4.0.a(LayoutOverrideSource.o)
  "vtable for std::basic_filebuf<char, std::char_traits<char> >", referenced from:
      clang::LayoutOverrideSource::LayoutOverrideSource(llvm::StringRef) in libHSLibClang-3.4.0.a(LayoutOverrideSource.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for std::basic_streambuf<char, std::char_traits<char> >", referenced from:
      clang::LayoutOverrideSource::LayoutOverrideSource(llvm::StringRef) in libHSLibClang-3.4.0.a(LayoutOverrideSource.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "_del_curterm", referenced from:
      llvm::sys::Process::FileDescriptorHasColors(int) in libHSLibClang-3.4.0.a(Process.o)
  "_set_curterm", referenced from:
      llvm::sys::Process::FileDescriptorHasColors(int) in libHSLibClang-3.4.0.a(Process.o)
  "_setupterm", referenced from:
      llvm::sys::Process::FileDescriptorHasColors(int) in libHSLibClang-3.4.0.a(Process.o)
  "_tigetnum", referenced from:
      llvm::sys::Process::FileDescriptorHasColors(int) in libHSLibClang-3.4.0.a(Process.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Failed to install pygmalion-0.1.0.0
cabal: Error: some packages failed to install:
pygmalion-0.1.0.0 failed during the building phase. The exception was:
ExitFailure 1
make: *** [default] Error 1

Compilation exited abnormally with code 2 at Tue Mar 11 15:24:36

I have to go do some other stuff for a little while, but I'll try to debug this more later tonight.

I'm going to reopen this bug until we get this resolved.

from libclang.

sethfowler avatar sethfowler commented on July 20, 2024

I'm sure it's clear, btw, but that's a log from building pygmalion, not from LibClang. LibClang itself builds fine, but clearly the linking story isn't quite right.

This is with GHC 7.6.3.

from libclang.

sethfowler avatar sethfowler commented on July 20, 2024

Pretty sure the problem is that we now lack the ability to do the equivalent of listing -lstdc++ a second time when linking, as I did in the old Setup.hs. Listing it that second time allowed the linker to resolve symbols from the C++ standard library that the LLVM static libraries reference. Without including that we get link failures when we build a program that depends on LibClang.

Unfortunately, it's not so clear how to solve this problem when we're packing a static library manually with ar. Making the situation even worse is that clang does not seem to support the -static-libstdc++ option, which I was hoping would let me work around the problem by building LLVM/Clang with a static libstdc++ linked in from the beginning.

I've tried a number of other options and so far haven't had much luck. I've got one or two more things to try, though.

from libclang.

sethfowler avatar sethfowler commented on July 20, 2024

Ack, none of that worked out.

@chetant, I'm sorry, but I need to back this out for now. I'm going to rebase master so your commits are on top and then move them to branch newbuild so you won't lose your merge work.

I'll file a new bug about the problem in my last comment so we can put this old bug to rest.

from libclang.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.