[RISCV] Relax march string order constraint (#78120)
[llvm-project.git] / libunwind / docs / index.rst
blobe1283e7acfcc2a87fad69ed33aa0bae124c74083
1 .. _index:
3 =======================
4 libunwind LLVM Unwinder
5 =======================
7 Overview
8 ========
10 libunwind is an implementation of the interface defined by the HP libunwind
11 project. It was contributed by Apple as a way to enable clang++ to port to
12 platforms that do not have a system unwinder. It is intended to be a small and
13 fast implementation of the ABI, leaving off some features of HP's libunwind
14 that never materialized (e.g. remote unwinding).
16 The unwinder has two levels of API. The high level APIs are the `_Unwind_*`
17 functions which implement functionality required by `__cxa_*` exception
18 functions. The low level APIs are the `unw_*` functions which are an interface
19 defined by the old HP libunwind project.
21 Getting Started with libunwind
22 ------------------------------
24 .. toctree::
25    :maxdepth: 2
27    BuildingLibunwind
29 Current Status
30 --------------
32 libunwind is a production-quality unwinder, with platform support for DWARF
33 unwind info, SjLj, and ARM EHABI.
35 The low level libunwind API was designed to work either in-process (aka local)
36 or to operate on another process (aka remote), but only the local path has been
37 implemented. Remote unwinding remains as future work.
39 Platform and Compiler Support
40 -----------------------------
42 libunwind is known to work on the following platforms:
44 ============ ======================== ============ ========================
45 OS           Arch                     Compilers    Unwind Info
46 ============ ======================== ============ ========================
47 Any          i386, x86_64, ARM        Clang        SjLj
48 Bare Metal   ARM                      Clang, GCC   EHABI
49 FreeBSD      i386, x86_64, ARM64      Clang        DWARF CFI
50 iOS          ARM                      Clang        SjLj
51 Linux        ARM                      Clang, GCC   EHABI
52 Linux        i386, x86_64, ARM64      Clang, GCC   DWARF CFI
53 macOS        i386, x86_64             Clang, GCC   DWARF CFI
54 NetBSD       x86_64                   Clang, GCC   DWARF CFI
55 Windows      i386, x86_64, ARM, ARM64 Clang        DWARF CFI
56 ============ ======================== ============ ========================
58 The following minimum compiler versions are strongly recommended.
60 * Clang 3.5 and above
61 * GCC 4.7 and above.
63 Anything older *may* work.
65 Notes and Known Issues
66 ----------------------
68 * TODO
71 Getting Involved
72 ================
74 First please review our `Developer's Policy <https://llvm.org/docs/DeveloperPolicy.html>`__
75 and `Getting started with LLVM <https://llvm.org/docs/GettingStarted.html>`__.
77 **Bug Reports**
79 If you think you've found a bug in libunwind, please report it using
80 the `LLVM bug tracker`_. If you're not sure, you
81 can ask for support on the `Runtimes forum`_ or on IRC.
82 Please use the tag "libunwind" for new threads.
84 **Patches**
86 If you want to contribute a patch to libunwind, please start by reading the LLVM
87 `documentation about contributing <https://www.llvm.org/docs/Contributing.html>`__.
89 **Discussion and Questions**
91 Send discussions and questions to the `Runtimes forum`_. Please add the tag "libunwind" to your post.
94 Quick Links
95 ===========
96 * `LLVM Homepage <https://llvm.org/>`_
97 * `LLVM Bug Tracker <https://github.com/llvm/llvm-project/labels/libunwind/>`_
98 * `Clang Discourse Forums <https://discourse.llvm.org/c/clang/6>`_
99 * `cfe-commits Mailing List <http://lists.llvm.org/mailman/listinfo/cfe-commits>`_
100 * `Runtimes Forum <https://discourse.llvm.org/tags/c/runtimes>`_
101 * `Browse libunwind Sources <https://github.com/llvm/llvm-project/blob/main/libunwind/>`_