OSDN Git Service

Patch from David Mosberger
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Nov 2003 22:53:02 +0000 (22:53 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Nov 2003 22:53:02 +0000 (22:53 +0000)
* 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

gcc/ChangeLog
gcc/config/t-libunwind
gcc/unwind-libunwind.c

index dbcdf3e..c9bea38 100644 (file)
@@ -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>
 
 2003-11-20  Fariborz Jahanian  <fjahanian@apple.com>
            David Edelsohn  <edelsohn@gnu.org>
 
index be50bc4..a27c5e2 100644 (file)
@@ -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
index 2e53a59..89e8417 100644 (file)
@@ -110,9 +110,11 @@ _Unwind_GetGR (struct _Unwind_Context *context, int index)
 _Unwind_Word
 _Unwind_GetCFA (struct _Unwind_Context *context)
 {
 _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.  */
 
 
 /* Overwrite the saved value for register REG in CONTEXT with VAL.  */
 
@@ -167,6 +169,19 @@ _Unwind_FindEnclosingFunction (void *pc)
   return NULL;
 }
 
   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__ */
 #include "unwind.inc"
 
 #endif /* !__USING_SJLJ_EXCEPTIONS__ */