# Copyright (C) 2004-2021 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/>.

GCC_3.5 {
  # BPABI symbols
  __aeabi_cdcmpeq
  __aeabi_cdcmple
  __aeabi_cdrcmple
  __aeabi_cfcmpeq
  __aeabi_cfcmple
  __aeabi_cfrcmple
  __aeabi_d2f
  __aeabi_d2iz
  __aeabi_d2lz
  __aeabi_d2uiz
  __aeabi_d2ulz
  __aeabi_dadd
  __aeabi_dcmpeq
  __aeabi_dcmpge
  __aeabi_dcmpgt
  __aeabi_dcmple
  __aeabi_dcmplt
  __aeabi_dcmpun
  __aeabi_ddiv
  __aeabi_dmul
  __aeabi_dneg
  __aeabi_drsub
  __aeabi_dsub
  __aeabi_f2d
  __aeabi_f2iz
  __aeabi_f2lz
  __aeabi_f2uiz
  __aeabi_f2ulz
  __aeabi_fadd
  __aeabi_fcmpeq
  __aeabi_fcmpge
  __aeabi_fcmpgt
  __aeabi_fcmple
  __aeabi_fcmplt
  __aeabi_fcmpun
  __aeabi_fdiv
  __aeabi_fmul
  __aeabi_fneg
  __aeabi_frsub
  __aeabi_fsub
  __aeabi_i2d
  __aeabi_i2f
  __aeabi_idiv
  __aeabi_idiv0
  __aeabi_idivmod
  __aeabi_l2d
  __aeabi_l2f
  __aeabi_lasr
  __aeabi_lcmp
  __aeabi_ldiv0
  __aeabi_ldivmod
  __aeabi_llsl
  __aeabi_llsr
  __aeabi_lmul
  __aeabi_ui2d
  __aeabi_ui2f
  __aeabi_uidiv
  __aeabi_uidivmod
  __aeabi_uldivmod
  __aeabi_ulcmp
  __aeabi_ul2d
  __aeabi_ul2f
  __aeabi_uread4
  __aeabi_uread8
  __aeabi_uwrite4
  __aeabi_uwrite8

  # Exception-Handling
  # \S 7.5
  _Unwind_Complete
  _Unwind_VRS_Get
  _Unwind_VRS_Set
  _Unwind_VRS_Pop
  # \S 9.2
  __aeabi_unwind_cpp_pr0
  __aeabi_unwind_cpp_pr1
  __aeabi_unwind_cpp_pr2
  # The libstdc++ exception-handling personality routine uses this 
  # GNU-specific entry point.
  __gnu_unwind_frame
}

%exclude {
  _Unwind_Backtrace
}
GCC_4.3.0 {
  _Unwind_Backtrace
}
