OSDN Git Service

PR target/38904
[pf3gnuchains/gcc-fork.git] / gcc / config / i386 / libgcc-glibc.ver
1 # In order to work around the very problems that force us to now generally
2 # create a libgcc.so, glibc reexported a number of routines from libgcc.a.
3 # By now choosing the same version tags for these specific routines, we
4 # maintain enough binary compatibility to allow future versions of glibc
5 # to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
6
7 %ifndef __x86_64__
8 %exclude {
9   __divdi3
10   __moddi3
11   __udivdi3
12   __umoddi3
13   __register_frame
14   __register_frame_table
15   __deregister_frame
16   __register_frame_info
17   __deregister_frame_info
18   __frame_state_for
19   __register_frame_info_table
20 }
21
22 %inherit GCC_3.0 GLIBC_2.0
23 GLIBC_2.0 {
24   # Sampling of DImode arithmetic used by (at least) i386 and m68k.
25   __divdi3
26   __moddi3
27   __udivdi3
28   __umoddi3
29
30   # Exception handling support functions used by most everyone.
31   __register_frame
32   __register_frame_table
33   __deregister_frame
34   __register_frame_info
35   __deregister_frame_info
36   __frame_state_for
37   __register_frame_info_table
38 }
39 %endif
40
41 # 128 bit long double support was introduced with GCC 4.3.0 to 64bit
42 # and with GCC 4.4.0 to 32bit.  These lines make the symbols to get
43 # a @@GCC_4.3.0 or @@GCC_4.4.0 attached.
44
45 %exclude {
46   __addtf3
47   __divtc3
48   __divtf3
49   __eqtf2
50   __extenddftf2
51   __extendsftf2
52   __extendxftf2
53   __fixtfdi
54   __fixtfsi
55   __fixtfti
56   __fixunstfdi
57   __fixunstfsi
58   __fixunstfti
59   __floatditf
60   __floatsitf
61   __floattitf
62   __floatunditf
63   __floatunsitf
64   __floatuntitf
65   __getf2
66   __gttf2
67   __letf2
68   __lttf2
69   __multc3
70   __multf3
71   __negtf2
72   __netf2
73   __powitf2
74   __subtf3
75   __trunctfdf2
76   __trunctfsf2
77   __trunctfxf2
78   __unordtf2
79 }
80
81 %ifdef __x86_64__
82 # Those symbols had improper versions when they were added to gcc 4.3.0.
83 # We corrected the default version to GCC_4.3.0.  But we keep the old
84 # version for backward binary compatibility. 
85 GCC_3.0 {
86   __gttf2
87   __lttf2
88   __netf2
89 }
90
91 GCC_4.0.0 {
92   __divtc3
93   __multc3
94   __powitf2
95 }
96
97 GCC_4.3.0 {
98   __addtf3
99   __divtc3
100   __divtf3
101   __eqtf2
102   __extenddftf2
103   __extendsftf2
104   __extendxftf2
105   __fixtfdi
106   __fixtfsi
107   __fixtfti
108   __fixunstfdi
109   __fixunstfsi
110   __fixunstfti
111   __floatditf
112   __floatsitf
113   __floattitf
114   __floatunditf
115   __floatunsitf
116   __floatuntitf
117   __getf2
118   __gttf2
119   __letf2
120   __lttf2
121   __multc3
122   __multf3
123   __negtf2
124   __netf2
125   __powitf2
126   __subtf3
127   __trunctfdf2
128   __trunctfsf2
129   __trunctfxf2
130   __unordtf2
131 }
132 %else
133 GCC_4.4.0 {
134   __addtf3
135   __copysigntf3
136   __divtc3
137   __divtf3
138   __eqtf2
139   __extenddftf2
140   __extendsftf2
141   __fabstf2
142   __fixtfdi
143   __fixtfsi
144   __fixunstfdi
145   __fixunstfsi
146   __floatditf
147   __floatsitf
148   __floatunditf
149   __floatunsitf
150   __getf2
151   __gttf2
152   __letf2
153   __lttf2
154   __multc3
155   __multf3
156   __negtf2
157   __netf2
158   __powitf2
159   __subtf3
160   __trunctfdf2
161   __trunctfsf2
162   __trunctfxf2
163   __unordtf2
164 }
165 %endif