Skip to content

[Question][Hw7] Error during linking #52

@jh05013

Description

@jh05013

Hi,

I built the dummy parser as instructed, but when I run make under the root directory, following illegible error occurs. How can I fix this problem?

I have updated everything to the newest version, and I have not touched any source code.

Thanks!

    ocamlopt src/main.exe (exit 2)
(cd _build/default && /usr/bin/ocamlopt.opt -w @1..3@5..28@30..39@43@46..47@49..57@61..62-40 -strict-sequence -strict-formats -short-paths -keep-locs -warn-error -A -g -o src/main.exe /home/a/.opam/default/lib/llvm/shared/llvm.cmxa -I /home/a/.opam/default/lib/llvm /home/a/.opam/default/lib/zarith/zarith.cmxa -I /home/a/.opam/default/lib/zarith /usr/lib/ocaml/unix.cmxa -I /usr/lib/ocaml /usr/lib/ocaml/threads/threads.cmxa -I /usr/lib/ocaml /home/a/.opam/default/lib/z3/z3ml.cmxa -I /home/a/.opam/default/lib/z3 /usr/lib/ocaml/str.cmxa -I /usr/lib/ocaml src/dummy_llvm_irreader.cmxa -I llvm/build/lib -I src /home/a/.opam/default/lib/llvm/shared/llvm_bitreader.cmxa -I /home/a/.opam/default/lib/llvm /home/a/.opam/default/lib/llvm/shared/llvm_irreader.cmxa -I /home/a/.opam/default/lib/llvm llvmutils/src/llvmutils.cmxa src/.main.eobjs/native/dune__exe.cmx src/.main.eobjs/native/dune__exe__Typesystem.cmx src/.main.eobjs/native/dune__exe__Extractor.cmx src/.main.eobjs/native/dune__exe__Main.cmx)
/usr/bin/ld: llvm/build/lib/libDummyLLVMIRReader.a(IRReader.cpp.o): in function `llvm::parseIR(llvm::MemoryBufferRef, llvm::SMDiagnostic&, llvm::LLVMContext&, bool, llvm::StringRef)':
IRReader.cpp:(.text._ZN4llvm7parseIRENS_15MemoryBufferRefERNS_12SMDiagnosticERNS_11LLVMContextEbNS_9StringRefE+0x11b): undefined reference to `llvm::parseBitcodeFile(llvm::MemoryBufferRef, llvm::LLVMContext&)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DIEnumerator::get(llvm::LLVMContext&, long, bool, llvm::MDString*)':
LLParser.cpp:(.text._ZN4llvm12DIEnumerator3getERNS_11LLVMContextElbPNS_8MDStringE[_ZN4llvm12DIEnumerator3getERNS_11LLVMContextElbPNS_8MDStringE]+0x3d): undefined reference to `llvm::DIEnumerator::getImpl(llvm::LLVMContext&, long, bool, llvm::MDString*, llvm::Metadata::StorageType, bool)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DIEnumerator::getDistinct(llvm::LLVMContext&, long, bool, llvm::MDString*)':
LLParser.cpp:(.text._ZN4llvm12DIEnumerator11getDistinctERNS_11LLVMContextElbPNS_8MDStringE[_ZN4llvm12DIEnumerator11getDistinctERNS_11LLVMContextElbPNS_8MDStringE]+0x3d): undefined reference to `llvm::DIEnumerator::getImpl(llvm::LLVMContext&, long, bool, llvm::MDString*, llvm::Metadata::StorageType, bool)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DICompositeType::get(llvm::LLVMContext&, unsigned int, llvm::MDString*, llvm::Metadata*, unsigned int, llvm::Metadata*, llvm::Metadata*, unsigned long, unsigned int, unsigned long, llvm::DINode::DIFlags, llvm::Metadata*, unsigned int, llvm::Metadata*, llvm::Metadata*, llvm::MDString*, llvm::Metadata*)':
LLParser.cpp:(.text._ZN4llvm15DICompositeType3getERNS_11LLVMContextEjPNS_8MDStringEPNS_8MetadataEjS6_S6_mjmNS_6DINode7DIFlagsES6_jS6_S6_S4_S6_[_ZN4llvm15DICompositeType3getERNS_11LLVMContextEjPNS_8MDStringEPNS_8MetadataEjS6_S6_mjmNS_6DINode7DIFlagsES6_jS6_S6_S4_S6_]+0x6a): undefined reference to `llvm::DICompositeType::getImpl(llvm::LLVMContext&, unsigned int, llvm::MDString*, llvm::Metadata*, unsigned int, llvm::Metadata*, llvm::Metadata*, unsigned long, unsigned int, unsigned long, llvm::DINode::DIFlags, llvm::Metadata*, unsigned int, llvm::Metadata*, llvm::Metadata*, llvm::MDString*, llvm::Metadata*, llvm::Metadata::StorageType, bool)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DICompositeType::getDistinct(llvm::LLVMContext&, unsigned int, llvm::MDString*, llvm::Metadata*, unsigned int, llvm::Metadata*, llvm::Metadata*, unsigned long, unsigned int, unsigned long, llvm::DINode::DIFlags, llvm::Metadata*, unsigned int, llvm::Metadata*, llvm::Metadata*, llvm::MDString*, llvm::Metadata*)':
LLParser.cpp:(.text._ZN4llvm15DICompositeType11getDistinctERNS_11LLVMContextEjPNS_8MDStringEPNS_8MetadataEjS6_S6_mjmNS_6DINode7DIFlagsES6_jS6_S6_S4_S6_[_ZN4llvm15DICompositeType11getDistinctERNS_11LLVMContextEjPNS_8MDStringEPNS_8MetadataEjS6_S6_mjmNS_6DINode7DIFlagsES6_jS6_S6_S4_S6_]+0x6a): undefined reference to `llvm::DICompositeType::getImpl(llvm::LLVMContext&, unsigned int, llvm::MDString*, llvm::Metadata*, unsigned int, llvm::Metadata*, llvm::Metadata*, unsigned long, unsigned int, unsigned long, llvm::DINode::DIFlags, llvm::Metadata*, unsigned int, llvm::Metadata*, llvm::Metadata*, llvm::MDString*, llvm::Metadata*, llvm::Metadata::StorageType, bool)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DICompileUnit::getDistinct(llvm::LLVMContext&, unsigned int, llvm::Metadata*, llvm::MDString*, bool, llvm::MDString*, unsigned int, llvm::MDString*, unsigned int, llvm::Metadata*, llvm::Metadata*, llvm::Metadata*, llvm::Metadata*, llvm::Metadata*, unsigned long, bool, bool, unsigned int, bool)':
LLParser.cpp:(.text._ZN4llvm13DICompileUnit11getDistinctERNS_11LLVMContextEjPNS_8MetadataEPNS_8MDStringEbS6_jS6_jS4_S4_S4_S4_S4_mbbjb[_ZN4llvm13DICompileUnit11getDistinctERNS_11LLVMContextEjPNS_8MetadataEPNS_8MDStringEbS6_jS6_jS4_S4_S4_S4_S4_mbbjb]+0x98): undefined reference to `llvm::DICompileUnit::getImpl(llvm::LLVMContext&, unsigned int, llvm::Metadata*, llvm::MDString*, bool, llvm::MDString*, unsigned int, llvm::MDString*, unsigned int, llvm::Metadata*, llvm::Metadata*, llvm::Metadata*, llvm::Metadata*, llvm::Metadata*, unsigned long, bool, bool, unsigned int, bool, llvm::Metadata::StorageType, bool)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DIModule::get(llvm::LLVMContext&, llvm::Metadata*, llvm::MDString*, llvm::MDString*, llvm::MDString*, llvm::MDString*)':
LLParser.cpp:(.text._ZN4llvm8DIModule3getERNS_11LLVMContextEPNS_8MetadataEPNS_8MDStringES6_S6_S6_[_ZN4llvm8DIModule3getERNS_11LLVMContextEPNS_8MetadataEPNS_8MDStringES6_S6_S6_]+0x4a): undefined reference to `llvm::DIModule::getImpl(llvm::LLVMContext&, llvm::Metadata*, llvm::MDString*, llvm::MDString*, llvm::MDString*, llvm::MDString*, llvm::Metadata::StorageType, bool)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DIModule::getDistinct(llvm::LLVMContext&, llvm::Metadata*, llvm::MDString*, llvm::MDString*, llvm::MDString*, llvm::MDString*)':
LLParser.cpp:(.text._ZN4llvm8DIModule11getDistinctERNS_11LLVMContextEPNS_8MetadataEPNS_8MDStringES6_S6_S6_[_ZN4llvm8DIModule11getDistinctERNS_11LLVMContextEPNS_8MetadataEPNS_8MDStringES6_S6_S6_]+0x4a): undefined reference to `llvm::DIModule::getImpl(llvm::LLVMContext&, llvm::Metadata*, llvm::MDString*, llvm::MDString*, llvm::MDString*, llvm::MDString*, llvm::Metadata::StorageType, bool)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DITemplateTypeParameter::get(llvm::LLVMContext&, llvm::MDString*, llvm::Metadata*)':
LLParser.cpp:(.text._ZN4llvm23DITemplateTypeParameter3getERNS_11LLVMContextEPNS_8MDStringEPNS_8MetadataE[_ZN4llvm23DITemplateTypeParameter3getERNS_11LLVMContextEPNS_8MDStringEPNS_8MetadataE]+0x33): undefined reference to `llvm::DITemplateTypeParameter::getImpl(llvm::LLVMContext&, llvm::MDString*, llvm::Metadata*, llvm::Metadata::StorageType, bool)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DITemplateTypeParameter::getDistinct(llvm::LLVMContext&, llvm::MDString*, llvm::Metadata*)':
LLParser.cpp:(.text._ZN4llvm23DITemplateTypeParameter11getDistinctERNS_11LLVMContextEPNS_8MDStringEPNS_8MetadataE[_ZN4llvm23DITemplateTypeParameter11getDistinctERNS_11LLVMContextEPNS_8MDStringEPNS_8MetadataE]+0x33): undefined reference to `llvm::DITemplateTypeParameter::getImpl(llvm::LLVMContext&, llvm::MDString*, llvm::Metadata*, llvm::Metadata::StorageType, bool)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DITemplateValueParameter::get(llvm::LLVMContext&, unsigned int, llvm::MDString*, llvm::Metadata*, llvm::Metadata*)':
LLParser.cpp:(.text._ZN4llvm24DITemplateValueParameter3getERNS_11LLVMContextEjPNS_8MDStringEPNS_8MetadataES6_[_ZN4llvm24DITemplateValueParameter3getERNS_11LLVMContextEjPNS_8MDStringEPNS_8MetadataES6_]+0x45): undefined reference to `llvm::DITemplateValueParameter::getImpl(llvm::LLVMContext&, unsigned int, llvm::MDString*, llvm::Metadata*, llvm::Metadata*, llvm::Metadata::StorageType, bool)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DITemplateValueParameter::getDistinct(llvm::LLVMContext&, unsigned int, llvm::MDString*, llvm::Metadata*, llvm::Metadata*)':
LLParser.cpp:(.text._ZN4llvm24DITemplateValueParameter11getDistinctERNS_11LLVMContextEjPNS_8MDStringEPNS_8MetadataES6_[_ZN4llvm24DITemplateValueParameter11getDistinctERNS_11LLVMContextEjPNS_8MDStringEPNS_8MetadataES6_]+0x45): undefined reference to `llvm::DITemplateValueParameter::getImpl(llvm::LLVMContext&, unsigned int, llvm::MDString*, llvm::Metadata*, llvm::Metadata*, llvm::Metadata::StorageType, bool)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DummyLLParser::ParseValID(llvm::ValID&, llvm::DummyLLParser::PerFunctionState*) [clone .localalias]':
LLParser.cpp:(.text._ZN4llvm13DummyLLParser10ParseValIDERNS_5ValIDEPNS0_16PerFunctionStateE+0x343e): undefined reference to `llvm::ConstantExpr::getShuffleVector(llvm::Constant*, llvm::Constant*, llvm::Constant*, llvm::Type*)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DummyLLParser::ParseDICompositeType(llvm::MDNode*&, bool)':
LLParser.cpp:(.text._ZN4llvm13DummyLLParser20ParseDICompositeTypeERPNS_6MDNodeEb+0x3f3): undefined reference to `llvm::DICompositeType::buildODRType(llvm::LLVMContext&, llvm::MDString&, unsigned int, llvm::MDString*, llvm::Metadata*, unsigned int, llvm::Metadata*, llvm::Metadata*, unsigned long, unsigned int, unsigned long, llvm::DINode::DIFlags, llvm::Metadata*, unsigned int, llvm::Metadata*, llvm::Metadata*, llvm::Metadata*)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DummyLLParser::ConvertValIDToValue(llvm::Type*, llvm::ValID&, llvm::Value*&, llvm::DummyLLParser::PerFunctionState*, bool)':
LLParser.cpp:(.text._ZN4llvm13DummyLLParser19ConvertValIDToValueEPNS_4TypeERNS_5ValIDERPNS_5ValueEPNS0_16PerFunctionStateEb+0x619): undefined reference to `llvm::APFloat::convert(llvm::fltSemantics const&, llvm::APFloatBase::roundingMode, bool*)'
/usr/bin/ld: LLParser.cpp:(.text._ZN4llvm13DummyLLParser19ConvertValIDToValueEPNS_4TypeERNS_5ValIDERPNS_5ValueEPNS0_16PerFunctionStateEb+0x658): undefined reference to `llvm::APFloat::convert(llvm::fltSemantics const&, llvm::APFloatBase::roundingMode, bool*)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DummyLLParser::ParseAlloc(llvm::Instruction*&, llvm::DummyLLParser::PerFunctionState&)':
LLParser.cpp:(.text._ZN4llvm13DummyLLParser10ParseAllocERPNS_11InstructionERNS0_16PerFunctionStateE+0x3e6): undefined reference to `llvm::AllocaInst::AllocaInst(llvm::Type*, unsigned int, llvm::Value*, llvm::MaybeAlign, llvm::Twine const&, llvm::Instruction*)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DummyLLParser::ParseLoad(llvm::Instruction*&, llvm::DummyLLParser::PerFunctionState&)':
LLParser.cpp:(.text._ZN4llvm13DummyLLParser9ParseLoadERPNS_11InstructionERNS0_16PerFunctionStateE+0x35b): undefined reference to `llvm::LoadInst::LoadInst(llvm::Type*, llvm::Value*, llvm::Twine const&, bool, llvm::MaybeAlign, llvm::AtomicOrdering, unsigned char, llvm::Instruction*)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DummyLLParser::ParseStore(llvm::Instruction*&, llvm::DummyLLParser::PerFunctionState&)':
LLParser.cpp:(.text._ZN4llvm13DummyLLParser10ParseStoreERPNS_11InstructionERNS0_16PerFunctionStateE+0x34a): undefined reference to `llvm::StoreInst::StoreInst(llvm::Value*, llvm::Value*, bool, llvm::MaybeAlign, llvm::AtomicOrdering, unsigned char, llvm::Instruction*)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DummyLLParser::ParseCmpXchg(llvm::Instruction*&, llvm::DummyLLParser::PerFunctionState&)':
LLParser.cpp:(.text._ZN4llvm13DummyLLParser12ParseCmpXchgERPNS_11InstructionERNS0_16PerFunctionStateE+0x413): undefined reference to `llvm::AtomicCmpXchgInst::AtomicCmpXchgInst(llvm::Value*, llvm::Value*, llvm::Value*, llvm::AtomicOrdering, llvm::AtomicOrdering, unsigned char, llvm::Instruction*)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::DummyLLParser::ParseAtomicRMW(llvm::Instruction*&, llvm::DummyLLParser::PerFunctionState&)':
LLParser.cpp:(.text._ZN4llvm13DummyLLParser14ParseAtomicRMWERPNS_11InstructionERNS0_16PerFunctionStateE+0x65c): undefined reference to `llvm::AtomicRMWInst::AtomicRMWInst(llvm::AtomicRMWInst::BinOp, llvm::Value*, llvm::Value*, llvm::AtomicOrdering, unsigned char, llvm::Instruction*)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::SmallVectorTemplateCommon<llvm::BasicBlock*, void>::grow_pod(unsigned long, unsigned long)':
LLParser.cpp:(.text._ZN4llvm25SmallVectorTemplateCommonIPNS_10BasicBlockEvE8grow_podEmm[_ZN4llvm25SmallVectorTemplateCommonIPNS_10BasicBlockEvE8grow_podEmm]+0x3e): undefined reference to `llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::SmallVectorTemplateCommon<unsigned long, void>::grow_pod(unsigned long, unsigned long)':
LLParser.cpp:(.text._ZN4llvm25SmallVectorTemplateCommonImvE8grow_podEmm[_ZN4llvm25SmallVectorTemplateCommonImvE8grow_podEmm]+0x3e): undefined reference to `llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::SmallVectorTemplateCommon<llvm::Instruction*, void>::grow_pod(unsigned long, unsigned long)':
LLParser.cpp:(.text._ZN4llvm25SmallVectorTemplateCommonIPNS_11InstructionEvE8grow_podEmm[_ZN4llvm25SmallVectorTemplateCommonIPNS_11InstructionEvE8grow_podEmm]+0x3e): undefined reference to `llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::SmallVectorTemplateCommon<unsigned int, void>::grow_pod(unsigned long, unsigned long)':
LLParser.cpp:(.text._ZN4llvm25SmallVectorTemplateCommonIjvE8grow_podEmm[_ZN4llvm25SmallVectorTemplateCommonIjvE8grow_podEmm]+0x3e): undefined reference to `llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o): in function `llvm::SmallVectorTemplateCommon<llvm::DummyLLParser::ParamInfo, void>::grow_pod(unsigned long, unsigned long)':
LLParser.cpp:(.text._ZN4llvm25SmallVectorTemplateCommonINS_13DummyLLParser9ParamInfoEvE8grow_podEmm[_ZN4llvm25SmallVectorTemplateCommonINS_13DummyLLParser9ParamInfoEvE8grow_podEmm]+0x3e): undefined reference to `llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long)'
/usr/bin/ld: llvm/build/lib/libDummyLLVMAsmParser.a(LLParser.cpp.o):LLParser.cpp:(.text._ZN4llvm25SmallVectorTemplateCommonIPNS_4TypeEvE8grow_podEmm[_ZN4llvm25SmallVectorTemplateCommonIPNS_4TypeEvE8grow_podEmm]+0x3e): more undefined references to `llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long)' follow
collect2: error: ld returned 1 exit status
File "caml_startup", line 1:
Error: Error during linking
make: *** [Makefile:8: all] Error 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions