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