Giter Site home page Giter Site logo

bloomberg / bde_verify Goto Github PK

View Code? Open in Web Editor NEW
42.0 42.0 21.0 6.8 MB

Tool used to format, improve and verify code to BDE guidelines

License: Apache License 2.0

Makefile 8.20% C++ 86.58% C 0.76% Perl 2.02% C# 1.72% CMake 0.72%
clang-format code-formatter cpp

bde_verify's Issues

Building bde_verify on linux mint (and ubuntu?)

I found the instruction provided for building bde_verify inadequate. It took 2 evenings, and a fair amount of research and hacking to produce a build of bde_verify on a (mostly clean) linux VM.

I performed the build on a VM running linux mint 17 x86, 64bit. Its likely the instructions would work for a similar flavor of ubuntu.

$ uname -a
Linux linuxvm 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Issues:

  • confusing prerequesite: aspell -- what's required is the aspell dev package (not just aspell)
  • missing prequestion: 32bit ncurses dev package (lib32ncurses5-dev worked for me)
  • missing prerequisite: zlib dev package ( zlib1g-dev)
  • The linked documentation for building llvm builds some unknown clang version (or in my case, fails to build it), and the bde_verify documentation refers to a non-existent configure step.
  • There is a problem in the bde_verify wrapper script
  • There are no instructions on how to run bde_verify once its built

The following were the steps I followed:

# This was built on a mostly clean VM install of linux mint (an offshoot of
# ubuntu).  Previously installed: 
#   * python 2.7.6
#   * perl 5.18
#   * gcc-4.8.2 (built for ubuntu)
# These may have been provided by the linux distro.

# install the aspell development package (*not* aspell)
$ sudo apt-get install libaspell-dev

# install ncurses library
$ sudo apt-get install lib32ncurses5-dev

#  install zlib
$ sudo apt-get install zlib1g-dev

# Follow the instructions to install clang 3.6.2 here:
# http://www.linuxfromscratch.org/blfs/view/svn/general/llvm.html
# with a slightly altered invocation of 'configure'.
#
# Download the source:
# llvm:        http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz
# clang:       http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz
# Compiler Rt: http://llvm.org/releases/3.6.2/compiler-rt-3.6.2.src.tar.xz

# Unpack the llvm and clang source into the correct structure.  Note that
# the instructions through "install clang" should be verbatim from the
# linux-from-scratch page except for the configure step:

$ mkdir clang-build
$ cd clang-build
$ mv <download-dir>/llvm-3.6.2.src.tar.xz ./
$ mv <download-dir>/cfe-3.6.2.src.tar.xz ./
$ mv <download-dir>/compiler-rt-3.6.2.src.tar.xz ./
$ tar -xvf llvm-3.6.2.src.tar.xz 
$ cd llvm-3.6.2.src/
$ tar -xf ../cfe-3.6.2.src.tar.xz -C tools
$ tar -xf ../compiler-rt-3.6.2.src.tar.xz -C projects
$ mv tools/cfe-3.6.2.src/ tools/clang
$ mv projects/compiler-rt-3.6.2.src projects/compiler-rt

# Configure and build.  Note that the arguments to configure mostly come from
# https://github.com/bloomberg/bde_verify

$  CC=gcc CXX=g++ ./configure  --enable-optimized --enable-cxx11--with-extra-options=--std=gnu++11 --prefix=/usr -enable-shared --with-gcc-toolchain=/usr
$ make

# Install clang
$ su
$ make install
$ for file in /usr/lib/lib{clang,LLVM,LTO}*.a
  do
    test -f $file && chmod -v 644 $file
  done
$ exit  # no more su 

# Clone and build bde_verify:
$ cd ..
$ git clone https://github.com/bloomberg/bde_verify.git
$ cd bde_verify
$ make

# Fix 'scripts/bde_verify' line 263 commenting out the invalid syscall:
- syscall($system eq 'Linux' ? 160 : 128, 4, pack('LL', 0, 0));
+ #syscall($system eq 'Linux' ? 160 : 128, 4, pack('LL', 0, 0));

# To run bde_verify on the bde open-source project, clone bde and install the
# bde headers:

$ cd ..
$ git clone https://github.com/bloomberg/bde.git
$ cd bde
$ export PREFIX=<pick-an-install-dir-for-bde-headers>
$ waf configure --use-flat-include-dir build install

# Run bde_verify, for example:
$ ../bde_verify/scripts/bde_verify -I<install-dir-for-bde-headers>/include/ groups/bdl/bdlt/bdlt_date.h

Fail to link bde_verify_bin on Ubuntu 20.04

Describe the bug
I try to build bde_verify follow the instruction. I already build LLVM/Clang by instruction but get the following error at the last step:

