1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-12-23 03:53:43 +01:00
Fork of the libunwind official github repo — http://www.nongnu.org/libunwind/
Find a file
hp.com!davidm 9fea3da388 Merge with v0.98.5.
2005/05/03 02:08:34-07:00 hp.com!davidm
(tests/Gtest-concurrent): Fail gracefully if we're unable to create the
	desired number of threads.  Note: unless strict accounting is
	enabled (/proc/sys/vm/overcommit_memory == 2), the program may fail
	with a SIGSEGV if it runs out of (stack) memory.

2005/04/07 19:22:33-07:00 hp.com!davidm
Make libunwind more friendly to GCC v4.

2005/04/07 19:20:22-07:00 hp.com!davidm
ia64: Fix two typos in Gscript.c which showed when compiling
	without atomic-ops support.

2005/04/07 12:19:38-07:00 hp.com!davidm
ia64: cache proc-info even for procedures which are never stepped over

This was an oversight that caused exception-handling to run a bit
slower than possible.  Specifically, the last procedure in an
exception-handling chain never got cached because it has only it's
proc-info inspected (to find the personality routine); the frame
was never stepped over (i.e., no script was ever built) and the info
never got into the cache.  This patch fixes the problem.

2005/03/31 14:45:30-08:00 hp.com!davidm
(tests/Gtest-exc): Make it buildable with the Intel compiler.

2005/03/31 13:29:44-08:00 hp.com!davidm
Merge wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind-v0.98
into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind

2005/03/07 10:13:14-08:00 hp.com!davidm
Merge bk://unwind@bkbits.net/libunwind
into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind

2005/03/07 10:08:26-08:00 hp.com!davidm
x86-64: Make it work better.

2005/03/07 10:02:17-08:00 hp.com!davidm
Fix a couple of missed NELEMS -> ARRAY_SIZE renames.

2005/03/07 10:00:19-08:00 hp.com!davidm
Fix a warning that shows with GCC v3.4.

2005/02/25 15:47:17-08:00 mostang.com!davidm
Fix forgotten ALWAYS_INLINE adjustment.

2005/02/24 23:39:35-08:00 hp.com!davidm
Fix missing NELEMS -> ARRAY_SIZE rename.

2005/02/24 23:32:42-08:00 mostang.com!davidm
Merge bk://unwind@bkbits.net/libunwind
into kangaroo.mostang.com:/home/davidm/src/unwind/libunwind

2005/02/24 23:28:02-08:00 hp.com!davidm
Fix merge-conflict.

2005/02/23 14:40:45-08:00 mostang.com!davidm
Abstract locking primitives some more to enable use of libunwind
inside the Linux kernel.

2005/02/23 13:10:06-08:00 mostang.com!davidm
ia64: Change "ia64_rse" prefix to "rse" in order to stay clear
	of Linux kernel conflict.

2005/02/23 12:55:46-08:00 mostang.com!davidm
Fix a few missed ALWAYS_INLINE adjustments.

2005/02/20 21:42:55-08:00 mostang.com!davidm
Make it easier to use libunwind inside Linux-kernel: rename
NELEMS to ARRAY_SIZE and make ALWAYS_INLINE include the "inline"
keyword.

2005/02/18 22:20:58-08:00 hp.com!davidm
Merge wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind-v0.98
into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind

2004/12/15 15:40:09-08:00 hp.com!davidm
ia64: Make ia64 build again.

2004/12/15 15:38:34-08:00 hp.com!davidm
Fix library dependencies so it's possible to do a successful "make
check" even when the GCC-based libunwind.so is installed in /lib.

2004/12/15 15:36:37-08:00 hp.com!davidm
Put separate copies of the ELF-reading code into each library that
needs it.  Anything else if fragile or inefficient.

2004/12/08 17:27:12-08:00 hp.com!davidm
Merge bk://unwind@bkbits.net/libunwind
into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind

2004/12/06 10:40:50-08:00 mostang.com!davidm
x86: Make longjmp() work.  Unfortunately, siglongjmp() doesn't
	work yet since there aren't enough exception-handling
	argument registers available to make that work easily.
	Will need to come up with something clever to make that
	work.  Perhaps we can always use sigreturn() to atomically
	do a setcontext() with signal-mask restoration.

