Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 18cae3c8d1c7a84d48a9bd658f9b7d6eee60f0ff
https://github.com/WebKit/WebKit/commit/18cae3c8d1c7a84d48a9bd658f9b7d6eee60f0ff
Author: Dan Blackwell <[email protected]>
Date: 2026-05-06 (Wed, 06 May 2026)
Changed paths:
M CMakePresets.json
M Source/cmake/OptionsCocoa.cmake
M Tools/Scripts/generate-cmake-xcode-project
A Tools/Scripts/tsan_suppressions.txt
Log Message:
-----------
[CMake] Add mac-tsan preset for ThreadSanitizer builds
https://bugs.webkit.org/show_bug.cgi?id=313433
Reviewed by David Kilzer.
Parallel to mac-asan: ENABLE_SANITIZERS=thread, binaryDir
WebKitBuild/cmake-mac/TSan. WebKitCompilerFlags.cmake already
handles ENABLE_SANITIZERS=thread; this just exposes it as a preset
and adds the one Mac-specific link flag.
OptionsCocoa.cmake: add -Wl,-no_compact_unwind under TSan, mirroring
Configurations/Sanitizers.xcconfig (the TSan runtime's extra
personality routine overflows ld64's compact-unwind encoding on
large frameworks). The xcconfig scopes it to four targets; applying
globally is harmless and keeps the CMake side simple.
Tools/Scripts/tsan_suppressions.txt: JSC's parallel GC has worker
threads that visit different cells in the same MarkedBlock; TSan
can't see that the mark bits partition the block into
non-overlapping work and reports every visitChildren as a race. The
concurrent JIT similarly reads object state while the mutator
writes. Suppress these by symbol so real WebCore races aren't
drowned out.
Tools/Scripts/generate-cmake-xcode-project: when the build dir was
configured with ENABLE_SANITIZERS=thread, set
TSAN_OPTIONS=suppressions=<abs path>/Tools/Scripts/tsan_suppressions.txt
in every generated scheme's LaunchAction EnvironmentVariables, so
running from the cmake-generated Xcode project picks up the
suppressions without per-user setup.
ASan and TSan are mutually exclusive (clang rejects
-fsanitize=address,thread), so this is a separate build.
* CMakePresets.json:
* Source/cmake/OptionsCocoa.cmake:
* Tools/Scripts/generate-cmake-xcode-project:
(tsan_options):
(generate_scheme):
* Tools/Scripts/tsan_suppressions.txt: Added.
Canonical link: https://commits.webkit.org/312758@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications