summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-20 22:53:02 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-20 22:53:02 +0000
commit77f88a0248cf6506e55f11e46683e3049001a86b (patch)
tree0b2f2a1d3b8d58631f3565571f4188a1240462df
parent4c70a6a79102493da07693e5fe7979a99b851aa9 (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--gcc/config/t-libunwind4
-rw-r--r--gcc/unwind-libunwind.c21
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__ */