$ cmake --build . --target install -j 1
[ 20%] Built target csabase
[ 21%] Linking CXX executable bde_verify_bin
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaaq/csaaq_freefunctionsdepend.cpp.o: in function `clang::NamedDecl::getNameAsString[abi:cxx11]() const':
csaaq_freefunctionsdepend.cpp:(.text._ZNK5clang9NamedDecl15getNameAsStringB5cxx11Ev[_ZNK5clang9NamedDecl15getNameAsStringB5cxx11Ev]+0x36): undefined reference to `clang::DeclarationName::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaaq/csaaq_runtimeinit.cpp.o: in function `llvm::APSInt::toString[abi:cxx11](unsigned int) const':
csaaq_runtimeinit.cpp:(.text._ZNK4llvm6APSInt8toStringB5cxx11Ej[_ZNK4llvm6APSInt8toStringB5cxx11Ej]+0x48): undefined reference to `llvm::APInt::toString[abi:cxx11](unsigned int, bool) const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaaq/csaaq_runtimeinit.cpp.o: in function `clang::ast_matchers::hasName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
csaaq_runtimeinit.cpp:(.text._ZN5clang12ast_matchers7hasNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN5clang12ast_matchers7hasNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x9a): undefined reference to `clang::ast_matchers::internal::HasNameMatcher::HasNameMatcher(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaaq/csaaq_runtimeinit.cpp.o: in function `clang::ast_matchers::internal::matcher_matchesName0Matcher::matches(clang::NamedDecl const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const':
csaaq_runtimeinit.cpp:(.text._ZNK5clang12ast_matchers8internal27matcher_matchesName0Matcher7matchesERKNS_9NamedDeclEPNS1_14ASTMatchFinderEPNS1_21BoundNodesTreeBuilderE[_ZNK5clang12ast_matchers8internal27matcher_matchesName0Matcher7matchesERKNS_9NamedDeclEPNS1_14ASTMatchFinderEPNS1_21BoundNodesTreeBuilderE]+0x86): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaaq/csaaq_runtimeinit.cpp.o: in function `clang::ast_matchers::internal::matcher_hasSelector0Matcher::matches(clang::ObjCMessageExpr const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const':
csaaq_runtimeinit.cpp:(.text._ZNK5clang12ast_matchers8internal27matcher_hasSelector0Matcher7matchesERKNS_15ObjCMessageExprEPNS1_14ASTMatchFinderEPNS1_21BoundNodesTreeBuilderE[_ZNK5clang12ast_matchers8internal27matcher_hasSelector0Matcher7matchesERKNS_15ObjCMessageExprEPNS1_14ASTMatchFinderEPNS1_21BoundNodesTreeBuilderE]+0x53): undefined reference to `clang::Selector::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaaq/csaaq_runtimeinit.cpp.o: in function `clang::ast_matchers::internal::matcher_matchesSelector0Matcher::matches(clang::ObjCMessageExpr const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const':
csaaq_runtimeinit.cpp:(.text._ZNK5clang12ast_matchers8internal31matcher_matchesSelector0Matcher7matchesERKNS_15ObjCMessageExprEPNS1_14ASTMatchFinderEPNS1_21BoundNodesTreeBuilderE[_ZNK5clang12ast_matchers8internal31matcher_matchesSelector0Matcher7matchesERKNS_15ObjCMessageExprEPNS1_14ASTMatchFinderEPNS1_21BoundNodesTreeBuilderE]+0x81): undefined reference to `clang::Selector::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaaq/csaaq_runtimeinit.cpp.o: in function `clang::ast_matchers::internal::matcher_asString0Matcher::matches(clang::QualType const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const':
csaaq_runtimeinit.cpp:(.text._ZNK5clang12ast_matchers8internal24matcher_asString0Matcher7matchesERKNS_8QualTypeEPNS1_14ASTMatchFinderEPNS1_21BoundNodesTreeBuilderE[_ZNK5clang12ast_matchers8internal24matcher_asString0Matcher7matchesERKNS_8QualTypeEPNS1_14ASTMatchFinderEPNS1_21BoundNodesTreeBuilderE]+0x3b): undefined reference to `clang::QualType::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaaq/csaaq_transitiveincludes.cpp.o: in function `(anonymous namespace)::report::is_guard_for(llvm::StringRef, llvm::StringRef)':
csaaq_transitiveincludes.cpp:(.text+0x9426): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: csaaq_transitiveincludes.cpp:(.text+0x95aa): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaaq/csaaq_transitiveincludes.cpp.o: in function `(anonymous namespace)::report::files_match(llvm::StringRef, llvm::StringRef)':
csaaq_transitiveincludes.cpp:(.text+0xa23b): undefined reference to `llvm::Twine::str[abi:cxx11]() const'
/usr/bin/ld: csaaq_transitiveincludes.cpp:(.text+0xa308): undefined reference to `llvm::Twine::str[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaaq/csaaq_transitiveincludes.cpp.o: in function `(anonymous namespace)::report::VisitDeclRefExpr(clang::DeclRefExpr*)':
csaaq_transitiveincludes.cpp:(.text+0xc057): undefined reference to `clang::DeclarationName::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaaq/csaaq_transitiveincludes.cpp.o: in function `(anonymous namespace)::report::VisitQualifiedTypeLoc(clang::QualifiedTypeLoc)':
csaaq_transitiveincludes.cpp:(.text+0xc5a1): undefined reference to `clang::QualType::getAsString[abi:cxx11](clang::PrintingPolicy const&) const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::is_allocator(clang::QualType, clang::ASTContext&, bool, bool)::{lambda(clang::CXXRecordDecl const*)#2}::operator()(clang::CXXRecordDecl const*) const':
csabbg_allocatorforward.cpp:(.text+0x19f): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::is_allocator_tag(clang::QualType, clang::ASTContext&)':
csabbg_allocatorforward.cpp:(.text+0x6fe): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::report::match_nested_allocator_trait(clang::ast_matchers::BoundNodes const&)':
csabbg_allocatorforward.cpp:(.text+0x10f1): undefined reference to `clang::QualType::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::report::match_should_return_by_value(clang::ast_matchers::BoundNodes const&)':
csabbg_allocatorforward.cpp:(.text+0x4da5): undefined reference to `clang::QualType::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::report::write_allocator_trait(clang::CXXRecordDecl const*, bool)':
csabbg_allocatorforward.cpp:(.text+0xa442): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::report::write_allocator_method_declaration(clang::CXXRecordDecl const*, (anonymous namespace)::AllocatorLocation, clang::CXXBaseSpecifier const*, clang::FieldDecl const*)':
csabbg_allocatorforward.cpp:(.text+0xad2b): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::report::write_allocator_method_definition(clang::CXXRecordDecl const*, (anonymous namespace)::AllocatorLocation, clang::CXXBaseSpecifier const*, clang::FieldDecl const*)':
csabbg_allocatorforward.cpp:(.text+0xb2fa): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::report::write_in_class_allocator_method_definition(clang::CXXRecordDecl const*, (anonymous namespace)::AllocatorLocation, clang::CXXBaseSpecifier const*, clang::FieldDecl const*)':
csabbg_allocatorforward.cpp:(.text+0xc1a3): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::report::write_d_allocator_p_declaration(clang::CXXRecordDecl const*)':
csabbg_allocatorforward.cpp:(.text+0xcffe): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o:csabbg_allocatorforward.cpp:(.text+0xd585): more undefined references to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const' follow
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::report::write_ctor_with_allocator_definition(clang::CXXRecordDecl const*, clang::CXXConstructorDecl const*, bool, bool)':
csabbg_allocatorforward.cpp:(.text+0xd983): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: csabbg_allocatorforward.cpp:(.text+0xdf91): undefined reference to `clang::QualType::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::report::write_ctor_with_allocator_declaration(clang::CXXRecordDecl const*, clang::CXXConstructorDecl const*)':
csabbg_allocatorforward.cpp:(.text+0xeca5): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: csabbg_allocatorforward.cpp:(.text+0xf041): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::report::check_not_forwarded(clang::CXXCtorInitializer const*, clang::ParmVarDecl const*)':
csabbg_allocatorforward.cpp:(.text+0x11605): undefined reference to `clang::QualType::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_allocatorforward.cpp.o: in function `(anonymous namespace)::report::check_wrong_parm(clang::CXXConstructExpr const*)':
csabbg_allocatorforward.cpp:(.text+0x11d32): undefined reference to `clang::QualType::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_bslovrdstl.cpp.o: in function `(anonymous namespace)::report::is_guard_for(llvm::StringRef, llvm::StringRef)':
csabbg_bslovrdstl.cpp:(.text+0x380a): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: csabbg_bslovrdstl.cpp:(.text+0x398e): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_bslovrdstl.cpp.o: in function `(anonymous namespace)::report::operator()(clang::SourceRange, clang::SourceLocation)':
csabbg_bslovrdstl.cpp:(.text+0x41b1): undefined reference to `llvm::StringRef::lower[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_bslovrdstl.cpp.o: in function `(anonymous namespace)::report::add_include(clang::FileID, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, clang::SourceLocation)':
csabbg_bslovrdstl.cpp:(.text+0x56cf): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_bslovrdstl.cpp.o: in function `(anonymous namespace)::report::VisitDeclRefExpr(clang::DeclRefExpr*)':
csabbg_bslovrdstl.cpp:(.text+0x6f9c): undefined reference to `clang::DeclarationName::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_bslovrdstl.cpp.o: in function `(anonymous namespace)::report::VisitTypeLoc(clang::TypeLoc)':
csabbg_bslovrdstl.cpp:(.text+0x7532): undefined reference to `clang::QualType::getAsString[abi:cxx11](clang::PrintingPolicy const&) const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_bslovrdstl.cpp.o: in function `(anonymous namespace)::report::VisitUnresolvedLookupExpr(clang::UnresolvedLookupExpr*)':
csabbg_bslovrdstl.cpp:(.text+0x77bc): undefined reference to `clang::DeclarationName::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_bslovrdstl.cpp.o: in function `(anonymous namespace)::report::operator()()':
csabbg_bslovrdstl.cpp:(.text+0x7a73): undefined reference to `llvm::Twine::str[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_functioncontract.cpp.o: in function `(anonymous namespace)::correctly_spelled(llvm::StringRef, csabase::Analyser&)':
csabbg_functioncontract.cpp:(.text+0x650): undefined reference to `new_aspell_config'
/usr/bin/ld: csabbg_functioncontract.cpp:(.text+0x66e): undefined reference to `aspell_config_replace'
/usr/bin/ld: csabbg_functioncontract.cpp:(.text+0x688): undefined reference to `aspell_config_replace'
/usr/bin/ld: csabbg_functioncontract.cpp:(.text+0x6a2): undefined reference to `aspell_config_replace'
/usr/bin/ld: csabbg_functioncontract.cpp:(.text+0x6bc): undefined reference to `aspell_config_replace'
/usr/bin/ld: csabbg_functioncontract.cpp:(.text+0x6d6): undefined reference to `aspell_config_replace'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_functioncontract.cpp.o:csabbg_functioncontract.cpp:(.text+0x6f0): more undefined references to `aspell_config_replace' follow
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_functioncontract.cpp.o: in function `(anonymous namespace)::correctly_spelled(llvm::StringRef, csabase::Analyser&)':
csabbg_functioncontract.cpp:(.text+0x6fc): undefined reference to `new_aspell_speller'
/usr/bin/ld: csabbg_functioncontract.cpp:(.text+0x70c): undefined reference to `aspell_error_number'
/usr/bin/ld: csabbg_functioncontract.cpp:(.text+0x721): undefined reference to `to_aspell_speller'
/usr/bin/ld: csabbg_functioncontract.cpp:(.text+0x7e2): undefined reference to `aspell_speller_add_to_session'
/usr/bin/ld: csabbg_functioncontract.cpp:(.text+0x839): undefined reference to `aspell_speller_check'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csabbg/csabbg_functioncontract.cpp.o: in function `(anonymous namespace)::report::critiqueContract(clang::FunctionDecl const*, clang::SourceRange)':
csabbg_functioncontract.cpp:(.text+0x3a57): undefined reference to `llvm::StringRef::lower[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csafmt/csafmt_comments.cpp.o: in function `(anonymous namespace)::report::check_description(clang::SourceRange, llvm::StringRef)':
csafmt_comments.cpp:(.text+0x3785): undefined reference to `llvm::Twine::str[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csamisc/csamisc_arrayargument.cpp.o: in function `(anonymous namespace)::report::operator()(clang::FunctionDecl const*)':
csamisc_arrayargument.cpp:(.text+0xf4): undefined reference to `clang::QualType::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csamisc/csamisc_funcalpha.cpp.o: in function `(anonymous namespace)::report::check_order(std::pair<clang::FunctionDecl const*, clang::Decl const*>)':
csamisc_funcalpha.cpp:(.text+0x7c1): undefined reference to `clang::DeclarationName::getAsString[abi:cxx11]() const'
/usr/bin/ld: csamisc_funcalpha.cpp:(.text+0x7f6): undefined reference to `clang::DeclarationName::getAsString[abi:cxx11]() const'
/usr/bin/ld: csamisc_funcalpha.cpp:(.text+0x888): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: csamisc_funcalpha.cpp:(.text+0x8a1): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: csamisc_funcalpha.cpp:(.text+0xbad): undefined reference to `clang::DeclarationName::getAsString[abi:cxx11]() const'
/usr/bin/ld: csamisc_funcalpha.cpp:(.text+0xd1c): undefined reference to `clang::DeclarationName::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csamisc/csamisc_memberdefinitioninclassdefinition.cpp.o: in function `member_definition_in_class_definition(csabase::Analyser&, clang::CXXMethodDecl const*)':
csamisc_memberdefinitioninclassdefinition.cpp:(.text+0x233): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csamisc/csamisc_movablerefref.cpp.o: in function `(anonymous namespace)::report::match_ref_to_movableref(clang::ast_matchers::BoundNodes const&)':
csamisc_movablerefref.cpp:(.text+0x549): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csamisc/csamisc_spellcheck.cpp.o: in function `(anonymous namespace)::report::operator()()':
csamisc_spellcheck.cpp:(.text+0x18f): undefined reference to `new_aspell_config'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x1b3): undefined reference to `aspell_config_replace'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x1d0): undefined reference to `aspell_config_replace'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x1ed): undefined reference to `aspell_config_replace'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x20a): undefined reference to `aspell_config_replace'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x227): undefined reference to `aspell_config_replace'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csamisc/csamisc_spellcheck.cpp.o:csamisc_spellcheck.cpp:(.text+0x244): more undefined references to `aspell_config_replace' follow
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csamisc/csamisc_spellcheck.cpp.o: in function `(anonymous namespace)::report::operator()()':
csamisc_spellcheck.cpp:(.text+0x270): undefined reference to `new_aspell_speller'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x286): undefined reference to `aspell_error_number'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x355): undefined reference to `aspell_error_message'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x3c8): undefined reference to `to_aspell_speller'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x4b2): undefined reference to `aspell_speller_add_to_session'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x912): undefined reference to `delete_aspell_config'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csamisc/csamisc_spellcheck.cpp.o: in function `(anonymous namespace)::report::check_spelling(clang::SourceRange)':
csamisc_spellcheck.cpp:(.text+0x14bd): undefined reference to `aspell_speller_check'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x14d9): undefined reference to `llvm::StringRef::lower[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csamisc/csamisc_spellcheck.cpp.o: in function `(anonymous namespace)::report::match_parameter(clang::ast_matchers::BoundNodes const&)':
csamisc_spellcheck.cpp:(.text+0x1bbe): undefined reference to `llvm::StringRef::lower[abi:cxx11]() const'
/usr/bin/ld: csamisc_spellcheck.cpp:(.text+0x1c30): undefined reference to `aspell_speller_check'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csastil/csastil_externalguards.cpp.o: in function `onEndif(csabase::Analyser*, clang::SourceLocation, clang::SourceLocation)':
csastil_externalguards.cpp:(.text+0x56d): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: csastil_externalguards.cpp:(.text+0x6c0): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csastil/csastil_externalguards.cpp.o: in function `onInclude(csabase::Analyser*, clang::SourceLocation, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
csastil_externalguards.cpp:(.text+0xb9d): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: csastil_externalguards.cpp:(.text+0xd74): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csastil/csastil_leakingmacro.cpp.o: in function `onCloseFile(csabase::Analyser*, clang::SourceLocation, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
csastil_leakingmacro.cpp:(.text+0x274): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csastil/csastil_leakingmacro.cpp.o:csastil_leakingmacro.cpp:(.text+0x3f6): more undefined references to `llvm::StringRef::upper[abi:cxx11]() const' follow
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csatr/csatr_componentprefix.cpp.o: in function `(anonymous namespace)::report::wrong_prefix(clang::NamedDecl const*)':
csatr_componentprefix.cpp:(.text+0x193): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csatr/csatr_componentprefix.cpp.o: in function `(anonymous namespace)::report::operator()(clang::Decl const*)':
csatr_componentprefix.cpp:(.text+0xa09): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csatr/csatr_entityrestrictions.cpp.o: in function `enum_declaration(csabase::Analyser&, clang::EnumDecl const*)':
csatr_entityrestrictions.cpp:(.text+0xcc): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csatr/csatr_entityrestrictions.cpp.o: in function `var_declaration(csabase::Analyser&, clang::VarDecl const*)':
csatr_entityrestrictions.cpp:(.text+0x300): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csatr/csatr_entityrestrictions.cpp.o: in function `function_declaration(csabase::Analyser&, clang::FunctionDecl const*)':
csatr_entityrestrictions.cpp:(.text+0x79f): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csatr/csatr_entityrestrictions.cpp.o:csatr_entityrestrictions.cpp:(.text+0xb1d): more undefined references to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const' follow
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csatr/csatr_globaltypeonlyinsource.cpp.o: in function `global_type_only_in_source(csabase::Analyser&, clang::TypeDecl const*)':
csatr_globaltypeonlyinsource.cpp:(.text+0x2ae): undefined reference to `clang::DeclarationName::getAsString[abi:cxx11]() const'
/usr/bin/ld: csatr_globaltypeonlyinsource.cpp:(.text+0x65a): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: csatr_globaltypeonlyinsource.cpp:(.text+0x81e): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csatr/csatr_includeguard.cpp.o: in function `(anonymous namespace)::report::guard()':
csatr_includeguard.cpp:(.text+0x72): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csatr/csatr_packagename.cpp.o: in function `(anonymous namespace)::on_open::operator()(clang::SourceLocation, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
csatr_packagename.cpp:(.text+0x588): undefined reference to `llvm::Twine::str[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csatr/csatr_usingdirectiveinheader.cpp.o: in function `(anonymous namespace)::report::operator()(clang::UsingDirectiveDecl const*)':
csatr_usingdirectiveinheader.cpp:(.text+0x274): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaxform/csaxform_refactor.cpp.o: in function `(anonymous namespace)::report::TraverseDeclRefExpr(clang::DeclRefExpr*)':
csaxform_refactor.cpp:(.text+0x1825): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaxform/csaxform_refactor.cpp.o: in function `(anonymous namespace)::report::VisitCXXRecordDecl(clang::CXXRecordDecl*)':
csaxform_refactor.cpp:(.text+0x2160): undefined reference to `clang::QualType::getAsString[abi:cxx11](clang::PrintingPolicy const&) const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaxform/csaxform_refactor.cpp.o: in function `(anonymous namespace)::report::replace_class(clang::SourceRange, clang::QualType)':
csaxform_refactor.cpp:(.text+0x2b08): undefined reference to `clang::QualType::getAsString[abi:cxx11](clang::PrintingPolicy const&) const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaxform/csaxform_refactor.cpp.o: in function `clang::Preprocessor::getSpelling[abi:cxx11](clang::Token const&, bool*) const':
csaxform_refactor.cpp:(.text._ZNK5clang12Preprocessor11getSpellingB5cxx11ERKNS_5TokenEPb[_ZNK5clang12Preprocessor11getSpellingB5cxx11ERKNS_5TokenEPb]+0x4e): undefined reference to `clang::Lexer::getSpelling[abi:cxx11](clang::Token const&, clang::SourceManager const&, clang::LangOptions const&, bool*)'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaxform/csaxform_refactor_config.cpp.o: in function `(anonymous namespace)::report::operator()()::{lambda(clang::ast_matchers::BoundNodes const&)#1}::operator()(clang::ast_matchers::BoundNodes const&) const':
csaxform_refactor_config.cpp:(.text+0x119a): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaxform/csaxform_refactor_config.cpp.o: in function `(anonymous namespace)::report::operator()()::{lambda(clang::ast_matchers::BoundNodes const&)#2}::operator()(clang::ast_matchers::BoundNodes const&) const':
csaxform_refactor_config.cpp:(.text+0x1544): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaxform/csaxform_refactor_config.cpp.o: in function `(anonymous namespace)::report::operator()()::{lambda(clang::ast_matchers::BoundNodes const&)#3}::operator()(clang::ast_matchers::BoundNodes const&) const':
csaxform_refactor_config.cpp:(.text+0x18f1): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: csaxform_refactor_config.cpp:(.text+0x1964): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaxform/csaxform_refactor_config.cpp.o: in function `(anonymous namespace)::report::operator()()::{lambda(clang::ast_matchers::BoundNodes const&)#4}::operator()(clang::ast_matchers::BoundNodes const&) const':
csaxform_refactor_config.cpp:(.text+0x1d00): undefined reference to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaxform/csaxform_refactor_config.cpp.o:csaxform_refactor_config.cpp:(.text+0x1ffb): more undefined references to `clang::NamedDecl::getQualifiedNameAsString[abi:cxx11]() const' follow
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaxform/csaxform_refactor_config.cpp.o: in function `(anonymous namespace)::report::operator()()::{lambda(clang::ast_matchers::BoundNodes const&)#5}::operator()(clang::ast_matchers::BoundNodes const&) const':
csaxform_refactor_config.cpp:(.text+0x20f2): undefined reference to `clang::QualType::getAsString[abi:cxx11]() const'
/usr/bin/ld: CMakeFiles/bde_verify_bin.dir/groups/csa/csaxform/csaxform_refactor_config.cpp.o: in function `(anonymous namespace)::report::operator()()':
csaxform_refactor_config.cpp:(.text+0x279e): undefined reference to `llvm::StringRef::upper[abi:cxx11]() const'
/usr/bin/ld: libcsabase.a(csabase_analyser.cpp.o): in function `csabase::Analyser::is_ADL_candidate(clang::Decl const*)':
csabase_analyser.cpp:(.text+0x362b): undefined reference to `llvm::StringRef::lower[abi:cxx11]() const'
/usr/bin/ld: libcsabase.a(csabase_tool.cpp.o): in function `GetExecutablePath[abi:cxx11](char const*, bool)':
csabase_tool.cpp:(.text+0x11e): undefined reference to `llvm::sys::fs::getMainExecutable[abi:cxx11](char const*, void*)'
/usr/bin/ld: libcsabase.a(csabase_tool.cpp.o): in function `cc1_main(llvm::ArrayRef<char const*>, char const*, void*)':
csabase_tool.cpp:(.text+0x3ab): undefined reference to `clang::CompilerInvocation::GetResourcesPath[abi:cxx11](char const*, void*)'
/usr/bin/ld: csabase_tool.cpp:(.text+0x456): undefined reference to `llvm::install_fatal_error_handler(void (*)(void*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool), void*)'
/usr/bin/ld: libcsabase.a(csabase_tool.cpp.o): in function `SetInstallDir(llvm::SmallVectorImpl<char const*>&, clang::driver::Driver&, bool)':
csabase_tool.cpp:(.text+0x710): undefined reference to `llvm::sys::findProgramByName[abi:cxx11](llvm::StringRef, llvm::ArrayRef<llvm::StringRef>)'
/usr/bin/ld: libcsabase.a(csabase_tool.cpp.o): in function `csabase::run(int, char const**)':
csabase_tool.cpp:(.text+0xc6d): undefined reference to `clang::tooling::CompilationDatabase::autoDetectFromDirectory(llvm::StringRef, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
/usr/bin/ld: csabase_tool.cpp:(.text+0x11ad): undefined reference to `clang::tooling::CompilationDatabase::autoDetectFromSource(llvm::StringRef, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
/usr/bin/ld: csabase_tool.cpp:(.text+0x2478): undefined reference to `llvm::sys::getDefaultTargetTriple[abi:cxx11]()'
/usr/bin/ld: libcsabase.a(csabase_util.cpp.o): in function `csabase::to_lower[abi:cxx11](llvm::StringRef)':
csabase_util.cpp:(.text+0x4d0): undefined reference to `llvm::StringRef::lower[abi:cxx11]() const'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::reset()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver5resetEv+0xd): undefined reference to `Z3_solver_reset'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::pop(unsigned int)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver3popEj+0xf): undefined reference to `Z3_solver_pop'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::push()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver4pushEv+0xd): undefined reference to `Z3_solver_push'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::check() const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_18Z3Solver5checkEv+0xe): undefined reference to `Z3_solver_check'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Expr::Z3Expr((anonymous namespace)::Z3Context&, _Z3_ast*)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_16Z3ExprC2ERNS_9Z3ContextEP7_Z3_ast+0x1d): undefined reference to `Z3_inc_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Expr::equal_to(llvm::SMTExpr const&) const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Expr8equal_toERKN4llvm7SMTExprE+0x15): undefined reference to `Z3_is_eq_ast'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Expr::Profile(llvm::FoldingSetNodeID&) const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Expr7ProfileERN4llvm16FoldingSetNodeIDE+0x15): undefined reference to `Z3_get_ast_id'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Sort::Profile(llvm::FoldingSetNodeID&) const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Sort7ProfileERN4llvm16FoldingSetNodeIDE+0x15): undefined reference to `Z3_get_ast_id'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Sort::~Z3Sort()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_16Z3SortD2Ev+0x20): undefined reference to `Z3_dec_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Expr::~Z3Expr()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_16Z3ExprD2Ev+0x20): undefined reference to `Z3_dec_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getBoolean(llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver10getBooleanERKPKN4llvm7SMTExprE+0x11): undefined reference to `Z3_get_bool_value'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::addConstraint(llvm::SMTExpr const* const&) const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_18Z3Solver13addConstraintERKPKN4llvm7SMTExprE+0x14): undefined reference to `Z3_solver_assert'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Sort::getFloatSortSizeImpl() const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Sort20getFloatSortSizeImplEv+0x17): undefined reference to `Z3_fpa_get_ebits'
/usr/bin/ld: Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Sort20getFloatSortSizeImplEv+0x2a): undefined reference to `Z3_fpa_get_sbits'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Sort::getBitvectorSortSizeImpl() const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Sort24getBitvectorSortSizeImplEv+0x11): undefined reference to `Z3_get_bv_sort_size'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Sort::isBooleanSortImpl() const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Sort17isBooleanSortImplEv+0x12): undefined reference to `Z3_get_sort_kind'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Sort::isFloatSortImpl() const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Sort15isFloatSortImplEv+0x12): undefined reference to `Z3_get_sort_kind'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Sort::isBitvectorSortImpl() const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Sort19isBitvectorSortImplEv+0x12): undefined reference to `Z3_get_sort_kind'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Sort::equal_to(llvm::SMTSort const&) const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Sort8equal_toERKN4llvm7SMTSortE+0x15): undefined reference to `Z3_is_eq_sort'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Context::~Z3Context()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_19Z3ContextD2Ev+0x13): undefined reference to `Z3_del_context'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::~Z3Solver()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3SolverD2Ev+0x20): undefined reference to `Z3_solver_dec_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3ErrorHandler(_Z3_context*, Z3_error_code)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_114Z3ErrorHandlerEP11_Z3_context13Z3_error_code+0x1f): undefined reference to `Z3_get_error_msg'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getBitvector(llvm::SMTExpr const* const&, unsigned int, bool)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver12getBitvectorERKPKN4llvm7SMTExprEjb+0x35): undefined reference to `Z3_get_numeral_string'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::print(llvm::raw_ostream&) const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_18Z3Solver5printERN4llvm11raw_ostreamE+0x11): undefined reference to `Z3_solver_to_string'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Expr::print(llvm::raw_ostream&) const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Expr5printERN4llvm11raw_ostreamE+0x15): undefined reference to `Z3_ast_to_string'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Sort::print(llvm::raw_ostream&) const':
Z3Solver.cpp:(.text._ZNK12_GLOBAL__N_16Z3Sort5printERN4llvm11raw_ostreamE+0x15): undefined reference to `Z3_sort_to_string'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::newExprRef(llvm::SMTExpr const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver10newExprRefERKN4llvm7SMTExprE+0xb4): undefined reference to `Z3_inc_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBoolean(bool)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver9mkBooleanEb+0x28): undefined reference to `Z3_mk_true'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver9mkBooleanEb+0x2f): undefined reference to `Z3_mk_false'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getFloatRoundingMode()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver20getFloatRoundingModeEv+0x28): undefined reference to `Z3_mk_fpa_rne'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkSymbol(char const*, llvm::SMTSort const*)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver8mkSymbolEPKcPKN4llvm7SMTSortE+0x2e): undefined reference to `Z3_mk_string_symbol'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver8mkSymbolEPKcPKN4llvm7SMTSortE+0x3d): undefined reference to `Z3_mk_const'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPtoUBV(llvm::SMTExpr const* const&, unsigned int)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver9mkFPtoUBVERKPKN4llvm7SMTExprEj+0x44): undefined reference to `Z3_mk_fpa_to_ubv'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPtoSBV(llvm::SMTExpr const* const&, unsigned int)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver9mkFPtoSBVERKPKN4llvm7SMTExprEj+0x44): undefined reference to `Z3_mk_fpa_to_sbv'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkUBVtoFP(llvm::SMTExpr const* const&, llvm::SMTSort const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver9mkUBVtoFPERKPKN4llvm7SMTExprERKPKNS1_7SMTSortE+0x49): undefined reference to `Z3_mk_fpa_to_fp_unsigned'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkSBVtoFP(llvm::SMTExpr const* const&, llvm::SMTSort const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver9mkSBVtoFPERKPKN4llvm7SMTExprERKPKNS1_7SMTSortE+0x49): undefined reference to `Z3_mk_fpa_to_fp_signed'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPtoFP(llvm::SMTExpr const* const&, llvm::SMTSort const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver8mkFPtoFPERKPKN4llvm7SMTExprERKPKNS1_7SMTSortE+0x49): undefined reference to `Z3_mk_fpa_to_fp_float'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPEqual(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver9mkFPEqualERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_fpa_eq'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPGe(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver6mkFPGeERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_fpa_geq'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPLe(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver6mkFPLeERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_fpa_leq'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPGt(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver6mkFPGtERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_fpa_gt'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPLt(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver6mkFPLtERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_fpa_lt'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPSub(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkFPSubERKPKN4llvm7SMTExprES6_+0x49): undefined reference to `Z3_mk_fpa_sub'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPAdd(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkFPAddERKPKN4llvm7SMTExprES6_+0x49): undefined reference to `Z3_mk_fpa_add'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPRem(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkFPRemERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_fpa_rem'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPDiv(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkFPDivERKPKN4llvm7SMTExprES6_+0x49): undefined reference to `Z3_mk_fpa_div'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPMul(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkFPMulERKPKN4llvm7SMTExprES6_+0x49): undefined reference to `Z3_mk_fpa_mul'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPIsZero(llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver10mkFPIsZeroERKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_fpa_is_zero'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPIsNormal(llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver12mkFPIsNormalERKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_fpa_is_normal'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPIsNaN(llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver9mkFPIsNaNERKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_fpa_is_nan'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPIsInfinite(llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver14mkFPIsInfiniteERKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_fpa_is_infinite'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFPNeg(llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkFPNegERKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_fpa_neg'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVMulNoUnderflow(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver18mkBVMulNoUnderflowERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvmul_no_underflow'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVMulNoOverflow(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&, bool)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17mkBVMulNoOverflowERKPKN4llvm7SMTExprES6_b+0x39): undefined reference to `Z3_mk_bvmul_no_overflow'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVNegNoOverflow(llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17mkBVNegNoOverflowERKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_bvneg_no_overflow'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVSDivNoOverflow(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver18mkBVSDivNoOverflowERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvsdiv_no_overflow'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVSubNoUnderflow(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&, bool)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver18mkBVSubNoUnderflowERKPKN4llvm7SMTExprES6_b+0x39): undefined reference to `Z3_mk_bvsub_no_underflow'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVSubNoOverflow(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17mkBVSubNoOverflowERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvsub_no_overflow'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVAddNoUnderflow(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver18mkBVAddNoUnderflowERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvadd_no_underflow'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVAddNoOverflow(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&, bool)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17mkBVAddNoOverflowERKPKN4llvm7SMTExprES6_b+0x39): undefined reference to `Z3_mk_bvadd_no_overflow'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVConcat(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver10mkBVConcatERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_concat'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVExtract(unsigned int, unsigned int, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver11mkBVExtractEjjRKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_extract'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVZeroExt(unsigned int, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver11mkBVZeroExtEjRKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_zero_ext'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVSignExt(unsigned int, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver11mkBVSignExtEjRKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_sign_ext'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkIte(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver5mkIteERKPKN4llvm7SMTExprES6_S6_+0x3d): undefined reference to `Z3_mk_ite'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkOr(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver4mkOrERKPKN4llvm7SMTExprES6_+0x4a): undefined reference to `Z3_mk_or'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkAnd(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver5mkAndERKPKN4llvm7SMTExprES6_+0x4a): undefined reference to `Z3_mk_and'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkEqual(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkEqualERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_eq'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkNot(llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver5mkNotERKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_not'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVSge(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVSgeERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvsge'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVUge(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVUgeERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvuge'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVSle(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVSleERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvsle'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVUle(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVUleERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvule'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVSgt(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVSgtERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvsgt'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVUgt(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVUgtERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvugt'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVSlt(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVSltERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvslt'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVUlt(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVUltERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvult'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVAnd(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVAndERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvand'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVOr(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver6mkBVOrERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvor'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVXor(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVXorERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvxor'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVNot(llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVNotERKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_bvnot'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVNeg(llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVNegERKPKN4llvm7SMTExprE+0x2f): undefined reference to `Z3_mk_bvneg'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVLshr(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver8mkBVLshrERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvlshr'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVAshr(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver8mkBVAshrERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvashr'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVShl(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVShlERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvshl'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVUDiv(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver8mkBVUDivERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvudiv'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVSDiv(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver8mkBVSDivERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvsdiv'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVURem(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver8mkBVURemERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvurem'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVSRem(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver8mkBVSRemERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvsrem'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVMul(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVMulERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvmul'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVSub(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVSubERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvsub'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBVAdd(llvm::SMTExpr const* const&, llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkBVAddERKPKN4llvm7SMTExprES6_+0x36): undefined reference to `Z3_mk_bvadd'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `std::set<(anonymous namespace)::Z3Sort, std::less<(anonymous namespace)::Z3Sort>, std::allocator<(anonymous namespace)::Z3Sort> >::insert((anonymous namespace)::Z3Sort const&)':
Z3Solver.cpp:(.text._ZNSt3setIN12_GLOBAL__N_16Z3SortESt4lessIS1_ESaIS1_EE6insertERKS1_+0xbb): undefined reference to `Z3_inc_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getSort(llvm::SMTExpr const* const&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7getSortERKPKN4llvm7SMTExprE+0x2e): undefined reference to `Z3_get_sort'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7getSortERKPKN4llvm7SMTExprE+0x53): undefined reference to `Z3_inc_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getInterpretation(llvm::SMTExpr const* const&, llvm::APSInt&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_6APSIntE+0x32): undefined reference to `Z3_solver_get_model'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_6APSIntE+0x41): undefined reference to `Z3_model_inc_ref'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_6APSIntE+0x52): undefined reference to `Z3_to_app'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_6APSIntE+0x5e): undefined reference to `Z3_get_app_decl'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_6APSIntE+0x70): undefined reference to `Z3_model_has_interp'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_6APSIntE+0x8d): undefined reference to `Z3_model_get_const_interp'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_6APSIntE+0xea): undefined reference to `Z3_model_dec_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getBoolSort()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver11getBoolSortEv+0x27): undefined reference to `Z3_mk_bool_sort'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver11getBoolSortEv+0x4c): undefined reference to `Z3_inc_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getFloat64Sort()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver14getFloat64SortEv+0x27): undefined reference to `Z3_mk_fpa_sort_64'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver14getFloat64SortEv+0x4c): undefined reference to `Z3_inc_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getFloat16Sort()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver14getFloat16SortEv+0x27): undefined reference to `Z3_mk_fpa_sort_16'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver14getFloat16SortEv+0x4c): undefined reference to `Z3_inc_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getFloat32Sort()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver14getFloat32SortEv+0x27): undefined reference to `Z3_mk_fpa_sort_32'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver14getFloat32SortEv+0x4c): undefined reference to `Z3_inc_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getFloat128Sort()':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver15getFloat128SortEv+0x27): undefined reference to `Z3_mk_fpa_sort_128'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver15getFloat128SortEv+0x4c): undefined reference to `Z3_inc_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getBitvectorSort(unsigned int)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver16getBitvectorSortEj+0x27): undefined reference to `Z3_mk_bv_sort'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver16getBitvectorSortEj+0x4c): undefined reference to `Z3_inc_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkBitvector(llvm::APSInt, unsigned int)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver11mkBitvectorEN4llvm6APSIntEj+0x62): undefined reference to `Z3_mk_numeral'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::mkFloat(llvm::APFloat)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver7mkFloatEN4llvm7APFloatE+0xf1): undefined reference to `Z3_mk_fpa_to_fp_bv'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `(anonymous namespace)::Z3Solver::getInterpretation(llvm::SMTExpr const* const&, llvm::APFloat&)':
Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_7APFloatE+0x36): undefined reference to `Z3_solver_get_model'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_7APFloatE+0x45): undefined reference to `Z3_model_inc_ref'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_7APFloatE+0x56): undefined reference to `Z3_to_app'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_7APFloatE+0x62): undefined reference to `Z3_get_app_decl'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_7APFloatE+0x74): undefined reference to `Z3_model_has_interp'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_7APFloatE+0x9d): undefined reference to `Z3_model_get_const_interp'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN12_GLOBAL__N_18Z3Solver17getInterpretationERKPKN4llvm7SMTExprERNS1_7APFloatE+0x2a8): undefined reference to `Z3_model_dec_ref'
/usr/bin/ld: /home/aixin/tools/llvm_install/lib64/libLLVMSupport.a(Z3Solver.cpp.o): in function `llvm::CreateZ3Solver()':
Z3Solver.cpp:(.text._ZN4llvm14CreateZ3SolverEv+0x2e): undefined reference to `Z3_mk_config'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN4llvm14CreateZ3SolverEv+0x47): undefined reference to `Z3_set_param_value'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN4llvm14CreateZ3SolverEv+0x5d): undefined reference to `Z3_set_param_value'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN4llvm14CreateZ3SolverEv+0x73): undefined reference to `Z3_set_param_value'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN4llvm14CreateZ3SolverEv+0x7b): undefined reference to `Z3_mk_context_rc'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN4llvm14CreateZ3SolverEv+0x87): undefined reference to `Z3_del_config'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN4llvm14CreateZ3SolverEv+0x97): undefined reference to `Z3_set_error_handler'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN4llvm14CreateZ3SolverEv+0xa0): undefined reference to `Z3_mk_simple_solver'
/usr/bin/ld: Z3Solver.cpp:(.text._ZN4llvm14CreateZ3SolverEv+0xf6): undefined reference to `Z3_solver_inc_ref'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/bde_verify_bin.dir/build.make:1377:bde_verify_bin] 错误 1
make[1]: *** [CMakeFiles/Makefile2:99:CMakeFiles/bde_verify_bin.dir/all] 错误 2
make: *** [Makefile:152:all] 错误 2

Environment:

  • Operating System and Version: Ubuntu 20.04
  • GCC Version: 9.3.0

Building bde_verify on vanilla Centos 6.6

I used the following process to build and run bde_verify (commit 9536848) on a vanilla Centos 6.6 machine (equivalent to RHEL 6).

  • Problem: No pre-installed clang 3.6 (duh).

So, I download and build clang:

$ git clone http://llvm.org/git/llvm.git
$ cd llvm
$ git checkout release_36
$ cd tools
$ git clone http://llvm.org/git/clang.git 
$ cd clang
$ git checkout release_36
  • Problem: GCC toolchain (4.4.7) insufficient to build clang -> install devtoolset 1.1, which provides gcc 4.7.2

I followed the instructions in http://superuser.com/questions/381160/how-to-install-gcc-4-7-x-4-8-x-on-centos, and put the toolchain in /opt/centos. Now we can pick up gcc-4.7.2 with:

$ export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/g++
$ export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc

Follow the configuration instructions in README.md to configure and build clang.

  • Problem: GCC toolchain (4.7.2) insufficient to build bde_verify -> use newly-built clang instead.
  • Problem: The bde_verify Makefile variable GCCDIR (which identifies the location of the standard library that will be used to build bde_verify) assumes that the library is installed side-by-side with $CXX. Not true for clang++, so change := to ?= on the lines that set GCCDIR, and provide an external value for the variable. (Future: rename the variable to STDLIBDIR?)
export GCCDIR=/opt/centos/devtoolset-1.1/root/usr
  • Problem: Documentation of bde_verify Makefiles is inaccurate. The variables you are told to set in the two Makefiles do not exist. Instead, set and export the following variables before running the make:
$ export CXX=/opt/llvm36/bin/clang++
$ export CC=/opt/llvm36/bin/clang
$ export LLVMDIR=/opt/llvm36
$ export PREFIX=/opt/bde_verify

...with the appropriate changes to the paths to fit your system.

  • Problem: The bde_verify script '#!' line is wrong for a standard system. Change to:
#!/usr/bin/env perl
  • Problem: The bde_verify script is a perl script that uses DateTime. Install perl-DateTime, if it is not already present on your system.
# yum install perl-DateTime

Building bde_verify fails against clang 3.8, succeeds against 4.0

EDIT: Just realised I had been using branch debian all along instead of master; it seems the former is the default branch. master builds against clang 3.8. Keeping this in case some of it is of interest to you, otherwise sorry for the noise.

I have tried to build bde_verify against clang 3.8 as required by the README, but got the following output:

Makefile:369: Linux-g++/make.depend: No such file or directory
analysing dependencies
make[1]: Entering directory '/home/weyfonk/bde_verify/groups/csa/csabase'
compiling csabase_analyser.cpp
csabase_analyser.cpp: In member function ‘int csabase::Analyser::ReplaceText(llvm::StringRef, unsigned int, unsigned int, llvm::StringRef)’:
csabase_analyser.cpp:750:14: error: ‘clang::tooling::Replacements {aka class std::set<clang::tooling::Replacement>}’ has no member named ‘add’
     if (!one.add(r)) {
              ^~~
csabase_analyser.cpp:751:39: error: ‘clang::tooling::Replacements {aka class std::set<clang::tooling::Replacement>}’ has no member named ‘merge’
         replacements_ = replacements_.merge(one);
                                       ^~~~~
Makefile:82: recipe for target 'Linux-g++/csabase_analyser.o' failed
make[1]: *** [Linux-g++/csabase_analyser.o] Error 1
make[1]: Leaving directory '/home/weyfonk/bde_verify/groups/csa/csabase'
Makefile:271: recipe for target 'groups/csa/csabase/Linux-g++/libbde-verify.a' failed
make: *** [groups/csa/csabase/Linux-g++/libbde-verify.a] Error 2

Trying it again with clang 3.9 (both 3.8 and 3.9 are packaged for Debian Stretch, which I am using) gave the same result, however a build against a manually built clang 4.0 was successful.

pointer to Bloomberg internal documentation

When using bde_verify --help build from the open source version I get pointed at documentation which isn't accessible:

For full documentation, see {TEAM BDE:BDE_VERIFY<GO>} or
<http://cms.prod.bloomberg.com/team/display/bde/bde_verify>.

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.