llvm-project/compiler-rt
Calixte Denizet 88f5bf77f9 [compiler-rt] Add a critical section when flushing gcov counters
Summary:
Counters can be flushed in a multi-threaded context for example when the process is forked in different threads (https://github.com/llvm/llvm-project/blob/master/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp#L632-L663).
In order to avoid pretty bad things, a critical section is needed around the flush.
We had a lot of crashes in this code in Firefox CI when we switched to clang for linux ccov builds and those crashes disappeared with this patch.

Reviewers: marco-c, froydnj, dmajor, davidxl

Reviewed By: marco-c, dmajor

Subscribers: froydnj, dmajor, dberris, jfb, #sanitizers, llvm-commits, sylvestre.ledru

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D70910
2019-12-09 10:39:55 +01:00
..
cmake [CMake] Use correct include path for InstrProfData.inc on Darwin 2019-11-24 13:26:01 -08:00
docs
include [compiler-rt] FuzzedDataProvider: do not call memcpy on empty vector. 2019-12-04 14:18:52 -08:00
lib [compiler-rt] Add a critical section when flushing gcov counters 2019-12-09 10:39:55 +01:00
test [compiler-rt] [test] Disable ASLR on ASAN/MSAN/TSAN tests on NetBSD 2019-12-06 08:09:01 +01:00
tools Add GWP-ASan fuzz target to compiler-rt/tools. 2019-08-27 18:28:07 +00:00
unittests [compiler-rt] Rename lit.*.cfg.* -> lit.*.cfg.py.* 2019-06-27 20:56:04 +00:00
utils [compiler-rt] Sync NetBSD syscall hooks with 9.99.17 2019-11-03 16:22:02 +01:00
www [www] Change URLs to HTTPS. 2019-10-24 13:25:15 -07:00
.arcconfig [compiler-rt] Set up .arcconfig to point to new Diffusion CRT repository 2017-12-06 20:55:32 +00:00
.gitignore Add .pyc files to .gitignore to compiler-rt 2017-07-24 21:51:12 +00:00
CMakeLists.txt Fix include guard and properly order __deregister_frame_info. 2019-11-12 14:54:41 -08:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
README.txt

README.txt

Compiler-RT
================================

This directory and its subdirectories contain source code for the compiler
support routines.

Compiler-RT is open source software. You may freely distribute it under the
terms of the license agreement found in LICENSE.txt.

================================