Fwd: Trying to compile GHC under Ubuntu as a cross-compiler for ARM

Karel Gardas karel.gardas at centrum.cz
Thu Apr 3 22:06:07 UTC 2014


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-arm64-platform/ 
-- 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 at gmail.com <mailto:varosi at 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 at centrum.cz
>     <mailto:karel.gardas at 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 at gmail.com <mailto:varosi at gmail.com>
>             <mailto:varosi at gmail.com <mailto:varosi at 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 at centrum.cz <mailto:karel.gardas at centrum.cz>
>             <mailto:karel.gardas at centrum.__cz
>             <mailto:karel.gardas at 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
>
>
>
>
>
>



More information about the ghc-devs mailing list