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
<[email protected] <mailto:[email protected]>>:

    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 <[email protected]
    <mailto:[email protected]>>:


        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
            <[email protected] <mailto:[email protected]>
            <mailto:[email protected] <mailto:[email protected]>>>:


                 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
            <[email protected] <mailto:[email protected]>
            <mailto:karel.gardas@centrum.__cz
            <mailto:[email protected]>>>:


                     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







_______________________________________________
ghc-devs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/ghc-devs

Reply via email to