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