os_defines.h: Define _LIBUNWIND_STD_ABI if we are on IA64 HP-UX.
authorSteve Ellcey <sje@cup.hp.com>
Tue, 27 May 2003 21:45:48 +0000 (21:45 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Tue, 27 May 2003 21:45:48 +0000 (21:45 +0000)
* config/os/hpux/os_defines.h: Define _LIBUNWIND_STD_ABI if we are
on IA64 HP-UX.
* libsupc++/eh_throw.cc: Don't call _Unwind_Resume_or_Rethrow if
_LIBUNWIND_STD_ABI is set.

From-SVN: r67193

libstdc++-v3/ChangeLog
libstdc++-v3/config/os/hpux/os_defines.h
libstdc++-v3/libsupc++/eh_throw.cc

index 49115a46864c4c757211a498204bf77ead27ee48..5e70b6e8838bf3e02251c8f275d5f751dc2efc4c 100644 (file)
@@ -1,3 +1,10 @@
+2003-05-27  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/os/hpux/os_defines.h: Define _LIBUNWIND_STD_ABI if we are
+       on IA64 HP-UX.
+       * libsupc++/eh_throw.cc: Don't call _Unwind_Resume_or_Rethrow if
+       _LIBUNWIND_STD_ABI is set.
+
 2003-05-26  Brendan Kehoe  <brendan@zen.org>
 
        * include/bits/locale_facets.tcc (do_get): Honor $22.2.6.3.3/8 and
index 87d9d4f8d8e0b4fdf9793bb05a72da1b9041a452..27951c199cb4a80750cfb41e85b1eb1da15e2194 100644 (file)
@@ -84,6 +84,13 @@ namespace std
 typedef long int __padding_type;
 #endif
 
+// GCC on IA64 HP-UX uses the HP-UX system unwind library,
+// it does not have the _Unwind_Resume_or_Rethrow entry point
+// because that is not part of the standard IA64 Unwind ABI.
+#if defined (__ia64__)
+#define _LIBUNWIND_STD_ABI 1
+#endif
+
 /* We need explicit instantiation of the atomicity lock on HPPA if
    there is no weak support.  */
 #if !defined(_GLIBCPP_SUPPORTS_WEAK) && defined (__hppa__)
index c69c02140685f39feedb733fb8f1104befa70e53..54d10fbc4f5b883fd604fe564ccc9b447a64173d 100644 (file)
@@ -97,8 +97,12 @@ __cxa_rethrow ()
 
 #ifdef _GLIBCPP_SJLJ_EXCEPTIONS
       _Unwind_SjLj_Resume_or_Rethrow (&header->unwindHeader);
+#else
+#ifdef _LIBUNWIND_STD_ABI
+      _Unwind_RaiseException (&header->unwindHeader);
 #else
       _Unwind_Resume_or_Rethrow (&header->unwindHeader);
+#endif
 #endif
   
       // Some sort of unwinding error.  Note that terminate is a handler.