summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Remove the special casing of ia64 for GetIPInfo()v0.99v0.99-stableArun Sharma2009-04-242-50/+2
| | | | | | | | | | | | | | This rule (no IP adjustment on ia64) may be correct for locating the right FDE. Unfortunately the same adjusted/unadjusted return address is being used also by __gxx_personality_v0() to locate the right call-site (the try {} block) for unwinding. And this case is already sensitive for off-by-one PC values. Unlike the FDE location where the function prologue + epilogue make it immune against off-by-one PC calculations. Therefore suggesting to unify it with non-ia64 case. Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
* Multilib support.Arun Sharma2009-04-136-5/+91
| | | | | | This is useful when packaging for multiple target architectures. Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
* Fix ppc32 build.Arun Sharma2009-04-132-2/+2
| | | | Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
* Use a shorter path for includeArun Sharma2009-04-131-1/+1
| | | | This should've been a part of: 2fce54102cdb03aa2d3105c750685dc7cf2677b1
* Remove more autogenerated files.Arun Sharma2009-04-1311-10821/+0
|
* Implement _Unwind_GetIPInfo() as required by the C++ ABIArun Sharma2009-04-026-12/+96
| | | | | | | | | | | Provide a special implementation for ia64, because the unwind information is such that an IP adjustment is not necessary before looking up unwind info. Bad things happen if libunwind only provides parts of the ABI and the rest come from libgcc. Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
* Update the tag to -beta.Arun Sharma2009-03-181-1/+1
|
* Fixup CONFIG_DEBUG_FRAME support.Arun Sharma2009-03-173-3/+9
|
* Disable C++ exception support by default on x86.Arun Sharma2009-03-162-2/+10
|
* [PATCH] Avoiding name conflict with the GNU-specific dprintf in stdio.hArun Sharma2009-03-166-28/+28
| | | | Signed-off-by: Yang Zhang <yaaang@gmail.com>
* Bad pointer validation for 32 bit x86.Arun Sharma2009-03-166-10/+80
| | | | | | This corresponds to commit 649f1fb3449a65dd0626a709432d8b02a7c56bbc. Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com>
* Enable Intel C++ compatibility only when C++ exceptions are enabled.Arun Sharma2009-03-161-2/+3
|
* Remove auto generated files.Arun Sharma2009-03-166-36226/+0
|
* Don't check C++ ABI when it's not enabled.Arun Sharma2009-03-162-1/+4
|
* Verify that we don't call malloc when unwinding locally.Arun Sharma2009-03-163-1/+125
|
* Make .debug_frame support optional.Arun Sharma2009-03-162-20/+24
| | | | | Because these code paths use malloc and stdio, they could cause deadlocks when we try to unwind stack from inside malloc.
* Rerun autoreconf.David Mosberger-Tang2008-06-161-10/+14
|
* This patch eliminates one system call per unwind by not using theArun Sharma2008-06-168-61/+116
| | | | | | | | | | | | | getcontext in libc. Also cleanup the namespace (check-name-space passes on x86_64 now). Replace uses of offsets.h with ucontext_i.h. Rename _x86_64_setcontext to _Ux86_64_setcontext. TBD: Add CFI annotations for get/setcontext. Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com> Signed-off-by: Arun Sharma <arun.sharma@google.com>
* [X86-64] For local unwinding, we have a defence mechanism againstArun Sharma2008-06-167-11/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | bad/missing unwind information, which could result in libunwind dereferencing bad pointers. This mechanism is based on msync(2) system call and significantly reduces the chances of a bad pointer dereference in libunwind. The original idea was to turn this mechanism on only when necessary i.e. libunwind didn't find proper unwind information for a IP. There are a couple of problems in the current implementation. * The flag is global and is modified without locking * The flag isn't reset when starting a new unwind The attached patch makes ->validate a per-thread setting by moving it into struct cursor from unw_local_addr_space and resets it to false when starting a new unwind. As a result, cursor->as_arg points to the cursor itself instead of the ucontext (for the local case). This was found to reduce the number of msync() system calls from an application using libunwind significantly. Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com> Signed-off-by: Arun Sharma <arun.sharma@google.com>
* Rebuild autoconf files with autoreconf.David Mosberger-Tang2008-06-166-260/+768
|
* Make the linking of C++ ABI related code for exceptions optional.Arun Sharma2008-06-162-0/+10
| | | | | | The default is to have it enabled. Signed-off-by: Arun Sharma <arun.sharma@google.com>
* [ARM] This patch add some missing bits on ARM platform.Bruna Moreira2008-04-213-2/+11
| | | | | | | | | | * src/arm/unwind_i (arm_lock, arm_local_resume): Define. * src/ptrace/_UPT_find_proc_info.c: Handle ARM like X86 etc. * tests/flush-cache.S (flush_cache): Add (dummy) ARM-version. ARM does need executable stack, even on Linux... Signed-off-by: Anderson Lizardo <anderson.lizardo@indt.org.br> Signed-off-by: Bruna Moreira <bruna.moreira@indt.org.br>
* [ARM] This patch fix some testsuite issues on ARM:Bruna Moreira2008-04-213-11/+15
| | | | | | | | | | | | | | | | | | | - Gtest-bt: like on x86/-64, the stack size passed to sigaltstack() is too small for ARM thus causing segmentation fault due to stack overflow. - Gtest-dyn1: code size definition of dynamic function (template()) on testcase is too big for ARM architecture so memcpy() reads invalid memory causing random crashes (segmentation fault). A better solution would be to compile the function in a separate binary, mmap() it and memcpy() from it instead, so maximum size is known for sure. - check-name-space.in: fix some "bashisms", it causes the script to fail to run on N8XX's busybox shell. Signed-off-by: Anderson Lizardo <anderson.lizardo@indt.org.br> Signed-off-by: Bruna Moreira <bruna.moreira@indt.org.br>
* [X86-64] Fix the pattern used to match signal frames.Paul Pluzhnikov2008-04-161-2/+2
| | | | | | | | The current pattern is too restrictive and doesn't work well on modern glibcs. Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com> Signed-off-by: Arun Sharma <arun.sharma@google.com>
* Add initial ARM and MIPS support. To support this, also enable theDaniel Jacobowitz2008-02-04100-910/+6260
| | | | | reading of .debug_frame sections (used in lieu of .eh_frame sections when they're not available).
* [DWARF] Fix error return.Mark Wielaard2008-02-041-1/+1
| | | | | * src/dwarf/Gfde.c (dwarf_extract_proc_info_from_fde): Return -UNW_ENOMEM.
* 2007-12-14 Mark Wielaard <mwielaard@redhat.com>David Mosberger-Tang2008-01-071-0/+7
| | | | | * src/mi/Gget_reg.c (unw_get_reg): Use tdep_get_ip() when looking for UNW_REG_IP.
* [X86] Cleanup XMM handling for x86David Mosberger-Tang2008-01-075-4/+47
| | | | | | | | * Use explicit types for XMM registers * Support full width (128 bits) access Signed-off-by: Andrew Cagney <cagney@redhat.com> Signed-off-by: Arun Sharma <aruns@google.com>
* Merge ../libunwind-v0.98David Mosberger-Tang2007-12-100-0/+0
|\
| * Mark tests/perf-startup executable. Suggested by Mark Wielaard.v0.98-stableDavid Mosberger-Tang2007-12-101-0/+0
| |
* | Make tests/perf-startup executable. Suggested by Mark Wielaard.David Mosberger-Tang2007-12-101-0/+0
| |
* | Merge ../libunwind-v0.98David Mosberger-Tang2007-11-143-9/+9
|\ \ | |/ | | | | | | | | | | | | Conflicts: README configure configure.in
| * Update mailing-list info.David Mosberger-Tang2007-11-144-19/+17
| |
* | Merge ../libunwind-v0.98David Mosberger-Tang2007-11-142-5/+4
|\ \ | |/ | | | | | | | | | | | | Conflicts: configure configure.in src/ia64/Ginit.c
| * Update NEWS file and rerun "autoreconf".David Mosberger-Tang2007-11-149-7406/+7600
| |
| * ia64 [src/ia64/Ginit.c]: Don't mark the reference to _Uelf64_get_proc_nameCurt Wohlgemuth2007-11-141-5/+0
| | | | | | | | | | | | | | as "weak". Since the elf-support is in the library anyhow, this serves no purpose and in fact causes problem because the weak reference alone is not enough to pull in the ELF-code from an archive file, causing to spurious failures of get_proc_name.
* | [Linux] Fix potentially overlapping memory-copy to use memmove() insteadCurt Wohlgemuth2007-10-181-2/+2
| | | | | | | | of memcpy().
* | Update mailing-list info in README. Thanks to Curt Wohlgemut for pointingDavid Mosberger-Tang2007-10-151-10/+8
| | | | | | | | this out.
* | [X86] 2007-10-10 Andrew Cagney <cagney@redhat.com>Andrew Cagney2007-10-151-1/+1
| | | | | | | | | | | | | | * src/x86/init.h (common_init): Fix typo: use UNW_X86_ESI for dwarf.loc[ESI]. Acked-by: Arun Sharma <aruns@google.com>
* | [PPC32] Make PPC32 unwinding work for real.Jose Flavio Aguilar Paulino2007-10-087-165/+55
| |
* | Mark Wielaard <mwielaard@redhat.com> writes:Jan Kratochvil2007-10-0126-0/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On some systems executable stacks are denied. Since libunwind and the tests don't actually need executable stacks this patch marks all assembly files as not needing it. The original patch comes from frysk: 2007-04-05 Jan Kratochvil <jan.kratochvil@redhat.com> * src/hppa/getcontext.S, src/hppa/setcontext.S, src/hppa/siglongjmp.S, src/ia64/Ginstall_cursor.S, src/ia64/Linstall_cursor.S, src/ia64/dyn_info_list.S, src/ia64/getcontext.S, src/ia64/longjmp.S, src/ia64/setjmp.S, src/ia64/siglongjmp.S, src/ia64/sigsetjmp.S, src/ppc64/longjmp.S, src/ppc64/siglongjmp.S, src/x86/longjmp.S, src/x86/siglongjmp.S, src/x86_64/longjmp.S, src/x86_64/setcontext.S, src/x86_64/siglongjmp.S: Stack should be non-executable, for SELinux. I added a couple more markers for new files in current libunwind. Before this patch you would get the following on selinux enabled systems without allow_exec_stack: error while loading shared libraries: libunwind.so.7: cannot enable executable stack as shared object requires: Permission denied After the patch that error disappears and all test results are similar to the results on systems without executable stack protection.
* | [PPC32] Make get_func_addr() a no-op function.Jose Flavio Aguilar Paulino2007-09-203-12/+16
| | | | | | | | [PPC64] Add .../lib64 library directory when targeting ppc64.
* | [PPC32] First check-in to add preliminary support for Linux/PPC32.Jose Flavio Aguilar Paulino2007-09-1245-201/+2451
| |
* | Regenerate Makefile.in.David Mosberger-Tang2007-08-271-7/+27
| |
* | [PPC64] Get "make check" to work on PPC64 Linux. Add a README entryJose Flavio Aguilar Paulino2007-08-275-3/+20
| | | | | | | | describing the expected results.
* | [PPC64] Add PPC64 entry to README and fix David's typo in ppc64/get_func_addr.cJose Flavio Aguilar Paulino2007-08-242-3/+23
| |
* | Introduce a tdep_get_func_addr_hook() in the ELF lookup_symbol()David Mosberger-Tang2007-08-2213-28/+94
| | | | | | | | | | | | | | | | | | | | | | | | routine and add address-space argument. This is needed because on PPC64, a the function-name symbol refers to a function descriptor (unlike, for example, on ia64, where the @fptr() operator is needed to refer to a function descriptor). Thus, in order to look up the name of a function, we need to dereference the function descriptor. To make matters more "interesting", the function descriptors are normally resolved by the dynamic linker, so we can't get their values from the ELF file. Instead, we have to read them from the running image, hence the need for the address-space argument.
* | Fix two minor compiler-warnings.David Mosberger-Tang2007-08-221-2/+4
| |
* | Update documentation and regenerate manual-pages.David Mosberger-Tang2007-08-2256-362/+200
| |
* | Update html-versions of man-pages for Savannah-based home page.David Mosberger-Tang2007-08-153-3/+3
| |