summaryrefslogtreecommitdiff
path: root/gcc/config/i386/libgcc-glibc.ver
blob: be791745b438ff1017beae64c1f0f9e4193f7b64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# 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