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