diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-20 22:53:02 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-20 22:53:02 +0000 |
commit | 77f88a0248cf6506e55f11e46683e3049001a86b (patch) | |
tree | 0b2f2a1d3b8d58631f3565571f4188a1240462df | |
parent | 4c70a6a79102493da07693e5fe7979a99b851aa9 (diff) | |
download | gcc-77f88a0248cf6506e55f11e46683e3049001a86b.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73777 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/t-libunwind | 4 | ||||
-rw-r--r-- | gcc/unwind-libunwind.c | 21 |
3 files changed, 31 insertions, 4 deletions
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 <davidm@hpl.hp.com> + + * 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 <fjahanian@apple.com> David Edelsohn <edelsohn@gnu.org> 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__ */ |