]>
Commit | Line | Data |
---|---|---|
f1717362 | 1 | # Copyright (C) 2002-2016 Free Software Foundation, Inc. |
7dfbd804 | 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 | ||
8994bd9e | 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 | # Note that we cannot use the default libgcc-glibc.ver file on s390x, | |
ffead1ca | 26 | # because GLIBC_2.0 does not exist on this architecture, as the first |
8994bd9e | 27 | # ever glibc release on the platform was GLIBC_2.2. |
28 | ||
019dd86a | 29 | %ifndef __s390x__ |
b3fd46a0 | 30 | %exclude { |
31 | __divdi3 | |
32 | __moddi3 | |
33 | __udivdi3 | |
34 | __umoddi3 | |
35 | __register_frame | |
36 | __register_frame_table | |
37 | __deregister_frame | |
38 | __register_frame_info | |
39 | __deregister_frame_info | |
40 | __frame_state_for | |
41 | __register_frame_info_table | |
42 | } | |
43 | ||
019dd86a | 44 | %inherit GCC_3.0 GLIBC_2.0 |
45 | GLIBC_2.0 { | |
46 | __divdi3 | |
47 | __moddi3 | |
48 | __udivdi3 | |
49 | __umoddi3 | |
50 | ||
51 | __register_frame | |
52 | __register_frame_table | |
53 | __deregister_frame | |
54 | __register_frame_info | |
55 | __deregister_frame_info | |
56 | __frame_state_for | |
57 | __register_frame_info_table | |
58 | } | |
59 | %endif | |
60 | ||
61 | %ifdef __s390x__ | |
b3fd46a0 | 62 | %exclude { |
63 | __register_frame | |
64 | __register_frame_table | |
65 | __deregister_frame | |
66 | __register_frame_info | |
67 | __deregister_frame_info | |
68 | __frame_state_for | |
69 | __register_frame_info_table | |
70 | } | |
71 | ||
8994bd9e | 72 | %inherit GCC_3.0 GLIBC_2.2 |
73 | GLIBC_2.2 { | |
74 | __register_frame | |
75 | __register_frame_table | |
76 | __deregister_frame | |
77 | __register_frame_info | |
78 | __deregister_frame_info | |
79 | __frame_state_for | |
80 | __register_frame_info_table | |
81 | } | |
019dd86a | 82 | %endif |
8994bd9e | 83 | |
429f9fdb | 84 | # With GCC 4.1.0 long double 128 bit support was introduced. The |
85 | # following symbols coming from libgcc are enabled when -mlong-double-128 | |
86 | # is specified. These lines make the symbols to get a @@GCC_4.1.0 attached. | |
87 | ||
88 | %exclude { | |
89 | __divtc3 | |
90 | __multc3 | |
91 | __powitf2 | |
92 | __fixtfti | |
93 | __fixunstfti | |
94 | __floattitf | |
95 | ||
96 | __fixtfdi | |
97 | __fixunstfdi | |
98 | __floatditf | |
99 | } | |
100 | ||
101 | GCC_4.1.0 { | |
102 | __divtc3 | |
103 | __multc3 | |
104 | __powitf2 | |
105 | ||
106 | %ifdef __s390x__ | |
107 | __fixtfti | |
108 | __fixunstfti | |
109 | __floattitf | |
110 | ||
111 | %else | |
112 | __fixtfdi | |
113 | __fixunstfdi | |
114 | __floatditf | |
115 | %endif | |
116 | } |