summaryrefslogtreecommitdiffstats
path: root/libcxxabi/src/Unwind/AddressSpace.hpp
Commit message (Collapse)AuthorAgeFilesLines
* libc++abi: remove the duplicated unwind contentSaleem Abdulrasool2015-04-241-579/+0
| | | | | | | | | | The unwinder has been moved into its own project setup at http://svn.llvm.org/projects/libunwind/trunk. This simply removes the now duplicated content. This move was previously discussed on llvmdev at [1]. [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-January/081507.html llvm-svn: 235759
* Also use dl_iterate_phdr() on CloudABI.Ed Schouten2015-03-311-1/+1
| | | | | | | | | | The unwinder now works on CloudABI. All exception-related libc++ tests now pass. This change was actually part of D8169, which also adds support for FreeBSD. That, however, still requires some more polishing. llvm-svn: 233676
* Unwind: make it build on Darwin againSaleem Abdulrasool2015-02-281-2/+5
| | | | | | | The support for the LSB eh_frame_hdr extension was overzealous in trying to include headers. Be more careful to permit building on Darwin. llvm-svn: 230837
* Add .eh_frame_hdr search to Linux unwinder.Dan Albert2015-02-271-6/+74
| | | | | | | | | | | This improves the performance of unwinding on DWARF based targets. The 32-bit x86 support for scanning the full eh_frame (CFI_Parser::findFDE) apparently does not work (at least not on Linux). Since the eh_frame_hdr code delegates to that, this still doesn't work for x86 Linux, but it has been tested on x86_64 Linux and aarch64 Android. llvm-svn: 230802
* Some more -Wundef issues.Dan Albert2015-02-051-3/+3
| | | | | | This should be all of them for Linux. Might be some for the others. llvm-svn: 228267
* Enable -Wundef.Dan Albert2015-02-051-11/+11
| | | | | | | | The problem that caused the need for http://reviews.llvm.org/D7419 was caused by testing the value of something that was undefined. This should prevent that in the future. llvm-svn: 228257
* Fix some formatting I messed up in r225187.Dan Albert2015-01-051-1/+1
| | | | llvm-svn: 225194
* Make the Unwinder -Werror clean.Dan Albert2015-01-051-1/+1
| | | | | | | Mostly just format string fixes. Tested clean on arm, x86, and x86_64 Linux. llvm-svn: 225187
* Add baremetal ARM support to libcxxabi/libunwindJonathan Roelofs2014-08-211-2/+23
| | | | | | http://reviews.llvm.org/D4993 llvm-svn: 216202
* Silence the implicit signed/unsigned conversion warning.Logan Chien2014-06-271-1/+1
| | | | llvm-svn: 211912
* Silence unused variable and parameter warnings.Logan Chien2014-06-261-0/+2
| | | | llvm-svn: 211790
* Fix linux build.Logan Chien2014-06-261-8/+10
| | | | | | | | | * Replace strlcpy with snprintf since strlcpy is not available in glibc. * Replace __LINUX__ with __linux__. llvm-svn: 211784
* Start landing support for ARM EHABI unwinding.Nico Weber2014-06-251-4/+30
| | | | | | | | The new code will be behind a LIBCXXABI_ARM_EHABI define (so that platforms that don't want it can continue using e.g. SJLJ). This commit mostly just adds the LIBCXXABI_ARM_EHABI define. llvm-svn: 211739
* Fix cast warningNick Kledzik2014-04-281-2/+2
| | | | llvm-svn: 207469
* Fixes type of dyldInfo for glibc/bionic systemsDan Albert2014-04-231-1/+1
| | | | | | | Darwin and the BSDs define a tagged struct dl_info typedef'd as Dl_info. glibc and bionic typedef an anonymous struct as Dl_info. llvm-svn: 206939
* Properly sign extend sdata2/4 in unwinder. Patch by Patrick WildtNick Kledzik2014-04-121-2/+4
| | | | llvm-svn: 206122
* The content of .eh_frame may be misaligned, so use memcpy. This is seenJoerg Sonnenberger2014-04-081-7/+31
| | | | | | in the wild on SH3. llvm-svn: 205756
* Fix unwinder to build for iOSNick Kledzik2014-01-231-2/+3
| | | | llvm-svn: 199859
* [unwind] remove darwin build dependency on <mach-o/dyld_priv.h>Nick Kledzik2013-12-051-1/+42
| | | | llvm-svn: 196436
* libcxxabi contains the runtime support for C++. But, as some folks have Nick Kledzik2013-10-071-0/+389
realized, it is not complete. It relies on some _Unwind_* functions to be supplied by the OS. That means it cannot be ported to platforms that don’t already have an unwinder. Years ago Apple wrote its own unwinder for MacOSX and iOS. To make libcxxabi complete, Apple has decided the source code for its unwinder can be contributed to the open source LLVM libcxxabi project, with a dual licensed under LLVM and MIT license. So, I’ve spent some time cleaning up the sources to make them conform with LLVM style and to conditionalize the sources in a way that should make it easier to port to other platforms. The sources are in a separate "Unwind" directory under "src" in libcxxabi. Background: Most architectures now use "zero cost" exceptions for C++. The zero cost means there are no extra instructions executed if no exceptions are thrown. But if an exception is thrown, the runtime must consult side tables and figure out how to restore registers and "unwind" from the current stack frame to the catch clause. That ability to modify the stack frames and cause the thread to resume in a catch clause with all registers restored properly is the main purpose of the unwinder. This unwinder has two levels of API. The high level APIs are the _Unwind_* functions which the cxa_* exception functions in libcxxabi require. The low level APIs are the unw_* functions which are an interface defined by the the old HP libunwind project (which shares no code with this unwinder). llvm-svn: 192136
OpenPOWER on IntegriCloud