llvm-project/compiler-rt/test/asan
Julian Lettner 399408a92f [sanitizer_common] Replace forkpty with posix_spawn on Darwin
On Darwin, we currently use forkpty to communicate with the "atos"
symbolizer. There are several problems that fork[pty] has, e.g. that
after fork, interceptors are still active and this sometimes causes
crashes or hangs. This is especially problematic for TSan, which uses
interceptors for OS-provided locks and mutexes, and even Libc functions
use those.

This patch replaces forkpty with posix_spawn on Darwin. Since
posix_spawn doesn't fork (at least on Darwin), the interceptors are not
a problem. Another benefit is that we'll handle post-fork failures (e.g.
sandbox disallows "exec") gracefully now.

Related revisions and previous attempts that were blocked by or had to
be revered due to test failures:
https://reviews.llvm.org/D48451
https://reviews.llvm.org/D40032

Reviewed By: kubamracek

Differential Revision: https://reviews.llvm.org/D65253

llvm-svn: 368947
2019-08-15 00:18:55 +00:00
..
TestCases [sanitizer_common] Replace forkpty with posix_spawn on Darwin 2019-08-15 00:18:55 +00:00
Unit Add support for FreeBSD's LD_32_LIBRARY_PATH 2019-08-10 19:07:38 +00:00
CMakeLists.txt Enable compiler-rt on SPARC 2019-07-12 08:30:17 +00:00
lit.cfg.py Add support for FreeBSD's LD_32_LIBRARY_PATH 2019-08-10 19:07:38 +00:00
lit.site.cfg.py.in [compiler-rt] Rename lit.*.cfg.* -> lit.*.cfg.py.* 2019-06-27 20:56:04 +00:00