1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-22 23:47:39 +01:00
Fork of the libunwind official github repo — http://www.nongnu.org/libunwind/
Find a file
hp.com!davidm 3ff119aa1d (put_unwind_info): New function.
(resume): Likewise.
(nop): Remove.
(main): Don't cast function pointer to different prototypes.  That's apparently
	not allowed.  icc v8.0 complains about it and GCC 3.5 will actually
	generate crashing code when this is done.  Talk about terminated with
	extreme prejudice!

(Logical change 1.213)
2004-04-23 00:12:51 +00:00
aux Delete: aux/libtool 2003-11-22 06:08:20 +00:00
BitKeeper/etc Turn off questions about logging. 2003-04-01 07:19:34 +00:00
doc Regenerate. 2004-04-20 16:53:44 +00:00
include (mutex_init): Explicitly test function-pointer against 0 since that avoids 2004-04-23 00:12:51 +00:00
scripts Support assembly files. 2003-04-23 19:22:42 +00:00
src (add_memory): Rephrase for-loop conditional to avoid bug in Intel-compiler 2004-04-22 22:36:53 +00:00
tests (put_unwind_info): New function. 2004-04-23 00:12:51 +00:00
acinclude.m4 (CHECK_ATOMIC_OPS): New test. 2003-11-24 21:37:22 +00:00
aclocal.m4 Regenerate. 2004-04-20 16:53:44 +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 Regenerate. 2004-04-20 16:53:44 +00:00
configure.in Check for dl_phdr_removals_counter. 2004-04-20 16:53:44 +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): Mention libunwind-ptrace.h. 2004-04-20 23:13:49 +00:00
Makefile.in Regenerate. 2004-04-20 23:13:49 +00:00
NEWS ia32 -> x86. 2002-12-19 07:16:50 +00:00
README Update in preparation for 0.97 release. 2004-04-20 16:53:44 +00:00
TODO Update. 2004-03-20 09:54: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.

* 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

** Up to 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

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.

** 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"

* Building on HP-UX

For the time being, libunwind must be built with GCC on HP-UX.
Unfortunately, gcc-3.0 and gcc-3.2 ship with a bad version of
sys/types.h.  The workaround for this is:

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

Apart from this glitch, libunwind should configure and install on
HP-UX like this:

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

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

* 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.

** 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.  The only test
programs that are known to work at this time are tests/bt (which
produces various backtraces) and tests/Gperf-simple, which does some
simple performance measurements.

* 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.