summaryrefslogtreecommitdiffstats
path: root/llvm/test/Unit
diff options
context:
space:
mode:
authorJeffrey Yasskin <jyasskin@google.com>2010-02-18 02:36:02 +0000
committerJeffrey Yasskin <jyasskin@google.com>2010-02-18 02:36:02 +0000
commitf750fefaf85c00123a4835d4b8ea36250ceb2bbe (patch)
treed0098d20067c4161286ad1a63f82b358376bbfec /llvm/test/Unit
parent623421d385acfcfca51900e8cb133c9242d50536 (diff)
downloadbcm5719-llvm-f750fefaf85c00123a4835d4b8ea36250ceb2bbe.tar.gz
bcm5719-llvm-f750fefaf85c00123a4835d4b8ea36250ceb2bbe.zip
Add a shared library for LLVM, named libLLVM2.7svn.(so|dylib), and add an
--enable-shared configure flag to have the tools linked shared. (2.7svn is just $(LLVMVersion) so it'll change to "2.7" in the release.) Always link the example programs shared to test that the shared library keeps working. On my mac laptop, Debug libLLVM2.7svn.dylib is 39MB, and opt (for example) is 16M static vs 440K shared. Two things are less than ideal here: 1) The library doesn't include any version information. Since we expect to break the ABI with every release, this shouldn't be much of a problem. If we do release a compatible 2.7.1, we may be able to hack its library to work with binaries compiled against 2.7.0, or we can just ask them to recompile. I'm hoping to get a real packaging expert to look at this for the 2.8 release. 2) llvm-config doesn't yet have an option to print link options for the shared library. I'll add this as a subsequent patch. llvm-svn: 96559
Diffstat (limited to 'llvm/test/Unit')
-rw-r--r--llvm/test/Unit/lit.cfg9
-rw-r--r--llvm/test/Unit/lit.site.cfg.in2
2 files changed, 10 insertions, 1 deletions
diff --git a/llvm/test/Unit/lit.cfg b/llvm/test/Unit/lit.cfg
index 34372bb6cbe..5fe07324a1b 100644
--- a/llvm/test/Unit/lit.cfg
+++ b/llvm/test/Unit/lit.cfg
@@ -23,7 +23,14 @@ config.test_format = lit.formats.GoogleTest(llvm_build_mode, 'Tests')
###
-import os
+# If necessary, point the dynamic loader at libLLVM.so.
+if config.enable_shared:
+ libdir = os.path.join(config.llvm_obj_root, config.llvm_build_mode, 'lib')
+ shlibpath = config.environment.get(config.shlibpath_var,'')
+ if shlibpath:
+ shlibpath = ':' + shlibpath
+ shlibpath = libdir + shlibpath
+ config.environment[config.shlibpath_var] = shlibpath
# Check that the object root is known.
if config.test_exec_root is None:
diff --git a/llvm/test/Unit/lit.site.cfg.in b/llvm/test/Unit/lit.site.cfg.in
index c190ffa68e5..51b5bc416f6 100644
--- a/llvm/test/Unit/lit.site.cfg.in
+++ b/llvm/test/Unit/lit.site.cfg.in
@@ -5,6 +5,8 @@ config.llvm_obj_root = "@LLVM_BINARY_DIR@"
config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
config.llvmgcc_dir = "@LLVMGCCDIR@"
config.llvm_build_mode = "@LLVM_BUILD_MODE@"
+config.enable_shared = @ENABLE_SHARED@
+config.shlibpath_var = "@SHLIBPATH_VAR@"
# Let the main config do the real work.
lit.load_config(config, "@LLVM_SOURCE_DIR@/test/Unit/lit.cfg")
OpenPOWER on IntegriCloud