aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/projects/libunwind
Commit message (Collapse)AuthorAgeFilesLines
* Move libunwind out of contrib/llvm/projects.John Baldwin2019-03-1227-17312/+0
| | | | | | | | | | | Move LLVM's libunwind to its own contrib/ directory similar to other runtime libraries like libc++ and libcxxrt. Reviewed by: dim, emaste Differential Revision: https://reviews.freebsd.org/D19534 Notes: svn path=/head/; revision=345068
* Merge LLVM libunwind release_80 branch r355677 (effectively, 8.0.0 rc4).Dimitry Andric2019-03-112-8/+14
| | | | | | | | | PR: 236062 MFC after: 1 month X-MFC-With: r344779 Notes: svn path=/head/; revision=345019
* Merge LLVM libunwind trunk r351319, from just before upstream'sDimitry Andric2019-03-1128-755/+4264
| | | | | | | | | | | | release_80 branch point. Afterwards, we will merge the rest of the changes in the actual release_80 branch. PR: 236062 MFC after: 1 month X-MFC-With: r344779 Notes: svn path=/head/; revision=345018
* o Implement unw_getcontext()Ruslan Bukin2018-06-192-3/+111
| | | | | | | | | | | | | | o Restore floating-point registers in jumpto() These are required to native cross build GCC and GDB (both do require libc++ and libunwind). These are not tested. Sponsored by: DARPA, AFRL Notes: svn path=/head/; revision=335370
* Add support for MIPS to LLVM's libunwind.John Baldwin2018-03-2010-4/+1167
| | | | | | | | | | | | | | | | | | | This is originally based on a patch from David Chisnall for soft-float N64 but has since been updated to support O32, N32, and hard-float ABIs. The soft-float O32, N32, and N64 support has been committed upstream. The hard-float changes are still in review upstream. Enable LLVM_LIBUNWIND on mips when building with a suitable (C+11-capable) toolchain. This has been tested with external GCC for all ABIs and O32 and N64 with clang. Reviewed by: emaste Obtained from: CheriBSD (original N64 patch) Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D14701 Notes: svn path=/head/; revision=331244
* libunwind: use upstream patch to disable executable stacksEd Maste2017-10-113-2/+19
| | | | | | | | | | | arm uses '@' as a comment character, and cannot use @progbits in the .section directive. Apply the upstream noexec stach change which avoids this issue. Obtained from: LLVM r277868 Notes: svn path=/head/; revision=324536
* o Replace __riscv__ with __riscvRuslan Bukin2017-08-075-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o Replace __riscv64 with (__riscv && __riscv_xlen == 64) This is required to support new GCC 7.1 compiler. This is compatible with current GCC 6.1 compiler. RISC-V is extensible ISA and the idea here is to have built-in define per each extension, so together with __riscv we will have some subset of these as well (depending on -march string passed to compiler): __riscv_compressed __riscv_atomic __riscv_mul __riscv_div __riscv_muldiv __riscv_fdiv __riscv_fsqrt __riscv_float_abi_soft __riscv_float_abi_single __riscv_float_abi_double __riscv_cmodel_medlow __riscv_cmodel_medany __riscv_cmodel_pic __riscv_xlen Reviewed by: ngie Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D11901 Notes: svn path=/head/; revision=322168
* libunwind: add noexec stack annotationEd Maste2017-01-072-0/+4
| | | | | | | | | | | Reported by: vangyzen Reviewed by: kib MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D9075 Notes: svn path=/head/; revision=311647
* libunwind: make __{de,}register_frame compatible with libgcc APIEd Maste2016-12-211-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | The libgcc __register_frame and __deregister_frame functions take a pointer to a set of FDE/CIEs, terminated by an entry where length is 0. In Apple's libunwind implementation the pointer is taken to be to a single FDE. I suspect this was just an Apple bug, compensated by Apple- specific code in LLVM. See lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp and http://lists.llvm.org/pipermail/llvm-dev/2013-April/061737.html for more detail. This change is based on the LLVM RTDyldMemoryManager.cpp. It should later be changed to be alignment-safe. Reported by: dim Reviewed by: dim MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8869 Notes: svn path=/head/; revision=310365
* Implement riscv jumpto() so world can be compiled.Ruslan Bukin2016-11-101-1/+45
| | | | | | | | Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Notes: svn path=/head/; revision=308483
* libunwind: consistently add \n to log and trace messagesEd Maste2016-10-2811-149/+149
| | | | | | | | | | | | | Previously most messages included a newline in the string, but a few of them were missing. Fix these and simplify by just adding the newline in the _LIBUNWIND_LOG macro itself. While here correct 'libuwind' typo (missing 'n'). Upstream LLVM libunwind commits r280086 and r280103. Notes: svn path=/head/; revision=308006
* libunwind: correct return code in unwinding trace log messageEd Maste2016-07-291-1/+1
| | | | | | | | | Obtained from: LLVM r277215 MFC after: 3 days Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=303521
* Set real values for context/cursor sizes for RISC-V to prevent staticRuslan Bukin2016-07-221-2/+2
| | | | | | | | | | assertions. Reviewed by: emaste Sponsored by: DARPA, AFRL Notes: svn path=/head/; revision=303187
* libunwind: Properly align _Unwind_Exception.Ed Maste2016-07-201-1/+1
| | | | | | | | | | | _Unwind_Exception is required to be double word aligned. GCC has interpreted this to mean "use the maximum useful alignment for the target" so follow that lead. Obtained from: LLVM review D22543 Notes: svn path=/head/; revision=303061
* llvm-libunwind: use conventional (non-Darwin) X86 register numbersEd Maste2016-07-191-2/+2
| | | | | | | | | | | | | | | | | | | | | 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. MFC after: 3 days Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=303016
* libunwind: limit stack usage in unwind cursorEd Maste2016-07-092-1/+9
| | | | | | | | | | | | This may be reworked upstream but in the interim should address the stack usage issue reported in the PR. PR: 206384 MFC after: 1 week Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=302475
* libunwind: update to upstream snapshot r272680Ed Maste2016-07-0812-506/+580
| | | | | | | | | | | | | The key improvement is that it may be built without cross-unwinding support, which significantly reduces the stack space requirement. MFC after: 1 week Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D7123 Notes: svn path=/head/; revision=302450
* Add stubs for RISC-V ISA so libunwind can be compiled.Ruslan Bukin2016-01-227-1/+347
| | | | | | | | | | Reviewed by: emaste Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D5035 Notes: svn path=/head/; revision=294574
* libunwind: Include header for dl_unwind_find_exidx for ARM EHABIEd Maste2016-01-061-0/+1
| | | | Notes: svn path=/head/; revision=293247
* Merge LLVM libunwind revision 256779Ed Maste2016-01-046-2/+24
| | | | Notes: svn path=/head/; revision=293183
* Bring LLVM libunwind snapshot into contrib/llvm/projectsEd Maste2015-09-2325-0/+11968
Notes: svn path=/head/; revision=288151