2004/12/04 17:03:37-08:00 mostang.com!davidm
Regenerate src/Makefile.in.

2004/12/04 17:00:06-08:00 hp.com!davidm
hppa: Implement a useful setcontext() (but call it _Uhppa_setcontext())
	and use it to make Gtest-exc work.

2004/12/02 23:56:58-08:00 hp.com!davidm
Fix merge conflict.

2004/12/02 23:51:02-08:00 hp.com!davidm
test-ptrace: Improve label-printing and allow nesting up to 64 deep.

2004/12/02 18:37:48-08:00 hp.com!davidm
hppa: Fix it enough so it actually starts to be useful.

2004/12/02 00:40:46-08:00 mostang.com!davidm
hppa: Initial support for (32-bit) PA-RISC Linux.  It should be good
	enough to get tests/Gtest-bt working.

2004/11/30 22:53:53-08:00 mostang.com!davidm
Regenerate "configure".

2004/11/30 22:44:48-08:00 mostang.com!davidm
x86-64: Fix it up some more.  Make check has no unexplained failures
	anymore (see README for details).

2004/11/30 21:47:49-08:00 mostang.com!davidm
x86: Fix comment-typo.

2004/11/23 16:59:58-08:00 mostang.com!davidm
x86/-64: First cut at supporting libunwind-ptrace for x86 and
	x86-64.

2004/11/23 12:49:55-08:00 mostang.com!davidm
x86: Fill in save-locations by hand if DWARF-info is unavailable for
     a signal-frame.  This should help when running on old Linux
     kernels which do not provide the vDSO.

2004/11/23 18:01:10-08:00 mostang.com!davidm
x86-64: Provide a minimal unw_resume() implementation and fix
	an off-by-one error that was present in x86 and ia64
	forever (at least on ia64 the error was harmless, but it's
	still a bug...).

2004/11/23 16:17:37-08:00 mostang.com!davidm
x86-64: Fix unwinding across signal-frames on platforms that fail to
	provide unwind-info for the signal trampoline.  This makes
	Gtest-bt work on SuSE LES 9.

2004/11/22 10:22:37-08:00 mostang.com!davidm
x86-64: Make it build again.

2004/11/17 02:43:40-08:00 mostang.com!davidm
Fairly major overhaul of DWARF2 unwinder.  The major change is that
the auxiliary DWARF-info is maintained in a separate structure
(dwarf_cie_info, I may rename this to dwarf_aux_info) rather than
in an unw_dyn_info_t.  The latter seemed promising at the beginning,
but it's become clear that it was a bad idea so it's time to remove
it.

2004/11/17 02:06:25-08:00 mostang.com!davidm
tests/Gtest-resume-sig: Clean it up some more and make it more robust.

2004/11/16 15:14:56-08:00 hp.com!davidm
Merge bk://unwind@bkbits.net/libunwind
into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind

2004/11/16 14:09:02-08:00 hp.com!davidm
Manual merge with v0.98.3.

2004/11/05 00:14:10-08:00 hp.com!davidm
Fix merge conflict with v0.98.2.

2004/11/03 13:57:00-08:00 hp.com!davidm
Manual merge with v0.98.2.

2004/11/03 11:45:24-08:00 hp.com!davidm
Merge wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind-v0.98
into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind

2004/10/25 17:43:58+02:00 homeip.net!davidm
x86: Add Debug statement for return-value.
     Define DWARF_IS_REG_LOC for the local-only case.

2004/10/25 17:38:51+02:00 homeip.net!davidm
Fix typo: DW_CFA_CFA_expression -> DW_CFA_expression.

2004/10/25 07:52:30-07:00 hp.com!davidm
ia64: Add Debug() statement to print unw_step() return value at debug level 2.

2004/10/25 05:21:53-07:00 hp.com!davidm
Improve Debug() support for ia64 a bit and make Debug (N, ...) get printed when
UNW_DEBUG_LEVEL==N.

2004/10/21 16:06:28+02:00 homeip.net!davidm
Fix _UPT_get_dyn_info_list_addr() so it doesn't fail just because
a /proc/PID/maps file contains a mapping of something other than
a regular file.  Reported and fix proposed by Todd L. Miller.

