[llvm-dev] Question on symbol lookup error (VersionTuple)
Lorenz Braun via llvm-dev
llvm-dev at lists.llvm.org
Mon Feb 10 05:48:54 PST 2020
I was able to solve the problem by rebuilding llvm with the cmake flag
BUILD_SHARED_LIBS=ON. I am not entirely sure why this works because i
did not link against the LLVMSupport.so. For any readers that are trying
to solve a similar problem, be aware that i am building my pass
out-of-source.
Any additional comments on why excatly this works are very welcome ;)
Best Regards
Lorenz
On 10.02.20 11:46, Lorenz Braun via llvm-dev wrote:
> Hi,
>
> i am currently working on an out-of-source pass to manipulate CUDA
> applications. Because since CUDA 9.2 the launch mechanism has changed,
> i check the CUDA SDK version from within my module pass. My pass fails
> when i use opt to run it on IR code:
> `symbol lookup error: /opt/cuda-flux/lib/libcuda_flux_pass.so:
> undefined symbol: _ZN4llvmlsERNS_11raw_ostreamERKNS_12VersionTupleE`
>
> This error does not happen when i register my pass with clang. When
> looking up the symbol tables with nm it shows me that the symbol is
> not found (which i expected from the error i got):
> ```
> $ nm --dynamic /opt/cuda-flux/lib/libcuda_flux_pass.so | grep
> _ZN4llvmlsERNS_11raw_ostreamERKNS_12VersionTupleE
> U _ZN4llvmlsERNS_11raw_ostreamERKNS_12VersionTupleE
> ```
>
> When making the same lookup on the clang binary the symbol is found.
> However, it is not found when doing the lookup on the opt binary. Is
> this on purpose? If yes, what would be the best way to fix this?
> Linking the LLVMSupport lib does not really work because this will
> lead to command line option registered multiple times.
>
> Here some additional info to give some context info:
> - using llvm 10.0 tag from github
> - cmake config:
> cmake -DLLVM_ENABLE_PROJECTS="clang;openmp"
> -DCMAKE_INSTALL_PREFIX=/opt/llvm-10.0 -DCMAKE_BUILD_TYPE=Release
> -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_DOXYGEN=OFF
> -DLLVM_BUILD_DOCS=OFF -GNinja -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON ../llvm
>
> Best Regards
> Lorenz
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
More information about the llvm-dev
mailing list