gcc/gcc/libgcc-std.ver
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

277 lines
4.0 KiB
Plaintext

GCC_3.0 {
# libgcc1 integer symbols
__absvsi2
__addvsi3
__ashlsi3
__ashrsi3
__divsi3
__lshrsi3
__modsi3
__mulsi3
__mulvsi3
__negvsi2
__subvsi3
__udivsi3
__umodsi3
# libgcc1 floating point symbols
__addsf3
__adddf3
__addxf3
__addtf3
__divsf3
__divdf3
__divxf3
__divtf3
__eqsf2
__eqdf2
__eqxf2
__eqtf2
__extenddfxf2
__extenddftf2
__extendsfdf2
__extendsfxf2
__extendsftf2
__fixsfsi
__fixdfsi
__fixxfsi
__fixtfsi
__floatsisf
__floatsidf
__floatsixf
__floatsitf
__gesf2
__gedf2
__gexf2
__getf2
__gtsf2
__gtdf2
__gtxf2
__gttf2
__lesf2
__ledf2
__lexf2
__letf2
__ltsf2
__ltdf2
__ltxf2
__lttf2
__mulsf3
__muldf3
__mulxf3
__multf3
__negsf2
__negdf2
__negxf2
__negtf2
__nesf2
__nedf2
__nexf2
__netf2
__subsf3
__subdf3
__subxf3
__subtf3
__truncdfsf2
__truncxfsf2
__trunctfsf2
__truncxfdf2
__trunctfdf2
# libgcc2 DImode arithmetic (for 32-bit targets).
__absvdi2
__addvdi3
__ashldi3
__ashrdi3
__cmpdi2
__divdi3
__ffsdi2
__fixdfdi
__fixsfdi
__fixtfdi
__fixxfdi
__fixunsdfdi
__fixunsdfsi
__fixunssfsi
__fixunssfdi
__fixunstfdi
__fixunstfsi
__fixunsxfdi
__fixunsxfsi
__floatdidf
__floatdisf
__floatdixf
__floatditf
__lshrdi3
__moddi3
__muldi3
__mulvdi3
__negdi2
__negvdi2
__subvdi3
__ucmpdi2
__udivdi3
__udivmoddi4
__umoddi3
# libgcc2 TImode arithmetic (for 64-bit targets).
__ashlti3
__ashrti3
__cmpti2
__divti3
__ffsti2
__fixdfti
__fixsfti
__fixtfti
__fixxfti
__lshrti3
__modti3
__multi3
__negti2
__ucmpti2
__udivmodti4
__udivti3
__umodti3
__fixunsdfti
__fixunssfti
__fixunstfti
__fixunsxfti
__floattidf
__floattisf
__floattixf
__floattitf
# Used to deal with trampoline initialization on some platforms
__clear_cache
# EH symbols
_Unwind_DeleteException
_Unwind_Find_FDE
_Unwind_ForcedUnwind
_Unwind_GetGR
_Unwind_GetIP
_Unwind_GetLanguageSpecificData
_Unwind_GetRegionStart
_Unwind_GetTextRelBase
_Unwind_GetDataRelBase
_Unwind_RaiseException
_Unwind_Resume
_Unwind_SetGR
_Unwind_SetIP
__deregister_frame
__deregister_frame_info
__deregister_frame_info_bases
__register_frame
__register_frame_info
__register_frame_info_bases
__register_frame_info_table
__register_frame_info_table_bases
__register_frame_table
# SjLj EH symbols
_Unwind_SjLj_Register
_Unwind_SjLj_Unregister
_Unwind_SjLj_RaiseException
_Unwind_SjLj_ForcedUnwind
_Unwind_SjLj_Resume
}
%inherit GCC_3.3 GCC_3.0
GCC_3.3 {
_Unwind_FindEnclosingFunction
_Unwind_GetCFA
_Unwind_Backtrace
_Unwind_Resume_or_Rethrow
_Unwind_SjLj_Resume_or_Rethrow
}
%inherit GCC_3.3.1 GCC_3.3
GCC_3.3.1 {
__gcc_personality_sj0
__gcc_personality_v0
}
%inherit GCC_3.3.2 GCC_3.3.1
GCC_3.3.2 {
}
%inherit GCC_3.3.4 GCC_3.3.2
GCC_3.3.4 {
__unorddf2
__unordsf2
}
%inherit GCC_3.4 GCC_3.3.4
GCC_3.4 {
# bit scanning and counting built-ins
__clzsi2
__clzdi2
__clzti2
__ctzsi2
__ctzdi2
__ctzti2
__popcountsi2
__popcountdi2
__popcountti2
__paritysi2
__paritydi2
__parityti2
}
%inherit GCC_3.4.2 GCC_3.4
GCC_3.4.2 {
# Used to deal with trampoline initialization on some platforms
__enable_execute_stack
__trampoline_setup
}
%inherit GCC_3.4.4 GCC_3.4.2
GCC_3.4.4 {
# libgcc2 TImode arithmetic (for 64-bit targets).
__absvti2
__addvti3
__mulvti3
__negvti2
__subvti3
}
%inherit GCC_4.0.0 GCC_3.4.4
GCC_4.0.0 {
# libgcc2 __builtin_powi helpers.
__powisf2
__powidf2
__powixf2
__powitf2
# c99 compliant complex arithmetic
__divsc3
__divdc3
__divxc3
__divtc3
__mulsc3
__muldc3
__mulxc3
__multc3
}
%inherit GCC_4.1.0 GCC_4.0.0
GCC_4.1.0 {
}
%inherit GCC_4.2.0 GCC_4.1.0
GCC_4.2.0 {
# unsigned-to-floating conversions
__floatunsisf
__floatunsidf
__floatunsixf
__floatunsitf
__floatundidf
__floatundisf
__floatundixf
__floatunditf
__floatuntidf
__floatuntisf
__floatuntixf
__floatuntitf
_Unwind_GetIPInfo
}