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