HomeFreeBSD

MFC libunwind improvements

Description

MFC libunwind improvements

r302450: libunwind: update to upstream snapshot r272680

The key improvement is that it may be built without cross-unwinding
support, which significantly reduces the stack space requirement.

r302456: libunwind: enable only the native unwinder by default

This significantly reduces stack space requirements, and runtimes
require only native unwinding.

r302475: libunwind: limit stack usage in unwind cursor

This may be reworked upstream but in the interim should address the
stack usage issue reported in the PR.

r303016: llvm-libunwind: use conventional (non-Darwin) X86 register numbers

For historical reasons Darwin/i386 has ebp and esp swapped in the
eh_frame register numbering. That is:

          Darwin      Other
Reg #    eh_frame    eh_frame    DWARF
=====    ========    ========    =====
  4        ebp         esp        esp
  5        esp         ebp        ebp

Although the UNW_X86_* constants are not supposed to be coupled to
DWARF / eh_frame numbering they are currently conflated in LLVM
libunwind, and thus we require the non-Darwin numbering.

PR: 206384
Approved by: re (kib)
Sponsored by: The FreeBSD Foundation

Details

Provenance
emasteAuthored on
Parents
rS303195: Don't run find(1) for __MPATH with NO_MODULES set.
Branches
Unknown
Tags
Unknown