assertify unwinding runtime broke IA64

Jan Beulich JBeulich@novell.com
Wed May 18 12:30:00 GMT 2005


>2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
>
>	* gcc/unwind-dw2-fde-glibc.c (base_from_cb_data,
>	_Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
>	appropriate.
>	* gcc/unwind-dw2-fde.c (__deregister_frame_info_bases,
>	base_from_object, fde_split, end_fde_sort): Likewise.
>	* gcc/unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
>	execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
>	uw_init_context_1): Likewise.
>	* gcc/unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
>	_Unwind_Resume_or_Rethrow): Likewise.
>	* gcc/unwind-pe.h (__gxx_abort): Do not define.
>	(size_of_encoded_value, base_of_encoded_value,
>	read_encoded_value_with_base): Use gcc_unreachable.
>	* gcc/unwind.h (_Unwind_GetTextRelBase): Likewise.
>	* libstdc++-v3/libsupc++/eh_personality.cc (gcc_unreachable): Define.
>	* libjava/exception.cc (abort): Remove std::abort hack.
>	(gcc_unreacheable): Define.

The change to the IA64 specific section of gcc/unwind.h broke the libstdc++ build (at least). I'm not through with a bootstrap/check, yet (and I'm afraid there might be more issues, perhaps in java), but below a tentative patch.

Jan

gcc/
2005-05-18  Jan Beulich  <jbeulich@novell.com>

	* unwind-compat.c: Include tconfig.h and tsystem.h.
	* unwind-dw2-fde-compat.c: Likewise.

libstdc++-v3/
2005-05-18  Jan Beulich  <jbeulich@novell.com>

	* libsupc++/unwind-cxx.h: Include cstdlib.
	(gcc_unreachable): #define.
	* libsupc++/eh_personality.cc (gcc_unreachable): Remove #define.

--- /home/jbeulich/src/gcc/mainline/2005-05-18/gcc/unwind-compat.c	2004-09-04 02:15:40.000000000 +0200
+++ 2005-05-18/gcc/unwind-compat.c	2005-05-18 13:11:53.151323835 +0200
@@ -29,6 +29,8 @@
    02111-1307, USA.  */
 
 #if defined (USE_GAS_SYMVER) && defined (USE_LIBUNWIND_EXCEPTIONS)
+#include "tconfig.h"
+#include "tsystem.h"
 #include "unwind.h"
 #include "unwind-dw2-fde.h"
 #include "unwind-compat.h"
--- /home/jbeulich/src/gcc/mainline/2005-05-18/gcc/unwind-dw2-fde-compat.c	2004-09-04 02:15:40.000000000 +0200
+++ 2005-05-18/gcc/unwind-dw2-fde-compat.c	2005-05-18 13:11:58.040972213 +0200
@@ -29,6 +29,8 @@
    02111-1307, USA.  */
 
 #if defined (USE_GAS_SYMVER) && defined (USE_LIBUNWIND_EXCEPTIONS)
+#include "tconfig.h"
+#include "tsystem.h"
 #include "unwind.h"
 #include "unwind-dw2-fde.h"
 #include "unwind-compat.h"
--- /home/jbeulich/src/gcc/mainline/2005-05-18/libstdc++-v3/libsupc++/eh_personality.cc	2005-05-18 08:10:20.000000000 +0200
+++ 2005-05-18/libstdc++-v3/libsupc++/eh_personality.cc	2005-05-18 13:20:25.888622241 +0200
@@ -35,7 +35,6 @@
 
 using namespace __cxxabiv1;
 
-#define gcc_unreachable() std::abort()
 #include "unwind-pe.h"
 
 
--- /home/jbeulich/src/gcc/mainline/2005-05-18/libstdc++-v3/libsupc++/unwind-cxx.h	2005-03-01 10:08:36.000000000 +0100
+++ 2005-05-18/libstdc++-v3/libsupc++/unwind-cxx.h	2005-05-18 13:20:50.981395372 +0200
@@ -38,6 +38,8 @@
 #include <typeinfo>
 #include <exception>
 #include <cstddef>
+#include <cstdlib>
+#define gcc_unreachable() std::abort()
 #include "unwind.h"
 
 #pragma GCC visibility push(default)




More information about the Libstdc++ mailing list