[PATCH] D12590: [cmake] rework LLVM_LINK_LLVM_DYLIB option handling

Andrew Wilkins via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 3 00:32:16 PDT 2015


axw created this revision.
axw added a reviewer: beanz.
axw added a subscriber: llvm-commits.

This diff attempts to address the concerns raised in
http://reviews.llvm.org/D12488.

We introduce a new USE_SHARED option to llvm_config,
which, if set, causes the target to be linked against
libLLVM.

add_llvm_utility now uniformly disables linking against
libLLVM. These utilities are not intended for distribution,
and this keeps the option handling more centralised.

llvm-shlib is now processes before any other "tools"
subdirectories, ensuring the libLLVM target is defined
before its dependents.

One main difference from what was requested: llvm_config
does not prune LLVM_DYLIB_COMPONENTS from the components
passed into explicit_llvm_config. This is because the "all"
component does something special, adding additional
libraries (namely libLTO). Adding the component libraries
after libLLVM should not be a problem, as symbols will be
resolved in libLLVM first.

Finally, I'm not really happy with the
DISABLE_LLVM_LINK_LLVM option, but I'm not sure of a
better way to get the following:
 - link all tools and shared libraries to libLLVM if
   LLVM_LINK_LLVM_DYLIB is set
 - some way of explicitly *not* doing so for utilities
   and libLLVM itself
Suggestions for improvement here are particularly welcome.

http://reviews.llvm.org/D12590

Files:
  CMakeLists.txt
  cmake/modules/AddLLVM.cmake
  cmake/modules/LLVM-Config.cmake
  cmake/modules/TableGen.cmake
  tools/CMakeLists.txt
  tools/llvm-shlib/CMakeLists.txt

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12590.33905.patch
Type: text/x-patch
Size: 6230 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150903/aad40ee2/attachment.bin>


More information about the llvm-commits mailing list