ispc: Build breaks with llvm-70: undefined reference to `llvm::Module::dump() const'

The FreeBSD port fails to build with these messages:

clang++70 -O2  -o ispc objs/ast.o objs/builtins.o objs/cbackend.o objs/ctx.o objs/decl.o objs/expr.o objs/func.o objs/ispc.o objs/llvmutil.o objs/main.o objs/module.o objs/opt.o objs/stmt.o objs/sym.o objs/type.o objs/util.o objs/builtins-dispatch.o objs/builtins-target-avx2-i64x4-32bit.o objs/builtins-target-avx11-i64x4-32bit.o objs/builtins-target-avx1-i64x4-32bit.o objs/builtins-target-avx1-32bit.o objs/builtins-target-avx1-x2-32bit.o objs/builtins-target-avx11-32bit.o objs/builtins-target-avx11-x2-32bit.o objs/builtins-target-avx2-32bit.o objs/builtins-target-avx2-x2-32bit.o objs/builtins-target-sse2-32bit.o objs/builtins-target-sse2-x2-32bit.o objs/builtins-target-sse4-8-32bit.o objs/builtins-target-sse4-16-32bit.o objs/builtins-target-sse4-32bit.o objs/builtins-target-sse4-x2-32bit.o objs/builtins-target-generic-4-32bit.o objs/builtins-target-generic-8-32bit.o objs/builtins-target-generic-16-32bit.o objs/builtins-target-generic-32-32bit.o objs/builtins-target-generic-64-32bit.o objs/builtins-target-generic-1-32bit.o objs/builtins-target-knl-32bit.o objs/builtins-target-skx-32bit.o objs/builtins-target-avx2-i64x4-64bit.o objs/builtins-target-avx11-i64x4-64bit.o objs/builtins-target-avx1-i64x4-64bit.o objs/builtins-target-avx1-64bit.o objs/builtins-target-avx1-x2-64bit.o objs/builtins-target-avx11-64bit.o objs/builtins-target-avx11-x2-64bit.o objs/builtins-target-avx2-64bit.o objs/builtins-target-avx2-x2-64bit.o objs/builtins-target-sse2-64bit.o objs/builtins-target-sse2-x2-64bit.o objs/builtins-target-sse4-8-64bit.o objs/builtins-target-sse4-16-64bit.o objs/builtins-target-sse4-64bit.o objs/builtins-target-sse4-x2-64bit.o objs/builtins-target-generic-4-64bit.o objs/builtins-target-generic-8-64bit.o objs/builtins-target-generic-16-64bit.o objs/builtins-target-generic-32-64bit.o objs/builtins-target-generic-64-64bit.o objs/builtins-target-generic-1-64bit.o objs/builtins-target-knl-64bit.o objs/builtins-target-skx-64bit.o objs/builtins-c-32.o objs/builtins-c-64.o objs/stdlib_mask1_ispc.o objs/stdlib_mask8_ispc.o objs/stdlib_mask16_ispc.o objs/stdlib_mask32_ispc.o objs/stdlib_mask64_ispc.o objs/parse.o objs/lex.o -L/usr/local/llvm70/lib  -lclangFrontend -lclangDriver -lclangSerialization -lclangParse -lclangSema -lclangAnalysis -lclangAST -lclangBasic -lclangEdit -lclangLex -lLLVM-7 -lexecinfo -lpthread -lcurses -lz
objs/llvmutil.o: In function `lDumpValue(llvm::Value*, std::__1::set<llvm::Value*, std::__1::less<llvm::Value*>, std::__1::allocator<llvm::Value*> >&)':
llvmutil.cpp:(.text+0x3d60): undefined reference to `llvm::Value::dump() const'
objs/opt.o: In function `Optimize(llvm::Module*, int)':
opt.cpp:(.text+0x173): undefined reference to `llvm::Module::dump() const'
opt.cpp:(.text+0x1527): undefined reference to `llvm::Module::dump() const'
objs/opt.o: In function `IntrinsicsOpt::runOnBasicBlock(llvm::BasicBlock&)':
opt.cpp:(.text+0x17cc): undefined reference to `llvm::Value::dump() const'
opt.cpp:(.text+0x2257): undefined reference to `llvm::Value::dump() const'
objs/opt.o: In function `InstructionSimplifyPass::runOnBasicBlock(llvm::BasicBlock&)':
opt.cpp:(.text+0x2982): undefined reference to `llvm::Value::dump() const'
opt.cpp:(.text+0x2b5a): undefined reference to `llvm::Value::dump() const'
objs/opt.o: In function `ImproveMemoryOpsPass::runOnBasicBlock(llvm::BasicBlock&)':
opt.cpp:(.text+0x2d15): undefined reference to `llvm::Value::dump() const'
objs/opt.o:opt.cpp:(.text+0x7265): more undefined references to `llvm::Value::dump() const' follow
objs/opt.o: In function `DebugPass::runOnModule(llvm::Module&)':
opt.cpp:(.text+0xcd59): undefined reference to `llvm::Module::dump() const'
objs/opt.o: In function `PeepholePass::runOnBasicBlock(llvm::BasicBlock&)':
opt.cpp:(.text+0xcfa6): undefined reference to `llvm::Value::dump() const'
opt.cpp:(.text+0xdd30): undefined reference to `llvm::Value::dump() const'
objs/opt.o: In function `ReplaceStdlibShiftPass::runOnBasicBlock(llvm::BasicBlock&)':
opt.cpp:(.text+0xdecb): undefined reference to `llvm::Value::dump() const'
opt.cpp:(.text+0xe41d): undefined reference to `llvm::Value::dump() const'
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 20 (2 by maintainers)

Most upvoted comments

The right solution is to have the LLVM project put all debug functionality into a separate library. Such library can be installed as a sub-package or as a separate package. This would eliminate the problem for everybody.

I’ll make such suggestion to LLVM.

@dbabokin it is the same problem as with packaging flang, we cannot have multiple (patched differently) versions of llvm around in Fedora.