[Lldb-commits] [PATCH] D31367: Expression: add missing linkage to RuntimeDyld component

Michał Górny via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Mar 30 11:41:55 PDT 2017

mgorny added a comment.

In https://reviews.llvm.org/D31367#714305, @beanz wrote:

> Please revert your patch. It is *not* the right solution and is masking underlying problems.

Reverted in r299095. Now I'd really appreciate some help in figuring out how to fix it properly.

> ExecutionEngine headers directly reference symbols from RuntimeDyld, so we should enforce a requirement that anyone using ExeuctionEngine also link RuntimeDyld. This works today as expected for static archive builds. It is only broken with `BUILD_SHARED_LIBS`. I suspect the problem is that when built as a DSO ExecutionEngine has no unresolved symbols against RuntimeDyld, and the linker probably isn't including the reference to RuntimeDyld in the produced ExecutionEngine DSO.

The DSO is linking to RuntimeDyld. However, obviously the `PRIVATE` linkage forced in `llvm_add_library` is not the correct solution when the symbols are explicitly used in the headers. It should be `PUBLIC` for that particular component. Any suggestion on how to fix that API? Should I add an additional `PUBLIC_LINK_COMPONENTS` (and `PUBLIC_LINK_LIBS`)?



More information about the lldb-commits mailing list