llvm-project/llvm/tools
Andrew Wilkins bb6d95fc3a [cmake] rework LLVM_LINK_LLVM_DYLIB option handling
Summary:
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.

Reviewers: beanz

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D12590

llvm-svn: 246918
2015-09-05 08:27:33 +00:00
..
bugpoint Replace some calls to isa<LandingPadInst> with isEHPad() 2015-08-19 19:54:02 +00:00
bugpoint-passes
dsymutil Reapply r246012 [dsymutil] Emit real dSYM companion binaries. 2015-09-02 16:49:13 +00:00
gold gold-plugin: Implement parallel LTO code generation using llvm::splitCodeGen. 2015-09-01 20:40:22 +00:00
llc
lli
llvm-ar
llvm-as
llvm-as-fuzzer Build a lib/Fuzzer version for llvm-as. 2015-08-31 17:55:32 +00:00
llvm-bcanalyzer [WinEH] Add cleanupendpad instruction 2015-09-03 09:09:43 +00:00
llvm-c-test
llvm-config
llvm-cov
llvm-cxxdump
llvm-diff
llvm-dis
llvm-dwarfdump
llvm-extract
llvm-go Enable linking tools, shared libraries against libLLVM 2015-09-01 03:14:31 +00:00
llvm-jitlistener
llvm-link New bitcode linker flags: 2015-09-01 17:55:55 +00:00
llvm-lto CodeGen: Introduce splitCodeGen and teach LTOCodeGenerator to use it. 2015-08-27 23:37:36 +00:00
llvm-mc
llvm-mcmarkup
llvm-nm
llvm-objdump [llvm-reaodbj] Simplify code. No functional change (intended). 2015-09-02 16:53:25 +00:00
llvm-pdbdump
llvm-profdata
llvm-readobj [llvm-readobj] MachO: dump the correct field. 2015-09-04 20:43:00 +00:00
llvm-rtdyld
llvm-shlib [cmake] rework LLVM_LINK_LLVM_DYLIB option handling 2015-09-05 08:27:33 +00:00
llvm-size
llvm-split TransformUtils: Introduce module splitter. 2015-08-21 02:48:20 +00:00
llvm-stress
llvm-symbolizer
lto LTO: Simplify merged module ownership. 2015-08-24 22:22:53 +00:00
macho-dump
msbuild
obj2yaml Pass a symbol table to getRelocationSymbol instead of returning one. 2015-09-02 15:07:39 +00:00
opt
verify-uselistorder
yaml2obj [yaml2obj] Support numeric indexes to create invalid files. Will be used by lld test. 2015-08-27 23:11:20 +00:00
CMakeLists.txt
LLVMBuild.txt TransformUtils: Introduce module splitter. 2015-08-21 02:48:20 +00:00
Makefile TransformUtils: Introduce module splitter. 2015-08-21 02:48:20 +00:00