Linking CXX executable canal
/home/xbrukner/llvm-build-30/lib/libLLVMPowerPCDesc.a(PPCMCTargetDesc.o): In function `createPPCMCInstPrinter(llvm::Target const&, unsigned int, llvm::MCAsmInfo const&, llvm::MCSubtargetInfo const&)':
PPCMCTargetDesc.cpp:(.text+0x20): undefined reference to `vtable for llvm::PPCInstPrinter'
/home/xbrukner/llvm-build-30/lib/libLLVMMipsDesc.a(MipsMCTargetDesc.o): In function `createMipsMCInstPrinter(llvm::Target const&, unsigned int, llvm::MCAsmInfo const&, llvm::MCSubtargetInfo const&)':
MipsMCTargetDesc.cpp:(.text+0x11): undefined reference to `vtable for llvm::MipsInstPrinter'
/home/xbrukner/llvm-build-30/lib/libLLVMMSP430Desc.a(MSP430MCTargetDesc.o): In function `createMSP430MCInstPrinter(llvm::Target const&, unsigned int, llvm::MCAsmInfo const&, llvm::MCSubtargetInfo const&)':
MSP430MCTargetDesc.cpp:(.text+0x17): undefined reference to `vtable for llvm::MSP430InstPrinter'
We try to avoid this bug by searching for libLLVM-{major}.{minor}.so shared library and using it before using static libraries such as libLLVMPowerPCDesc.a. The shared library does not break the linking process.
According to this page (http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-July/041968.html) it is a bug in LLVM.