Home | History | Annotate | Download | only in libunwind
      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