Commit dcab9736 authored by Michał Górny's avatar Michał Górny
Browse files

[lldb] [test] Pass LLVM_LIBS_DIR from CMake for linking liblldb

Pass the correct library directory from CMake to dotest.py when linking
liblldb, instead of trying to reconstruct the path from executable path.
This fixes link failures on platforms having non-null
LLVM_LIBDIR_SUFFIX.

Differential Revision: https://reviews.llvm.org/D73767
parent 096cd991
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -136,6 +136,10 @@ rerun_all_issues = False
# same base name.
all_tests = set()

# LLDB library directory.
lldb_libs_dir = None


def shouldSkipBecauseOfCategories(test_categories):
    if use_categories:
        if len(test_categories) == 0 or len(
+4 −4
Original line number Diff line number Diff line
@@ -452,6 +452,9 @@ def parseOptionsAndInitTestdirs():

    os.environ['CLANG_MODULE_CACHE_DIR'] = configuration.clang_module_cache_dir

    if args.lldb_libs_dir:
        configuration.lldb_libs_dir = args.lldb_libs_dir

    # Gather all the dirs passed on the command line.
    if len(args.args) > 0:
        configuration.testdirs = [os.path.realpath(os.path.abspath(x)) for x in args.args]
@@ -559,10 +562,7 @@ def setupSysPath():
    # confusingly, this is the "bin" directory
    lldbLibDir = os.path.dirname(lldbtest_config.lldbExec)
    os.environ["LLDB_LIB_DIR"] = lldbLibDir
    lldbImpLibDir = os.path.join(
        lldbLibDir,
        '..',
        'lib') if sys.platform.startswith('win32') else lldbLibDir
    lldbImpLibDir = configuration.lldb_libs_dir
    os.environ["LLDB_IMPLIB_DIR"] = lldbImpLibDir
    print("LLDB library dir:", os.environ["LLDB_LIB_DIR"])
    print("LLDB import library dir:", os.environ["LLDB_IMPLIB_DIR"])
+5 −0
Original line number Diff line number Diff line
@@ -172,6 +172,11 @@ def create_parser():
        dest='clang_module_cache_dir',
        metavar='The clang module cache directory used by Clang',
        help='The clang module cache directory used in the Make files by Clang while building tests. Defaults to <test build directory>/module-cache-clang.')
    group.add_argument(
        '--lldb-libs-dir',
        dest='lldb_libs_dir',
        metavar='path',
        help='The path to LLDB library directory (containing liblldb)')

    # Configuration options
    group = parser.add_argument_group('Remote platform options')
+4 −4
Original line number Diff line number Diff line
@@ -1399,7 +1399,7 @@ class Base(unittest2.TestCase):
        stdflag = self.getstdFlag()
        stdlibflag = self.getstdlibFlag()

        lib_dir = os.environ["LLDB_LIB_DIR"]
        lib_dir = configuration.lldb_libs_dir
        if self.hasDarwinFramework():
            d = {'CXX_SOURCES': sources,
                 'EXE': exe_name,
@@ -1426,7 +1426,7 @@ class Base(unittest2.TestCase):
                                                 os.path.join(
                                                     os.environ["LLDB_SRC"],
                                                     "include")),
                'LD_EXTRAS': "-L%s/../lib -llldb -Wl,-rpath,%s/../lib" % (lib_dir, lib_dir)}
                'LD_EXTRAS': "-L%s -llldb -Wl,-rpath,%s" % (lib_dir, lib_dir)}
        if self.TraceOn():
            print(
                "Building LLDB Driver (%s) from sources %s" %
@@ -1439,7 +1439,7 @@ class Base(unittest2.TestCase):

        stdflag = self.getstdFlag()

        lib_dir = os.environ["LLDB_LIB_DIR"]
        lib_dir = configuration.lldb_libs_dir
        if self.hasDarwinFramework():
            d = {'DYLIB_CXX_SOURCES': sources,
                 'DYLIB_NAME': lib_name,
@@ -1464,7 +1464,7 @@ class Base(unittest2.TestCase):
                                                    os.path.join(
                                                        os.environ["LLDB_SRC"],
                                                        "include")),
                'LD_EXTRAS': "-shared -L%s/../lib -llldb -Wl,-rpath,%s/../lib" % (lib_dir, lib_dir)}
                'LD_EXTRAS': "-shared -L%s -llldb -Wl,-rpath,%s" % (lib_dir, lib_dir)}
        if self.TraceOn():
            print(
                "Building LLDB Library (%s) from sources %s" %
+3 −0
Original line number Diff line number Diff line
@@ -114,6 +114,9 @@ if config.dsymutil:
if config.filecheck:
  dotest_cmd += ['--filecheck', config.filecheck]

if config.lldb_libs_dir:
  dotest_cmd += ['--lldb-libs-dir', config.lldb_libs_dir]

# We don't want to force users passing arguments to lit to use `;` as a
# separator. We use Python's simple lexical analyzer to turn the args into a
# list. Pass there arguments last so they can override anything that was
Loading