2004/10/21 11:15:44+02:00 homeip.net!davidm
Merge bk://unwind@bkbits.net/libunwind
into mosberger.homeip.net:/home/davidm/src/unwind/libunwind

2004/10/21 11:15:12+02:00 homeip.net!davidm
dwarf: Fix some rather serious bugs in the DWARF expression evaluator.

2004/10/19 23:24:57-07:00 mostang.com!davidm
Fix some minor typos.

2004/10/19 23:15:02-07:00 mostang.com!davidm
dwarf: Fix Gstep() so it doesn't fail just because the IP didn't
	change.  This makes tests/{G,L}test-exc work on x86.

2004/10/19 23:11:08-07:00 mostang.com!davidm
tests/Gtest-exc.c: Fix test-case so it works as was intended.

2004/10/19 23:06:24-07:00 mostang.com!davidm
Use -fexceptions when compiling libunwind with GCC.
Switch version to 0.99-alpha.

BKrev: 427740adF-X3amNLHAfKa4B063DYxQ
2005-05-03 09:13:17 +00:00
aux mvdir 2004-07-15 17:39:59 +00:00
BitKeeper/etc Turn off questions about logging. 2003-04-01 07:19:34 +00:00
config (Logical change 1.241) 2004-08-17 15:34:28 +00:00
doc Regenerate. 2005-04-20 21:32:20 +00:00
include (ia64_get_cached_proc_info): Drop duplicate "ia64_" prefix. 2005-05-03 09:13:17 +00:00
scripts When generating L-files in the tests/ subdirectory, compile the file 2004-05-04 22:19:18 +00:00
src Initial revision 2005-05-03 09:13:17 +00:00
tests Include "config.h" and <ia64intrin.h> if we have them. 2005-05-03 09:13:17 +00:00
acinclude.m4 Don't check for atomic_ops library for now. 2004-11-16 22:03:04 +00:00
aclocal.m4 Regenerate. 2004-11-16 22:03:04 +00:00
AUTHORS Initial revision 2002-02-23 20:27:03 +00:00
ChangeLog Correct typo. 2003-01-23 10:04:09 +00:00
ChangeSet Initial revision 2002-02-15 18:20:10 +00:00
configure Fix merge conflict. 2005-05-03 09:13:17 +00:00
configure.in Fix merge conflict. 2005-05-03 09:13:17 +00:00
COPYING Switch to MIT license. 2002-11-16 03:23:11 +00:00
INSTALL Initial revision 2002-02-23 20:27:03 +00:00
Makefile.am (include_HEADERS_common): Remove include/libunwind-common.h.in. 2004-10-05 16:28:06 +00:00
Makefile.in Regenerate. 2004-11-16 22:03:04 +00:00
NEWS Update for v0.98.5 release. 2005-04-20 21:32:20 +00:00
README Update to reflect currently reality. 2004-10-15 13:37:27 +00:00
TODO Update. 2004-08-17 15:34:28 +00:00

-*- mode: Outline -*-

This is version 0.97 of the unwind library.  At the moment, only the
IA-64 Linux (IPF Linux) platform is fully supported.  Some basic
support for x86 and HP-UX/IPF exists also.  However, the x86 support
is based mostly on the frame-chain and does not reliably use unwind
information yet, so its utility is limited.  Similarly, the HP-UX/IPF
support is incomplete, though it is sufficient to do a basic
backtrace.  unw_resume() is not supported, however.

* Important GCC v3.4.[012] Caveat

GCC v3.4.[012] break C++ ABI compatibility and because of that,
libunwind cannot easily be used as the unwinder.  The GCC developers
are aware of the problem [1] and the the problem has been fixed for
GCC v3.4.3.

[1] http://gcc.gnu.org/ml/gcc/2004-04/msg00989.html

* General Build Instructions

In general, this library can be built and installed with the following
commands:

	$ ./configure
	$ make
	$ make install prefix=PREFIX

where PREFIX is the installation prefix.  By default, a prefix of
/usr/local is used, such that libunwind.a is installed in
/usr/local/lib and unwind.h is installed in /usr/local/include.  For
testing, you may want to use a prefix of /usr/local instead.


* Building with Intel compiler

** Version 8 and later

