diff options
| author | Michal Gorny <mgorny@gentoo.org> | 2017-02-19 22:11:38 +0000 |
|---|---|---|
| committer | Michal Gorny <mgorny@gentoo.org> | 2017-02-19 22:11:38 +0000 |
| commit | caf810e3e41bf8ed3383044159a24439df085b81 (patch) | |
| tree | 35dd685856330edbe13dab4dd149e75d32a9a6a3 | |
| parent | 1577023414445264527eee1f60021268660a372f (diff) | |
| download | bcm5719-llvm-caf810e3e41bf8ed3383044159a24439df085b81.tar.gz bcm5719-llvm-caf810e3e41bf8ed3383044159a24439df085b81.zip | |
[test] Fix finding LLDB tools when building stand-alone
Use both LLDB- and LLVM-specific tool/library directories when LLDB is
being built stand-alone. This ensures that the freshly-built tools
(and libraries) are used correctly.
Without this patch, the test suite uses LLVM_TOOLS_DIR and LLVM_LIBS_DIR
to locate lldb, and set PATH and LD_LIBRARY_PATH. When doing
a stand-alone build, these variables represent the installed LLVM.
As a result, tests either fail due to missing lldb executable
or use an earlier installed LLDB version rather than the one being
built.
To solve this, additional LLDB_TOOLS_DIR and LLDB_LIBS_DIR variables
are added and populated using LLVM_*_OUTPUT_INTDIR. Those variables
contain directories used to output built executables and libraries.
In stand-alone builds, they represent the build-tree directories
used by LLDB. In integrated builds, they have the same values as
LLVM_*_DIR and therefore using them does not harm.
The new variables are prepended to PATH and LD_LIBRARY_PATH to ensure
that freshly built binaries are preferred over potentially earlier
installed ones. Furthermore, paths used to locate various tools are
updated to match appropriate locations.
Differential Revision: https://reviews.llvm.org/D29985
llvm-svn: 295621
| -rw-r--r-- | lldb/lit/lit.cfg | 18 | ||||
| -rw-r--r-- | lldb/lit/lit.site.cfg.in | 2 |
2 files changed, 14 insertions, 6 deletions
diff --git a/lldb/lit/lit.cfg b/lldb/lit/lit.cfg index dd89b45fade..a3d5f9ca752 100644 --- a/lldb/lit/lit.cfg +++ b/lldb/lit/lit.cfg @@ -39,18 +39,24 @@ config.llvm_obj_root = getattr(config, 'llvm_obj_root', None) # Tweak the PATH to include the tools dir and the scripts dir. if lldb_obj_root is not None: + lldb_tools_dir = getattr(config, 'lldb_tools_dir', None) + if not lldb_tools_dir: + lit_config.fatal('No LLDB tools dir set!') llvm_tools_dir = getattr(config, 'llvm_tools_dir', None) if not llvm_tools_dir: lit_config.fatal('No LLVM tools dir set!') - path = os.path.pathsep.join((llvm_tools_dir, config.environment['PATH'])) + path = os.path.pathsep.join((lldb_tools_dir, llvm_tools_dir, config.environment['PATH'])) path = os.path.pathsep.join((os.path.join(getattr(config, 'llvm_src_root', None),'test','Scripts'),path)) config.environment['PATH'] = path + lldb_libs_dir = getattr(config, 'lldb_libs_dir', None) + if not lldb_libs_dir: + lit_config.fatal('No LLDB libs dir set!') llvm_libs_dir = getattr(config, 'llvm_libs_dir', None) if not llvm_libs_dir: lit_config.fatal('No LLVM libs dir set!') - path = os.path.pathsep.join((llvm_libs_dir, + path = os.path.pathsep.join((lldb_libs_dir, llvm_libs_dir, config.environment.get('LD_LIBRARY_PATH',''))) config.environment['LD_LIBRARY_PATH'] = path @@ -115,14 +121,14 @@ if config.test_exec_root is None: # Register substitutions config.substitutions.append(('%python', config.python_executable)) -debugserver = lit.util.which('debugserver', llvm_tools_dir) -lldb = lit.util.which('lldb', llvm_tools_dir) +debugserver = lit.util.which('debugserver', lldb_tools_dir) +lldb = lit.util.which('lldb', lldb_tools_dir) if not os.path.exists(config.cc): - config.cc = lit.util.which(config.cc, llvm_tools_dir) + config.cc = lit.util.which(config.cc, config.environment['PATH']) if not os.path.exists(config.cxx): - config.cxx = lit.util.which(config.cxx, llvm_tools_dir) + config.cxx = lit.util.which(config.cxx, config.environment['PATH']) if platform.system() in ['Darwin']: try: diff --git a/lldb/lit/lit.site.cfg.in b/lldb/lit/lit.site.cfg.in index 904521c9dac..03aa3df9ac5 100644 --- a/lldb/lit/lit.site.cfg.in +++ b/lldb/lit/lit.site.cfg.in @@ -6,6 +6,8 @@ config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" config.llvm_libs_dir = "@LLVM_LIBS_DIR@" config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" config.lldb_obj_root = "@LLDB_BINARY_DIR@" +config.lldb_libs_dir = "@LLVM_LIBRARY_OUTPUT_INTDIR@" +config.lldb_tools_dir = "@LLVM_RUNTIME_OUTPUT_INTDIR@" config.target_triple = "@TARGET_TRIPLE@" config.python_executable = "@PYTHON_EXECUTABLE@" config.cc = "@CMAKE_C_COMPILER@" |

