NEWS revision 38d99eee0ad2de0f214eda6366eafe7fb34e123b
1-*-Mode: outline-*-
2
3* News for v0.98.5:
4
5** Fix a typo in the man-page of unw_create_addr_space().
6** Fix an off-by-1 bug in the handling of the dynamic ALIAS directive
7   for ia64.  Reported by Todd L. Miller.
8** Fix a bug in libunwind-ptrace which could cause crash due to extraneous
9   munmap() calls.
10
11* News for v0.98.4:
12
13** Fix a typo in _ReadSLEB.c which caused hangs when throwing exceptions
14   from Intel ICC-compiled programs.  Reported by Tommy Hoffner.
15
16* News for v0.98.3:
17
18** Make it possible to link against libunwind-ia64.a only (i.e., without
19   requiring libunwind.a as well).  This keeps apps which need only
20   remote unwinding cleaner, since they logically have no dependency
21   on libunwind.a.
22** Dont link against libatomic_ops for now.  Due to a packaging bug on
23   Debian, linking against this library causes libunwind.so to get
24   a dependency on libatomic_ops.so, which is not at all what we want.
25   Fortunately, we don't have to link against that library on x86 or
26   ia64 since the library is strictly needed only for platforms with
27   poor atomic operation support.  Once the libatomic_ops package is fixed,
28   we can re-enable linking against libatomic_ops.
29
30* News for v0.98.2:
31
32** Fixed bug which caused _UPT_get_dyn_info_list_addr() to sometimes fail
33   needlessly.  Found by Todd L. Miller.
34
35** When using GCC to build libunwind on ia64, libunwind.so had an
36   unresolved reference to __divdi3.  This is undesirable since it
37   creates an implicit dependency on libgcc.  This problem has been
38   fixed in the 0.98.2 release by explicitly linking against libgcc.a
39   when building libunwind.
40
41* News for v0.98.1:
42
43** Fixed a bug which caused "make install" to install libunwind-common.h.in
44   instead of libunwind-common.h.
45** Fixed a bug in the ia64 {sig,}longjmp() which showed on
46   SuSE Linux 9 because it's using a newer compiler & the EPC-based system
47   call stubs.
48** Fixed incorrect offsets in tests/ia64-test-nat-asm.S.
49   Warning: you'll need a GNU assembler dated later than 21-Sep-2004 to
50   get this file translated correctly.  With an old assembler, "make check"
51   will get lots of failures when running Gia64-test-nat or Lia64-test-nat!
52** Convert tests/bt into a full-blown test-case.  It's designed to
53   trigger a (rarely-encountered) bug in the GNU assembler on ia64.
54   The assembler has been fixed and once the libraries (libc etc)
55   have been rebuilt, this test will pass.
56** Added test-case tests/run-ptrace-misc which, on ia64, triggers a bug in
57   current GCC (including v3.4.2) which causes bad unwind info.
58
59* News for v0.98:
60
61** Update libunwind to be compliant with the updated/expanded
62   ia64 unwind specificiation by HJ Lu [1].  This is needed for
63   GCC 3.4 compatibility.
64
65   [1] http://www.kernel.org/pub/linux/devel/gcc/unwind/
66
67** Initial support for x86-64 has been added courtesy of Max Asbock.
68   Along with this came a bunch of DWARF2 unwinder fixes.
69
70** A new rountine unw_strerror() has been added courtesy of
71   Thomas Hallgren.
72
73** Including <libunwind.h> now defines 4 macros that can be used
74   to determine the version number of libunwind.  Specifically,
75   UNW_VERSION_MAJOR, UNW_VERSION_MINOR, UNW_VERSION, and
76   UNW_VERSION_CODE are defined by the header now.
77
78** Bug fixes
79*** Fix a memory-leak in _UPT_get_dyn_info_list_addr() courtesy of Ed Connell.
80*** Fix a crash in libunwind-ptrace courtesy of Mark Young.
81*** Fix a bug in ia64-version of unw_init_remote() which prevented
82    it from working correctly for the local address space.  Reported by
83    Troy Heber.
84*** Many other small and not so small fixes.
85
86* News for v0.97:
87
88** unw_get_proc_name() may now be called from signal-handler.
89
90** The ptrace-helper routines are now declared in libunwind-ptrace.h.
91   Applications which use ptrace-based unwinding should include
92   <libunwind-ptrace.h> to get the _UPT_*() routines declared.
93
94** libunwind has been split into a "local-only" and a "generic" versions.
95   The former is optimized for local unwinding (within a process) and
96   is called libunwind.so (shared version) or libunwind.a (archive
97   version).  The generic version is not limited to unwinding within a
98   process and is called libunwind-generic.so (shared version)
99   libunwind-generic.a (archive version).  Similarly, the ptrace()
100   support has been separated out into a convenience library called
101   libunwind-ptrace.a.  For the most part, backwards-compatibility
102   is retained.  However, when building an application which uses
103   libunwind, it may be necessary to change the linker command-line
104   as shown in the table below:
105
106    Application which does: Before v0.97:  With v0.97:
107    ----------------------- -------------  -----------
108    local unwinding only:   -lunwind       -lunwind
109    remote unwinding:       -lunwind       -lunwind-generic
110    cross unwinding:        -lunwind-PLAT  -lunwind-PLAT
111    ptrace-based unwinding: -lunwind       -lunwind-ptrace -lunwind-generic
112
113   The motivation for this splitting is to keep libunwind.so as minimal
114   as possible.  This library will eventually be loaded by most (if not
115   all) executables and hence it is important to ensure that it can
116   be loaded as quickly as possible.
117
118** unw_getcontext() tuned on IA-64.
119
120   The unw_getcontext() routine used to be provided by (GNU) libc
121   (getcontext()).  This caused unnecessary overhead (e.g., an
122   unnecessary system-call to sigprocmask()).  The new
123   unw_getcontext() only does the work really needed for libunwind and
124   hence performs much better.  However, this change implies that
125   programs linked against libunwind v0.97 won't be
126   backwards-compatible with earlier versions (there would be an
127   unresolved symbol for _Uia64_getcontext()).
128
129** Fix NaT-bit handling on IA-64.
130
131   New test-cases have been added to test the handling of the NaT bit
132   (and floating-point NaT values) and all discovered/known bugs have
133   been fixed.
134
135** Initial DWARF-based unwinder for x86.
136
137   There is a beginning for a DWARF-based unwinder for x86.  Work for
138   x86-64-support based on this DWARF unwinder is currently underway
139   at IBM and it is expected that this support will be merged into the
140   official tree soon.
141
142
143* News for v0.96:
144
145** _Unwind_*() routines defined by the C++ ABI are now included in
146   libunwind.
147
148
149* News for v0.95:
150
151** Bigger, better, faster, or so the theory goes.
152
153
154* News for v0.93:
155
156** More bug-fixes & improved HP-UX support.
157
158
159* News for v0.92:
160
161** Bug-fix release.  IA-64 unwinder can now be built with Intel compiler (ECC).
162
163
164* News for v0.91:
165
166** Lots of documentation updates
167** Some portability fixes.
168
169
170* News for v0.9:
171
172** The libunwind API is mostly feature-complete at this point (hence the
173   version jump from v0.2 to v0.9).
174
175
176* News for v0.2:
177
178** Automated configuration/build with autoconf and automake.
179** Added support for building libunwind as a shared library.
180** Added support for remote unwinding.
181** Added support for cross-building.
182** Added two new routines to the API:
183	- unw_is_fpreg()
184	- unw_get_save_loc()
185** Added multi-architecture supports (lets a single application use
186   the unwind libraries for multiple target architectures; this is useful,
187   e.g., useful for building a debugger that can support multiple targets
188   such as x86, ia64, etc.)
189
190
191* News for v0.1:
192
193** Added support for exception handling.
194
195
196* News for v0.0:
197
198** It's a brand new package.
199