[vm] Fix TSAN symbolization for Mac.

TEST=tsan
Change-Id: I44456d685737c0fe59c25d0f2cc9f6fc8a4ded56
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/456106
Reviewed-by: Liam Appelbe <liama@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
Ryan Macnak
2025-10-20 15:58:20 -07:00
committed by Commit Queue
parent fd7ddd4cd0
commit f8e61ad148
2 changed files with 11 additions and 6 deletions
+2 -2
View File
@@ -4,7 +4,6 @@
#include "vm/tsan_symbolize.h"
#include "include/dart_api.h"
#include "platform/atomic.h"
#include "platform/thread_sanitizer.h"
#include "vm/code_descriptors.h"
@@ -153,7 +152,8 @@ typedef void (*AddFrame)(void* ctxt,
// then symbolize using our normal PC descriptors, etc, but this function must
// not call any function that has been instrumented by TSAN or it might deadlock
// during __tsan_func_entry.
DART_EXPORT NO_SANITIZE_THREAD DISABLE_SANITIZER_INSTRUMENTATION void
extern "C" __attribute__((visibility("default")))
__attribute((used)) NO_SANITIZE_THREAD DISABLE_SANITIZER_INSTRUMENTATION void
__tsan_symbolize_external_ex(uintptr_t pc, AddFrame add_frame, void* ctxt) {
const uword lookup_pc = pc & ~kExternalPCBit;
+9 -4
View File
@@ -337,12 +337,17 @@
"vm-msan-linux-(debug|product|release)-(x64|arm64|simarm64|simriscv64)": {},
"vm-tsan-(linux|mac)-(debug|product|release)-(x64|arm64|simarm64|simriscv64)": {},
"vm-ubsan-(linux|mac|win)-(debug|product|release)-(ia32|x64|arm64|simarm|simarm64|simriscv32|simriscv64)": {},
"vm-aot-asan-(linux|mac|win)-(debug|product|release)-(x64|arm64|simarm|simarm64|simriscv32|simriscv64)": {
"vm-aot-(asan|lsan|tsan|ubsan)-mac-(debug|product|release)-(x64|arm64|simarm64)": {
"options": {
"gen-snapshot-format": "macho-dylib"
}
},
"vm-aot-asan-(linux|win)-(debug|product|release)-(x64|arm64|simarm|simarm64|simriscv32|simriscv64)": {
"options": {
"gen-snapshot-format": "elf"
}
},
"vm-aot-lsan-(linux|mac)-(debug|product|release)-(x64|arm64|simarm|simarm64|simriscv32|simriscv64)": {
"vm-aot-lsan-linux-(debug|product|release)-(x64|arm64|simarm|simarm64|simriscv32|simriscv64)": {
"options": {
"gen-snapshot-format": "elf"
}
@@ -352,12 +357,12 @@
"gen-snapshot-format": "elf"
}
},
"vm-aot-tsan-(linux|mac)-(debug|product|release)-(x64|arm64|simarm64|simriscv64)": {
"vm-aot-tsan-linux-(debug|product|release)-(x64|arm64|simarm64|simriscv64)": {
"options": {
"gen-snapshot-format": "elf"
}
},
"vm-aot-ubsan-(linux|mac|win)-(debug|product|release)-(x64|arm64|simarm|simarm64|simriscv32|simriscv64)": {
"vm-aot-ubsan-(linux|win)-(debug|product|release)-(x64|arm64|simarm|simarm64|simriscv32|simriscv64)": {
"options": {
"gen-snapshot-format": "elf"
}