Your libncurses is for host so your cross-compiler can't use it. See http://ghcarm.wordpress.com/2014/01/18/unregisterised-ghc-head-build-for-arm... -- especially bits about sysroot. Karel On 04/ 3/14 09:04 PM, eng. Vassil Ognyanov Keremidchiev wrote:
Okay, I got that LLVM is used here to build part of the GHC compiler for x86 and not for ARM directly. I have installed llvm-3.3 and build processed much longer until this error:
configure: error: in `/home/varosi/haskell/ghc/libraries/terminfo': configure: error: curses library not found, so this package cannot be built See `config.log' for more details make[1]: *** [libraries/terminfo/dist-install/package-data.mk <http://package-data.mk>] Error 1 make: *** [all] Error 2
I didn't found curses library at apt-get or cabal.
2014-04-03 21:13 GMT+03:00 eng. Vassil Ognyanov Keremidchiev <varosi@gmail.com <mailto:varosi@gmail.com>>:
I would like to build GHC as a cross-compiler. So it can still run on x86 Ubuntu, but producing code for ARM v7. What should I do?
2014-04-03 21:05 GMT+03:00 Karel Gardas <karel.gardas@centrum.cz <mailto:karel.gardas@centrum.cz>>:
I don't understand why you are trying to cross-compile LLVM? I've though you'd like to cross-compile GHC itself...
Karel
On 04/ 3/14 08:00 PM, eng. Vassil Ognyanov Keremidchiev wrote:
May be the problem is: arm-linux-gnueabi-gcc --version gives me 4.6.3 ?
Is it possible to install earlier LLVM version?
2014-04-03 20:47 GMT+03:00 eng. Vassil Ognyanov Keremidchiev <varosi@gmail.com <mailto:varosi@gmail.com> <mailto:varosi@gmail.com <mailto:varosi@gmail.com>>>:
I'm trying to compile LLVM as is described in: http://bgamari.github.io/__posts/cross-compiling_llvm.__html <http://bgamari.github.io/posts/cross-compiling_llvm.html> without success. This is the error:
llvm[1]: Compiling StringMatcher.cpp for Debug+Asserts build llvm[1]: Compiling TGLexer.cpp for Debug+Asserts build llvm[1]: Compiling TGParser.cpp for Debug+Asserts build llvm[1]: Compiling TableGenBackend.cpp for Debug+Asserts build llvm[1]: Building Debug+Asserts Archive Library libLLVMTableGen.a make[1]: Leaving directory `/home/varosi/haskell/llvm/__build/lib/TableGen' make[1]: Entering directory `/home/varosi/haskell/llvm/__build/utils' make[2]: Entering directory `/home/varosi/haskell/llvm/__build/utils/FileCheck' llvm[2]: Compiling FileCheck.cpp for Debug+Asserts build llvm[2]: Linking Debug+Asserts executable FileCheck
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::Option::Option(__llvm::cl::NumOccurrencesFlag, llvm::cl::OptionHidden)':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:242: undefined reference to `vtable for llvm::cl::Option'
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:242: undefined reference to `llvm::cl::GeneralCategory'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::Option::~Option()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:281: undefined reference to `vtable for llvm::cl::Option'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::GenericOptionValue:__:~GenericOptionValue()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:356: undefined reference to `vtable for llvm::cl::GenericOptionValue'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::OptionValue<std::__string>::OptionValue()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:461: undefined reference to `vtable for llvm::cl::OptionValue<std::__string>'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::basic_parser_impl::__~basic_parser_impl()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:702: undefined reference to `vtable for llvm::cl::basic_parser_impl'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function
`llvm::__PrettyStackTraceProgram::__PrettyStackTraceProgram(int, char const* const*)':
/home/varosi/haskell/llvm/__include/llvm/Support/__PrettyStackTrace.h:63: undefined reference to `llvm::PrettyStackTraceEntry::__PrettyStackTraceEntry()'
/home/varosi/haskell/llvm/__include/llvm/Support/__PrettyStackTrace.h:63: undefined reference to `vtable for llvm::PrettyStackTraceProgram'
/home/varosi/haskell/llvm/__include/llvm/Support/__PrettyStackTrace.h:64: undefined reference to `llvm::EnablePrettyStackTrace(__)'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::raw_ostream::operator<<__(char)':
/home/varosi/haskell/llvm/__include/llvm/Support/raw___ostream.h:136: undefined reference to `llvm::raw_ostream::write(__unsigned char)'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::raw_ostream::operator<<__(llvm::StringRef)':
/home/varosi/haskell/llvm/__include/llvm/Support/raw___ostream.h:161: undefined reference to `llvm::raw_ostream::write(char const*, unsigned long)'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::raw_ostream::operator<<__(std::string const&)':
/home/varosi/haskell/llvm/__include/llvm/Support/raw___ostream.h:177: undefined reference to `llvm::raw_ostream::write(char const*, unsigned long)'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `Pattern::ParsePattern(llvm::__StringRef, llvm::StringRef, llvm::SourceMgr&, unsigned int)':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__176: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__182: undefined reference to `llvm::StringRef::find(llvm::__StringRef, unsigned long) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__183: undefined reference to `llvm::StringRef::find(llvm::__StringRef, unsigned long) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__198: undefined reference to `llvm::StringRef::find(llvm::__StringRef, unsigned long) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__202: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__234: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__247: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__260: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__269: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o:/home/__varosi/haskell/llvm/utils/__FileCheck/FileCheck.cpp:277: more undefined references to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const' follow
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `Pattern::ParsePattern(llvm::__StringRef, llvm::StringRef, llvm::SourceMgr&, unsigned int)':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__313: undefined reference to `llvm::StringRef::find(llvm::__StringRef, unsigned long) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__314: undefined reference to `llvm::StringRef::find(llvm::__StringRef, unsigned long) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__315: undefined reference to `llvm::Regex::escape(llvm::__StringRef)'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `Pattern::AddRegExToRegEx(__llvm::StringRef, unsigned int&, llvm::SourceMgr&)':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__324: undefined reference to `llvm::Regex::Regex(llvm::__StringRef, unsigned int)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__326: undefined reference to `llvm::Regex::isValid(std::__string&)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__328: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__333: undefined reference to `llvm::Regex::getNumMatches() const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__334: undefined reference to `llvm::Regex::~Regex()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `Pattern::Match(llvm::__StringRef, unsigned long&, llvm::StringMap<llvm::__StringRef, llvm::MallocAllocator>&) const':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__376: undefined reference to `llvm::StringRef::find(llvm::__StringRef, unsigned long) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__403: undefined reference to `llvm::Regex::escape(llvm::__StringRef)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__418: undefined reference to `llvm::Regex::Regex(llvm::__StringRef, unsigned int)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__418: undefined reference to `llvm::Regex::match(llvm::__StringRef, llvm::SmallVectorImpl<llvm::__StringRef>*)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__418: undefined reference to `llvm::Regex::~Regex()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `Pattern::__ComputeMatchDistance(llvm::__StringRef, llvm::StringMap<llvm::__StringRef, llvm::MallocAllocator> const&) const':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__452: undefined reference to `llvm::StringRef::edit___distance(llvm::StringRef, bool, unsigned int) const'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `Pattern::PrintFailureInfo(__llvm::SourceMgr const&, llvm::StringRef, llvm::StringMap<llvm::__StringRef, llvm::MallocAllocator> const&) const':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__462: undefined reference to
`llvm::raw_svector_ostream::__raw_svector_ostream(llvm::__SmallVectorImpl<char>&)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__468: undefined reference to `llvm::raw_ostream::write___escaped(llvm::StringRef, bool)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__469: undefined reference to `llvm::raw_ostream::write___escaped(llvm::StringRef, bool)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__472: undefined reference to `llvm::raw_ostream::write___escaped(llvm::StringRef, bool)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__480: undefined reference to `llvm::raw_ostream::write___escaped(llvm::StringRef, bool)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__483: undefined reference to `llvm::raw_ostream::write___escaped(llvm::StringRef, bool)'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o:/home/__varosi/haskell/llvm/utils/__FileCheck/FileCheck.cpp:484: more undefined references to `llvm::raw_ostream::write___escaped(llvm::StringRef, bool)' follow
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `Pattern::PrintFailureInfo(__llvm::SourceMgr const&, llvm::StringRef, llvm::StringMap<llvm::__StringRef, llvm::MallocAllocator> const&) const':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__489: undefined reference to `llvm::raw_svector_ostream::__str()'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__489: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__490: undefined reference to `llvm::raw_svector_ostream::~__raw_svector_ostream()'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__527: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `Pattern::FindRegexVarEnd(__llvm::StringRef, llvm::SourceMgr&)':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__558: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `CanonicalizeInputFile':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__655: undefined reference to
`llvm::MemoryBuffer::__getMemBufferCopy(llvm::__StringRef, llvm::StringRef)'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `CheckTypeSize':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__687: undefined reference to `llvm::llvm_unreachable___internal(char const*, char const*, unsigned int)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__690: undefined reference to `llvm::llvm_unreachable___internal(char const*, char const*, unsigned int)'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `FindFirstCandidateMatch':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__748: undefined reference to `llvm::StringRef::find(llvm::__StringRef, unsigned long) const'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `ReadCheckFile':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__825: undefined reference to `llvm::MemoryBuffer::__getFileOrSTDIN(llvm::__StringRef, std::unique_ptr<llvm::__MemoryBuffer, std::default_delete<llvm::__MemoryBuffer> >&, long)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__827: undefined reference to `llvm::error_code::message() const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__826: undefined reference to `llvm::errs()'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__868: undefined reference to `llvm::StringRef::find_first___not_of(llvm::StringRef, unsigned long) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__871: undefined reference to `llvm::StringRef::find_first___of(llvm::StringRef, unsigned long) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__886: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__897: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__926: undefined reference to `llvm::errs()'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__930: undefined reference to `llvm::errs()'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__932: undefined reference to `llvm::errs()'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__935: undefined reference to `llvm::errs()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `PrintCheckFailed':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__947: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__951: undefined reference to `llvm::StringRef::find_first___not_of(llvm::StringRef, unsigned long) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__954: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `CountNumNewlinesBetween':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__972: undefined reference to `llvm::StringRef::find_first___of(llvm::StringRef, unsigned long) const'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `CheckString::CheckNext(llvm::__SourceMgr const&, llvm::StringRef) const':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1036: undefined reference to
`llvm::SourceMgr::__FindBufferContainingLoc(llvm::__SMLoc) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1046: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1048: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1050: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1056: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1058: undefined reference to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o:/home/__varosi/haskell/llvm/utils/__FileCheck/FileCheck.cpp:1060: more undefined references to `llvm::SourceMgr::__PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const' follow
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `ValidateCheckPrefix':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1170: undefined reference to `llvm::Regex::Regex(llvm::__StringRef, unsigned int)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1171: undefined reference to `llvm::Regex::match(llvm::__StringRef, llvm::SmallVectorImpl<llvm::__StringRef>*)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1171: undefined reference to `llvm::Regex::~Regex()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `main':
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1199: undefined reference to `llvm::sys::__PrintStackTraceOnErrorSignal()__'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1201: undefined reference to `llvm::cl::__ParseCommandLineOptions(int, char const* const*, char const*)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1204: undefined reference to `llvm::errs()'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1222: undefined reference to `llvm::MemoryBuffer::__getFileOrSTDIN(llvm::__StringRef, std::unique_ptr<llvm::__MemoryBuffer, std::default_delete<llvm::__MemoryBuffer> >&, long)'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1224: undefined reference to `llvm::error_code::message() const'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1223: undefined reference to `llvm::errs()'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1229: undefined reference to `llvm::errs()'
/home/varosi/haskell/llvm/__utils/FileCheck/FileCheck.cpp:__1298: undefined reference to `llvm::SourceMgr::~SourceMgr()__'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::GenericOptionValue:__:GenericOptionValue()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:355: undefined reference to `vtable for llvm::cl::GenericOptionValue'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::OptionValue<std::__string>::~OptionValue()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:458: undefined reference to `vtable for llvm::cl::OptionValue<std::__string>'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::basic_parser_impl::__basic_parser_impl()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:700: undefined reference to `vtable for llvm::cl::basic_parser_impl'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::basic_parser<std::__string>::~basic_parser()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:739: undefined reference to `vtable for llvm::cl::basic_parser<std::__string>'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::parser<std::string>__::~parser()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:912: undefined reference to `vtable for llvm::cl::parser<std::string>'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >::opt<llvm::cl::__FormattingFlags, llvm::cl::desc,
llvm::cl::NumOccurrencesFlag>(__llvm::cl::FormattingFlags const&, llvm::cl::desc const&, llvm::cl::NumOccurrencesFlag const&)':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1225: undefined reference to `vtable for llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >'
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1225: undefined reference to `vtable for llvm::cl::parser<std::string>'
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1227: undefined reference to `llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >::done()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >::opt<char [11], llvm::cl::desc, llvm::cl::initializer<char [2]>, llvm::cl::value_desc>(char const (&) [11], llvm::cl::desc const&, llvm::cl::initializer<char [2]> const&, llvm::cl::value_desc const&)':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1232: undefined reference to `vtable for llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >'
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1232: undefined reference to `vtable for llvm::cl::parser<std::string>'
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1234: undefined reference to `llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >::done()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::list<std::string, bool, llvm::cl::parser<std::string> >::list<char [13], llvm::cl::desc>(char const (&) [13], llvm::cl::desc const&)':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1385: undefined reference to `vtable for llvm::cl::parser<std::string>'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::basic_parser<bool>:__:basic_parser()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:739: undefined reference to `vtable for llvm::cl::basic_parser<bool>'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::basic_parser<bool>:__:~basic_parser()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:739: undefined reference to `vtable for llvm::cl::basic_parser<bool>'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::parser<bool>::__parser()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:749: undefined reference to `vtable for llvm::cl::parser<bool>'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::parser<bool>::~__parser()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:749: undefined reference to `vtable for llvm::cl::parser<bool>'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::opt<bool, false, llvm::cl::parser<bool> >::opt<char [18], llvm::cl::desc>(char const (&) [18], llvm::cl::desc const&)':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1217: undefined reference to `vtable for llvm::cl::opt<bool, false, llvm::cl::parser<bool> >'
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1219: undefined reference to `llvm::cl::opt<bool, false, llvm::cl::parser<bool> >::done()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `std::enable_if<std::numeric___limits<int>::is_signed, bool>::type llvm::StringRef::getAsInteger<__int>(unsigned int, int&) const':
/home/varosi/haskell/llvm/__include/llvm/ADT/StringRef.h:__346: undefined reference to `llvm::getAsSignedInteger(__llvm::StringRef, unsigned int, long long&)'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::StringMap<llvm::__StringRef, llvm::MallocAllocator>::find(__llvm::StringRef)':
/home/varosi/haskell/llvm/__include/llvm/ADT/StringMap.h:__274: undefined reference to `llvm::StringMapImpl::FindKey(__llvm::StringRef) const'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::StringMap<llvm::__StringRef, llvm::MallocAllocator>::find(__llvm::StringRef) const':
/home/varosi/haskell/llvm/__include/llvm/ADT/StringMap.h:__280: undefined reference to `llvm::StringMapImpl::FindKey(__llvm::StringRef) const'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::list<std::string, bool, llvm::cl::parser<std::string> >::done()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1362: undefined reference to `llvm::cl::Option::__addArgument()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::StringMapEntry<llvm::__StringRef>& llvm::StringMap<llvm::__StringRef,
llvm::MallocAllocator>::__GetOrCreateValue<llvm::__StringRef>(llvm::StringRef, llvm::StringRef)':
/home/varosi/haskell/llvm/__include/llvm/ADT/StringMap.h:__345: undefined reference to `llvm::StringMapImpl::__LookupBucketFor(llvm::__StringRef)'
/home/varosi/haskell/llvm/__include/llvm/ADT/StringMap.h:__362: undefined reference to `llvm::StringMapImpl::__RehashTable()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::__SmallVectorTemplateCommon<__char, void>::grow_pod(unsigned long, unsigned long)':
/home/varosi/haskell/llvm/__include/llvm/ADT/SmallVector.__h:82: undefined reference to `llvm::SmallVectorBase::grow___pod(void*, unsigned long, unsigned long)'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::StringMapEntry<char>& llvm::StringMap<char,
llvm::MallocAllocator>::__GetOrCreateValue<char>(llvm::__StringRef, char)':
/home/varosi/haskell/llvm/__include/llvm/ADT/StringMap.h:__345: undefined reference to `llvm::StringMapImpl::__LookupBucketFor(llvm::__StringRef)'
/home/varosi/haskell/llvm/__include/llvm/ADT/StringMap.h:__362: undefined reference to `llvm::StringMapImpl::__RehashTable()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `void llvm::cl::initializer<char [2]>::apply<llvm::cl::opt<std:__:string, false, llvm::cl::parser<std::string> > >(llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >&) const':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:315: undefined reference to `llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >::setInitialValue(std::string const&)'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o:(.data.__rel.ro.___ZTVN4llvm2cl4listISsbNS0___6parserISsEEEE[___ZTVN4llvm2cl4listISsbNS0___6parserISsEEEE]+0x20): undefined reference to `llvm::cl::Option::anchor()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o:(.data.__rel.ro.___ZTVN4llvm2cl11OptionValueIbEE[_____ZTVN4llvm2cl11OptionValueIbEE]__+0x28): undefined reference to `llvm::cl::GenericOptionValue:__:anchor()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o:(.data.__rel.ro.___ZTVN4llvm2cl15OptionValueBaseI__bLb0EEE[___ZTVN4llvm2cl15OptionValueBaseI__bLb0EEE]+0x28): undefined reference to `llvm::cl::GenericOptionValue:__:anchor()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o:(.data.__rel.ro.___ZTVN4llvm2cl15OptionValueCopyI__bEE[___ZTVN4llvm2cl15OptionValueCopyI__bEE]+0x28): undefined reference to `llvm::cl::GenericOptionValue:__:anchor()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o:(.data.__rel.ro.___ZTVN4llvm2cl15OptionValueCopyI__SsEE[___ZTVN4llvm2cl15OptionValueCopyI__SsEE]+0x28): undefined reference to `llvm::cl::GenericOptionValue:__:anchor()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >::~opt()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1156: undefined reference to `vtable for llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::opt<bool, false, llvm::cl::parser<bool> >::~opt()':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1156: undefined reference to `vtable for llvm::cl::opt<bool, false, llvm::cl::parser<bool> >'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::__PrettyStackTraceProgram::~__PrettyStackTraceProgram()':
/home/varosi/haskell/llvm/__include/llvm/Support/__PrettyStackTrace.h:58: undefined reference to `vtable for llvm::PrettyStackTraceProgram'
/home/varosi/haskell/llvm/__include/llvm/Support/__PrettyStackTrace.h:58: undefined reference to `llvm::PrettyStackTraceEntry::__~PrettyStackTraceEntry()'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::list<std::string, bool, llvm::cl::parser<std::string> >::getOptionWidth() const':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1352: undefined reference to
`llvm::cl::basic_parser_impl::__getOptionWidth(llvm::cl::__Option const&) const'
/home/varosi/haskell/llvm/__build/utils/FileCheck/Debug+__Asserts/FileCheck.o: In function `llvm::cl::list<std::string, bool, llvm::cl::parser<std::string> >::printOptionInfo(unsigned long) const':
/home/varosi/haskell/llvm/__include/llvm/Support/__CommandLine.h:1354: undefined reference to
`llvm::cl::basic_parser_impl::__printOptionInfo(llvm::cl::__Option const&, unsigned long) const' collect2: error: ld returned 1 exit status make[2]: ***
[/home/varosi/haskell/llvm/__build/Debug+Asserts/bin/__FileCheck] Error 1 make[2]: Leaving directory `/home/varosi/haskell/llvm/__build/utils/FileCheck' make[1]: *** [FileCheck/.makeall] Error 2 make[1]: Leaving directory `/home/varosi/haskell/llvm/__build/utils' make: *** [all] Error 1
Another thing is that the link from: http://www.haskell.org/__haskellwiki/ARM <http://www.haskell.org/haskellwiki/ARM>
which is: http://www.haskell.org/__pipermail/cvs-ghc/2012-__February/070791.html <http://www.haskell.org/pipermail/cvs-ghc/2012-February/070791.html>
Is invalid and there could be some more information on the topic. I had to install GCC 4.7 to compile latest LLVM on my Ubuntu 12.
What could be the problem with LLVM?
2014-04-03 17:13 GMT+03:00 Karel Gardas <karel.gardas@centrum.cz <mailto:karel.gardas@centrum.cz> <mailto:karel.gardas@centrum.__cz <mailto:karel.gardas@centrum.cz>>>:
On 04/ 3/14 04:05 PM, eng. Vassil Ognyanov Keremidchiev wrote:
Yes, but I don't know what is missing in my workflow.
I did not know if I need LLVM runtime on my target ARM machine.
No, you don't need LLVM runtime. You just need LLVM llc/opt if you'd like to cross-compile and build registerised ARM binaries.
Do I need? I read that there is unregisterised version for ARM that doesn't need LLVM. So I just could build Haskell cross-compiler that could work on my Ubuntu and create binaries for my ARM v7 machine.
If you'd like to use unregisterised /via-C binaries, then you don't need LLVM at all, you just need to configure with --enable-unregisterised IIRC, but I've not tested that so you are on your own.
Also it comes with its own performance penalty of course: http://ghcarm.wordpress.com/____2011/08/07/nofib-benchmarking/ <http://ghcarm.wordpress.com/__2011/08/07/nofib-benchmarking/> <http://ghcarm.wordpress.com/__2011/08/07/nofib-benchmarking/ <http://ghcarm.wordpress.com/2011/08/07/nofib-benchmarking/>__>
Karel