Age | Commit message (Collapse) | Author |
|
Change-Id: I7ef4f18c4e1d539708c0847c0b0337150148b662
|
|
BUG: 24570720
Change-Id: Ic531d4ba236a31bf3f7a351e62b649234147cd43
|
|
Change-Id: Ib6ea63e687afb45a4e931985501167220c51d544
|
|
|
|
Change-Id: I9dfd89231b605362874fa3f390b05dcbb532583b
|
|
There is no compilation error now.
Change-Id: I1813991cc6ba3675e9ae3cf79c7a5140da9c43cd
|
|
Fix out-of-bounds array access when setting arm float registers.
Patch by Leandro GraciĆ” Gil!
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@245665 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Use the canonical __aarch64__ predefined macro for 64-bit ARM. Apple-
specific cases are left as __arm64__. Also add an #error for unsupported
architectures to catch this sort of case in the future.
Differential Revision: http://reviews.llvm.org/D12005
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@244893 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
I encountered this on FreeBSD/arm64, and then found the same issue was
reported by Daniil Troshkov.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@244892 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
|
|
|
|
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@244297 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@244296 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
The register save routine in libunwind was using write-back addressing
mode to r0 for thumb, when that was not only different from the ARM
version and more importantly the register restore, but also saving the
wrong address.
Patch by Manuel Freiberger.
Fixes PR24331.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@244237 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@244005 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
GCC doesn't seems to like having the attribute before extern, but
Clang accepts it either way. This patch makes it compile on both.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@243147 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
To build libc++abi without libunwind, we should make sure that all
function calls to _Unwind_{Get,Set}{GR,IP}() are inlined as function
calls to _Unwind_VRS_{Get,Set}(). Otherwise, libc++abi.so will fail to
link since libgcc does not provide these symbol at all.
This commit fixes the problem by providing both the inlined version and
exported version.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@243073 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@242942 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Introduce __libunwind_config.h to avoid cross repository circular
dependency with libcxxabi.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@242642 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
unw_getcontext() should return UNW_ESUCCESS on success. Therefore, the
assembly for AArch64 is incorrect because "ldr x0, #0" is a PC-relative
load instead of an immediate value load.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@240648 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
To compile libunwind with gcc/g++ 4.9, it is required to avoid the
for-declaration statement from C99.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@240609 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@238656 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
This commit fixes the unw_step() for ARM EHABI. However, this commit
also changes the implementation details for ARM EHABI.
The first change is that the personality function should call
__gnu_unwind_frame() for default (or de facto) frame unwinding based on
the ARM-defined unwind opcode. The function __gnu_unwind_frame() will
in turn calls unw_step() which actually unwinds the frame.
The second change is that the implementation _Unwind_Backtrace() should
no longer calls unw_step() to unwind the frame; since according to ARM
EHABI, the personality function should unwind the frame for us.
Special thanks to Anton for helpful suggestion on the initial version of
this patch.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@238560 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@237542 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Include algorithm early as otherwise you get a number of particularly unhelpful
messages about failed static assertions. This fixes compilation on Linux with
gcc.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@237002 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@236935 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
This just copies the default clang-format from the LLVM project. Many
developers use clang-format to ensure that the code is appropriately formatted,
and this commit should also test the git-svn bridge.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@236767 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Differential Revision: http://reviews.llvm.org/D9272
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@236585 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
We currently only include <link.h> on CloudABI and Linux. We can enable
it on FreeBSD as well, as it also supports the dl_iterate_phdr()
function that's provided by <link.h>.
FreeBSD, however, does not provide the ElfW() macro. Instead, the
host-specific ELF datastructures are named just Elf_XXX in addition to
the host-independent Elf32_XXX and Elf64_XXX types.
Differential Revision: http://reviews.llvm.org/D8169
Approved by: emaste
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@236154 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
This include is not currently used. It is intended for type info based
switching, which is part of the EHABI specification. However, the unwinder does
not currently support this functionality. This backwards dependency into
libc++abi is currently causing a buildbot failure, remove it until we have a
better solution.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@235893 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Now thta the build is split, clean up some of the warnings in the build:
cc1: warning: command line option '-nostdinc++' is valid for C++/ObjC++ but not for C
cc1: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
Append the C++ specific flags specifically to the C++ sources. Avoids the
spurious warnings due to invalid flags being passed during the compilation of
C++ sources.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@235797 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
This replicates most of the build infrastructure from libc++abi ported to
libunwind. This allows building libunwind without requiring libc++abi.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@235795 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
These are related to libc++abi's personality routine and not core unwinding.
These have been restored in libc++abi, and are no longer needed here.
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@235766 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
This moves the majority of the unwind sources into the new project layout for
libunwind. This was previously discussed on llvmdev at [1]. This is a
purely movement related change, with the build infrastructure currently still
residing in the libc++abi repository.
[1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-January/081507.html
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@235758 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@235746 91177308-0d34-0410-b5e6-96231b3b80d8
|