view gcc/config/i386/libgcc-glibc.ver @ 0:a06113de4d67

first commit
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Fri, 17 Jul 2009 14:47:48 +0900
parents
children 77e2b8dfacca
line wrap: on
line source

# 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.

%ifndef __x86_64__
%exclude {
  __divdi3
  __moddi3
  __udivdi3
  __umoddi3
  __register_frame
  __register_frame_table
  __deregister_frame
  __register_frame_info
  __deregister_frame_info
  __frame_state_for
  __register_frame_info_table
}

%inherit GCC_3.0 GLIBC_2.0
GLIBC_2.0 {
  # Sampling of DImode arithmetic used by (at least) i386 and m68k.
  __divdi3
  __moddi3
  __udivdi3
  __umoddi3

  # Exception handling support functions used by most everyone.
  __register_frame
  __register_frame_table
  __deregister_frame
  __register_frame_info
  __deregister_frame_info
  __frame_state_for
  __register_frame_info_table
}
%endif

# 128 bit long double support was introduced with GCC 4.3.0 to 64bit
# and with GCC 4.4.0 to 32bit.  These lines make the symbols to get
# a @@GCC_4.3.0 or @@GCC_4.4.0 attached.

%exclude {
  __addtf3
  __divtc3
  __divtf3
  __eqtf2
  __extenddftf2
  __extendsftf2
  __extendxftf2
  __fixtfdi
  __fixtfsi
  __fixtfti
  __fixunstfdi
  __fixunstfsi
  __fixunstfti
  __floatditf
  __floatsitf
  __floattitf
  __floatunditf
  __floatunsitf
  __floatuntitf
  __getf2
  __gttf2
  __letf2
  __lttf2
  __multc3
  __multf3
  __negtf2
  __netf2
  __powitf2
  __subtf3
  __trunctfdf2
  __trunctfsf2
  __trunctfxf2
  __unordtf2
}

%ifdef __x86_64__
# Those symbols had improper versions when they were added to gcc 4.3.0.
# We corrected the default version to GCC_4.3.0.  But we keep the old
# version for backward binary compatibility. 
GCC_3.0 {
  __gttf2
  __lttf2
  __netf2
}

GCC_4.0.0 {
  __divtc3
  __multc3
  __powitf2
}

GCC_4.3.0 {
  __addtf3
  __divtc3
  __divtf3
  __eqtf2
  __extenddftf2
  __extendsftf2
  __extendxftf2
  __fixtfdi
  __fixtfsi
  __fixtfti
  __fixunstfdi
  __fixunstfsi
  __fixunstfti
  __floatditf
  __floatsitf
  __floattitf
  __floatunditf
  __floatunsitf
  __floatuntitf
  __getf2
  __gttf2
  __letf2
  __lttf2
  __multc3
  __multf3
  __negtf2
  __netf2
  __powitf2
  __subtf3
  __trunctfdf2
  __trunctfsf2
  __trunctfxf2
  __unordtf2
}
%else
GCC_4.4.0 {
  __addtf3
  __copysigntf3
  __divtc3
  __divtf3
  __eqtf2
  __extenddftf2
  __extendsftf2
  __fabstf2
  __fixtfdi
  __fixtfsi
  __fixunstfdi
  __fixunstfsi
  __floatditf
  __floatsitf
  __floatunditf
  __floatunsitf
  __getf2
  __gttf2
  __letf2
  __lttf2
  __multc3
  __multf3
  __negtf2
  __netf2
  __powitf2
  __subtf3
  __trunctfdf2
  __trunctfsf2
  __trunctfxf2
  __unordtf2
}
%endif