mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-11-14 12:18:12 +01:00
229 lines
8.2 KiB
Text
229 lines
8.2 KiB
Text
-*-Mode: outline-*-
|
||
|
||
* News for v1.1:
|
||
|
||
** coredump unwind support
|
||
** New arch: SuperH
|
||
** Improved support for PowerPC, ARM
|
||
** Lots of cleanups, perf tweaks
|
||
** pkg-config support
|
||
|
||
* News for v1.0:
|
||
|
||
** Fast unwind (rbp, rsp, rip only) on x86_64 with a fallback to
|
||
slow code path (Lassi Tuura)
|
||
** Improved local and remote unwinding on ARM (Ken Werner)
|
||
** Testing, stability and many fixes on x86 (Paul Pluzhnikov)
|
||
** FreeBSD port and clean separation of OS specific bits
|
||
(Konstantin Belousov)
|
||
** Thanks for all the bug reports, contributions and testing!
|
||
|
||
* News for v0.99:
|
||
|
||
** Greatly improved x86-64 support thanks to Arun Sharma.
|
||
** Support for PPC64 added by Jose Flavio Aguilar Paulino.
|
||
|
||
* News for v0.98.6:
|
||
|
||
** Fix address-leak triggered by invalid byte-order. Fixed by Andreas Schwab.
|
||
** On ia64, get_static_proc_name() no longer uses a weak reference to
|
||
_Uelf64_get_proc_name(), since that was causing problems with archive
|
||
libraries and no longer served any apparent purpose. Fixed by
|
||
Curt Wohlgemuth.
|
||
|
||
* News for v0.98.5:
|
||
|
||
** Fix a typo in the man-page of unw_create_addr_space().
|
||
** Fix an off-by-1 bug in the handling of the dynamic ALIAS directive
|
||
for ia64. Reported by Todd L. Miller.
|
||
** Fix a bug in libunwind-ptrace which could cause crash due to extraneous
|
||
munmap() calls.
|
||
|
||
* News for v0.98.4:
|
||
|
||
** Fix a typo in _ReadSLEB.c which caused hangs when throwing exceptions
|
||
from Intel ICC-compiled programs. Reported by Tommy Hoffner.
|
||
|
||
* News for v0.98.3:
|
||
|
||
** Make it possible to link against libunwind-ia64.a only (i.e., without
|
||
requiring libunwind.a as well). This keeps apps which need only
|
||
remote unwinding cleaner, since they logically have no dependency
|
||
on libunwind.a.
|
||
** Dont link against libatomic_ops for now. Due to a packaging bug on
|
||
Debian, linking against this library causes libunwind.so to get
|
||
a dependency on libatomic_ops.so, which is not at all what we want.
|
||
Fortunately, we don't have to link against that library on x86 or
|
||
ia64 since the library is strictly needed only for platforms with
|
||
poor atomic operation support. Once the libatomic_ops package is fixed,
|
||
we can re-enable linking against libatomic_ops.
|
||
|
||
* News for v0.98.2:
|
||
|
||
** Fixed bug which caused _UPT_get_dyn_info_list_addr() to sometimes fail
|
||
needlessly. Found by Todd L. Miller.
|
||
|
||
** When using GCC to build libunwind on ia64, libunwind.so had an
|
||
unresolved reference to __divdi3. This is undesirable since it
|
||
creates an implicit dependency on libgcc. This problem has been
|
||
fixed in the 0.98.2 release by explicitly linking against libgcc.a
|
||
when building libunwind.
|
||
|
||
* News for v0.98.1:
|
||
|
||
** Fixed a bug which caused "make install" to install libunwind-common.h.in
|
||
instead of libunwind-common.h.
|
||
** Fixed a bug in the ia64 {sig,}longjmp() which showed on
|
||
SuSE Linux 9 because it's using a newer compiler & the EPC-based system
|
||
call stubs.
|
||
** Fixed incorrect offsets in tests/ia64-test-nat-asm.S.
|
||
Warning: you'll need a GNU assembler dated later than 21-Sep-2004 to
|
||
get this file translated correctly. With an old assembler, "make check"
|
||
will get lots of failures when running Gia64-test-nat or Lia64-test-nat!
|
||
** Convert tests/bt into a full-blown test-case. It's designed to
|
||
trigger a (rarely-encountered) bug in the GNU assembler on ia64.
|
||
The assembler has been fixed and once the libraries (libc etc)
|
||
have been rebuilt, this test will pass.
|
||
** Added test-case tests/run-ptrace-misc which, on ia64, triggers a bug in
|
||
current GCC (including v3.4.2) which causes bad unwind info.
|
||
|
||
* News for v0.98:
|
||
|
||
** Update libunwind to be compliant with the updated/expanded
|
||
ia64 unwind specificiation by HJ Lu [1]. This is needed for
|
||
GCC 3.4 compatibility.
|
||
|
||
[1] http://www.kernel.org/pub/linux/devel/gcc/unwind/
|
||
|
||
** Initial support for x86-64 has been added courtesy of Max Asbock.
|
||
Along with this came a bunch of DWARF2 unwinder fixes.
|
||
|
||
** A new rountine unw_strerror() has been added courtesy of
|
||
Thomas Hallgren.
|
||
|
||
** Including <libunwind.h> now defines 4 macros that can be used
|
||
to determine the version number of libunwind. Specifically,
|
||
UNW_VERSION_MAJOR, UNW_VERSION_MINOR, UNW_VERSION, and
|
||
UNW_VERSION_CODE are defined by the header now.
|
||
|
||
** Bug fixes
|
||
*** Fix a memory-leak in _UPT_get_dyn_info_list_addr() courtesy of Ed Connell.
|
||
*** Fix a crash in libunwind-ptrace courtesy of Mark Young.
|
||
*** Fix a bug in ia64-version of unw_init_remote() which prevented
|
||
it from working correctly for the local address space. Reported by
|
||
Troy Heber.
|
||
*** Many other small and not so small fixes.
|
||
|
||
* News for v0.97:
|
||
|
||
** unw_get_proc_name() may now be called from signal-handler.
|
||
|
||
** The ptrace-helper routines are now declared in libunwind-ptrace.h.
|
||
Applications which use ptrace-based unwinding should include
|
||
<libunwind-ptrace.h> to get the _UPT_*() routines declared.
|
||
|
||
** libunwind has been split into a "local-only" and a "generic" versions.
|
||
The former is optimized for local unwinding (within a process) and
|
||
is called libunwind.so (shared version) or libunwind.a (archive
|
||
version). The generic version is not limited to unwinding within a
|
||
process and is called libunwind-generic.so (shared version)
|
||
libunwind-generic.a (archive version). Similarly, the ptrace()
|
||
support has been separated out into a convenience library called
|
||
libunwind-ptrace.a. For the most part, backwards-compatibility
|
||
is retained. However, when building an application which uses
|
||
libunwind, it may be necessary to change the linker command-line
|
||
as shown in the table below:
|
||
|
||
Application which does: Before v0.97: With v0.97:
|
||
----------------------- ------------- -----------
|
||
local unwinding only: -lunwind -lunwind
|
||
remote unwinding: -lunwind -lunwind-generic
|
||
cross unwinding: -lunwind-PLAT -lunwind-PLAT
|
||
ptrace-based unwinding: -lunwind -lunwind-ptrace -lunwind-generic
|
||
|
||
The motivation for this splitting is to keep libunwind.so as minimal
|
||
as possible. This library will eventually be loaded by most (if not
|
||
all) executables and hence it is important to ensure that it can
|
||
be loaded as quickly as possible.
|
||
|
||
** unw_getcontext() tuned on IA-64.
|
||
|
||
The unw_getcontext() routine used to be provided by (GNU) libc
|
||
(getcontext()). This caused unnecessary overhead (e.g., an
|
||
unnecessary system-call to sigprocmask()). The new
|
||
unw_getcontext() only does the work really needed for libunwind and
|
||
hence performs much better. However, this change implies that
|
||
programs linked against libunwind v0.97 won't be
|
||
backwards-compatible with earlier versions (there would be an
|
||
unresolved symbol for _Uia64_getcontext()).
|
||
|
||
** Fix NaT-bit handling on IA-64.
|
||
|
||
New test-cases have been added to test the handling of the NaT bit
|
||
(and floating-point NaT values) and all discovered/known bugs have
|
||
been fixed.
|
||
|
||
** Initial DWARF-based unwinder for x86.
|
||
|
||
There is a beginning for a DWARF-based unwinder for x86. Work for
|
||
x86-64-support based on this DWARF unwinder is currently underway
|
||
at IBM and it is expected that this support will be merged into the
|
||
official tree soon.
|
||
|
||
|
||
* News for v0.96:
|
||
|
||
** _Unwind_*() routines defined by the C++ ABI are now included in
|
||
libunwind.
|
||
|
||
|
||
* News for v0.95:
|
||
|
||
** Bigger, better, faster, or so the theory goes.
|
||
|
||
|
||
* News for v0.93:
|
||
|
||
** More bug-fixes & improved HP-UX support.
|
||
|
||
|
||
* News for v0.92:
|
||
|
||
** Bug-fix release. IA-64 unwinder can now be built with Intel compiler (ECC).
|
||
|
||
|
||
* News for v0.91:
|
||
|
||
** Lots of documentation updates
|
||
** Some portability fixes.
|
||
|
||
|
||
* News for v0.9:
|
||
|
||
** The libunwind API is mostly feature-complete at this point (hence the
|
||
version jump from v0.2 to v0.9).
|
||
|
||
|
||
* News for v0.2:
|
||
|
||
** Automated configuration/build with autoconf and automake.
|
||
** Added support for building libunwind as a shared library.
|
||
** Added support for remote unwinding.
|
||
** Added support for cross-building.
|
||
** Added two new routines to the API:
|
||
- unw_is_fpreg()
|
||
- unw_get_save_loc()
|
||
** Added multi-architecture supports (lets a single application use
|
||
the unwind libraries for multiple target architectures; this is useful,
|
||
e.g., useful for building a debugger that can support multiple targets
|
||
such as x86, ia64, etc.)
|
||
|
||
|
||
* News for v0.1:
|
||
|
||
** Added support for exception handling.
|
||
|
||
|
||
* News for v0.0:
|
||
|
||
** It's a brand new package.
|