diff options
author | emaste <emaste@FreeBSD.org> | 2016-07-22 17:34:28 +0000 |
---|---|---|
committer | emaste <emaste@FreeBSD.org> | 2016-07-22 17:34:28 +0000 |
commit | 5aa5e047c6830259149520f8dec281e51445a349 (patch) | |
tree | 2abc045f4630fb0b34d5a620abbdea44e298b5e0 /contrib/llvm/projects/libunwind/src/AddressSpace.hpp | |
parent | f2acc91a2a10293e24f37092986ca685dcfa04e4 (diff) | |
download | FreeBSD-src-5aa5e047c6830259149520f8dec281e51445a349.zip FreeBSD-src-5aa5e047c6830259149520f8dec281e51445a349.tar.gz |
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
Diffstat (limited to 'contrib/llvm/projects/libunwind/src/AddressSpace.hpp')
-rw-r--r-- | contrib/llvm/projects/libunwind/src/AddressSpace.hpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/contrib/llvm/projects/libunwind/src/AddressSpace.hpp b/contrib/llvm/projects/libunwind/src/AddressSpace.hpp index 55828df..74294a3 100644 --- a/contrib/llvm/projects/libunwind/src/AddressSpace.hpp +++ b/contrib/llvm/projects/libunwind/src/AddressSpace.hpp @@ -35,7 +35,7 @@ namespace libunwind { #include "Registers.hpp" #if _LIBUNWIND_ARM_EHABI -#if defined(__FreeBSD__) +#if defined(__FreeBSD__) || defined(__NetBSD__) #include <sys/link_elf.h> typedef void *_Unwind_Ptr; @@ -62,7 +62,8 @@ extern EHTEntry __exidx_end; #endif // !defined(_LIBUNWIND_IS_BAREMETAL) #endif // _LIBUNWIND_ARM_EHABI -#if defined(__CloudABI__) || defined(__FreeBSD__) || defined(__linux__) +#if defined(__CloudABI__) || defined(__FreeBSD__) || defined(__linux__) || \ + defined(__NetBSD__) #if _LIBUNWIND_SUPPORT_DWARF_UNWIND && _LIBUNWIND_SUPPORT_DWARF_INDEX #include <link.h> // Macro for machine-independent access to the ELF program headers. This |