]> granicus.if.org Git - llvm/commit
Disable sigaltstack on Apple platforms
authorBob Wilson <bob.wilson@apple.com>
Fri, 6 Jan 2017 02:26:30 +0000 (02:26 +0000)
committerBob Wilson <bob.wilson@apple.com>
Fri, 6 Jan 2017 02:26:30 +0000 (02:26 +0000)
commit80617ba8c4df31530fb57284627074a71e8b05d7
treef2d597673128e4c99c50db959f93f36f44af33c9
parentd99c9887330e8e14052bbd5e4fada9310dbaa450
Disable sigaltstack on Apple platforms

Using sigaltstack on Apple platforms is a bad idea. Darwin's backtrace()
function does not work with sigaltstack, and my change in r286851 was
supposed to solve that by using _Unwind_Backtrace instead. I tested that
_Unwind_Backtrace works for crashes but then discovered that it does not
work for assertion failures when using sigaltstack, at least on macOS.
The stack trace shows only the frames on the alternate stack.
I also saw some reports of this happening for crashes, but it fails
consistently for assertion failures. I tried various things to get it to
work but the problem seems to be in _Unwind_Backtrace itself. Disabling
sigaltstack is unfortunate since it would be nice to get backtraces for
stack overflows, but at least this gets us backtraces for the more common
cases. rdar://problem/29662459

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291206 91177308-0d34-0410-b5e6-96231b3b80d8
cmake/config-ix.cmake