aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
diff options
context:
space:
mode:
authorKuba Mracek <mracek@apple.com>2018-02-11 19:23:42 +0000
committerKuba Mracek <mracek@apple.com>2018-02-11 19:23:42 +0000
commit3ecf9dcaf4877994903d15694c87778cc2fe94cb (patch)
tree96500fdbaca3dab9029cae606d6c9705be1a5cd4 /llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
parent3a354152dd772ced97372a9c6e5706653465a409 (diff)
downloadllvm-3ecf9dcaf4877994903d15694c87778cc2fe94cb.zip
llvm-3ecf9dcaf4877994903d15694c87778cc2fe94cb.tar.gz
llvm-3ecf9dcaf4877994903d15694c87778cc2fe94cb.tar.bz2
[compiler-rt] Replace forkpty with posix_spawn
On Darwin, we currently use forkpty to communicate with the "atos" symbolizer. There are several problems that fork or forkpty 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. Since posix_spawn doesn't fork (at least on Darwin), the interceptors are not a problem. Additionally, this also fixes a latent threading problem with ptsname (it's unsafe to use this function in multithreaded programs). Yet another benefit is that we'll handle post-fork failures (e.g. sandbox disallows "exec") gracefully now. Differential Revision: https://reviews.llvm.org/D40032 llvm-svn: 324846
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp')
0 files changed, 0 insertions, 0 deletions