I tried to compile LLVM with gcc-4.8.1 -flto. I got the following error, when linking lli, llc, opt, or libLTO.so:
`LLVMX86CompilationCallback2' referenced in section `.text' of /tmp/cclv7BYB.ltrans0.ltrans.o: defined in discarded section `.text' of X86JITInfo.o (symbol from plugin)
collect2: error: ld returned 1 exit status
Removing the LLVM_LIBRARY_VISIBILITY attribute for LLVMX86CompilationCallback2 make the link pass for lli, llc, and opt, but not for libLTO.so.
Any ideas why this happens?
/Patrik Hägglund
I tried to compile LLVM with gcc-4.8.1 -flto. I got the following error, when linking lli, llc, opt, or libLTO.so:
`LLVMX86CompilationCallback2' referenced in section `.text' of /tmp/cclv7BYB.ltrans0.ltrans.o: defined in discarded section `.text' of X86JITInfo.o (symbol from plugin)
collect2: error: ld returned 1 exit status
Removing the LLVM_LIBRARY_VISIBILITY attribute for LLVMX86CompilationCallback2 make the link pass for lli, llc, and opt, but not for libLTO.so.
Any ideas why this happens?
I don't think gcc's LTO sees references from inline asm. Does adding
__attribute__((used)) work?
/Patrik Hägglund
Cheers,
Rafael