# In order to work around the very problems that force us to now generally
# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
# By now choosing the same version tags for these specific routines, we
# maintain enough binary compatibility to allow future versions of glibc
# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.

# Note that we cannot use the default libgcc-glibc.ver file on sh,
# because GLIBC_2.0 does not exist on this architecture, as the first 
# ever glibc release on the platform was GLIBC_2.3.

%inherit GCC_3.0 GLIBC_2.3
GLIBC_2.3 {
  __register_frame
  __register_frame_table
  __deregister_frame
  __register_frame_info
  __deregister_frame_info
  __frame_state_for
  __register_frame_info_table
}
