summaryrefslogtreecommitdiff
path: root/NEWS
blob: a2fdeb2a493105fd893803a1fafb58db213aad1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
-*-Mode: outline-*-

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