]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorGabriel Dos Reis <gdr@gcc.gnu.org>
Thu, 4 Dec 2003 02:18:22 +0000 (02:18 +0000)
committerGabriel Dos Reis <gdr@gcc.gnu.org>
Thu, 4 Dec 2003 02:18:22 +0000 (02:18 +0000)
       2003-11-29  James E Wilson  <wilson@specifixinc.com>
       * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name
       instead of in shared_name.
       2003-11-20 David Mosberger  <davidm@hpl.hp.com>
       * config/t-libunwind (LIB2ADDEH): Add unwind-c.c.
       (SHLIB_LC): Define.
       * unwind-libunwind.c (_Unwind_GetCFA): Implement.
       (_Unwind_GetBSP) [UNW_TARGET_IA64]: New function.

From-SVN: r74262

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

index 565dd9c78bb352688b49d8a4cf52eaa946849d7d..871348e91d98d863e5619c59c289324bd7e26709 100644 (file)
@@ -1,3 +1,17 @@
+2003-12-03  James E Wilson  <wilson@specifixinc.com>
+
+       2003-11-29  James E Wilson  <wilson@specifixinc.com>
+       * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name
+       instead of in shared_name.
+
+2003-12-03 David Mosberger  <davidm@hpl.hp.com>
+
+       2003-11-20 David Mosberger  <davidm@hpl.hp.com>
+       * config/t-libunwind (LIB2ADDEH): Add unwind-c.c.
+       (SHLIB_LC): Define.
+       * unwind-libunwind.c (_Unwind_GetCFA): Implement.
+       (_Unwind_GetBSP) [UNW_TARGET_IA64]: New function.
+       
 2003-12-03  Jakub Jelinek  <jakub@redhat.com>
 
        * expr.c (store_constructor): Only set RTX_UNCHANGING_P for
index be50bc481c5f29ce339e2e40e1e91cf97b988fd6..53ba327a3167bb648604f90588730c47d016f1cd 100644 (file)
@@ -1 +1,6 @@
-LIB2ADDEH = $(srcdir)/unwind-libunwind.c $(srcdir)/unwind-sjlj.c
+# Override 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.
+SHLIB_LC = -lunwind -lc
+LIB2ADDEH = $(srcdir)/unwind-libunwind.c $(srcdir)/unwind-sjlj.c \
+           $(srcdir)/unwind-c.c
index 4a3baf8e600d21c56ce23763af88bf4eb19776c5..92d2e44cc0dc0866de2ddb0571a49aae6b140d10 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -1570,12 +1570,14 @@ init_spec ()
 #else
                            "-lgcc_s%M"
 #endif
+                           ,
+                           "-lgcc",
+                           "-lgcc_eh"
 #ifdef USE_LIBUNWIND_EXCEPTIONS
                            " -lunwind"
 #endif
-                           ,
-                           "-lgcc",
-                           "-lgcc_eh");
+                           );
+
            p += 5;
            in_sep = 0;
          }
@@ -1591,7 +1593,11 @@ init_spec ()
 #endif
                            ,
                            "libgcc.a%s",
-                           "libgcc_eh.a%s");
+                           "libgcc_eh.a%s"
+#ifdef USE_LIBUNWIND_EXCEPTIONS
+                           "libunwind.a%s"
+#endif
+                           );
            p += 10;
            in_sep = 0;
          }
index 2e53a59eac7b83aada09abef4cd27252113aeff3..89e841759cf9013309f77e437c5bb290a62971ca 100644 (file)
@@ -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__ */