Dominique Fober via llvm-dev
2018-Feb-06 12:13 UTC
[llvm-dev] how to avoid linking with libLTO?
Hi, Is there a way to avoid linking with the dynamic LTO library. I’m using llvm 5.0.0 on various platforms (linux, windows, macOS), this library is not required by my application and I keep having trouble with it. My project is cmake based and makes use of LLVMConfig.cmake or llvm-config output (depending on the platform - there is no LLVMConfig.cmake with the windows package). On windows the LTO lib resolves to LTO-NOTFOUND, which obviously triggers an error at link time. On linux and MacOS, everything runs smoothly up to the install step: then I get an "error while loading shared libraries libLTO (.dylib or .so)” when running my application. I’m actually linking with llvm installed within my $HOME hierarchy. This library (useless in my case) unnecessarily complicates my life. If there's a way not to link with LTO, I'm a taker. Thanks in advance for your help. — Dominique ps: why is it not available as a static library (that could be a solution too)
Jonas Devlieghere via llvm-dev
2018-Feb-09 15:59 UTC
[llvm-dev] how to avoid linking with libLTO?
Hi Dominique,> On Feb 6, 2018, at 12:13 PM, Dominique Fober via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hi, > > Is there a way to avoid linking with the dynamic LTO library. > I’m using llvm 5.0.0 on various platforms (linux, windows, macOS), this library is not required by my application and I keep having trouble with it. My project is cmake based and makes use of LLVMConfig.cmake or llvm-config output (depending on the platform - there is no LLVMConfig.cmake with the windows package).I don’t know about Windows, but with Cmake you should be able to only link against the libs you need, e.g. something like llvm_map_components_to_libnames(LLVM_LINK_LIBRARIES support object) target_link_libraries(target ${LLVM_LINK_LIBRARIES})> On windows the LTO lib resolves to LTO-NOTFOUND, which obviously triggers an error at link time. > On linux and MacOS, everything runs smoothly up to the install step: then I get an "error while loading shared libraries libLTO (.dylib or .so)” when running my application. I’m actually linking with llvm installed within my $HOME hierarchy. > This library (useless in my case) unnecessarily complicates my life. > If there's a way not to link with LTO, I'm a taker. > Thanks in advance for your help. > — > Dominique > > ps: why is it not available as a static library (that could be a solution too)It’s a shared object because it’s used by the linker to perform interprocedural optimizations. https://llvm.org/docs/LinkTimeOptimization.html#liblto> > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev