1# Copyright (C) 2002-2018 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%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 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 45GLIBC_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} 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 80GCC_LDBL_3.0 { 81 __fixtfdi 82 __fixunstfdi 83 __floatditf 84} 85 86%inherit GCC_LDBL_4.0.0 GCC_4.0.0 87GCC_LDBL_4.0.0 { 88 __divtc3 89 __multc3 90 __powitf2 91} 92 93%endif 94