-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Closed
Labels
Description
Hi,
The following RUN
line from async-group.mlir leads to ODR violation:
// RUN: | mlir-cpu-runner \
// RUN: -e main -entry-point-result=void -O0 \
// RUN: -shared-libs=%mlir_c_runner_utils \
// RUN: -shared-libs=%mlir_runner_utils \
// RUN: -shared-libs=%mlir_async_runtime \
Specifically, on my development AArch64 machine running Linux (I doubt the platform actually matters), I see the following:
$ nm libmlir_async_runtime.so | grep EnableABIBreakingChecks
000000000038cb80 B _ZN4llvm23EnableABIBreakingChecksE
$ nm mlir-cpu-runner | grep EnableABIBreakingChecks
000000000474364c B _ZN4llvm23EnableABIBreakingChecksE
And indeed, ASan is able to identify the invocation from async-group.mlir
as ODR violation, see sanitizer-x86_64-linux-fast.
This patch implements a workaround that helps silence ASan (there's also a bit more discussion there):
However, that's not a proper solution. To me it feels that libmlir_async_runtime.so
should be refactored to fix this, but this isn't really my area of expertise and recommendations (as well as volunteers) are welcome :)
-Andrzej