[Mlir-commits] [mlir] MLIR: asan: Fix python tests under asan on Linux (PR #123303)
Matthias Gehre
llvmlistbot at llvm.org
Fri Jan 17 00:57:19 PST 2025
https://github.com/mgehre-amd updated https://github.com/llvm/llvm-project/pull/123303
>From 62400c84195e3c8f9868660701fd4cfc4b2576b3 Mon Sep 17 00:00:00 2001
From: Philipp-Jan Honysz <Philipp.Honysz at amd.com>
Date: Mon, 6 Jan 2025 21:33:25 +0000
Subject: [PATCH] MLIR: asan: Fix python tests under asan on Linux
Running MLIR python tests unders asan currently fails with
```
```
because lit doesn't quite understand the syntax.
To fix, we resolve the path to `libclang_rt.asan-x86_64.so` within the lit configuration.
This has the additional benefit that we don't have to call `clang++` for every test.
---
mlir/test/lit.cfg.py | 39 ++++++++++++++++++++++++++++-----------
1 file changed, 28 insertions(+), 11 deletions(-)
diff --git a/mlir/test/lit.cfg.py b/mlir/test/lit.cfg.py
index c28623123d9991..cbdac91d5ba7d1 100644
--- a/mlir/test/lit.cfg.py
+++ b/mlir/test/lit.cfg.py
@@ -82,17 +82,32 @@ def add_runtime(name):
# available. This is darwin specific since it's currently only needed on darwin.
# Stolen from llvm/test/lit.cfg.py with a few modifications
def get_asan_rtlib():
- if not "asan" in config.available_features or not "Darwin" in config.host_os:
+ if not "asan" in config.available_features:
return ""
- # Find the asan rt lib
- resource_dir = (
- subprocess.check_output([config.host_cc.strip(), "-print-resource-dir"])
- .decode("utf-8")
- .strip()
- )
- return os.path.join(
- resource_dir, "lib", "darwin", "libclang_rt.asan_osx_dynamic.dylib"
- )
+
+ if "Darwin" in config.host_os:
+ # Find the asan rt lib
+ resource_dir = (
+ subprocess.check_output([config.host_cc.strip(), "-print-resource-dir"])
+ .decode("utf-8")
+ .strip()
+ )
+ return os.path.join(
+ resource_dir, "lib", "darwin", "libclang_rt.asan_osx_dynamic.dylib"
+ )
+ if "Linux" in config.host_os:
+ return (
+ subprocess.check_output(
+ [
+ config.host_cxx.strip(),
+ f"-print-file-name=libclang_rt.asan-{config.host_arch}.so",
+ ]
+ )
+ .decode("utf-8")
+ .strip()
+ )
+
+ return ""
# On macOS, we can't do the DYLD_INSERT_LIBRARIES trick with a shim python
@@ -247,7 +262,9 @@ def find_real_python_interpreter():
# TODO: detect Windows situation (or mark these tests as unsupported on these platforms).
if "asan" in config.available_features:
if "Linux" in config.host_os:
- python_executable = f"LD_PRELOAD=$({config.host_cxx} -print-file-name=libclang_rt.asan-{config.host_arch}.so) {config.python_executable}"
+ python_executable = (
+ f"env LD_PRELOAD={get_asan_rtlib()} {config.python_executable}"
+ )
if "Darwin" in config.host_os:
# Ensure we use a non-shim Python executable, for the `DYLD_INSERT_LIBRARIES`
# env variable to take effect
More information about the Mlir-commits
mailing list