Commit e97b489f authored by Tom Stellard's avatar Tom Stellard
Browse files

Merging r309979:

------------------------------------------------------------------------
r309979 | mgorny | 2017-08-03 12:41:33 -0700 (Thu, 03 Aug 2017) | 16 lines

[test] Fix clang library dir in LD_LIBRARY_PATH For stand-alone build

Prepend the clang library directory (determined using SHLIBDIR, alike
in clang) to the LD_LIBRARY_PATH to ensure that just-built clang
libraries will be used instead of a previous installed version.

When a stand-alone build is performed, LLVM_LIBS_DIR contains the path
to installed LLVM library directory. The same directory frequently
contains a previously installed version of clang. SHLIBDIR, on the other
hand, is always the build-tree directory, and therefore contains
the freshly built clang libraries.

In a non-stand-alone build, both paths will be the same and therefore
including them both will not cause any issues.

Differential Revision: https://reviews.llvm.org/D30155
------------------------------------------------------------------------

llvm-svn: 315224
parent 9fd74c16
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -41,14 +41,17 @@ elif platform.system() == 'Windows':
    shlibpath_var = 'PATH'

# Point the dynamic loader at dynamic libraries in 'lib'.
shlibdir = getattr(config, 'shlibdir', None)
if not shlibdir:
    lit_config.fatal('No shlibdir set!')
llvm_libs_dir = getattr(config, 'llvm_libs_dir', None)
if not llvm_libs_dir:
    lit_config.fatal('No LLVM libs dir set!')
shlibpath = os.path.pathsep.join((llvm_libs_dir,
shlibpath = os.path.pathsep.join((shlibdir, llvm_libs_dir,
                                 config.environment.get(shlibpath_var,'')))

# Win32 seeks DLLs along %PATH%.
if sys.platform in ['win32', 'cygwin'] and os.path.isdir(config.shlibdir):
    shlibpath = os.path.pathsep.join((config.shlibdir, shlibpath))
if sys.platform in ['win32', 'cygwin'] and os.path.isdir(shlibdir):
    shlibpath = os.path.pathsep.join((shlibdir, shlibpath))

config.environment[shlibpath_var] = shlibpath
+4 −1
Original line number Diff line number Diff line
@@ -99,10 +99,13 @@ if clang_tools_binary_dir is not None:
            clang_tools_dir, llvm_tools_dir, config.environment['PATH']))
    config.environment['PATH'] = path

    clang_libs_dir = getattr(config, 'clang_libs_dir', None)
    if not clang_libs_dir:
        lit_config.fatal('No Clang 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((clang_libs_dir, llvm_libs_dir,
                                 config.environment.get('LD_LIBRARY_PATH','')))
    config.environment['LD_LIBRARY_PATH'] = path

+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ config.llvm_libs_dir = "@LLVM_LIBS_DIR@"
config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@"
config.clang_tools_binary_dir = "@CLANG_TOOLS_BINARY_DIR@"
config.clang_tools_dir = "@CLANG_TOOLS_DIR@"
config.clang_libs_dir = "@SHLIBDIR@"
config.python_executable = "@PYTHON_EXECUTABLE@"
config.target_triple = "@TARGET_TRIPLE@"