[Lldb-commits] [lldb] [lldb] Add ability to detect darwin host linker version to xfail tests (PR #83941)
Dave Lee via lldb-commits
lldb-commits at lists.llvm.org
Tue Mar 5 07:16:45 PST 2024
================
@@ -333,3 +335,41 @@ def expectedCompiler(compilers):
return True
return False
+
+
+# This is a helper function to determine if a specific version of Xcode's linker
+# contains a TLS bug. We want to skip TLS tests if they contain this bug, but
+# adding a linker/linker_version conditions to a decorator is challenging due to
+# the number of ways linkers can enter the build process.
+def darwinLinkerHasTLSBug():
+ """Returns true iff a test is running on a darwin platform and the host linker is between versions 1000 and 1109."""
+ darwin_platforms = lldbplatform.translate(lldbplatform.darwin_all)
+ if getPlatform() not in darwin_platforms:
+ return False
+
+ linker_path = (
+ subprocess.check_output(["xcrun", "--find", "ld"]).rstrip().decode("utf-8")
+ )
+ if not is_exe(linker_path):
+ return False
+
+ raw_linker_info = (
+ subprocess.check_output([linker_path, "-version_details"])
+ .rstrip()
+ .decode("utf-8")
+ )
+ parsed_linker_info = json.loads(raw_linker_info)
+ if "version" not in parsed_linker_info:
+ return False
+
+ raw_version = parsed_linker_info["version"]
+ version = None
+ try:
+ version = int(raw_version)
+ except:
+ return False
+
+ if version is None:
+ return False
+
+ return 1000 <= version and version <= 1109
----------------
kastiglione wrote:
```suggestion
try:
version = int(raw_version)
return 1000 <= version <= 1109
except:
return False
```
https://github.com/llvm/llvm-project/pull/83941
More information about the lldb-commits
mailing list