]>
Commit | Line | Data |
---|---|---|
8d9254fc | 1 | # Copyright (C) 2002-2020 Free Software Foundation, Inc. |
ad41bd84 JM |
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 | ||
5aa26af0 JJ |
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 | ||
ff473280 L |
25 | %exclude { |
26 | __divdi3 | |
27 | __moddi3 | |
28 | __udivdi3 | |
29 | __umoddi3 | |
30 | __register_frame | |
31 | __register_frame_table | |
32 | __deregister_frame | |
33 | __register_frame_info | |
34 | __deregister_frame_info | |
35 | __frame_state_for | |
36 | __register_frame_info_table | |
37 | } | |
38 | ||
5aa26af0 JJ |
39 | %ifdef __arch64__ |
40 | %define GLIBC_VER GLIBC_2.2 | |
41 | %else | |
42 | %define GLIBC_VER GLIBC_2.0 | |
43 | %endif | |
44 | %inherit GCC_3.0 GLIBC_VER | |
45 | GLIBC_VER { | |
46 | # Sampling of DImode arithmetic used by (at least) i386 and m68k. | |
47 | __divdi3 | |
48 | __moddi3 | |
49 | __udivdi3 | |
50 | __umoddi3 | |
51 | ||
52 | # Exception handling support functions used by most everyone. | |
53 | __register_frame | |
54 | __register_frame_table | |
55 | __deregister_frame | |
56 | __register_frame_info | |
57 | __deregister_frame_info | |
58 | __frame_state_for | |
59 | __register_frame_info_table | |
60 | } | |
fbf2ca7b JJ |
61 | |
62 | %if !defined (__arch64__) && defined (__LONG_DOUBLE_128__) | |
63 | ||
64 | # long double 128 bit support from 32-bit libgcc_s.so.1 is only available | |
65 | # when configured with --with-long-double-128. Make sure all the | |
66 | # symbols are available at @@GCC_LDBL_* versions to make it clear | |
67 | # there is a configurable symbol set. | |
68 | ||
69 | %exclude { | |
70 | __fixtfdi | |
71 | __fixunstfdi | |
72 | __floatditf | |
73 | ||
74 | __divtc3 | |
75 | __multc3 | |
76 | __powitf2 | |
77 | } | |
78 | ||
79 | %inherit GCC_LDBL_3.0 GCC_3.0 | |
80 | GCC_LDBL_3.0 { | |
81 | __fixtfdi | |
82 | __fixunstfdi | |
83 | __floatditf | |
84 | } | |
85 | ||
86 | %inherit GCC_LDBL_4.0.0 GCC_4.0.0 | |
87 | GCC_LDBL_4.0.0 { | |
88 | __divtc3 | |
89 | __multc3 | |
90 | __powitf2 | |
91 | } | |
92 | ||
93 | %endif |