<div dir="ltr">Hi Alexander,<div><br></div><div>The best way I've found is to use LLVM_LINK_COMPONENTS, which ends up calling llvm_map_components_to_libnames() underneath hood.<div>The biggest pitfall is that lldWasm needs to be linked the same way so that both link against libLLVM.so or both not.</div></div><div>It's possible you're trying to work around issues in the way that lldWasm is linked...</div><div><br></div><div>Steve</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Nov 30, 2020 at 6:09 PM Alexander Julian Reinking via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi all,<br><br>Maybe I'm missing something in the documentation somewhere, but I've found<br>the officially suggested way to link an application to LLVM to be quite<br>brittle. I'm referring to the way listed here: <a href="https://llvm.org/docs/CMake.html" target="_blank">https://llvm.org/docs/CMake.html</a><br><br>If I use llvm_map_components_to_libnames with an LLVM that was built with<br>LLVM_LINK_LLVM_DYLIB set to true, and then try to link to both some LLVM <br>components and lldWasm, then my library will compile, but it will fail at<br>runtime since it is linked to both the shared LLVM library (via lldWasm)<br>and the static libraries I requested with the function. Linuxbrew builds<br>this way.<br><br>Furthermore, if only the shared library was built and packaged, then the<br>function will throw a fatal error. This broke our build on Gentoo.<br><br>For context, I work on the Halide CMake build and you can see the hoops we<br>have to jump through here:<br><br><a href="https://github.com/halide/Halide/blob/master/dependencies/llvm/CMakeLists.txt" target="_blank">https://github.com/halide/Halide/blob/master/dependencies/llvm/CMakeLists.txt</a><br><br>What is the correct way to link to LLVM, no matter the configuration?<br><br>Thanks,<br><br>Alex</div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>