1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-19 06:17:37 +01:00
Commit graph

119 commits

Author SHA1 Message Date
Matt Fischer
612e1056f6 Fix symlink install hook
During the install, symlinks are added from libunwind-<arch> to
libunwind-generic.  However, on platforms that don't support
symlinking (such as Windows), the $(LN_S) macro is defined
as 'cp -p' instead.  This works fine, except that since the
target of the symlink is a relative path, the copy will only
succeed if the current directory is the directory that contains
the file.

The solution to this problem suggested in the Autotools manual
(see http://www.gnu.org/software/automake/manual/automake.html#Extending)
is to simply cd into the correct directory first.  This patch
makes that change for the symlinks that are being made during install.

[ edit: use relative path for the link name as well ]
2013-04-19 20:07:02 -07:00
Matt Fischer
563b0ff314 Added --enable-setjmp
Currently, libunwind-setjmp is built whenever local unwinding is
built.  This patch adds an explicit flag to control it instead.
The default if not specified is to follow the old behavior.
2013-04-19 17:08:03 -05:00
Matt Fischer
abb0957198 Added --enable-ptrace
This change adds a manual override to control building of the ptrace
library, similar to the existing --enable-coredump option.  The
default is set based on the existence of sys/ptrace.h, allowing it
to be automatically disabled for platforms that do not have ptrace.
2013-04-19 16:46:24 -05:00
Arun Sharma
d7322f0f64 Update to v1.1 2012-10-05 21:54:17 -07:00
Tommi Rantala
65bdcc6f9d Teach autotools current ARM `ex_tables.h' location 2012-09-28 14:51:21 +03:00
Tommi Rantala
8d5b1aeeff SuperH port
Add support for the 32bit SuperH architecture running Linux.
Specifically, support is added for SH4, and support for earlier SH
versions and to the 64bit SH5 are left out. This was tested in qemu with
a little-endian SH4 debian image & GCC 4.7 cross compiler.
2012-09-28 14:50:03 +03:00
Alexander Toresson
ea5e90fd9f Create and install pkg-config .pc files
[Edit: renamed to libunwind-generic.pc and some .pc files
 created only when needed -- asharma@fb.com]
2012-09-15 11:34:43 -07:00
Cody P Schafer
3a5d7ff694 build: make libunwind-coredump build optional
Disable the building of libunwind-coredump except on x86_64 and x86
(where implimentations exsist).

Allow overriding of this autodetection via --enable-coredump and
--disable-coredump.
2012-09-15 10:47:42 -07:00
Tommi Rantala
ee06b32975 Fix IA64 separate builddir cursor generation
IA64 build was failing when using a separate build directory. Refer to
the source files with `$srcdir' to fix the build.
2012-09-04 14:58:38 +03:00
Arun Sharma
201bb8733d Use libtool to build libunwind-ptrace 2012-08-18 12:41:21 -07:00
Martin Milata
7d5a197021 Add liblzma detection to configure script
Signed-off-by: Martin Milata <mmilata@redhat.com>
2012-08-10 15:07:49 +02:00
Tommi Rantala
354b3fd45b Allow IA64 cross-compilation
Change the way we generate the cursor header files, so that we do not
need to invoke IA64 binaries, which would fail when cross-compiling
libunwind.

Adopt the strategy used in the Linux kernel build system, and parse our
annotated offset information from the assembler file produced by the
compiler.
2012-07-31 16:03:53 +03:00
Martin Milata
de28c51e63 Build libunwind-coredump using libtool
So that it builds shared/pic library that can be linked with other
libraries.

Signed-off-by: Martin Milata <mmilata@redhat.com>
2012-07-04 17:01:44 -07:00
Martin Milata
d93d96ad83 Fix compilation on IA64
- Add tdep macro for {dwarf,ia64}_find_unwind_table so that ia64
   doesn't try to use dwarf code.
 - Fix extraneous #if.
 - Fix mistyped filename in Makefile.am.
 - Link ia64-specific tests with correct libraries.

Signed-off-by: Martin Milata <mmilata@redhat.com>
2012-05-23 20:52:28 -07:00
Arun Sharma
9507a9b501 ia64: move ia64 specific code out of dwarf
We still need to fixup the callers to pick dwarf_find_unwind_table
vs ia64_find_unwind_table in a target dependent way.
2012-03-29 11:35:26 -07:00
Kostik Belousov
dc9be1a97a Implement register read for FreeBSD coredumps.
Rename _UCD_access_reg.c to _UCD_access_reg_linux.c, to have
per-OS coredump register reader.
2012-03-13 14:00:01 +02:00
Arun Sharma
b08ae72d6c Add support for unwinding coredump images
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-03-12 20:11:08 -07:00
Arun Sharma
6525714c27 Move some dwarf functionality from ptrace to dwarf
Move ptrace-independent code from src/ptrace/_UPT_find_proc_info.c
to src/dwarf/{G,L}find_unwind_table.c. Name this moved function
dwarf_find_unwind_table().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-03-12 20:06:37 -07:00
Tommi Rantala
458c661be7 Fix libunwind-generic.so symbolic link never being created in make install
Commit 7d43108f9c ("No
libunwind-generic.so if configured with --disable-shared") introduced a
check to avoid creating a broken libunwind-generic.so link, but the
result of the commit is that libunwind-generic.so is never created (at
least when installing to a clean directory).

We need to check for the installed libunwind-$(arch).so file,
libunwind-generic.so will be the symbolic link name.
2012-01-23 07:38:59 -08:00
Arun Sharma
ac0acd06f3 Bump up the library version 2011-09-10 19:57:59 -07:00
Arun Sharma
00abb7c056 Reorder libraries in lib_LTLIBRARIES
This fixes a make install time problem.
2011-09-05 10:46:14 -07:00
Joel Brobecker
7d43108f9c No libunwind-generic.so if configured with --disable-shared
Installing a libunwind that was configured with --disable-shared
results in a broken libunwind-generic.so link. This patch avoids
this broken link.
2011-06-18 19:50:39 -07:00
Ken Werner
fd21d07fe4 Create a generic and local variant of the extbl parser.
In order to have the DWARF_* macros working properly a generic and a local
variant of the ex_tables.c have been created.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-04-05 20:59:10 -07:00
Lassi Tuura
9e98f15e9a Fast back-trace for x86_64 for only collecting the call stack.
Adds new function to perform a pure stack walk without unwinding,
functionally similar to backtrace() but accelerated by an address
attribute cache the caller maintains across calls.
2011-03-24 22:33:17 -07:00
Konstantin Belousov
04fc88fa31 Fix build and distribution on the FreeBSD.
Signed-off-by: Konstantin Belousov <kostikbel@gmail.com>
2011-03-24 20:41:07 -07:00
Zachary T Welch
ffc474b8c8 Add module for parsing ARM-specific unwind tables
Handles lookup, extracting unwind entries, and decoding the entry
using a callback mechanism.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-22 08:14:51 -07:00
Ken Werner
4a89b88fd3 Link libunwind-setjmp against libunwind-elf.
This prevents the linker from complaining about a missing symbol when
building the test-setjmp test case.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-07 21:24:51 -08:00
Arun Sharma
516304a557 Revert "Use more convenience libraries"
Breaks make check on both x86 (32 and 64 bit)

This reverts commit af88cab09f.
2011-02-01 20:37:25 -08:00
Zachary T Welch
af88cab09f Use more convenience libraries
Eliminates obfuscating variables in favor of adding files directly
to library SOURCES.  Eliminates the need for EXTRA_DIST variable.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:29:01 -08:00
Zachary T Welch
ce847afb3b Build ELF convenience libraries
Rather than building the sources directly, create a library that
gets linked statically into libunwind.la and libunwind-$(arch).la.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:57 -08:00
Zachary T Welch
02dd6c468a Use noinst_HEADERS for distributing .h files
Header files should be listed in a HEADERS automake declaration
rather than in the SOURCES.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:54 -08:00
Zachary T Welch
9de666d141 Simplify DWARF source handling
Build DWARF source files into automake convenience libraries to
eliminate duplication in arch-dependent library build rules.
Adds a configure-time check to determine whether to use them.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:51 -08:00
Zachary T Welch
b07829bedd Simplify LIBRARIES and LTLIBRARIES automake rules
Use automake's '+=' to eliminate obfuscation.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:47 -08:00
Zachary T Welch
64a827603c Simplify libunwind_setjmp automake rules
Eliminate redundant listing of libunwind_setjmp source files by
using automake's '+=' operator.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:44 -08:00
Zachary T Welch
651e9bb4fd Add MAINTAINERCLEANFILES to Makefile.am files.
Ensures 'make maintainer-clean' removes files generated by autotools.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-08 09:06:09 -08:00
Sven Neumann
7909c71e5d [PATCH] Add files to EXTRA_DIST so that 'make dist' works again 2010-08-04 14:26:39 -07:00
Konstantin Belousov
ae7eebb839 Separate getcontext implementation for x86 2010-04-13 14:11:39 +03:00
Konstantin Belousov
fd88f41818 Merge remote branch 'origin/master' into freebsd
Conflicts:
	src/x86/Gis_signal_frame.c
	src/x86/Gstep.c
	src/x86_64/Gis_signal_frame.c
	src/x86_64/Gstep.c
2010-04-05 16:14:50 +03:00
Arun Sharma
8e53e62db9 Refactor os specific code for x86 (both 32 and 64 bit).
Move Linux specific code into ${arch}/Gos-linux.c
2010-04-04 16:46:13 -07:00
Konstantin Belousov
53095e6b3e Code for resume 2010-03-07 23:43:07 +02:00
Konstantin Belousov
2646e0fde8 Add freebsd stub 2010-03-06 17:51:00 +02:00
Konstantin Belousov
905034ce72 Initial attempt at the build infrastructure for FreeBSD. 2010-03-06 00:41:37 +02:00
Paul Pluzhnikov
54752e0df0 Implement getcontext for x86
Greetings,

Attached patch implements getcontext for x86.

Motivation is the same as:
http://lists.nongnu.org/archive/html/libunwind-devel/2008-06/msg00009.html

This also fixes check-name-space on x86.

Tested on Linux/86 with no new failures.

Thanks,
--
Paul Pluzhnikov
2009-12-23 09:59:52 -08:00
Arun Sharma
4b8404d153 Remove the special casing of ia64 for GetIPInfo()
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>
2009-04-24 11:10:08 -07:00
Arun Sharma
2fce54102c Implement _Unwind_GetIPInfo() as required by the C++ ABI
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>
2009-04-02 22:22:05 -07:00
Arun Sharma
5822fca27a Enable Intel C++ compatibility only when C++ exceptions are enabled. 2009-03-16 21:34:49 -07:00
Arun Sharma
ef29eade44 This patch eliminates one system call per unwind by not using the
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>
2008-06-16 14:42:16 -06:00
Arun Sharma
8081e82ba1 Make the linking of C++ ABI related code for exceptions optional.
The default is to have it enabled.

Signed-off-by: Arun Sharma <arun.sharma@google.com>
2008-06-16 14:28:36 -06:00
Daniel Jacobowitz
3842dac733 Add initial ARM and MIPS support. To support this, also enable the
reading of .debug_frame sections (used in lieu of .eh_frame sections
when they're not available).
2008-02-04 17:16:37 -07:00
Jose Flavio Aguilar Paulino
4499bb29a6 [PPC32] First check-in to add preliminary support for Linux/PPC32. 2007-09-12 21:52:25 -06:00