196263Sobrien# In order to work around the very problems that force us to now generally
296263Sobrien# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
396263Sobrien# By now choosing the same version tags for these specific routines, we
496263Sobrien# maintain enough binary compatibility to allow future versions of glibc
596263Sobrien# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
696263Sobrien
796263Sobrien%ifdef __arch64__
896263Sobrien%define GLIBC_VER GLIBC_2.2
996263Sobrien%else
1096263Sobrien%define GLIBC_VER GLIBC_2.0
1196263Sobrien%endif
1296263Sobrien%inherit GCC_3.0 GLIBC_VER
1396263SobrienGLIBC_VER {
1496263Sobrien  # Sampling of DImode arithmetic used by (at least) i386 and m68k.
1596263Sobrien  __divdi3
1696263Sobrien  __moddi3
1796263Sobrien  __udivdi3
1896263Sobrien  __umoddi3
1996263Sobrien
2096263Sobrien  # Exception handling support functions used by most everyone.
2196263Sobrien  __register_frame
2296263Sobrien  __register_frame_table
2396263Sobrien  __deregister_frame
2496263Sobrien  __register_frame_info
2596263Sobrien  __deregister_frame_info
2696263Sobrien  __frame_state_for
2796263Sobrien  __register_frame_info_table
2896263Sobrien}
29169689Skan
30169689Skan%if !defined (__arch64__) && defined (__LONG_DOUBLE_128__)
31169689Skan
32169689Skan# long double 128 bit support from 32-bit libgcc_s.so.1 is only available
33169689Skan# when configured with --with-long-double-128.  Make sure all the
34169689Skan# symbols are available at @@GCC_LDBL_* versions to make it clear
35169689Skan# there is a configurable symbol set.
36169689Skan
37169689Skan%exclude {
38169689Skan  __fixtfdi
39169689Skan  __fixunstfdi
40169689Skan  __floatditf
41169689Skan
42169689Skan  __divtc3
43169689Skan  __multc3
44169689Skan  __powitf2
45169689Skan}
46169689Skan
47169689Skan%inherit GCC_LDBL_3.0 GCC_3.0
48169689SkanGCC_LDBL_3.0 {
49169689Skan  __fixtfdi
50169689Skan  __fixunstfdi
51169689Skan  __floatditf
52169689Skan}
53169689Skan
54169689Skan%inherit GCC_LDBL_4.0.0 GCC_4.0.0
55169689SkanGCC_LDBL_4.0.0 {
56169689Skan  __divtc3
57169689Skan  __multc3
58169689Skan  __powitf2
59169689Skan}
60169689Skan
61169689Skan%endif
62