diff --git a/lldb/packages/Python/lldbsuite/test/builders/builder.py b/lldb/packages/Python/lldbsuite/test/builders/builder.py index 564918c58b6dd..e3099219e437e 100644 --- a/lldb/packages/Python/lldbsuite/test/builders/builder.py +++ b/lldb/packages/Python/lldbsuite/test/builders/builder.py @@ -110,6 +110,10 @@ def getToolchainSpec(self, compiler): if not cc: return [] + exe_ext = "" + if lldbplatformutil.getHostPlatform() == "windows": + exe_ext = ".exe" + cc = cc.strip() cc_path = pathlib.Path(cc) @@ -149,9 +153,9 @@ def getToolchainSpec(self, compiler): cc_dir = cc_path.parent def getToolchainUtil(util_name): - return cc_dir / (cc_prefix + util_name + cc_ext) + return os.path.join(configuration.llvm_tools_dir, util_name + exe_ext) - cxx = getToolchainUtil(cxx_type) + cxx = cc_dir / (cc_prefix + cxx_type + cc_ext) util_names = { "OBJCOPY": "objcopy", @@ -161,6 +165,10 @@ def getToolchainUtil(util_name): } utils = [] + # Required by API TestBSDArchives.py tests. + if not os.getenv("LLVM_AR"): + utils.extend(["LLVM_AR=%s" % getToolchainUtil("llvm-ar")]) + if not lldbplatformutil.platformIsDarwin(): if cc_type in ["clang", "cc", "gcc"]: util_paths = {} diff --git a/lldb/packages/Python/lldbsuite/test/configuration.py b/lldb/packages/Python/lldbsuite/test/configuration.py index 27eef040497d1..1bacd74a968c3 100644 --- a/lldb/packages/Python/lldbsuite/test/configuration.py +++ b/lldb/packages/Python/lldbsuite/test/configuration.py @@ -118,6 +118,9 @@ # same base name. all_tests = set() +# Path to LLVM tools to be used by tests. +llvm_tools_dir = None + # LLDB library directory. lldb_libs_dir = None lldb_obj_root = None diff --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py index f14a00a2394b0..b1ae896d3fd3b 100644 --- a/lldb/packages/Python/lldbsuite/test/dotest.py +++ b/lldb/packages/Python/lldbsuite/test/dotest.py @@ -280,6 +280,7 @@ def parseOptionsAndInitTestdirs(): "xcrun -find -toolchain default dsymutil" ) if args.llvm_tools_dir: + configuration.llvm_tools_dir = args.llvm_tools_dir configuration.filecheck = shutil.which("FileCheck", path=args.llvm_tools_dir) configuration.yaml2obj = shutil.which("yaml2obj", path=args.llvm_tools_dir) diff --git a/lldb/test/API/functionalities/archives/Makefile b/lldb/test/API/functionalities/archives/Makefile index c4c593e6db051..4b9696e26b575 100644 --- a/lldb/test/API/functionalities/archives/Makefile +++ b/lldb/test/API/functionalities/archives/Makefile @@ -12,12 +12,10 @@ libfoo.a: a.o b.o # This tests whether lldb can load a thin archive libbar.a: c.o - $(eval LLVM_AR := $(LLVM_TOOLS_DIR)/llvm-ar) $(eval LLVM_ARFLAGS := -rcsDT) $(LLVM_AR) $(LLVM_ARFLAGS) $@ $^ libfoo-thin.a: a.o b.o - $(eval LLVM_AR := $(LLVM_TOOLS_DIR)/llvm-ar) $(eval LLVM_ARFLAGS := -rcsUT) $(LLVM_AR) $(LLVM_ARFLAGS) $@ $^