From: David Mosberger Date: Thu, 20 Nov 2003 22:53:02 +0000 (+0000) Subject: Patch from David Mosberger X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3e7869c6443a05a1fdbedd087eed14402df2875f;p=gcc.git Patch from David Mosberger * config/t-libunwind: Mention unwind-c.c. (SHLIB_LC): Overwrite the default-value from t-slibgcc-elf-ver and mention -lunwind so that the resulting libgcc_s.so has the necessary DT_NEEDED entry for libunwind. * unwind-libunwind.c (_Unwind_GetCFA): Implement. (_Unwind_GetBSP) [UNW_TARGET_IA64]: New function. From-SVN: r73777 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dbcdf3e26cc..c9bea389ef5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2003-11-20 David Mosberger + + * config/t-libunwind: Mention unwind-c.c. + (SHLIB_LC): Overwrite the default-value from t-slibgcc-elf-ver + and mention -lunwind so that the resulting libgcc_s.so has + the necessary DT_NEEDED entry for libunwind. + + * unwind-libunwind.c (_Unwind_GetCFA): Implement. + (_Unwind_GetBSP) [UNW_TARGET_IA64]: New function. + 2003-11-20 Fariborz Jahanian David Edelsohn diff --git a/gcc/config/t-libunwind b/gcc/config/t-libunwind index be50bc481c5..a27c5e224f1 100644 --- a/gcc/config/t-libunwind +++ b/gcc/config/t-libunwind @@ -1 +1,3 @@ -LIB2ADDEH = $(srcdir)/unwind-libunwind.c $(srcdir)/unwind-sjlj.c +SHLIB_LC = -lunwind -lc +LIB2ADDEH = $(srcdir)/unwind-libunwind.c $(srcdir)/unwind-sjlj.c \ + $(srcdir)/unwind-c.c diff --git a/gcc/unwind-libunwind.c b/gcc/unwind-libunwind.c index 2e53a59eac7..89e841759cf 100644 --- a/gcc/unwind-libunwind.c +++ b/gcc/unwind-libunwind.c @@ -110,9 +110,11 @@ _Unwind_GetGR (struct _Unwind_Context *context, int index) _Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *context) { - /* ??? Is there any way to get this information? */ - return NULL; -} + unw_word_t ret; + + unw_get_reg (&context->cursor, UNW_IA64_SP, &ret); + return ret; +} /* Overwrite the saved value for register REG in CONTEXT with VAL. */ @@ -167,6 +169,19 @@ _Unwind_FindEnclosingFunction (void *pc) return NULL; } +#ifdef UNW_TARGET_IA64 + +_Unwind_Word +_Unwind_GetBSP (struct _Unwind_Context *context) +{ + unw_word_t ret; + + unw_get_reg (&context->cursor, UNW_IA64_BSP, &ret); + return ret; +} + +#endif + #include "unwind.inc" #endif /* !__USING_SJLJ_EXCEPTIONS__ */