As promised, here a summary of what the patches do.

Thanks,

        --david

------------------
GCC patches:

Fix unwind info for C startup/finalization code so that it can be
unwound:

 config/ia64/crtbegin.asm:
        (__dso_handle): Really define it as a BSS symbol.
        (__do_global_dtors_aux): Add unwind directives.
        (__do_jv_register_classes): Likewise.
 config/ia64/crtend.asm:
        (__do_global_ctors_aux): Add unwind directives.

Fix two compiler bugs which caused bad unwind info for sibcalls
and for functions which had multiple copies of the epilogue (patches
by Jim Wilson).

 config/ia64/ia64.c:
        (ia64_expand_epilogue): Mark "alloc" in front of a sibcall as
                frame-related.
        (process_set): Generate unwind directives for sibcall "alloc".
 emit-rtl.c:
        (emit_copy_of_insn_after): Also copy frame-related predicate.

Fix GCC for libunwind.

 gcc.c:
        (init_spec): Also specific -lunwind for the shared case.


------------------
GLIBC patches:

Make GLIBC buildable with a libunwind-enabled GCC (patches by HJ Lu):

 Makeconfig: Use $(static-gnulib) instead of $(gnulib).
        If compiler is libunwind-enabled, link against -lunwind.
 Makerules:
        (LDLIBS-c.so): Use $(libc.so-gnulib) instead of $(gnulib).
 config.h.in:
        (HAVE_CC_WITH_LIBUNWIND): New macro.
 config.make.in:
        (have-cc-with-libunwind): New macro.
 configure.in:
        Add a check to see whether compiler is libunwind-enabled.

Fix unwind-info for NPTL _init/_fini routines.

 nptl/sysdeps/unix/sysv/linux/ia64/pt-initfini.c:
        (_init): Add unwind directives.
        (_fini): Likewise.

------------------
Binutils/GAS patch:

Fix handling of psp-relative offsets (patch by Jim Wilson).

 tc-ia64.c:
        (ENCODED_PSP_OFFSET): New macro.
        Fix off-by-16 bug by using ENCODED_PSP_OFFSET() macro to
        calculate all psp-relative offsets.


Reply via email to