gcc/libstdc++-v3/libsupc++
Jakub Jelinek 754e45a867 re PR other/26208 (Serious problem with unwinding through signal frames)
PR other/26208
	* unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
	(extract_cie_info): Handle S flag in augmentation string.
	(execute_cfa_program): If context->signal_frame, execute also
	fs->pc == context->ra instructions.
	(uw_frame_state_for): If context->signal_frame, don't subtract one
	from context->ra to find FDE.
	(uw_update_context_1): Set context->signal_frame to
	fs->signal_frame.
	(_Unwind_GetIPInfo): New function.
	* unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
	* unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
	of _Unwind_GetIP.
	* unwind-sjlj.c (_Unwind_GetIPInfo): New function.
	* unwind-generic.h (_Unwind_GetIPInfo): New prototype.
	* unwind-compat.c (_Unwind_GetIPInfo): New function.
	* libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
	* config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
	* config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
	* config/i386/linux-unwind.h (x86_fallback_frame_state,
	x86_64_fallback_frame_state): Set fs->signal_frame.
	* config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
	(MD_FROB_UPDATE_CONTEXT): Define unconditionally.
	(frob_update_context): Likewise.  Workaround missing S flag in
	Linux 2.6.12 - 2.6.16 kernel vDSOs.
	* config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
	Remove the psw_addr + 1 hack.
libjava/
	* exception.cc (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
	of _Unwind_GetIP.
	* include/i386-signal.h (MAKE_THROW_FRAME): Change into empty macro.
	(HANDLE_DIVIDE_OVERFLOW): Don't adjust _res->eip if falling through
	to throw.
	* include/x86_64-signal.h (MAKE_THROW_FRAME): Change into empty
	macro.
	* include/powerpc-signal.h (MAKE_THROW_FRAME): Change into empty
	macro.
libstdc++-v3/
	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
	_Unwind_GetIPInfo instead of _Unwind_GetIP.

From-SVN: r111488
2006-02-27 18:26:26 +01:00
..
cxxabi.h
del_op.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
del_opnt.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
del_opv.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
del_opvnt.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
eh_alloc.cc [multiple changes] 2006-01-18 11:22:10 +00:00
eh_arm.cc
eh_aux_runtime.cc
eh_call.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
eh_catch.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
eh_exception.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
eh_globals.cc [multiple changes] 2006-01-18 11:22:10 +00:00
eh_personality.cc re PR other/26208 (Serious problem with unwinding through signal frames) 2006-02-27 18:26:26 +01:00
eh_term_handler.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
eh_terminate.cc
eh_throw.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
eh_type.cc
eh_unex_handler.cc
exception c++config: Add in revised namespace associations. 2005-12-19 00:56:05 +00:00
exception_defines.h
guard.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
Makefile.am libtool-ldflags: New script. 2006-01-03 00:30:27 +00:00
Makefile.in configure.ac (_GLIBCXX_LONG_DOUBLE_COMPAT): New check. 2006-02-07 22:23:58 +00:00
new
new_handler.cc
new_op.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
new_opnt.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
new_opv.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
new_opvnt.cc del_op.cc: Include c++config.h first. 2005-11-22 00:19:07 +00:00
pure.cc
tinfo2.cc
tinfo.cc
tinfo.h
typeinfo
unwind-cxx.h
vec.cc
vterminate.cc c++config: Add in revised namespace associations. 2005-12-19 00:56:05 +00:00