145
|
1 # Copyright (C) 2008-2020 Free Software Foundation, Inc.
|
111
|
2 #
|
|
3 # This file is part of GCC.
|
|
4 #
|
|
5 # GCC is free software; you can redistribute it and/or modify
|
|
6 # it under the terms of the GNU General Public License as published by
|
|
7 # the Free Software Foundation; either version 3, or (at your option)
|
|
8 # any later version.
|
|
9 #
|
|
10 # GCC is distributed in the hope that it will be useful,
|
|
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13 # GNU General Public License for more details.
|
|
14 #
|
|
15 # You should have received a copy of the GNU General Public License
|
|
16 # along with GCC; see the file COPYING3. If not see
|
|
17 # <http://www.gnu.org/licenses/>.
|
|
18
|
|
19 # In order to work around the very problems that force us to now generally
|
|
20 # create a libgcc.so, glibc reexported a number of routines from libgcc.a.
|
|
21 # By now choosing the same version tags for these specific routines, we
|
|
22 # maintain enough binary compatibility to allow future versions of glibc
|
|
23 # to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
|
|
24
|
|
25 %ifndef __x86_64__
|
|
26 %exclude {
|
|
27 __divdi3
|
|
28 __moddi3
|
|
29 __udivdi3
|
|
30 __umoddi3
|
|
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
|
|
40 %inherit GCC_3.0 GLIBC_2.0
|
|
41 GLIBC_2.0 {
|
|
42 # Sampling of DImode arithmetic used by (at least) i386 and m68k.
|
|
43 __divdi3
|
|
44 __moddi3
|
|
45 __udivdi3
|
|
46 __umoddi3
|
|
47
|
|
48 # Exception handling support functions used by most everyone.
|
|
49 __register_frame
|
|
50 __register_frame_table
|
|
51 __deregister_frame
|
|
52 __register_frame_info
|
|
53 __deregister_frame_info
|
|
54 __frame_state_for
|
|
55 __register_frame_info_table
|
|
56 }
|
|
57 %endif
|
|
58
|
|
59 # 128 bit long double support was introduced with GCC 4.3.0 to 64bit
|
|
60 # and with GCC 4.4.0 to 32bit. These lines make the symbols to get
|
|
61 # a @@GCC_4.3.0 or @@GCC_4.4.0 attached.
|
|
62
|
|
63 %exclude {
|
|
64 __addtf3
|
|
65 __divtc3
|
|
66 __divtf3
|
|
67 __eqtf2
|
|
68 __extenddftf2
|
|
69 __extendsftf2
|
|
70 __extendxftf2
|
|
71 __fixtfdi
|
|
72 __fixtfsi
|
|
73 __fixtfti
|
|
74 __fixunstfdi
|
|
75 __fixunstfsi
|
|
76 __fixunstfti
|
|
77 __floatditf
|
|
78 __floatsitf
|
|
79 __floattitf
|
|
80 __floatunditf
|
|
81 __floatunsitf
|
|
82 __floatuntitf
|
|
83 __getf2
|
|
84 __gttf2
|
|
85 __letf2
|
|
86 __lttf2
|
|
87 __multc3
|
|
88 __multf3
|
|
89 __negtf2
|
|
90 __netf2
|
|
91 __powitf2
|
|
92 __subtf3
|
|
93 __trunctfdf2
|
|
94 __trunctfsf2
|
|
95 __trunctfxf2
|
|
96 __unordtf2
|
|
97 }
|
|
98
|
|
99 %ifdef __x86_64__
|
|
100 # Those symbols had improper versions when they were added to gcc 4.3.0.
|
|
101 # We corrected the default version to GCC_4.3.0. But we keep the old
|
|
102 # version for backward binary compatibility.
|
|
103 GCC_3.0 {
|
|
104 __gttf2
|
|
105 __lttf2
|
|
106 __netf2
|
|
107 }
|
|
108
|
|
109 GCC_4.0.0 {
|
|
110 __divtc3
|
|
111 __multc3
|
|
112 __powitf2
|
|
113 }
|
|
114
|
|
115 GCC_4.3.0 {
|
|
116 __addtf3
|
|
117 __divtc3
|
|
118 __divtf3
|
|
119 __eqtf2
|
|
120 __extenddftf2
|
|
121 __extendsftf2
|
|
122 __extendxftf2
|
|
123 __fixtfdi
|
|
124 __fixtfsi
|
|
125 __fixtfti
|
|
126 __fixunstfdi
|
|
127 __fixunstfsi
|
|
128 __fixunstfti
|
|
129 __floatditf
|
|
130 __floatsitf
|
|
131 __floattitf
|
|
132 __floatunditf
|
|
133 __floatunsitf
|
|
134 __floatuntitf
|
|
135 __getf2
|
|
136 __gttf2
|
|
137 __letf2
|
|
138 __lttf2
|
|
139 __multc3
|
|
140 __multf3
|
|
141 __negtf2
|
|
142 __netf2
|
|
143 __powitf2
|
|
144 __subtf3
|
|
145 __trunctfdf2
|
|
146 __trunctfsf2
|
|
147 __trunctfxf2
|
|
148 __unordtf2
|
|
149 }
|
|
150
|
|
151 GCC_4.8.0 {
|
|
152 __cpu_model
|
|
153 __cpu_indicator_init
|
|
154 }
|
|
155 %else
|
|
156 GCC_4.4.0 {
|
|
157 __addtf3
|
|
158 __copysigntf3
|
|
159 __divtc3
|
|
160 __divtf3
|
|
161 __eqtf2
|
|
162 __extenddftf2
|
|
163 __extendsftf2
|
|
164 __fabstf2
|
|
165 __fixtfdi
|
|
166 __fixtfsi
|
|
167 __fixunstfdi
|
|
168 __fixunstfsi
|
|
169 __floatditf
|
|
170 __floatsitf
|
|
171 __floatunditf
|
|
172 __floatunsitf
|
|
173 __getf2
|
|
174 __gttf2
|
|
175 __letf2
|
|
176 __lttf2
|
|
177 __multc3
|
|
178 __multf3
|
|
179 __negtf2
|
|
180 __netf2
|
|
181 __powitf2
|
|
182 __subtf3
|
|
183 __trunctfdf2
|
|
184 __trunctfsf2
|
|
185 __trunctfxf2
|
|
186 __unordtf2
|
|
187 }
|
|
188 GCC_4.5.0 {
|
|
189 __extendxftf2
|
|
190 }
|
|
191
|
|
192 GCC_4.8.0 {
|
|
193 __cpu_model
|
|
194 __cpu_indicator_init
|
|
195 }
|
|
196 %endif
|