[lldb] Pass CMAKE_SYSROOT through to LLDB shell tests

This allows the LLDB Shell tests to succeed in (e.g. CI) environments where
system libraries are provided hermetically as a sysroot.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D151269
This commit is contained in:
Daniel Thornburgh 2023-05-23 11:48:28 -07:00
parent e892193cc8
commit b22965df13
3 changed files with 19 additions and 0 deletions

View File

@ -73,6 +73,14 @@ parser.add_argument(
help="Include and link GNUstep libobjc2 (Windows and Linux only)",
)
parser.add_argument(
"--sysroot",
metavar="directory",
dest="sysroot",
required=False,
help="If specified, a sysroot to be passed via --sysroot",
)
if sys.platform == "darwin":
parser.add_argument(
"--apple-sdk",
@ -305,6 +313,7 @@ class Builder(object):
if args.objc_gnustep_dir
else None
)
self.sysroot = args.sysroot
def _exe_file_name(self):
assert self.mode != "compile"
@ -761,6 +770,8 @@ class GccBuilder(Builder):
args.extend(
["-Xclang", "-gcodeview", "-Xclang", "--dependent-lib=msvcrtd"]
)
elif self.sysroot:
args.extend(["--sysroot", self.sysroot])
if self.std:
args.append("-std={0}".format(self.std))
@ -797,6 +808,8 @@ class GccBuilder(Builder):
args.extend(
["-fuse-ld=lld-link", "-g", "-Xclang", "--dependent-lib=msvcrtd"]
)
elif self.sysroot:
args.extend(["--sysroot", self.sysroot])
return ("linking", self._obj_file_names(), self._exe_file_name(), None, args)

View File

@ -47,6 +47,8 @@ def use_lldb_substitutions(config):
build_script_args.append(
'--objc-gnustep-dir="{0}"'.format(config.objc_gnustep_dir)
)
if config.cmake_sysroot:
build_script_args.append("--sysroot={0}".format(config.cmake_sysroot))
lldb_init = _get_lldb_init_path(config)
@ -160,6 +162,9 @@ def use_support_substitutions(config):
# The clang module cache is used for building inferiors.
host_flags += ["-fmodules-cache-path={}".format(config.clang_module_cache)]
if config.cmake_sysroot:
host_flags += ["--sysroot={}".format(config.cmake_sysroot)]
host_flags = " ".join(host_flags)
config.substitutions.append(("%clang_host", "%clang " + host_flags))
config.substitutions.append(("%clangxx_host", "%clangxx " + host_flags))

View File

@ -13,6 +13,7 @@ config.lldb_tools_dir = lit_config.substitute("@LLDB_TOOLS_DIR@")
# Since it comes from the command line, it may have backslashes which
# should not need to be escaped.
config.lldb_lit_tools_dir = lit_config.substitute(r"@LLDB_LIT_TOOLS_DIR@")
config.cmake_sysroot = lit_config.substitute("@CMAKE_SYSROOT@")
config.target_triple = "@LLVM_TARGET_TRIPLE@"
config.python_executable = "@Python3_EXECUTABLE@"
config.have_zlib = @LLVM_ENABLE_ZLIB@