| # Copyright (C) 2008-2023 Free Software Foundation, Inc. |
| # |
| # This file is part of GCC. |
| # |
| # GCC is free software; you can redistribute it and/or modify |
| # it under the terms of the GNU General Public License as published by |
| # the Free Software Foundation; either version 3, or (at your option) |
| # any later version. |
| # |
| # GCC is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with GCC; see the file COPYING3. If not see |
| # <http://www.gnu.org/licenses/>. |
| |
| # In order to work around the very problems that force us to now generally |
| # create a libgcc.so, glibc reexported a number of routines from libgcc.a. |
| # By now choosing the same version tags for these specific routines, we |
| # maintain enough binary compatibility to allow future versions of glibc |
| # to defer implementation of these routines to libgcc.so via DT_AUXILIARY. |
| |
| %ifndef __x86_64__ |
| %exclude { |
| __divdi3 |
| __moddi3 |
| __udivdi3 |
| __umoddi3 |
| __register_frame |
| __register_frame_table |
| __deregister_frame |
| __register_frame_info |
| __deregister_frame_info |
| __frame_state_for |
| __register_frame_info_table |
| } |
| |
| %inherit GCC_3.0 GLIBC_2.0 |
| GLIBC_2.0 { |
| # Sampling of DImode arithmetic used by (at least) i386 and m68k. |
| __divdi3 |
| __moddi3 |
| __udivdi3 |
| __umoddi3 |
| |
| # Exception handling support functions used by most everyone. |
| __register_frame |
| __register_frame_table |
| __deregister_frame |
| __register_frame_info |
| __deregister_frame_info |
| __frame_state_for |
| __register_frame_info_table |
| } |
| %endif |
| |
| # 128 bit long double support was introduced with GCC 4.3.0 to 64bit |
| # and with GCC 4.4.0 to 32bit. These lines make the symbols to get |
| # a @@GCC_4.3.0 or @@GCC_4.4.0 attached. |
| |
| %exclude { |
| __addtf3 |
| __divtc3 |
| __divtf3 |
| __eqtf2 |
| __extenddftf2 |
| __extendsftf2 |
| __extendxftf2 |
| __fixtfdi |
| __fixtfsi |
| __fixtfti |
| __fixunstfdi |
| __fixunstfsi |
| __fixunstfti |
| __floatditf |
| __floatsitf |
| __floattitf |
| __floatunditf |
| __floatunsitf |
| __floatuntitf |
| __getf2 |
| __gttf2 |
| __letf2 |
| __lttf2 |
| __multc3 |
| __multf3 |
| __negtf2 |
| __netf2 |
| __powitf2 |
| __subtf3 |
| __trunctfdf2 |
| __trunctfsf2 |
| __trunctfxf2 |
| __unordtf2 |
| } |
| |
| %ifdef __x86_64__ |
| # Those symbols had improper versions when they were added to gcc 4.3.0. |
| # We corrected the default version to GCC_4.3.0. But we keep the old |
| # version for backward binary compatibility. |
| GCC_3.0 { |
| __gttf2 |
| __lttf2 |
| __netf2 |
| } |
| |
| GCC_4.0.0 { |
| __divtc3 |
| __multc3 |
| __powitf2 |
| } |
| |
| GCC_4.3.0 { |
| __addtf3 |
| __divtc3 |
| __divtf3 |
| __eqtf2 |
| __extenddftf2 |
| __extendsftf2 |
| __extendxftf2 |
| __fixtfdi |
| __fixtfsi |
| __fixtfti |
| __fixunstfdi |
| __fixunstfsi |
| __fixunstfti |
| __floatditf |
| __floatsitf |
| __floattitf |
| __floatunditf |
| __floatunsitf |
| __floatuntitf |
| __getf2 |
| __gttf2 |
| __letf2 |
| __lttf2 |
| __multc3 |
| __multf3 |
| __negtf2 |
| __netf2 |
| __powitf2 |
| __subtf3 |
| __trunctfdf2 |
| __trunctfsf2 |
| __trunctfxf2 |
| __unordtf2 |
| } |
| |
| GCC_4.8.0 { |
| __cpu_model |
| __cpu_indicator_init |
| } |
| %else |
| GCC_4.4.0 { |
| __addtf3 |
| __copysigntf3 |
| __divtc3 |
| __divtf3 |
| __eqtf2 |
| __extenddftf2 |
| __extendsftf2 |
| __fabstf2 |
| __fixtfdi |
| __fixtfsi |
| __fixunstfdi |
| __fixunstfsi |
| __floatditf |
| __floatsitf |
| __floatunditf |
| __floatunsitf |
| __getf2 |
| __gttf2 |
| __letf2 |
| __lttf2 |
| __multc3 |
| __multf3 |
| __negtf2 |
| __netf2 |
| __powitf2 |
| __subtf3 |
| __trunctfdf2 |
| __trunctfsf2 |
| __trunctfxf2 |
| __unordtf2 |
| } |
| GCC_4.5.0 { |
| __extendxftf2 |
| } |
| |
| GCC_4.8.0 { |
| __cpu_model |
| __cpu_indicator_init |
| } |
| %endif |
| |
| %inherit GCC_12.0.0 GCC_7.0.0 |
| GCC_12.0.0 { |
| __divhc3 |
| __mulhc3 |
| __eqhf2 |
| __nehf2 |
| __extendhfdf2 |
| __extendhfsf2 |
| __extendhftf2 |
| __extendhfxf2 |
| __fixhfti |
| __fixunshfti |
| __floattihf |
| __floatuntihf |
| __truncdfhf2 |
| __truncsfhf2 |
| __trunctfhf2 |
| __truncxfhf2 |
| } |
| |
| %inherit GCC_13.0.0 GCC_12.0.0 |
| GCC_13.0.0 { |
| __extendbfsf2 |
| __floattibf |
| __floatuntibf |
| __truncdfbf2 |
| __truncsfbf2 |
| __trunctfbf2 |
| __truncxfbf2 |
| __trunchfbf2 |
| } |