1# Copyright (C) 2002, 2006, 2008 Free Software Foundation, Inc.
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# Note that we cannot use the default libgcc-glibc.ver file on s390x,
26# because GLIBC_2.0 does not exist on this architecture, as the first
27# ever glibc release on the platform was GLIBC_2.2.
28
29%ifndef __s390x__
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
44%inherit GCC_3.0 GLIBC_2.0
45GLIBC_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__
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
72%inherit GCC_3.0 GLIBC_2.2
73GLIBC_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}
82%endif
83
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
101GCC_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}
117