Fork the current version of tsan runtime before commiting
rewrite of the runtime (D112603). The old runtime can be
enabled with TSAN_USE_OLD_RUNTIME option.
This is a temporal measure for emergencies and is required
for Chromium rollout (for context see http://crbug.com/1275581).
The old runtime is supposed to be deleted soon.
Details
- Reviewers
thakis hans melver vitalybuka - Commits
- rG8e93d4c996c0: tsan: fork runtime
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Nico, how will we understand when Chromium does not need this anymore? Do you have any approx estimation of how long will it take (week, month)?
Thanks!
From a Chromium PoV, we can remove this once we manage to update to a version where everything (clang, llvm, tools -- not just compiler-rt) works with TSAN_USE_OLD_RUNTIME=ON(so we can roll to that version) and with TSAN_USE_OLD_RUNTIME=OFF (so we can switch to the new runtime at that revision).
If everything just works, that's doable in a week. If something's broken, it'll take longer, depending on what is broken.
compiler-rt/lib/tsan/CMakeLists.txt | ||
---|---|---|
19–24 | (very nit: s/temporal/temporary/ i think. not a native speaker, but i think "temporaly" means "time-related" while "temporary" means "for a short time") |
(And, as said on our upstream bug, I think much of the benefit is for other projects out there using tsan. Chromium's problems are likely all figured out by now. For other projects, it might be polite to keep this in for a while unless it's a lot of work to maintain and/or you're very confident that the new runtime has no regressions.)
(very nit: s/temporal/temporary/ i think. not a native speaker, but i think "temporaly" means "time-related" while "temporary" means "for a short time")