Starting with version 8, the preferred name for the IA-64 Intel
compiler is "icc" (same name as on x86).  Thus, the configure-line
should look like this:

    $ ./configure CC=icc CFLAGS="-g -O3 -ip" CXX=icc CCAS=gcc CCASFLAGS=-g \
		LDFLAGS="-L$PWD/src/.libs"

** Version 7

To build libunwind with the Intel Electron compiler (ECC), it is
recommended to run configure like this:

	$ ./configure CC=ecc CXX=ecc CCAS=gcc CCASFLAGS=-g \
		LDFLAGS="-L$PWD/src/.libs"

The reason for this is that ECC uses the Intel assembler, which
doesn't grok some of the IA-64 assembly code in the "tests" directory.

For an ECC-built version of libunwind to work properly, you also need
to ensure that /usr/include/asm/fpu.h contains a "long double" member
called "__dummy" in the declaration of "struct ia64_fpreg".  Without
that member, variables of type unw_context_t won't be aligned
properly.

* Building on HP-UX

For the time being, libunwind must be built with GCC on HP-UX.

libunwind should be configured and installed on HP-UX like this:

    $ ./configure CFLAGS="-g -O2 -mlp64" CXXFLAGS="-g -O2 -mlp64"

Caveat: Unwinding of 32-bit (ILP32) binaries is not supported
	at the moment.

** Workaround for older versions of GCC

GCC v3.0 and GCC v3.2 ship with a bad version of sys/types.h.  The
workaround is to issue the following commands before running
"configure":

    $ mkdir $top_dir/include/sys
    $ cp /usr/include/sys/types.h $top_dir/include/sys

GCC v3.3.2 or later have been fixed and do not require this
workaround.

* Regression Testing

After building the library, you can run a set of regression tests with:

	$ make check

** Expected results on IA-64 Linux

Unless you have a very recent C library and compiler installed, it is
currently expected to have the following tests fail on IA-64 Linux:

	Gtest-init		(should pass starting with glibc-2.3.x/gcc-3.4)
	Ltest-init		(should pass starting with glibc-2.3.x/gcc-3.4)
	test-ptrace		(should pass starting with glibc-2.3.x/gcc-3.4)
	run-ia64-test-dyn1	(should pass starting with glibc-2.3.x)

This does not mean that libunwind cannot be used with older compilers
or C libraries, it just means that for certain corner cases, unwinding
will fail.  Since they're corner cases, it is not likely for
applications to trigger them.

Note: If you get lots of errors in Gia64-test-nat and Lia64-test-nat, it's
      almost certainly a sign of an old assembler.  The GNU assembler used
      to encode previous-stack-pointer-relative offsets incorrectly.
      This bug was fixed on 21-Sep-2004 so any later assembler will be
      fine.

** Expected results on x86 Linux

The following tests are expected to fail on x86 Linux:

	test-proc-info		(x86 unwinder doesn't use unwind-info yet)
	Gtest-exc		(unw_resume() not implmented yet)
	Ltest-exc		(unw_resume() not implmented yet)
	test-setjmp		(unw_resume() not implmented yet)

** Expected results on HP-UX

"make check" is currently unsupported for HP-UX.  You can try to run
it, but most tests will fail (and some may fail to terminate).  The
only test programs that are known to work at this time are:

     tests/bt
     tests/Gperf-simple
     tests/test-proc-info
     tests/test-static-link
     tests/Gtest-init
     tests/Ltest-init
     tests/Gtest-resume-sig
     tests/Ltest-resume-sig

* Performance Testing

This distribution includes a few simple performance tests which give
some idea of the basic cost of various libunwind operations.  After
building the library, you can run these tests with the following
commands:

 $ cd tests
 $ make perf

* Contacting the Developers

Please direct all questions regarding this library to:

	libunwind@linux.hpl.hp.com

For spam protection, you'll have to subscribe to this list before
posting a question.  You can do this by sending a mail to
libunwind-request@linux.hpl.hp.com with a body of:

	subscribe libunwind

Note: the host that is running this list is behind a firewall, so
you'll not be able to use the Web interface to manage your
subscription.  Send a mail containing "help" to
libunwind-request@linux.hpl.hp.com for information on how to manage
your subscription via email.