diff options
author | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-02 10:49:46 +0000 |
---|---|---|
committer | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-02 10:49:46 +0000 |
commit | a997b0d8a7b720578f40c0f9f7767bac02022e0b (patch) | |
tree | 012d63dd4d09e5c32b1e3d2ec1a505722d938e3d /libgcc/config | |
parent | 97ec7931ac69ef58afc0184d79b46a09cd4d6885 (diff) | |
download | gcc-a997b0d8a7b720578f40c0f9f7767bac02022e0b.tar.gz |
Move shlib support to toplevel libgcc
gcc:
PR translation/45116
* Makefile.in (slibdir): Remove, don't export.
(SHLIB_NM_FLAGS): Remove.
(libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL,
SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS,
SHLIB_MAPFILES, SHLIB_NM_FLAGS.
(DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK.
(gcc.o): Pass SHLIB instead of SHLIB_LINK.
(gccspec.o): Likewise.
(installdirs): Don't create $(DESTDIR)$(slibdir).
* configure.ac (slibdir): Remove.
* configure: Regenerate.
* libgcc-libsystem.ver: Move to ../libgcc/config.
* mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc.
* config/libgcc-glibc.ver: Move to ../libgcc/config.
* config/t-libunwind (SHLIB_LC): Remove.
* config/t-linux (SHLIB_MAPFILES): Remove.
* config/t-slibgcc-dummy: Rename to config/t-slibgcc.
* config/t-slibgcc-elf-ver: Remove.
* config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to
../libgcc/config.
* config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move
to ../libgcc/config/alpha.
* config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC,
SHLIB_SYMVECX2, SHLIB_LINK): Remove.
* config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm.
* config/arm/t-bpabi (SHLIB_MAPFILES): Remove.
* config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME,
SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove.
* config/arm/t-symbian (SHLIB_LC): Remove.
* config/bfin/libgcc-bfin.ver: Move to
../libgcc/config/bfin/libgcc-glibc.ver.
* config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove.
* config/c6x/libgcc-c6xeabi.ver: Move to
../libgcc/config/c6x/libgcc-eabi.ver.
* config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove.
* config/cris/libgcc.ver: Move to
../libgcc/config/cris/libgcc-glibc.ver.
* config/cris/t-linux (SHLIB_MAPFILES): Remove.
* config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv.
* config/frv/t-linux (SHLIB_MAPFILES): Remove.
* config/i386/darwin-libgcc.10.4.ver: Move to
../libgcc/config/i386/libgcc-darwin.10.4.ver.
* config/i386/darwin-libgcc.10.5.ver: Move to
../libgcc/config/i386/libgcc-darwin.10.5.ver.
* config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386.
* config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION,
SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL)
SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK,
SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES):
Remove.
* config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION,
SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove.
* config/i386/t-dlldir, config/i386/t-dlldir-x: Move to
../libgcc/config/i386.
* config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to
../libgcc/config/i386.
* config/i386/t-linux: Move to ../libgcc/config/i386.
* config/i386/t-mingw-pthread: Move to ../libgcc/config/i386.
* config/i386/t-mingw-w32 (SHLIB_LC): Remove.
* config/i386/t-mingw-w64: Likewise.
* config/i386/t-mingw32: Remove.
* config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move
to ../libgcc/config/ia64.
* config/ia64/t-glibc: Remove.
* config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove.
* config/ia64/t-ia64 (SHLIB_MAPFILES): Remove.
* config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove.
* config/ia64/vms_symvec_libgcc_s.opt: Remove.
* config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r.
* config/m32r/t-linux (SHLIB_MAPFILES): Remove.
* config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k.
* config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove.
* config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux.
* config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver:
Move to ../libgcc/config/pa.
* config/rs6000/darwin-libgcc.10.4.ver: Move to
../libgcc/config/rs6000/libgcc-darwin.10.4.ver.
* config/rs6000/darwin-libgcc.10.5.ver: Move to
../libgcc/config/rs6000/libgcc-darwin.10.5.ver.
* config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL,
SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove.
* config/rs6000/t-aix52: Likewise.
* config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to
../libgcc/config/sh.
* config/sparc/libgcc-sparc-glibc.ver: Move to
../libgcc/config/sparc/libgcc-glibc.ver.
* config/sparc/t-linux: Move to ../libgcc/config/sparc.
* config/xtensa/t-linux (SHLIB_MAPFILES): Remove.
* config/xtensa/libgcc-xtensa.ver: Move to
../libgcc/config/xtensa/libgcc-glibc.ver.
* config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with
t-slibgcc in tmake_file.
Remove t-slibgcc-nolc-override for *-*-freebsd[34],
*-*-freebsd[34].* with pthreads.
(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu,
*-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace
t-slibgcc-elf-ver with t-slibgcc in tmake_file.
(*-*-netbsd*): Likewise.
(*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file.
(*-*-*vms*): Add t-slibgcc to tmake_file.
(alpha*-*-linux*): Remove alpha/t-linux from tmake_file.
(alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in
tmake_file.
(arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for
arm*-*-linux-*eabi.
(bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in
tmake_file.
(crisv32-*-linux*, cris-*-linux*): Likewise.
(hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
pa/t-slibgcc-dwarf-ver from tmake_file.
(hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in
tmake_file.
Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file.
(hppa*64*-*-hpux11*): Likewise.
(hppa[12]*-*-hpux11*): Likewise.
(i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in
tmake_file.
(x86_64-*-darwin*): Likewise.
(i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file.
Add t-slibgcc to tmake_file.
(i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*,
i[34567]86-w64-*.
Remove i386/t-mingw-pthread from tmake_file.
(ia64*-*-linux*): Remove ia64/t-glibc from tmake_file.
(ia64*-*-hpux*): Add t-slibgcc to tmake_file.
(ia64-hp-*vms*): Likewise.
(m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in
tmake_file.
(m32rle-*-linux*): Likewise.
(m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file.
(microblaze*-linux*): Remove t-slibgcc-elf-ver,
t-slibgcc-nolc-override from tmake_file.
(mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in
tmake_file.
(powerpc-*-darwin*): Likewise.
(powerpc64-*-darwin*): Likewise.
(powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file.
(powerpc-*-linux*, powerpc64-*-linux*): Likewise.
(rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
t-slibgcc to tmake_file.
(rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
(rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise.
(rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise.
(rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise.
(sparc-*-linux*): Remove sparc/t-linux from tmake_file.
(sparc64-*-linux*): Likewise.
(tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in
tmake_file.
(i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu,
x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux
from tmake_file.
gcc/cp:
* Make-lang.in (g++spec.o): Pass SHLIB instead of SHLIB_LINK.
gcc/fortran:
* Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK.
gcc/go:
* Make-lang.in (gospec.o): Pass SHLIB instead of SHLIB_LINK.
gcc/java:
* Make-lang.in (jvspec.o): Pass SHLIB instead of SHLIB_LINK.
libgcc:
* Makefile.in (SHLIB_NM_FLAGS): Set.
* mkmap-flat.awk, mkmap-symver.awk: New files.
* configure.ac (libgcc_cv_lib_sjlj_exceptions): Check for SjLj
exceptions.
* configure: Regenerate.
* config/libgcc-glibc.ver: New file.
* config/libgcc-libsystem.ver: New file.
* config/t-libunwind (SHLIB_LC): Set.
* config/t-linux: New file.
* config/t-slibgcc (INSTALL_SHLIB): New.
(SHLIB_INSTALL): Use it.
* config/t-slibgcc-darwin (SHLIB_MKMAP): Use $(srcdir) to refer
to mkmap-symver.awk.
(SHLIB_MAPFILES): Don't append, adapt pathname.
(SHLIB_VERPFX): Set.
* config/t-slibgcc-elf-ver (SHLIB_MKMAP): Use $(srcdir) to refer
to mkmap-symver.awk.
* config/t-slibgcc-gld-nover, config/t-slibgcc-hpux,
config/t-slibgcc-libgcc, config/t-slibgcc-vms: New files.
* config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: New files.
* config/alpha/t-slibgcc-osf (SHLIB_MKMAP): Use $(srcdir) to refer
to mkmap-flat.awk.
* config/arm/t-bpabi (SHLIB_MAPFILES): Set.
* config/bfin/libgcc-glibc.ver, config/bfin/t-linux: New files.
* config/c6x/libgcc-eabi.ver, config/c6x/t-elf: New files.
* config/cris/libgcc-glibc.ver, config/cris/t-linux: New files.
* config/frv/libgcc-frv.ver, config/frv/t-linux: New files.
* config/i386/libgcc-darwin.10.4.ver,
config/i386/libgcc-darwin.10.5.ver, config/i386/libgcc-glibc.ver:
New files.
* config/i386/t-darwin: Remove.
* config/i386/t-darwin64: Likewise.
* config/i386/t-dw2-eh, config/i386/t-sjlj-eh: New files.
* config/i386/t-slibgcc-cygming, config/i386/t-cygwin,
config/i386/t-dlldir, config/i386/t-dlldir-x: New files.
* config/i386/t-linux: New file.
* config/i386/t-mingw32: New file.
* config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: New files.
* config/ia64/t-glibc: Rename to ...
* config/ia64/t-linux: ... this.
(SHLIB_MAPFILES): Set.
* config/ia64/t-glibc-libunwind: Rename to ...
* config/ia64/t-linux-libunwind: ... this.
* config/ia64/t-ia64 (SHLIB_MAPFILES): Set.
* config/ia64/t-slibgcc-hpux: New file.
* config/m32r/libgcc-glibc.ver, config/m32r/t-linux: New files.
* config/m68k/t-slibgcc-elf-ver: New file.
* config/mips/t-mips16 (SHLIB_MAPFILES): Set.
* config/mips/t-slibgcc-irix (SHLIB_MKMAP): Use $(srcdir) to refer
to mkmap-flat.awk.
* config/pa/t-slibgcc-hpux: New file.
* config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver: New
files.
* config/rs6000/libgcc-darwin.10.4.ver,
config/rs6000/libgcc-darwin.10.5.ver: New files.
* config/rs6000/libgcc-ppc-glibc.ver: Rename to
config/rs6000/libgcc-glibc.ver.
* config/rs6000/libgcc-ppc64.ver: Rename to
config/rs6000/libgcc-ibm-ldouble.ver.
* config/rs6000/t-darwin (SHLIB_VERPFX): Remove.
* config/rs6000/t-ibm-ldouble (SHLIB_MAPFILES): Adapt filename.
* config/rs6000/t-ldbl128: Rename to ...
* config/rs6000/t-linux: ... this.
(SHLIB_MAPFILES): Adapt filename.
* config/rs6000/t-slibgcc-aix: New file.
* config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: New files.
* config/sh/t-linux (SHLIB_MAPFILES): Use $(srcdir) to refer to
libgcc-excl.ver, libgcc-glibc.ver.
(SHLIB_LINK, SHLIB_INSTALL): Remove.
* config/sparc/libgcc-glibc.ver: New file.
* config/sparc/t-linux: New file.
* config/xtensa/libgcc-glibc.ver, config/xtensa/t-linux: New files.
* config.host (*-*-freebsd*): Add t-slibgcc, t-slibgcc-gld,
t-slibgcc-elf-ver to tmake_file.
Add t-slibgcc-nolc-override to tmake_file for posix threads on
*-*-freebsd[34].
(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
*-*-gnu*, *-*-kopensolaris*-gnu): Add t-slibgcc, t-slibgcc-gld,
t-slibgcc-elf-ver, t-linux to tmake_file.
(*-*-netbsd*): Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to
tmake_file.
(alpha*-*-linux*): Add alpha/t-linux to tmake_file.
(alpha64-dec-*vms*): Add t-slibgcc-vms to tmake_file.
(alpha*-dec-*vms*): Likewise.
(arm*-*-freebsd*): Append to tmake_file.
(arm*-*-netbsdelf*): Add t-slibgcc-gld-nover to tmake_file.
(arm*-*-linux*): Add t-slibgcc-libgcc to tmake_file for
arm*-*-linux-*eabi.
(arm*-*-eabi*, arm*-*-symbianelf*): Add t-slibgcc-nolc-override to
tmake_file for arm*-*-symbianelf*.
(bfin*-linux-uclibc*): Append to tmake_file, add bfin/t-linux.
(cris-*-linux*, crisv32-*-linux*): Append to tmake_file, add
cris/t-linux.
(frv-*-*linux*): Append to tmake_file, add frv/t-linux.
(hppa*-*-linux*): Add t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
pa/t-slibgcc-dwarf-ver to tmake_file.
(hppa[12]*-*-hpux10*): Add t-slibgcc, pa/t-slibgcc-sjlj-ver,
pa/t-slibgcc-dwarf-ver, t-slibgcc-hpux, pa/t-slibgcc-hpux to tmake_file.
(hppa*64*-*-hpux11*): Likewise.
(hppa[12]*-*-hpux11*): Likewise.
(x86_64-*-darwin*): Don't override tmake_file, but only keep
i386/t-crtpc, i386/t-crtfm.
(i[34567]86-*-cygwin*): Set tmake_eh_file, tmake_dlldir_file.
Prepend $tmake_eh_file, $tmake_dlldir_file, i386/t-slibgcc-cygming
to tmake_file.
Add i386/t-cygwin to tmake_file.
Prepent i386/t-mingw-pthread to tmake_file for posix threads.
(i[34567]86-*-mingw*): Set tmake_eh_file, tmake_dlldir_file.
Prepend $tmake_eh_file, $tmake_dlldir_file, i386/t-slibgcc-cygming
to tmake_file.
Add i386/t-mingw32 to tmake_file.
(x86_64-*-mingw*): Likewise.
(ia64*-*-freebsd*): Append to tmake_file.
(ia64*-*-linux*): Append to tmake_file.
Replace ia64/t-glibc by ia64/t-linux.
Replace ia64/t-glibc-libunwind by ia64/t-linux-libunwind if using
system libunwind.
(ia64*-*-hpux*): Add t-slibgcc, ia64/t-slibgcc-hpux,
t-slibgcc-hpux to tmake_file.
(ia64-hp-*vms*): Add t-slibgcc-vms to tmake_file.
(m32r-*-linux*): Append to tmake_file, add m32r/t-linux.
(m32rle-*-linux*): Likewise.
(m68k-*-linux*)): Add m68k/t-slibgcc-elf-ver to tmake_file unless
sjlj exceptions.
(microblaze*-linux*): New case.
Append to tmake_file, add t-slibgcc-nolc-override.
(powerpc-*-freebsd*): Add t-slibgcc-libgcc to tmake_file.
(powerpc-*-linux*, powerpc64-*-linux*): Likewise.
Replace rs6000/t-ldbl128 by rs6000/t-linux in tmake_file.
(rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
rs6000/t-slibgcc-aix to tmake_file.
(rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
(rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise.
(sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*)
(sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*)
(sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*)
(sh64l*-*-netbsd*): Add t-slibgcc-libgcc to tmake_file for
sh*-*-linux*.
(sparc-*-linux*): Append to tmake_file for *-leon*.
Add sparc/t-linux to tmake_file for non-Leon targets.
(sparc64-*-linux*): Add sparc/t-linux to tmake_file.
(tic6x-*-uclinux): New case.
Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to tmake_file.
(tic6x-*-*): Add c6x/t-elf to tmake_file.
(xtensa*-*-linux*): Append to tmake_file, add xtensa/t-linux.
(am33_2.0-*-linux*): Append to tmake_file.
(i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
(i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*): Also handle
x86_64-*-kfreebsd*-gnu.
Add i386/t-linux to tmake_file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180767 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgcc/config')
70 files changed, 3602 insertions, 43 deletions
diff --git a/libgcc/config/alpha/libgcc-alpha-ldbl.ver b/libgcc/config/alpha/libgcc-alpha-ldbl.ver new file mode 100644 index 00000000000..8dc54a74980 --- /dev/null +++ b/libgcc/config/alpha/libgcc-alpha-ldbl.ver @@ -0,0 +1,50 @@ +# Copyright (C) 2006 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/>. + +%ifdef __LONG_DOUBLE_128__ + +# long double 128 bit support in libgcc_s.so.1 is only available +# when configured with --with-long-double-128. Make sure all the +# symbols are available at @@GCC_LDBL_* versions to make it clear +# there is a configurable symbol set. + +%exclude { + __fixtfdi + __fixunstfdi + __floatditf + + __divtc3 + __multc3 + __powitf2 +} + +%inherit GCC_LDBL_3.0 GCC_3.0 +GCC_LDBL_3.0 { + __fixtfdi + __fixunstfdi + __floatditf +} + +%inherit GCC_LDBL_4.0.0 GCC_4.0.0 +GCC_LDBL_4.0.0 { + __divtc3 + __multc3 + __powitf2 +} + +%endif diff --git a/libgcc/config/alpha/t-linux b/libgcc/config/alpha/t-linux new file mode 100644 index 00000000000..fabf38f9cce --- /dev/null +++ b/libgcc/config/alpha/t-linux @@ -0,0 +1 @@ +SHLIB_MAPFILES += $(srcdir)/config/alpha/libgcc-alpha-ldbl.ver diff --git a/libgcc/config/alpha/t-slibgcc-osf b/libgcc/config/alpha/t-slibgcc-osf index 33a07a7b6aa..66e5cf12aa1 100644 --- a/libgcc/config/alpha/t-slibgcc-osf +++ b/libgcc/config/alpha/t-slibgcc-osf @@ -22,7 +22,7 @@ SHLIB_LDFLAGS = -Wl,-msym -Wl,-set_version,gcc.1 -Wl,-soname,$(SHLIB_SONAME) \ -Wl,-hidden -Wl,-input,$(SHLIB_MAP) -SHLIB_MKMAP = $(gcc_srcdir)/mkmap-flat.awk +SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk SHLIB_MKMAP_OPTS = -v osf_export=1 # Needed so mkmap-flat.awk can parse the nm output. SHLIB_NM_FLAGS = -Bg diff --git a/libgcc/config/arm/libgcc-bpabi.ver b/libgcc/config/arm/libgcc-bpabi.ver new file mode 100644 index 00000000000..3ba8364dc8e --- /dev/null +++ b/libgcc/config/arm/libgcc-bpabi.ver @@ -0,0 +1,108 @@ +# Copyright (C) 2004, 2005, 2007 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 +} diff --git a/libgcc/config/arm/t-bpabi b/libgcc/config/arm/t-bpabi index a3b23dcd20c..ebb2f9fd85d 100644 --- a/libgcc/config/arm/t-bpabi +++ b/libgcc/config/arm/t-bpabi @@ -1,3 +1,6 @@ LIB2ADDEH = $(srcdir)/config/arm/unwind-arm.c \ $(srcdir)/config/arm/libunwind.S \ $(srcdir)/config/arm/pr-support.c $(srcdir)/unwind-c.c + +# Add the BPABI names. +SHLIB_MAPFILES += $(srcdir)/config/arm/libgcc-bpabi.ver diff --git a/libgcc/config/bfin/libgcc-glibc.ver b/libgcc/config/bfin/libgcc-glibc.ver new file mode 100644 index 00000000000..516d91f6584 --- /dev/null +++ b/libgcc/config/bfin/libgcc-glibc.ver @@ -0,0 +1,1914 @@ +# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +# 2008, 2009, 2010 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.0 { + # libgcc1 integer symbols + ___absvsi2 + ___addvsi3 + ___ashlsi3 + ___ashrsi3 + ___divsi3 + ___lshrsi3 + ___modsi3 + ___mulsi3 + ___mulvsi3 + ___negvsi2 + ___subvsi3 + ___udivsi3 + ___umodsi3 + + # libgcc1 floating point symbols + ___addsf3 + ___adddf3 + ___addxf3 + ___addtf3 + ___divsf3 + ___divdf3 + ___divxf3 + ___divtf3 + ___eqsf2 + ___eqdf2 + ___eqxf2 + ___eqtf2 + ___extenddfxf2 + ___extenddftf2 + ___extendsfdf2 + ___extendsfxf2 + ___extendsftf2 + ___fixsfsi + ___fixdfsi + ___fixxfsi + ___fixtfsi + ___floatsisf + ___floatsidf + ___floatsixf + ___floatsitf + ___gesf2 + ___gedf2 + ___gexf2 + ___getf2 + ___gtsf2 + ___gtdf2 + ___gtxf2 + ___gttf2 + ___lesf2 + ___ledf2 + ___lexf2 + ___letf2 + ___ltsf2 + ___ltdf2 + ___ltxf2 + ___lttf2 + ___mulsf3 + ___muldf3 + ___mulxf3 + ___multf3 + ___negsf2 + ___negdf2 + ___negxf2 + ___negtf2 + ___nesf2 + ___nedf2 + ___nexf2 + ___netf2 + ___subsf3 + ___subdf3 + ___subxf3 + ___subtf3 + ___truncdfsf2 + ___truncxfsf2 + ___trunctfsf2 + ___truncxfdf2 + ___trunctfdf2 + + # libgcc2 DImode arithmetic (for 32-bit targets). + ___absvdi2 + ___addvdi3 + ___ashldi3 + ___ashrdi3 + ___cmpdi2 + ___divdi3 + ___ffsdi2 + ___fixdfdi + ___fixsfdi + ___fixtfdi + ___fixxfdi + ___fixunsdfdi + ___fixunsdfsi + ___fixunssfsi + ___fixunssfdi + ___fixunstfdi + ___fixunstfsi + ___fixunsxfdi + ___fixunsxfsi + ___floatdidf + ___floatdisf + ___floatdixf + ___floatditf + ___lshrdi3 + ___moddi3 + ___muldi3 + ___mulvdi3 + ___negdi2 + ___negvdi2 + ___subvdi3 + ___ucmpdi2 + ___udivdi3 + ___udivmoddi4 + ___umoddi3 + + # libgcc2 TImode arithmetic (for 64-bit targets). + ___ashlti3 + ___ashrti3 + ___cmpti2 + ___divti3 + ___ffsti2 + ___fixdfti + ___fixsfti + ___fixtfti + ___fixxfti + ___lshrti3 + ___modti3 + ___multi3 + ___negti2 + ___ucmpti2 + ___udivmodti4 + ___udivti3 + ___umodti3 + ___fixunsdfti + ___fixunssfti + ___fixunstfti + ___fixunsxfti + ___floattidf + ___floattisf + ___floattixf + ___floattitf + + # Used to deal with trampoline initialization on some platforms + ___clear_cache + + # EH symbols + __Unwind_DeleteException + __Unwind_Find_FDE + __Unwind_ForcedUnwind + __Unwind_GetGR + __Unwind_GetIP + __Unwind_GetLanguageSpecificData + __Unwind_GetRegionStart + __Unwind_GetTextRelBase + __Unwind_GetDataRelBase + __Unwind_RaiseException + __Unwind_Resume + __Unwind_SetGR + __Unwind_SetIP + ___deregister_frame + ___deregister_frame_info + ___deregister_frame_info_bases + ___register_frame + ___register_frame_info + ___register_frame_info_bases + ___register_frame_info_table + ___register_frame_info_table_bases + ___register_frame_table + + # SjLj EH symbols + __Unwind_SjLj_Register + __Unwind_SjLj_Unregister + __Unwind_SjLj_RaiseException + __Unwind_SjLj_ForcedUnwind + __Unwind_SjLj_Resume +} + +%inherit GCC_3.3 GCC_3.0 +GCC_3.3 { + __Unwind_FindEnclosingFunction + __Unwind_GetCFA + __Unwind_Backtrace + __Unwind_Resume_or_Rethrow + __Unwind_SjLj_Resume_or_Rethrow +} + +%inherit GCC_3.3.1 GCC_3.3 +GCC_3.3.1 { + ___gcc_personality_sj0 + ___gcc_personality_v0 +} + +%inherit GCC_3.3.2 GCC_3.3.1 +GCC_3.3.2 { +} +%inherit GCC_3.3.4 GCC_3.3.2 +GCC_3.3.4 { + ___unorddf2 + ___unordsf2 +} + +%inherit GCC_3.4 GCC_3.3.4 +GCC_3.4 { + # bit scanning and counting built-ins + ___clzsi2 + ___clzdi2 + ___clzti2 + ___ctzsi2 + ___ctzdi2 + ___ctzti2 + ___popcountsi2 + ___popcountdi2 + ___popcountti2 + ___paritysi2 + ___paritydi2 + ___parityti2 +} + +%inherit GCC_3.4.2 GCC_3.4 +GCC_3.4.2 { + # Used to deal with trampoline initialization on some platforms + ___enable_execute_stack + ___trampoline_setup +} + +%inherit GCC_3.4.4 GCC_3.4.2 +GCC_3.4.4 { + # libgcc2 TImode arithmetic (for 64-bit targets). + ___absvti2 + ___addvti3 + ___mulvti3 + ___negvti2 + ___subvti3 +} + +%inherit GCC_4.0.0 GCC_3.4.4 +GCC_4.0.0 { + # libgcc2 __builtin_powi helpers. + ___powisf2 + ___powidf2 + ___powixf2 + ___powitf2 + + # c99 compliant complex arithmetic + ___divsc3 + ___divdc3 + ___divxc3 + ___divtc3 + ___mulsc3 + ___muldc3 + ___mulxc3 + ___multc3 +} + +%inherit GCC_4.1.0 GCC_4.0.0 +GCC_4.1.0 { + ___smulsi3_highpart + ___umulsi3_highpart +} + +%inherit GCC_4.2.0 GCC_4.1.0 +GCC_4.2.0 { + # unsigned-to-floating conversions + ___floatunsisf + ___floatunsidf + ___floatunsixf + ___floatunsitf + ___floatundidf + ___floatundisf + ___floatundixf + ___floatunditf + ___floatuntidf + ___floatuntisf + ___floatuntixf + ___floatuntitf + __Unwind_GetIPInfo +} + +%inherit GCC_4.3.0 GCC_4.2.0 +GCC_4.3.0 { + # byte swapping routines + ___bswapsi2 + ___bswapdi2 + ___emutls_get_address + ___emutls_register_common + ___ffssi2 + ___extendxftf2 + ___trunctfxf2 + + # fixed-point routines + ___addqq3 + ___addhq3 + ___addsq3 + ___adddq3 + ___addtq3 + ___adduqq3 + ___adduhq3 + ___addusq3 + ___addudq3 + ___addutq3 + ___addha3 + ___addsa3 + ___addda3 + ___addta3 + ___adduha3 + ___addusa3 + ___adduda3 + ___adduta3 + ___ssaddqq3 + ___ssaddhq3 + ___ssaddsq3 + ___ssadddq3 + ___ssaddtq3 + ___ssaddha3 + ___ssaddsa3 + ___ssaddda3 + ___ssaddta3 + ___usadduqq3 + ___usadduhq3 + ___usaddusq3 + ___usaddudq3 + ___usaddutq3 + ___usadduha3 + ___usaddusa3 + ___usadduda3 + ___usadduta3 + ___subqq3 + ___subhq3 + ___subsq3 + ___subdq3 + ___subtq3 + ___subuqq3 + ___subuhq3 + ___subusq3 + ___subudq3 + ___subutq3 + ___subha3 + ___subsa3 + ___subda3 + ___subta3 + ___subuha3 + ___subusa3 + ___subuda3 + ___subuta3 + ___sssubqq3 + ___sssubhq3 + ___sssubsq3 + ___sssubdq3 + ___sssubtq3 + ___sssubha3 + ___sssubsa3 + ___sssubda3 + ___sssubta3 + ___ussubuqq3 + ___ussubuhq3 + ___ussubusq3 + ___ussubudq3 + ___ussubutq3 + ___ussubuha3 + ___ussubusa3 + ___ussubuda3 + ___ussubuta3 + ___mulqq3 + ___mulhq3 + ___mulsq3 + ___muldq3 + ___multq3 + ___muluqq3 + ___muluhq3 + ___mulusq3 + ___muludq3 + ___mulutq3 + ___mulha3 + ___mulsa3 + ___mulda3 + ___multa3 + ___muluha3 + ___mulusa3 + ___muluda3 + ___muluta3 + ___ssmulqq3 + ___ssmulhq3 + ___ssmulsq3 + ___ssmuldq3 + ___ssmultq3 + ___ssmulha3 + ___ssmulsa3 + ___ssmulda3 + ___ssmulta3 + ___usmuluqq3 + ___usmuluhq3 + ___usmulusq3 + ___usmuludq3 + ___usmulutq3 + ___usmuluha3 + ___usmulusa3 + ___usmuluda3 + ___usmuluta3 + ___divqq3 + ___divhq3 + ___divsq3 + ___divdq3 + ___divtq3 + ___divha3 + ___divsa3 + ___divda3 + ___divta3 + ___udivuqq3 + ___udivuhq3 + ___udivusq3 + ___udivudq3 + ___udivutq3 + ___udivuha3 + ___udivusa3 + ___udivuda3 + ___udivuta3 + ___ssdivqq3 + ___ssdivhq3 + ___ssdivsq3 + ___ssdivdq3 + ___ssdivtq3 + ___ssdivha3 + ___ssdivsa3 + ___ssdivda3 + ___ssdivta3 + ___usdivuqq3 + ___usdivuhq3 + ___usdivusq3 + ___usdivudq3 + ___usdivutq3 + ___usdivuha3 + ___usdivusa3 + ___usdivuda3 + ___usdivuta3 + ___negqq2 + ___neghq2 + ___negsq2 + ___negdq2 + ___negtq2 + ___neguqq2 + ___neguhq2 + ___negusq2 + ___negudq2 + ___negutq2 + ___negha2 + ___negsa2 + ___negda2 + ___negta2 + ___neguha2 + ___negusa2 + ___neguda2 + ___neguta2 + ___ssnegqq2 + ___ssneghq2 + ___ssnegsq2 + ___ssnegdq2 + ___ssnegtq2 + ___ssnegha2 + ___ssnegsa2 + ___ssnegda2 + ___ssnegta2 + ___usneguqq2 + ___usneguhq2 + ___usnegusq2 + ___usnegudq2 + ___usnegutq2 + ___usneguha2 + ___usnegusa2 + ___usneguda2 + ___usneguta2 + ___ashlqq3 + ___ashlhq3 + ___ashlsq3 + ___ashldq3 + ___ashltq3 + ___ashluqq3 + ___ashluhq3 + ___ashlusq3 + ___ashludq3 + ___ashlutq3 + ___ashlha3 + ___ashlsa3 + ___ashlda3 + ___ashlta3 + ___ashluha3 + ___ashlusa3 + ___ashluda3 + ___ashluta3 + ___ashrqq3 + ___ashrhq3 + ___ashrsq3 + ___ashrdq3 + ___ashrtq3 + ___ashrha3 + ___ashrsa3 + ___ashrda3 + ___ashrta3 + ___lshruqq3 + ___lshruhq3 + ___lshrusq3 + ___lshrudq3 + ___lshrutq3 + ___lshruha3 + ___lshrusa3 + ___lshruda3 + ___lshruta3 + ___ssashlqq3 + ___ssashlhq3 + ___ssashlsq3 + ___ssashldq3 + ___ssashltq3 + ___ssashlha3 + ___ssashlsa3 + ___ssashlda3 + ___ssashlta3 + ___usashluqq3 + ___usashluhq3 + ___usashlusq3 + ___usashludq3 + ___usashlutq3 + ___usashluha3 + ___usashlusa3 + ___usashluda3 + ___usashluta3 + ___cmpqq2 + ___cmphq2 + ___cmpsq2 + ___cmpdq2 + ___cmptq2 + ___cmpuqq2 + ___cmpuhq2 + ___cmpusq2 + ___cmpudq2 + ___cmputq2 + ___cmpha2 + ___cmpsa2 + ___cmpda2 + ___cmpta2 + ___cmpuha2 + ___cmpusa2 + ___cmpuda2 + ___cmputa2 + ___fractqqhq2 + ___fractqqsq2 + ___fractqqdq2 + ___fractqqtq2 + ___fractqqha + ___fractqqsa + ___fractqqda + ___fractqqta + ___fractqquqq + ___fractqquhq + ___fractqqusq + ___fractqqudq + ___fractqqutq + ___fractqquha + ___fractqqusa + ___fractqquda + ___fractqquta + ___fractqqqi + ___fractqqhi + ___fractqqsi + ___fractqqdi + ___fractqqti + ___fractqqsf + ___fractqqdf + ___fracthqqq2 + ___fracthqsq2 + ___fracthqdq2 + ___fracthqtq2 + ___fracthqha + ___fracthqsa + ___fracthqda + ___fracthqta + ___fracthquqq + ___fracthquhq + ___fracthqusq + ___fracthqudq + ___fracthqutq + ___fracthquha + ___fracthqusa + ___fracthquda + ___fracthquta + ___fracthqqi + ___fracthqhi + ___fracthqsi + ___fracthqdi + ___fracthqti + ___fracthqsf + ___fracthqdf + ___fractsqqq2 + ___fractsqhq2 + ___fractsqdq2 + ___fractsqtq2 + ___fractsqha + ___fractsqsa + ___fractsqda + ___fractsqta + ___fractsquqq + ___fractsquhq + ___fractsqusq + ___fractsqudq + ___fractsqutq + ___fractsquha + ___fractsqusa + ___fractsquda + ___fractsquta + ___fractsqqi + ___fractsqhi + ___fractsqsi + ___fractsqdi + ___fractsqti + ___fractsqsf + ___fractsqdf + ___fractdqqq2 + ___fractdqhq2 + ___fractdqsq2 + ___fractdqtq2 + ___fractdqha + ___fractdqsa + ___fractdqda + ___fractdqta + ___fractdquqq + ___fractdquhq + ___fractdqusq + ___fractdqudq + ___fractdqutq + ___fractdquha + ___fractdqusa + ___fractdquda + ___fractdquta + ___fractdqqi + ___fractdqhi + ___fractdqsi + ___fractdqdi + ___fractdqti + ___fractdqsf + ___fractdqdf + ___fracttqqq2 + ___fracttqhq2 + ___fracttqsq2 + ___fracttqdq2 + ___fracttqha + ___fracttqsa + ___fracttqda + ___fracttqta + ___fracttquqq + ___fracttquhq + ___fracttqusq + ___fracttqudq + ___fracttqutq + ___fracttquha + ___fracttqusa + ___fracttquda + ___fracttquta + ___fracttqqi + ___fracttqhi + ___fracttqsi + ___fracttqdi + ___fracttqti + ___fracttqsf + ___fracttqdf + ___fracthaqq + ___fracthahq + ___fracthasq + ___fracthadq + ___fracthatq + ___fracthasa2 + ___fracthada2 + ___fracthata2 + ___fracthauqq + ___fracthauhq + ___fracthausq + ___fracthaudq + ___fracthautq + ___fracthauha + ___fracthausa + ___fracthauda + ___fracthauta + ___fracthaqi + ___fracthahi + ___fracthasi + ___fracthadi + ___fracthati + ___fracthasf + ___fracthadf + ___fractsaqq + ___fractsahq + ___fractsasq + ___fractsadq + ___fractsatq + ___fractsaha2 + ___fractsada2 + ___fractsata2 + ___fractsauqq + ___fractsauhq + ___fractsausq + ___fractsaudq + ___fractsautq + ___fractsauha + ___fractsausa + ___fractsauda + ___fractsauta + ___fractsaqi + ___fractsahi + ___fractsasi + ___fractsadi + ___fractsati + ___fractsasf + ___fractsadf + ___fractdaqq + ___fractdahq + ___fractdasq + ___fractdadq + ___fractdatq + ___fractdaha2 + ___fractdasa2 + ___fractdata2 + ___fractdauqq + ___fractdauhq + ___fractdausq + ___fractdaudq + ___fractdautq + ___fractdauha + ___fractdausa + ___fractdauda + ___fractdauta + ___fractdaqi + ___fractdahi + ___fractdasi + ___fractdadi + ___fractdati + ___fractdasf + ___fractdadf + ___fracttaqq + ___fracttahq + ___fracttasq + ___fracttadq + ___fracttatq + ___fracttaha2 + ___fracttasa2 + ___fracttada2 + ___fracttauqq + ___fracttauhq + ___fracttausq + ___fracttaudq + ___fracttautq + ___fracttauha + ___fracttausa + ___fracttauda + ___fracttauta + ___fracttaqi + ___fracttahi + ___fracttasi + ___fracttadi + ___fracttati + ___fracttasf + ___fracttadf + ___fractuqqqq + ___fractuqqhq + ___fractuqqsq + ___fractuqqdq + ___fractuqqtq + ___fractuqqha + ___fractuqqsa + ___fractuqqda + ___fractuqqta + ___fractuqquhq2 + ___fractuqqusq2 + ___fractuqqudq2 + ___fractuqqutq2 + ___fractuqquha + ___fractuqqusa + ___fractuqquda + ___fractuqquta + ___fractuqqqi + ___fractuqqhi + ___fractuqqsi + ___fractuqqdi + ___fractuqqti + ___fractuqqsf + ___fractuqqdf + ___fractuhqqq + ___fractuhqhq + ___fractuhqsq + ___fractuhqdq + ___fractuhqtq + ___fractuhqha + ___fractuhqsa + ___fractuhqda + ___fractuhqta + ___fractuhquqq2 + ___fractuhqusq2 + ___fractuhqudq2 + ___fractuhqutq2 + ___fractuhquha + ___fractuhqusa + ___fractuhquda + ___fractuhquta + ___fractuhqqi + ___fractuhqhi + ___fractuhqsi + ___fractuhqdi + ___fractuhqti + ___fractuhqsf + ___fractuhqdf + ___fractusqqq + ___fractusqhq + ___fractusqsq + ___fractusqdq + ___fractusqtq + ___fractusqha + ___fractusqsa + ___fractusqda + ___fractusqta + ___fractusquqq2 + ___fractusquhq2 + ___fractusqudq2 + ___fractusqutq2 + ___fractusquha + ___fractusqusa + ___fractusquda + ___fractusquta + ___fractusqqi + ___fractusqhi + ___fractusqsi + ___fractusqdi + ___fractusqti + ___fractusqsf + ___fractusqdf + ___fractudqqq + ___fractudqhq + ___fractudqsq + ___fractudqdq + ___fractudqtq + ___fractudqha + ___fractudqsa + ___fractudqda + ___fractudqta + ___fractudquqq2 + ___fractudquhq2 + ___fractudqusq2 + ___fractudqutq2 + ___fractudquha + ___fractudqusa + ___fractudquda + ___fractudquta + ___fractudqqi + ___fractudqhi + ___fractudqsi + ___fractudqdi + ___fractudqti + ___fractudqsf + ___fractudqdf + ___fractutqqq + ___fractutqhq + ___fractutqsq + ___fractutqdq + ___fractutqtq + ___fractutqha + ___fractutqsa + ___fractutqda + ___fractutqta + ___fractutquqq2 + ___fractutquhq2 + ___fractutqusq2 + ___fractutqudq2 + ___fractutquha + ___fractutqusa + ___fractutquda + ___fractutquta + ___fractutqqi + ___fractutqhi + ___fractutqsi + ___fractutqdi + ___fractutqti + ___fractutqsf + ___fractutqdf + ___fractuhaqq + ___fractuhahq + ___fractuhasq + ___fractuhadq + ___fractuhatq + ___fractuhaha + ___fractuhasa + ___fractuhada + ___fractuhata + ___fractuhauqq + ___fractuhauhq + ___fractuhausq + ___fractuhaudq + ___fractuhautq + ___fractuhausa2 + ___fractuhauda2 + ___fractuhauta2 + ___fractuhaqi + ___fractuhahi + ___fractuhasi + ___fractuhadi + ___fractuhati + ___fractuhasf + ___fractuhadf + ___fractusaqq + ___fractusahq + ___fractusasq + ___fractusadq + ___fractusatq + ___fractusaha + ___fractusasa + ___fractusada + ___fractusata + ___fractusauqq + ___fractusauhq + ___fractusausq + ___fractusaudq + ___fractusautq + ___fractusauha2 + ___fractusauda2 + ___fractusauta2 + ___fractusaqi + ___fractusahi + ___fractusasi + ___fractusadi + ___fractusati + ___fractusasf + ___fractusadf + ___fractudaqq + ___fractudahq + ___fractudasq + ___fractudadq + ___fractudatq + ___fractudaha + ___fractudasa + ___fractudada + ___fractudata + ___fractudauqq + ___fractudauhq + ___fractudausq + ___fractudaudq + ___fractudautq + ___fractudauha2 + ___fractudausa2 + ___fractudauta2 + ___fractudaqi + ___fractudahi + ___fractudasi + ___fractudadi + ___fractudati + ___fractudasf + ___fractudadf + ___fractutaqq + ___fractutahq + ___fractutasq + ___fractutadq + ___fractutatq + ___fractutaha + ___fractutasa + ___fractutada + ___fractutata + ___fractutauqq + ___fractutauhq + ___fractutausq + ___fractutaudq + ___fractutautq + ___fractutauha2 + ___fractutausa2 + ___fractutauda2 + ___fractutaqi + ___fractutahi + ___fractutasi + ___fractutadi + ___fractutati + ___fractutasf + ___fractutadf + ___fractqiqq + ___fractqihq + ___fractqisq + ___fractqidq + ___fractqitq + ___fractqiha + ___fractqisa + ___fractqida + ___fractqita + ___fractqiuqq + ___fractqiuhq + ___fractqiusq + ___fractqiudq + ___fractqiutq + ___fractqiuha + ___fractqiusa + ___fractqiuda + ___fractqiuta + ___fracthiqq + ___fracthihq + ___fracthisq + ___fracthidq + ___fracthitq + ___fracthiha + ___fracthisa + ___fracthida + ___fracthita + ___fracthiuqq + ___fracthiuhq + ___fracthiusq + ___fracthiudq + ___fracthiutq + ___fracthiuha + ___fracthiusa + ___fracthiuda + ___fracthiuta + ___fractsiqq + ___fractsihq + ___fractsisq + ___fractsidq + ___fractsitq + ___fractsiha + ___fractsisa + ___fractsida + ___fractsita + ___fractsiuqq + ___fractsiuhq + ___fractsiusq + ___fractsiudq + ___fractsiutq + ___fractsiuha + ___fractsiusa + ___fractsiuda + ___fractsiuta + ___fractdiqq + ___fractdihq + ___fractdisq + ___fractdidq + ___fractditq + ___fractdiha + ___fractdisa + ___fractdida + ___fractdita + ___fractdiuqq + ___fractdiuhq + ___fractdiusq + ___fractdiudq + ___fractdiutq + ___fractdiuha + ___fractdiusa + ___fractdiuda + ___fractdiuta + ___fracttiqq + ___fracttihq + ___fracttisq + ___fracttidq + ___fracttitq + ___fracttiha + ___fracttisa + ___fracttida + ___fracttita + ___fracttiuqq + ___fracttiuhq + ___fracttiusq + ___fracttiudq + ___fracttiutq + ___fracttiuha + ___fracttiusa + ___fracttiuda + ___fracttiuta + ___fractsfqq + ___fractsfhq + ___fractsfsq + ___fractsfdq + ___fractsftq + ___fractsfha + ___fractsfsa + ___fractsfda + ___fractsfta + ___fractsfuqq + ___fractsfuhq + ___fractsfusq + ___fractsfudq + ___fractsfutq + ___fractsfuha + ___fractsfusa + ___fractsfuda + ___fractsfuta + ___fractdfqq + ___fractdfhq + ___fractdfsq + ___fractdfdq + ___fractdftq + ___fractdfha + ___fractdfsa + ___fractdfda + ___fractdfta + ___fractdfuqq + ___fractdfuhq + ___fractdfusq + ___fractdfudq + ___fractdfutq + ___fractdfuha + ___fractdfusa + ___fractdfuda + ___fractdfuta + ___satfractqqhq2 + ___satfractqqsq2 + ___satfractqqdq2 + ___satfractqqtq2 + ___satfractqqha + ___satfractqqsa + ___satfractqqda + ___satfractqqta + ___satfractqquqq + ___satfractqquhq + ___satfractqqusq + ___satfractqqudq + ___satfractqqutq + ___satfractqquha + ___satfractqqusa + ___satfractqquda + ___satfractqquta + ___satfracthqqq2 + ___satfracthqsq2 + ___satfracthqdq2 + ___satfracthqtq2 + ___satfracthqha + ___satfracthqsa + ___satfracthqda + ___satfracthqta + ___satfracthquqq + ___satfracthquhq + ___satfracthqusq + ___satfracthqudq + ___satfracthqutq + ___satfracthquha + ___satfracthqusa + ___satfracthquda + ___satfracthquta + ___satfractsqqq2 + ___satfractsqhq2 + ___satfractsqdq2 + ___satfractsqtq2 + ___satfractsqha + ___satfractsqsa + ___satfractsqda + ___satfractsqta + ___satfractsquqq + ___satfractsquhq + ___satfractsqusq + ___satfractsqudq + ___satfractsqutq + ___satfractsquha + ___satfractsqusa + ___satfractsquda + ___satfractsquta + ___satfractdqqq2 + ___satfractdqhq2 + ___satfractdqsq2 + ___satfractdqtq2 + ___satfractdqha + ___satfractdqsa + ___satfractdqda + ___satfractdqta + ___satfractdquqq + ___satfractdquhq + ___satfractdqusq + ___satfractdqudq + ___satfractdqutq + ___satfractdquha + ___satfractdqusa + ___satfractdquda + ___satfractdquta + ___satfracttqqq2 + ___satfracttqhq2 + ___satfracttqsq2 + ___satfracttqdq2 + ___satfracttqha + ___satfracttqsa + ___satfracttqda + ___satfracttqta + ___satfracttquqq + ___satfracttquhq + ___satfracttqusq + ___satfracttqudq + ___satfracttqutq + ___satfracttquha + ___satfracttqusa + ___satfracttquda + ___satfracttquta + ___satfracthaqq + ___satfracthahq + ___satfracthasq + ___satfracthadq + ___satfracthatq + ___satfracthasa2 + ___satfracthada2 + ___satfracthata2 + ___satfracthauqq + ___satfracthauhq + ___satfracthausq + ___satfracthaudq + ___satfracthautq + ___satfracthauha + ___satfracthausa + ___satfracthauda + ___satfracthauta + ___satfractsaqq + ___satfractsahq + ___satfractsasq + ___satfractsadq + ___satfractsatq + ___satfractsaha2 + ___satfractsada2 + ___satfractsata2 + ___satfractsauqq + ___satfractsauhq + ___satfractsausq + ___satfractsaudq + ___satfractsautq + ___satfractsauha + ___satfractsausa + ___satfractsauda + ___satfractsauta + ___satfractdaqq + ___satfractdahq + ___satfractdasq + ___satfractdadq + ___satfractdatq + ___satfractdaha2 + ___satfractdasa2 + ___satfractdata2 + ___satfractdauqq + ___satfractdauhq + ___satfractdausq + ___satfractdaudq + ___satfractdautq + ___satfractdauha + ___satfractdausa + ___satfractdauda + ___satfractdauta + ___satfracttaqq + ___satfracttahq + ___satfracttasq + ___satfracttadq + ___satfracttatq + ___satfracttaha2 + ___satfracttasa2 + ___satfracttada2 + ___satfracttauqq + ___satfracttauhq + ___satfracttausq + ___satfracttaudq + ___satfracttautq + ___satfracttauha + ___satfracttausa + ___satfracttauda + ___satfracttauta + ___satfractuqqqq + ___satfractuqqhq + ___satfractuqqsq + ___satfractuqqdq + ___satfractuqqtq + ___satfractuqqha + ___satfractuqqsa + ___satfractuqqda + ___satfractuqqta + ___satfractuqquhq2 + ___satfractuqqusq2 + ___satfractuqqudq2 + ___satfractuqqutq2 + ___satfractuqquha + ___satfractuqqusa + ___satfractuqquda + ___satfractuqquta + ___satfractuhqqq + ___satfractuhqhq + ___satfractuhqsq + ___satfractuhqdq + ___satfractuhqtq + ___satfractuhqha + ___satfractuhqsa + ___satfractuhqda + ___satfractuhqta + ___satfractuhquqq2 + ___satfractuhqusq2 + ___satfractuhqudq2 + ___satfractuhqutq2 + ___satfractuhquha + ___satfractuhqusa + ___satfractuhquda + ___satfractuhquta + ___satfractusqqq + ___satfractusqhq + ___satfractusqsq + ___satfractusqdq + ___satfractusqtq + ___satfractusqha + ___satfractusqsa + ___satfractusqda + ___satfractusqta + ___satfractusquqq2 + ___satfractusquhq2 + ___satfractusqudq2 + ___satfractusqutq2 + ___satfractusquha + ___satfractusqusa + ___satfractusquda + ___satfractusquta + ___satfractudqqq + ___satfractudqhq + ___satfractudqsq + ___satfractudqdq + ___satfractudqtq + ___satfractudqha + ___satfractudqsa + ___satfractudqda + ___satfractudqta + ___satfractudquqq2 + ___satfractudquhq2 + ___satfractudqusq2 + ___satfractudqutq2 + ___satfractudquha + ___satfractudqusa + ___satfractudquda + ___satfractudquta + ___satfractutqqq + ___satfractutqhq + ___satfractutqsq + ___satfractutqdq + ___satfractutqtq + ___satfractutqha + ___satfractutqsa + ___satfractutqda + ___satfractutqta + ___satfractutquqq2 + ___satfractutquhq2 + ___satfractutqusq2 + ___satfractutqudq2 + ___satfractutquha + ___satfractutqusa + ___satfractutquda + ___satfractutquta + ___satfractuhaqq + ___satfractuhahq + ___satfractuhasq + ___satfractuhadq + ___satfractuhatq + ___satfractuhaha + ___satfractuhasa + ___satfractuhada + ___satfractuhata + ___satfractuhauqq + ___satfractuhauhq + ___satfractuhausq + ___satfractuhaudq + ___satfractuhautq + ___satfractuhausa2 + ___satfractuhauda2 + ___satfractuhauta2 + ___satfractusaqq + ___satfractusahq + ___satfractusasq + ___satfractusadq + ___satfractusatq + ___satfractusaha + ___satfractusasa + ___satfractusada + ___satfractusata + ___satfractusauqq + ___satfractusauhq + ___satfractusausq + ___satfractusaudq + ___satfractusautq + ___satfractusauha2 + ___satfractusauda2 + ___satfractusauta2 + ___satfractudaqq + ___satfractudahq + ___satfractudasq + ___satfractudadq + ___satfractudatq + ___satfractudaha + ___satfractudasa + ___satfractudada + ___satfractudata + ___satfractudauqq + ___satfractudauhq + ___satfractudausq + ___satfractudaudq + ___satfractudautq + ___satfractudauha2 + ___satfractudausa2 + ___satfractudauta2 + ___satfractutaqq + ___satfractutahq + ___satfractutasq + ___satfractutadq + ___satfractutatq + ___satfractutaha + ___satfractutasa + ___satfractutada + ___satfractutata + ___satfractutauqq + ___satfractutauhq + ___satfractutausq + ___satfractutaudq + ___satfractutautq + ___satfractutauha2 + ___satfractutausa2 + ___satfractutauda2 + ___satfractqiqq + ___satfractqihq + ___satfractqisq + ___satfractqidq + ___satfractqitq + ___satfractqiha + ___satfractqisa + ___satfractqida + ___satfractqita + ___satfractqiuqq + ___satfractqiuhq + ___satfractqiusq + ___satfractqiudq + ___satfractqiutq + ___satfractqiuha + ___satfractqiusa + ___satfractqiuda + ___satfractqiuta + ___satfracthiqq + ___satfracthihq + ___satfracthisq + ___satfracthidq + ___satfracthitq + ___satfracthiha + ___satfracthisa + ___satfracthida + ___satfracthita + ___satfracthiuqq + ___satfracthiuhq + ___satfracthiusq + ___satfracthiudq + ___satfracthiutq + ___satfracthiuha + ___satfracthiusa + ___satfracthiuda + ___satfracthiuta + ___satfractsiqq + ___satfractsihq + ___satfractsisq + ___satfractsidq + ___satfractsitq + ___satfractsiha + ___satfractsisa + ___satfractsida + ___satfractsita + ___satfractsiuqq + ___satfractsiuhq + ___satfractsiusq + ___satfractsiudq + ___satfractsiutq + ___satfractsiuha + ___satfractsiusa + ___satfractsiuda + ___satfractsiuta + ___satfractdiqq + ___satfractdihq + ___satfractdisq + ___satfractdidq + ___satfractditq + ___satfractdiha + ___satfractdisa + ___satfractdida + ___satfractdita + ___satfractdiuqq + ___satfractdiuhq + ___satfractdiusq + ___satfractdiudq + ___satfractdiutq + ___satfractdiuha + ___satfractdiusa + ___satfractdiuda + ___satfractdiuta + ___satfracttiqq + ___satfracttihq + ___satfracttisq + ___satfracttidq + ___satfracttitq + ___satfracttiha + ___satfracttisa + ___satfracttida + ___satfracttita + ___satfracttiuqq + ___satfracttiuhq + ___satfracttiusq + ___satfracttiudq + ___satfracttiutq + ___satfracttiuha + ___satfracttiusa + ___satfracttiuda + ___satfracttiuta + ___satfractsfqq + ___satfractsfhq + ___satfractsfsq + ___satfractsfdq + ___satfractsftq + ___satfractsfha + ___satfractsfsa + ___satfractsfda + ___satfractsfta + ___satfractsfuqq + ___satfractsfuhq + ___satfractsfusq + ___satfractsfudq + ___satfractsfutq + ___satfractsfuha + ___satfractsfusa + ___satfractsfuda + ___satfractsfuta + ___satfractdfqq + ___satfractdfhq + ___satfractdfsq + ___satfractdfdq + ___satfractdftq + ___satfractdfha + ___satfractdfsa + ___satfractdfda + ___satfractdfta + ___satfractdfuqq + ___satfractdfuhq + ___satfractdfusq + ___satfractdfudq + ___satfractdfutq + ___satfractdfuha + ___satfractdfusa + ___satfractdfuda + ___satfractdfuta + ___fractunsqqqi + ___fractunsqqhi + ___fractunsqqsi + ___fractunsqqdi + ___fractunsqqti + ___fractunshqqi + ___fractunshqhi + ___fractunshqsi + ___fractunshqdi + ___fractunshqti + ___fractunssqqi + ___fractunssqhi + ___fractunssqsi + ___fractunssqdi + ___fractunssqti + ___fractunsdqqi + ___fractunsdqhi + ___fractunsdqsi + ___fractunsdqdi + ___fractunsdqti + ___fractunstqqi + ___fractunstqhi + ___fractunstqsi + ___fractunstqdi + ___fractunstqti + ___fractunshaqi + ___fractunshahi + ___fractunshasi + ___fractunshadi + ___fractunshati + ___fractunssaqi + ___fractunssahi + ___fractunssasi + ___fractunssadi + ___fractunssati + ___fractunsdaqi + ___fractunsdahi + ___fractunsdasi + ___fractunsdadi + ___fractunsdati + ___fractunstaqi + ___fractunstahi + ___fractunstasi + ___fractunstadi + ___fractunstati + ___fractunsuqqqi + ___fractunsuqqhi + ___fractunsuqqsi + ___fractunsuqqdi + ___fractunsuqqti + ___fractunsuhqqi + ___fractunsuhqhi + ___fractunsuhqsi + ___fractunsuhqdi + ___fractunsuhqti + ___fractunsusqqi + ___fractunsusqhi + ___fractunsusqsi + ___fractunsusqdi + ___fractunsusqti + ___fractunsudqqi + ___fractunsudqhi + ___fractunsudqsi + ___fractunsudqdi + ___fractunsudqti + ___fractunsutqqi + ___fractunsutqhi + ___fractunsutqsi + ___fractunsutqdi + ___fractunsutqti + ___fractunsuhaqi + ___fractunsuhahi + ___fractunsuhasi + ___fractunsuhadi + ___fractunsuhati + ___fractunsusaqi + ___fractunsusahi + ___fractunsusasi + ___fractunsusadi + ___fractunsusati + ___fractunsudaqi + ___fractunsudahi + ___fractunsudasi + ___fractunsudadi + ___fractunsudati + ___fractunsutaqi + ___fractunsutahi + ___fractunsutasi + ___fractunsutadi + ___fractunsutati + ___fractunsqiqq + ___fractunsqihq + ___fractunsqisq + ___fractunsqidq + ___fractunsqitq + ___fractunsqiha + ___fractunsqisa + ___fractunsqida + ___fractunsqita + ___fractunsqiuqq + ___fractunsqiuhq + ___fractunsqiusq + ___fractunsqiudq + ___fractunsqiutq + ___fractunsqiuha + ___fractunsqiusa + ___fractunsqiuda + ___fractunsqiuta + ___fractunshiqq + ___fractunshihq + ___fractunshisq + ___fractunshidq + ___fractunshitq + ___fractunshiha + ___fractunshisa + ___fractunshida + ___fractunshita + ___fractunshiuqq + ___fractunshiuhq + ___fractunshiusq + ___fractunshiudq + ___fractunshiutq + ___fractunshiuha + ___fractunshiusa + ___fractunshiuda + ___fractunshiuta + ___fractunssiqq + ___fractunssihq + ___fractunssisq + ___fractunssidq + ___fractunssitq + ___fractunssiha + ___fractunssisa + ___fractunssida + ___fractunssita + ___fractunssiuqq + ___fractunssiuhq + ___fractunssiusq + ___fractunssiudq + ___fractunssiutq + ___fractunssiuha + ___fractunssiusa + ___fractunssiuda + ___fractunssiuta + ___fractunsdiqq + ___fractunsdihq + ___fractunsdisq + ___fractunsdidq + ___fractunsditq + ___fractunsdiha + ___fractunsdisa + ___fractunsdida + ___fractunsdita + ___fractunsdiuqq + ___fractunsdiuhq + ___fractunsdiusq + ___fractunsdiudq + ___fractunsdiutq + ___fractunsdiuha + ___fractunsdiusa + ___fractunsdiuda + ___fractunsdiuta + ___fractunstiqq + ___fractunstihq + ___fractunstisq + ___fractunstidq + ___fractunstitq + ___fractunstiha + ___fractunstisa + ___fractunstida + ___fractunstita + ___fractunstiuqq + ___fractunstiuhq + ___fractunstiusq + ___fractunstiudq + ___fractunstiutq + ___fractunstiuha + ___fractunstiusa + ___fractunstiuda + ___fractunstiuta + ___satfractunsqiqq + ___satfractunsqihq + ___satfractunsqisq + ___satfractunsqidq + ___satfractunsqitq + ___satfractunsqiha + ___satfractunsqisa + ___satfractunsqida + ___satfractunsqita + ___satfractunsqiuqq + ___satfractunsqiuhq + ___satfractunsqiusq + ___satfractunsqiudq + ___satfractunsqiutq + ___satfractunsqiuha + ___satfractunsqiusa + ___satfractunsqiuda + ___satfractunsqiuta + ___satfractunshiqq + ___satfractunshihq + ___satfractunshisq + ___satfractunshidq + ___satfractunshitq + ___satfractunshiha + ___satfractunshisa + ___satfractunshida + ___satfractunshita + ___satfractunshiuqq + ___satfractunshiuhq + ___satfractunshiusq + ___satfractunshiudq + ___satfractunshiutq + ___satfractunshiuha + ___satfractunshiusa + ___satfractunshiuda + ___satfractunshiuta + ___satfractunssiqq + ___satfractunssihq + ___satfractunssisq + ___satfractunssidq + ___satfractunssitq + ___satfractunssiha + ___satfractunssisa + ___satfractunssida + ___satfractunssita + ___satfractunssiuqq + ___satfractunssiuhq + ___satfractunssiusq + ___satfractunssiudq + ___satfractunssiutq + ___satfractunssiuha + ___satfractunssiusa + ___satfractunssiuda + ___satfractunssiuta + ___satfractunsdiqq + ___satfractunsdihq + ___satfractunsdisq + ___satfractunsdidq + ___satfractunsditq + ___satfractunsdiha + ___satfractunsdisa + ___satfractunsdida + ___satfractunsdita + ___satfractunsdiuqq + ___satfractunsdiuhq + ___satfractunsdiusq + ___satfractunsdiudq + ___satfractunsdiutq + ___satfractunsdiuha + ___satfractunsdiusa + ___satfractunsdiuda + ___satfractunsdiuta + ___satfractunstiqq + ___satfractunstihq + ___satfractunstisq + ___satfractunstidq + ___satfractunstitq + ___satfractunstiha + ___satfractunstisa + ___satfractunstida + ___satfractunstita + ___satfractunstiuqq + ___satfractunstiuhq + ___satfractunstiusq + ___satfractunstiudq + ___satfractunstiutq + ___satfractunstiuha + ___satfractunstiusa + ___satfractunstiuda + ___satfractunstiuta +} + +%inherit GCC_4.4.0 GCC_4.3.0 +GCC_4.4.0 { + ___sync_fetch_and_add_1 + ___sync_fetch_and_sub_1 + ___sync_fetch_and_or_1 + ___sync_fetch_and_and_1 + ___sync_fetch_and_xor_1 + ___sync_fetch_and_nand_1 + ___sync_add_and_fetch_1 + ___sync_sub_and_fetch_1 + ___sync_or_and_fetch_1 + ___sync_and_and_fetch_1 + ___sync_xor_and_fetch_1 + ___sync_nand_and_fetch_1 + ___sync_bool_compare_and_swap_1 + ___sync_val_compare_and_swap_1 + ___sync_lock_test_and_set_1 + + ___sync_fetch_and_add_2 + ___sync_fetch_and_sub_2 + ___sync_fetch_and_or_2 + ___sync_fetch_and_and_2 + ___sync_fetch_and_xor_2 + ___sync_fetch_and_nand_2 + ___sync_add_and_fetch_2 + ___sync_sub_and_fetch_2 + ___sync_or_and_fetch_2 + ___sync_and_and_fetch_2 + ___sync_xor_and_fetch_2 + ___sync_nand_and_fetch_2 + ___sync_bool_compare_and_swap_2 + ___sync_val_compare_and_swap_2 + ___sync_lock_test_and_set_2 + + ___sync_fetch_and_add_4 + ___sync_fetch_and_sub_4 + ___sync_fetch_and_or_4 + ___sync_fetch_and_and_4 + ___sync_fetch_and_xor_4 + ___sync_fetch_and_nand_4 + ___sync_add_and_fetch_4 + ___sync_sub_and_fetch_4 + ___sync_or_and_fetch_4 + ___sync_and_and_fetch_4 + ___sync_xor_and_fetch_4 + ___sync_nand_and_fetch_4 + ___sync_bool_compare_and_swap_4 + ___sync_val_compare_and_swap_4 + ___sync_lock_test_and_set_4 + + ___sync_fetch_and_add_8 + ___sync_fetch_and_sub_8 + ___sync_fetch_and_or_8 + ___sync_fetch_and_and_8 + ___sync_fetch_and_xor_8 + ___sync_fetch_and_nand_8 + ___sync_add_and_fetch_8 + ___sync_sub_and_fetch_8 + ___sync_or_and_fetch_8 + ___sync_and_and_fetch_8 + ___sync_xor_and_fetch_8 + ___sync_nand_and_fetch_8 + ___sync_bool_compare_and_swap_8 + ___sync_val_compare_and_swap_8 + ___sync_lock_test_and_set_8 + + ___sync_fetch_and_add_16 + ___sync_fetch_and_sub_16 + ___sync_fetch_and_or_16 + ___sync_fetch_and_and_16 + ___sync_fetch_and_xor_16 + ___sync_fetch_and_nand_16 + ___sync_add_and_fetch_16 + ___sync_sub_and_fetch_16 + ___sync_or_and_fetch_16 + ___sync_and_and_fetch_16 + ___sync_xor_and_fetch_16 + ___sync_nand_and_fetch_16 + ___sync_bool_compare_and_swap_16 + ___sync_val_compare_and_swap_16 + ___sync_lock_test_and_set_16 + + ___sync_synchronize +} + +%inherit GCC_4.5.0 GCC_4.4.0 +GCC_4.5.0 { + ___unordxf2 + ___unordtf2 +} diff --git a/libgcc/config/bfin/t-linux b/libgcc/config/bfin/t-linux new file mode 100644 index 00000000000..1c42e482b8d --- /dev/null +++ b/libgcc/config/bfin/t-linux @@ -0,0 +1 @@ +SHLIB_MAPFILES = $(srcdir)/config/bfin/libgcc-glibc.ver diff --git a/libgcc/config/c6x/libgcc-eabi.ver b/libgcc/config/c6x/libgcc-eabi.ver new file mode 100644 index 00000000000..6bce556512e --- /dev/null +++ b/libgcc/config/c6x/libgcc-eabi.ver @@ -0,0 +1,103 @@ +# Copyright (C) 2011 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_4.7.0 { + __c6xabi_strasgi + __c6xabi_call_stub + __c6xabi_mpyll + __c6xabi_negll + __c6xabi_llshru + __c6xabi_llshl + __c6xabi_llshr + __c6xabi_fixfu + __c6xabi_fixdu + __c6xabi_fixflli + __c6xabi_fixdlli + __c6xabi_fixfull + __c6xabi_fixdull + __c6xabi_fltllif + __c6xabi_fltllid + __c6xabi_fltullf + __c6xabi_fltulld + __c6xabi_divlli + __c6xabi_remlli + __c6xabi_divull + __c6xabi_remull + __c6xabi_divremull + __c6xabi_gef + __c6xabi_gtf + __c6xabi_lef + __c6xabi_ltf + __c6xabi_eqf + __c6xabi_ged + __c6xabi_gtd + __c6xabi_led + __c6xabi_ltd + __c6xabi_eqd + __c6xabi_addf + __c6xabi_divf + __c6xabi_neqf + __c6xabi_cmpf + __c6xabi_mpyf + __c6xabi_negf + __c6xabi_subf + __c6xabi_unordf + __c6xabi_fixfi + __c6xabi_fltif + __c6xabi_fltuf + __c6xabi_addd + __c6xabi_divd + __c6xabi_neqd + __c6xabi_cmpd + __c6xabi_mpyd + __c6xabi_negd + __c6xabi_subd + __c6xabi_unordd + __c6xabi_fixdi + __c6xabi_fltid + __c6xabi_fltud + __c6xabi_cvtfd + __c6xabi_cvtdf + __c6xabi_mulcf + __c6xabi_mulcd + __c6xabi_divcf + __c6xabi_divcd + + __gnu_ltsf2 + __gnu_ltdf2 + __gnu_gesf2 + __gnu_gedf2 + __gnu_gtsf2 + __gnu_gtdf2 + __gnu_eqsf2 + __gnu_eqdf2 + + # Exception-Handling + _Unwind_Complete + _Unwind_VRS_Get + _Unwind_VRS_Set + _Unwind_VRS_Pop + __c6xabi_unwind_cpp_pr0 + __c6xabi_unwind_cpp_pr1 + __c6xabi_unwind_cpp_pr2 + __c6xabi_unwind_cpp_pr3 + __c6xabi_unwind_cpp_pr4 + # The libstdc++ exception-handling personality routine uses this + # GNU-specific entry point. + __gnu_unwind_frame +} diff --git a/libgcc/config/c6x/t-elf b/libgcc/config/c6x/t-elf new file mode 100644 index 00000000000..89b68969ae8 --- /dev/null +++ b/libgcc/config/c6x/t-elf @@ -0,0 +1 @@ +SHLIB_MAPFILES += $(srcdir)/config/c6x/libgcc-eabi.ver diff --git a/libgcc/config/cris/libgcc-glibc.ver b/libgcc/config/cris/libgcc-glibc.ver new file mode 100644 index 00000000000..e35de83100f --- /dev/null +++ b/libgcc/config/cris/libgcc-glibc.ver @@ -0,0 +1,7 @@ +GCC_4.3 { + __Mul + __Div + __Udiv + __Mod + __Umod +} diff --git a/libgcc/config/cris/t-linux b/libgcc/config/cris/t-linux new file mode 100644 index 00000000000..8c7f4d44249 --- /dev/null +++ b/libgcc/config/cris/t-linux @@ -0,0 +1,2 @@ +# Override t-linux default. +SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/cris/libgcc-glibc.ver diff --git a/libgcc/config/frv/libgcc-glibc.ver b/libgcc/config/frv/libgcc-glibc.ver new file mode 100644 index 00000000000..6e27b4f9b85 --- /dev/null +++ b/libgcc/config/frv/libgcc-glibc.ver @@ -0,0 +1,73 @@ +# Copyright (C) 2004 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.4 { + # frv abi symbol names + __ftod + __ftoi + __ftoui + __dtoi + __ftoui + __dtoui + __ftoll + __dtoll + __ftoull + __dtoull + __itof + __lltof + __dtof + __itod + __lltof + __lltod + __addd + __subd + __muld + __divd + __addf + __subf + __mulf + __divf + __sllll + __srlll + __srall + __addll + __subll + __mulll + __umulll + __divll + __udivll + __modll + __umodll + __cmpll + __cmpf + __cmpd + __andll + __orll + __xorll + __notll + __cmov + __cmovd + __cmovh + __cmovw + __modi + __uitod + __uitof + __ulltod + __ulltof + __umodi +} diff --git a/libgcc/config/frv/t-linux b/libgcc/config/frv/t-linux new file mode 100644 index 00000000000..dbab5a4205f --- /dev/null +++ b/libgcc/config/frv/t-linux @@ -0,0 +1 @@ +SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/frv/libgcc-glibc.ver diff --git a/libgcc/config/i386/libgcc-darwin.10.4.ver b/libgcc/config/i386/libgcc-darwin.10.4.ver new file mode 100644 index 00000000000..67f5e239ca1 --- /dev/null +++ b/libgcc/config/i386/libgcc-darwin.10.4.ver @@ -0,0 +1,98 @@ +# Copyright (C) 2005 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/>. +__Unwind_Backtrace +__Unwind_DeleteException +__Unwind_FindEnclosingFunction +__Unwind_Find_FDE +__Unwind_ForcedUnwind +__Unwind_GetCFA +__Unwind_GetDataRelBase +__Unwind_GetGR +__Unwind_GetIP +__Unwind_GetLanguageSpecificData +__Unwind_GetRegionStart +__Unwind_GetTextRelBase +__Unwind_RaiseException +__Unwind_Resume +__Unwind_Resume_or_Rethrow +__Unwind_SetGR +__Unwind_SetIP +___absvdi2 +___absvsi2 +___addvdi3 +___addvsi3 +___ashldi3 +___ashrdi3 +___clear_cache +___clzdi2 +___clzsi2 +___cmpdi2 +___ctzdi2 +___ctzsi2 +___deregister_frame +___deregister_frame_info +___deregister_frame_info_bases +___divdc3 +___divdi3 +___divsc3 +___divxc3 +___enable_execute_stack +___ffsdi2 +___fixdfdi +___fixsfdi +___fixunsdfdi +___fixunsdfsi +___fixunssfdi +___fixunssfsi +___fixunsxfdi +___fixunsxfsi +___fixxfdi +___floatdidf +___floatdisf +___floatdixf +___gcc_personality_v0 +___lshrdi3 +___moddi3 +___muldc3 +___muldi3 +___mulsc3 +___mulvdi3 +___mulvsi3 +___mulxc3 +___negdi2 +___negvdi2 +___negvsi2 +___paritydi2 +___paritysi2 +___popcountdi2 +___popcountsi2 +___powidf2 +___powisf2 +___powixf2 +___register_frame +___register_frame_info +___register_frame_info_bases +___register_frame_info_table +___register_frame_info_table_bases +___register_frame_table +___subvdi3 +___subvsi3 +___ucmpdi2 +___udivdi3 +___udivmoddi4 +___umoddi3 diff --git a/libgcc/config/i386/libgcc-darwin.10.5.ver b/libgcc/config/i386/libgcc-darwin.10.5.ver new file mode 100644 index 00000000000..eeec9fbfcdf --- /dev/null +++ b/libgcc/config/i386/libgcc-darwin.10.5.ver @@ -0,0 +1,102 @@ +# Copyright (C) 2005, 2006 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/>. +__Unwind_Backtrace +__Unwind_DeleteException +__Unwind_FindEnclosingFunction +__Unwind_Find_FDE +__Unwind_ForcedUnwind +__Unwind_GetCFA +__Unwind_GetDataRelBase +__Unwind_GetGR +__Unwind_GetIP +__Unwind_GetIPInfo +__Unwind_GetLanguageSpecificData +__Unwind_GetRegionStart +__Unwind_GetTextRelBase +__Unwind_RaiseException +__Unwind_Resume +__Unwind_Resume_or_Rethrow +__Unwind_SetGR +__Unwind_SetIP +___absvdi2 +___absvsi2 +___addvdi3 +___addvsi3 +___ashldi3 +___ashrdi3 +___clear_cache +___clzdi2 +___clzsi2 +___cmpdi2 +___ctzdi2 +___ctzsi2 +___deregister_frame +___deregister_frame_info +___deregister_frame_info_bases +___divdc3 +___divdi3 +___divsc3 +___divxc3 +___enable_execute_stack +___ffsdi2 +___fixdfdi +___fixsfdi +___fixunsdfdi +___fixunsdfsi +___fixunssfdi +___fixunssfsi +___fixunsxfdi +___fixunsxfsi +___fixxfdi +___floatdidf +___floatdisf +___floatdixf +___floatundidf +___floatundisf +___floatundixf +___gcc_personality_v0 +___lshrdi3 +___moddi3 +___muldc3 +___muldi3 +___mulsc3 +___mulvdi3 +___mulvsi3 +___mulxc3 +___negdi2 +___negvdi2 +___negvsi2 +___paritydi2 +___paritysi2 +___popcountdi2 +___popcountsi2 +___powidf2 +___powisf2 +___powixf2 +___register_frame +___register_frame_info +___register_frame_info_bases +___register_frame_info_table +___register_frame_info_table_bases +___register_frame_table +___subvdi3 +___subvsi3 +___ucmpdi2 +___udivdi3 +___udivmoddi4 +___umoddi3 diff --git a/libgcc/config/i386/libgcc-glibc.ver b/libgcc/config/i386/libgcc-glibc.ver new file mode 100644 index 00000000000..e79d3267f6f --- /dev/null +++ b/libgcc/config/i386/libgcc-glibc.ver @@ -0,0 +1,186 @@ +# Copyright (C) 2008, 2010 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 +} +%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 +} +%endif diff --git a/libgcc/config/i386/t-cygwin b/libgcc/config/i386/t-cygwin new file mode 100644 index 00000000000..22df63671ff --- /dev/null +++ b/libgcc/config/i386/t-cygwin @@ -0,0 +1,13 @@ +# Cygwin-specific parts of LIB_SPEC +SHLIB_LC = -lcygwin -ladvapi32 -lshell32 -luser32 -lkernel32 + +# We have already included one of the t-{dw2,sjlj}-eh fragments for EH_MODEL +SHLIB_EH_EXTENSION = $(subst -dw2,,-$(EH_MODEL)) + +# Cygwin uses different conventions than MinGW; override generic SHLIB_ def'ns here. +SHLIB_IMPLIB = @shlib_base_name@$(SHLIB_EXT).a +SHLIB_SONAME = cyggcc_s$(SHLIB_EH_EXTENSION)-$(SHLIB_SOVERSION)$(SHLIB_EXT) +# This must match the definitions of SHLIB_SONAME/SHLIB_SOVERSION and LIBGCC_SONAME. +# We'd like to use SHLIB_SONAME here too, and we can, since +# we don't rely on shlib_base_name substitution for it. +SHLIB_MKMAP_OPTS = -v pe_dll=$(SHLIB_SONAME) diff --git a/libgcc/config/i386/t-darwin b/libgcc/config/i386/t-darwin deleted file mode 100644 index 4578f74c3fa..00000000000 --- a/libgcc/config/i386/t-darwin +++ /dev/null @@ -1 +0,0 @@ -SHLIB_VERPFX = $(gcc_srcdir)/config/i386/darwin-libgcc diff --git a/libgcc/config/i386/t-darwin64 b/libgcc/config/i386/t-darwin64 deleted file mode 100644 index 4578f74c3fa..00000000000 --- a/libgcc/config/i386/t-darwin64 +++ /dev/null @@ -1 +0,0 @@ -SHLIB_VERPFX = $(gcc_srcdir)/config/i386/darwin-libgcc diff --git a/libgcc/config/i386/t-dlldir b/libgcc/config/i386/t-dlldir new file mode 100644 index 00000000000..d2cf39bddd6 --- /dev/null +++ b/libgcc/config/i386/t-dlldir @@ -0,0 +1,2 @@ +# In a native build, target DLLs go in bindir, where they can be executed. +SHLIB_DLLDIR = $(bindir) diff --git a/libgcc/config/i386/t-dlldir-x b/libgcc/config/i386/t-dlldir-x new file mode 100644 index 00000000000..0f8c29b4e90 --- /dev/null +++ b/libgcc/config/i386/t-dlldir-x @@ -0,0 +1,3 @@ +# In a cross build, bindir contains host not target binaries, so target DLLs +# instead go in toolexeclibdir, alongside other target binaries and static libs. +SHLIB_DLLDIR = $(toolexeclibdir) diff --git a/libgcc/config/i386/t-dw2-eh b/libgcc/config/i386/t-dw2-eh new file mode 100644 index 00000000000..ffcc39aea33 --- /dev/null +++ b/libgcc/config/i386/t-dw2-eh @@ -0,0 +1,3 @@ + +# We are using Dwarf-2 EH. +EH_MODEL = dw2 diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux new file mode 100644 index 00000000000..29b4c223983 --- /dev/null +++ b/libgcc/config/i386/t-linux @@ -0,0 +1,4 @@ +# On 64bit we do not need any exports for glibc for 64-bit libgcc_s. +# Need to support TImode for x86. Override the settings from +# t-slibgcc-elf-ver and t-linux +SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver diff --git a/libgcc/config/i386/t-mingw-pthread b/libgcc/config/i386/t-mingw-pthread new file mode 100644 index 00000000000..622ef82be6e --- /dev/null +++ b/libgcc/config/i386/t-mingw-pthread @@ -0,0 +1,2 @@ +SHLIB_PTHREAD_CFLAG = -pthread +SHLIB_PTHREAD_LDFLAG = -Wl,-lpthread diff --git a/libgcc/config/i386/t-mingw32 b/libgcc/config/i386/t-mingw32 new file mode 100644 index 00000000000..bfdef6723ce --- /dev/null +++ b/libgcc/config/i386/t-mingw32 @@ -0,0 +1,2 @@ +# MinGW-specific parts of LIB_SPEC +SHLIB_LC = -lmingwthrd -lmingw32 -lmingwex -lmoldname -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 diff --git a/libgcc/config/i386/t-sjlj-eh b/libgcc/config/i386/t-sjlj-eh new file mode 100644 index 00000000000..c9085f43216 --- /dev/null +++ b/libgcc/config/i386/t-sjlj-eh @@ -0,0 +1,3 @@ + +# We are using SjLj EH. +EH_MODEL = sjlj diff --git a/libgcc/config/i386/t-slibgcc-cygming b/libgcc/config/i386/t-slibgcc-cygming new file mode 100644 index 00000000000..3bee8b98084 --- /dev/null +++ b/libgcc/config/i386/t-slibgcc-cygming @@ -0,0 +1,58 @@ +# Build a shared libgcc library for PECOFF with a DEF file +# with the GNU linker. +# +# mkmap-flat.awk is used with the pe_dll option to produce a DEF instead +# of an ELF map file. +# +# Warning: If SHLIB_SOVERSION or SHLIB_SONAME are updated, LIBGCC_SONAME +# in mingw32.h and SHLIB_MKMAP_OPTS below must be updated also. + +SHLIB_EXT = .dll +SHLIB_IMPLIB = @shlib_base_name@.a +SHLIB_SOVERSION = 1 +SHLIB_SONAME = @shlib_base_name@_$(EH_MODEL)-$(SHLIB_SOVERSION)$(SHLIB_EXT) +SHLIB_MAP = @shlib_map_file@ +SHLIB_OBJS = @shlib_objs@ +SHLIB_DIR = @multilib_dir@/shlib +SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@ +# SHLIB_DLLDIR is defined by including one of either t-dlldir or t-dlldir-x +# (native/cross build respectively) in the tmake_file list in +# libgcc/config.host. +ifndef SHLIB_DLLDIR +$(error SHLIB_DLLDIR must be defined) +endif +ifndef SHLIB_PTHREAD_CFLAG +SHLIB_PTHREAD_CFLAG = +endif +ifndef SHLIB_PTHREAD_LDFLAG +SHLIB_PTHREAD_LDFLAG = +endif + +SHLIB_LINK = $(LN_S) -f $(SHLIB_MAP) $(SHLIB_MAP).def && \ + if [ ! -d $(SHLIB_DIR) ]; then \ + mkdir $(SHLIB_DIR); \ + else true; fi && \ + $(CC) $(LIBGCC2_CFLAGS) $(SHLIB_PTHREAD_CFLAG) \ + -shared -nodefaultlibs \ + $(SHLIB_MAP).def \ + -Wl,--out-implib,$(SHLIB_DIR)/$(SHLIB_IMPLIB).tmp \ + -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \ + $(SHLIB_OBJS) ${SHLIB_PTHREAD_LDFLAG} $(SHLIB_LC) && \ + if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \ + mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \ + $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \ + else true; fi && \ + mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \ + mv $(SHLIB_DIR)/$(SHLIB_IMPLIB).tmp $(SHLIB_DIR)/$(SHLIB_IMPLIB) +SHLIB_INSTALL = \ + $(mkinstalldirs) $(DESTDIR)$(SHLIB_DLLDIR) \ + $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL); \ + $(INSTALL) $(SHLIB_DIR)/$(SHLIB_SONAME) \ + $(DESTDIR)$(SHLIB_DLLDIR)/$(SHLIB_SONAME); \ + $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_IMPLIB) \ + $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_IMPLIB) +SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk +# We'd like to use SHLIB_SONAME here too, but shlib_base_name +# does not get substituted before mkmap-flat.awk is run. +SHLIB_MKMAP_OPTS = -v pe_dll=libgcc_s_$(EH_MODEL)-$(SHLIB_SOVERSION)$(SHLIB_EXT) +SHLIB_MAPFILES = libgcc-std.ver diff --git a/libgcc/config/ia64/libgcc-glibc.ver b/libgcc/config/ia64/libgcc-glibc.ver new file mode 100644 index 00000000000..34a69618d1b --- /dev/null +++ b/libgcc/config/ia64/libgcc-glibc.ver @@ -0,0 +1,97 @@ +# Copyright (C) 2009 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/>. + +# 128 bit long double support was introduced with GCC 4.4.0. These lines +# make the symbols to get @@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 +} + +# Those TF functions are the aliases of the XF functions before gcc 3.4. +GCC_3.0 { + __divtf3 + __fixtfti + __fixunstfti + __floattitf +} + +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 +} diff --git a/libgcc/config/ia64/libgcc-ia64.ver b/libgcc/config/ia64/libgcc-ia64.ver new file mode 100644 index 00000000000..11c1fe629bd --- /dev/null +++ b/libgcc/config/ia64/libgcc-ia64.ver @@ -0,0 +1,30 @@ +# Copyright (C) 2000, 2001, 2003 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.0 { + # IA-64 symbols + __ia64_nonlocal_goto + __ia64_personality_v1 + __ia64_restore_stack_nonlocal + __ia64_save_stack_nonlocal + __ia64_trampoline + __ia64_backtrace +} +GCC_3.3.2 { + _Unwind_GetBSP +} diff --git a/libgcc/config/ia64/t-ia64 b/libgcc/config/ia64/t-ia64 index 3ec5fc5db08..55bb8c11630 100644 --- a/libgcc/config/ia64/t-ia64 +++ b/libgcc/config/ia64/t-ia64 @@ -13,3 +13,5 @@ crtbeginS.o: $(gcc_srcdir)/config/ia64/crtbegin.asm crtendS.o: $(gcc_srcdir)/config/ia64/crtend.asm $(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \ -o $@ -DSHARED $(gcc_srcdir)/config/ia64/crtend.asm + +SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-ia64.ver diff --git a/libgcc/config/ia64/t-glibc b/libgcc/config/ia64/t-linux index df4fe9c4404..e6d72b94a87 100644 --- a/libgcc/config/ia64/t-glibc +++ b/libgcc/config/ia64/t-linux @@ -1,3 +1,5 @@ # Use system libunwind library on IA-64 GLIBC based system. LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ $(srcdir)/unwind-compat.c + +SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-glibc.ver diff --git a/libgcc/config/ia64/t-glibc-libunwind b/libgcc/config/ia64/t-linux-libunwind index 8b1736a2d67..8b1736a2d67 100644 --- a/libgcc/config/ia64/t-glibc-libunwind +++ b/libgcc/config/ia64/t-linux-libunwind diff --git a/libgcc/config/ia64/t-slibgcc-hpux b/libgcc/config/ia64/t-slibgcc-hpux new file mode 100644 index 00000000000..27c7a661b1e --- /dev/null +++ b/libgcc/config/ia64/t-slibgcc-hpux @@ -0,0 +1,6 @@ +# Build a shared libgcc library with the HP-UX linker on IA64. + +SHLIB_SOVERSION = 0 +# Must include -lunwind in the link, so that libgcc_s.so has the necessary +# DT_NEEDED entry for libunwind. +SHLIB_LC += -lunwind diff --git a/libgcc/config/libgcc-glibc.ver b/libgcc/config/libgcc-glibc.ver new file mode 100644 index 00000000000..7824ad5a268 --- /dev/null +++ b/libgcc/config/libgcc-glibc.ver @@ -0,0 +1,55 @@ +# Copyright (C) 2000, 2008 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. + +%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 +} diff --git a/libgcc/config/libgcc-libsystem.ver b/libgcc/config/libgcc-libsystem.ver new file mode 100644 index 00000000000..47631749dc2 --- /dev/null +++ b/libgcc/config/libgcc-libsystem.ver @@ -0,0 +1 @@ +_darwin10_Unwind_FindEnclosingFunction diff --git a/libgcc/config/m32r/libgcc-glibc.ver b/libgcc/config/m32r/libgcc-glibc.ver new file mode 100644 index 00000000000..0e1304b2a3a --- /dev/null +++ b/libgcc/config/m32r/libgcc-glibc.ver @@ -0,0 +1,48 @@ +# Copyright (C) 2004, 2008 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. + +# Note that we cannot use the default libgcc-glibc.ver file on sh, +# because GLIBC_2.0 does not exist on this architecture, as the first +# ever glibc release on the platform was GLIBC_2.3. + +%exclude { + __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.3 +GLIBC_2.3 { + __register_frame + __register_frame_table + __deregister_frame + __register_frame_info + __deregister_frame_info + __frame_state_for + __register_frame_info_table +} diff --git a/libgcc/config/m32r/t-linux b/libgcc/config/m32r/t-linux new file mode 100644 index 00000000000..29c83c57e44 --- /dev/null +++ b/libgcc/config/m32r/t-linux @@ -0,0 +1 @@ +SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/m32r/libgcc-glibc.ver diff --git a/libgcc/config/m68k/t-slibgcc-elf-ver b/libgcc/config/m68k/t-slibgcc-elf-ver new file mode 100644 index 00000000000..6aac37cc08f --- /dev/null +++ b/libgcc/config/m68k/t-slibgcc-elf-ver @@ -0,0 +1,3 @@ +# Bump the version number of the shared libgcc library + +SHLIB_SOVERSION = 2 diff --git a/libgcc/config/mips/libgcc-mips16.ver b/libgcc/config/mips/libgcc-mips16.ver new file mode 100644 index 00000000000..ddb23e7e750 --- /dev/null +++ b/libgcc/config/mips/libgcc-mips16.ver @@ -0,0 +1,86 @@ +# Copyright (C) 2008 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_4.4.0 { + __mips16_addsf3 + __mips16_subsf3 + __mips16_mulsf3 + __mips16_divsf3 + __mips16_eqsf2 + __mips16_nesf2 + __mips16_gtsf2 + __mips16_gesf2 + __mips16_lesf2 + __mips16_ltsf2 + __mips16_floatsisf + __mips16_floatunsisf + __mips16_fix_truncsfsi + __mips16_adddf3 + __mips16_subdf3 + __mips16_muldf3 + __mips16_divdf3 + __mips16_extendsfdf2 + __mips16_truncdfsf2 + __mips16_eqdf2 + __mips16_nedf2 + __mips16_gtdf2 + __mips16_gedf2 + __mips16_ledf2 + __mips16_ltdf2 + __mips16_floatsidf + __mips16_floatunsidf + __mips16_fix_truncdfsi + __mips16_ret_sf + __mips16_ret_sc + __mips16_ret_df + __mips16_ret_dc + __mips16_call_stub_1 + __mips16_call_stub_5 + __mips16_call_stub_2 + __mips16_call_stub_6 + __mips16_call_stub_9 + __mips16_call_stub_10 + __mips16_call_stub_sf_0 + __mips16_call_stub_sf_1 + __mips16_call_stub_sf_5 + __mips16_call_stub_sf_2 + __mips16_call_stub_sf_6 + __mips16_call_stub_sf_9 + __mips16_call_stub_sf_10 + __mips16_call_stub_sc_0 + __mips16_call_stub_sc_1 + __mips16_call_stub_sc_5 + __mips16_call_stub_sc_2 + __mips16_call_stub_sc_6 + __mips16_call_stub_sc_9 + __mips16_call_stub_sc_10 + __mips16_call_stub_df_0 + __mips16_call_stub_df_1 + __mips16_call_stub_df_5 + __mips16_call_stub_df_2 + __mips16_call_stub_df_6 + __mips16_call_stub_df_9 + __mips16_call_stub_df_10 + __mips16_call_stub_dc_0 + __mips16_call_stub_dc_1 + __mips16_call_stub_dc_5 + __mips16_call_stub_dc_2 + __mips16_call_stub_dc_6 + __mips16_call_stub_dc_9 + __mips16_call_stub_dc_10 +} diff --git a/libgcc/config/mips/t-mips16 b/libgcc/config/mips/t-mips16 index 94fa0e94275..46c7472f5f6 100644 --- a/libgcc/config/mips/t-mips16 +++ b/libgcc/config/mips/t-mips16 @@ -1,2 +1,5 @@ SYNC = yes SYNC_CFLAGS = -mno-mips16 + +# Version these symbols if building libgcc.so. +SHLIB_MAPFILES += $(srcdir)/config/mips/libgcc-mips16.ver diff --git a/libgcc/config/mips/t-slibgcc-irix b/libgcc/config/mips/t-slibgcc-irix index 6e0ac365437..47b2e0eec21 100644 --- a/libgcc/config/mips/t-slibgcc-irix +++ b/libgcc/config/mips/t-slibgcc-irix @@ -3,5 +3,5 @@ SHLIB_LDFLAGS = -Wl,-soname,$(SHLIB_SONAME) \ -Wl,-exports_file,$(SHLIB_MAP) -SHLIB_MKMAP = $(gcc_srcdir)/mkmap-flat.awk +SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk SHLIB_MAPFILES = libgcc-std.ver diff --git a/libgcc/config/pa/t-slibgcc-dwarf-ver b/libgcc/config/pa/t-slibgcc-dwarf-ver new file mode 100644 index 00000000000..fa4688d6994 --- /dev/null +++ b/libgcc/config/pa/t-slibgcc-dwarf-ver @@ -0,0 +1,3 @@ +# Set the version number of the shared libgcc library (DWARF2 EH). + +SHLIB_SOVERSION = 4 diff --git a/libgcc/config/pa/t-slibgcc-hpux b/libgcc/config/pa/t-slibgcc-hpux new file mode 100644 index 00000000000..d7ed64a8652 --- /dev/null +++ b/libgcc/config/pa/t-slibgcc-hpux @@ -0,0 +1,25 @@ +# Copyright (C) 2001, 2003, 2004, 2005, 2006, 2011 +# 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/>. + +# Build a shared libgcc library with the HP-UX linker on PA. + +SHLIB_EXT = .sl +SHLIB_SOLINK = @shlib_base_name@$(SHLIB_EXT) +SHLIB_SONAME = @shlib_base_name@.$(SHLIB_SOVERSION) +SHLIB_LC = diff --git a/libgcc/config/pa/t-slibgcc-sjlj-ver b/libgcc/config/pa/t-slibgcc-sjlj-ver new file mode 100644 index 00000000000..00140cf204f --- /dev/null +++ b/libgcc/config/pa/t-slibgcc-sjlj-ver @@ -0,0 +1,3 @@ +# Set the version number of the shared libgcc library (SJLJ EH). + +SHLIB_SOVERSION = 3 diff --git a/libgcc/config/rs6000/libgcc-darwin.10.4.ver b/libgcc/config/rs6000/libgcc-darwin.10.4.ver new file mode 100644 index 00000000000..0c6f7c23156 --- /dev/null +++ b/libgcc/config/rs6000/libgcc-darwin.10.4.ver @@ -0,0 +1,93 @@ +# Copyright (C) 2005 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/>. +__Unwind_Backtrace +__Unwind_DeleteException +__Unwind_FindEnclosingFunction +__Unwind_Find_FDE +__Unwind_ForcedUnwind +__Unwind_GetCFA +__Unwind_GetDataRelBase +__Unwind_GetGR +__Unwind_GetIP +__Unwind_GetLanguageSpecificData +__Unwind_GetRegionStart +__Unwind_GetTextRelBase +__Unwind_RaiseException +__Unwind_Resume +__Unwind_Resume_or_Rethrow +__Unwind_SetGR +__Unwind_SetIP +___absvdi2 +___absvsi2 +___addvdi3 +___addvsi3 +___ashldi3 +___ashrdi3 +___clear_cache +___clzdi2 +___clzsi2 +___cmpdi2 +___ctzdi2 +___ctzsi2 +___deregister_frame +___deregister_frame_info +___deregister_frame_info_bases +___divdi3 +___enable_execute_stack +___ffsdi2 +___fixdfdi +___fixsfdi +___fixtfdi +___fixunsdfdi +___fixunsdfsi +___fixunssfdi +___fixunssfsi +___fixunstfdi +___floatdidf +___floatdisf +___floatditf +___gcc_personality_v0 +___gcc_qadd +___gcc_qdiv +___gcc_qmul +___gcc_qsub +___lshrdi3 +___moddi3 +___muldi3 +___mulvdi3 +___mulvsi3 +___negdi2 +___negvdi2 +___negvsi2 +___paritydi2 +___paritysi2 +___popcountdi2 +___popcountsi2 +___register_frame +___register_frame_info +___register_frame_info_bases +___register_frame_info_table +___register_frame_info_table_bases +___register_frame_table +___subvdi3 +___subvsi3 +___trampoline_setup +___ucmpdi2 +___udivdi3 +___udivmoddi4 +___umoddi3 diff --git a/libgcc/config/rs6000/libgcc-darwin.10.5.ver b/libgcc/config/rs6000/libgcc-darwin.10.5.ver new file mode 100644 index 00000000000..c2f08924fd7 --- /dev/null +++ b/libgcc/config/rs6000/libgcc-darwin.10.5.ver @@ -0,0 +1,106 @@ +# Copyright (C) 2005, 2006 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/>. +__Unwind_Backtrace +__Unwind_DeleteException +__Unwind_FindEnclosingFunction +__Unwind_Find_FDE +__Unwind_ForcedUnwind +__Unwind_GetCFA +__Unwind_GetDataRelBase +__Unwind_GetGR +__Unwind_GetIP +__Unwind_GetIPInfo +__Unwind_GetLanguageSpecificData +__Unwind_GetRegionStart +__Unwind_GetTextRelBase +__Unwind_RaiseException +__Unwind_Resume +__Unwind_Resume_or_Rethrow +__Unwind_SetGR +__Unwind_SetIP +___absvdi2 +___absvsi2 +___addvdi3 +___addvsi3 +___ashldi3 +___ashrdi3 +___clear_cache +___clzdi2 +___clzsi2 +___cmpdi2 +___ctzdi2 +___ctzsi2 +___deregister_frame +___deregister_frame_info +___deregister_frame_info_bases +___divdc3 +___divdi3 +___divsc3 +___divtc3 +___enable_execute_stack +___ffsdi2 +___fixdfdi +___fixsfdi +___fixtfdi +___fixunsdfdi +___fixunsdfsi +___fixunssfdi +___fixunssfsi +___fixunstfdi +___floatdidf +___floatdisf +___floatditf +___floatundidf +___floatundisf +___floatunditf +___gcc_personality_v0 +___gcc_qadd +___gcc_qdiv +___gcc_qmul +___gcc_qsub +___lshrdi3 +___moddi3 +___muldc3 +___muldi3 +___mulsc3 +___multc3 +___mulvdi3 +___mulvsi3 +___negdi2 +___negvdi2 +___negvsi2 +___paritydi2 +___paritysi2 +___popcountdi2 +___popcountsi2 +___powidf2 +___powisf2 +___powitf2 +___register_frame +___register_frame_info +___register_frame_info_bases +___register_frame_info_table +___register_frame_info_table_bases +___register_frame_table +___subvdi3 +___subvsi3 +___trampoline_setup +___ucmpdi2 +___udivdi3 +___udivmoddi4 +___umoddi3 diff --git a/libgcc/config/rs6000/libgcc-ppc-glibc.ver b/libgcc/config/rs6000/libgcc-glibc.ver index 8862c14cb3d..8862c14cb3d 100644 --- a/libgcc/config/rs6000/libgcc-ppc-glibc.ver +++ b/libgcc/config/rs6000/libgcc-glibc.ver diff --git a/libgcc/config/rs6000/libgcc-ppc64.ver b/libgcc/config/rs6000/libgcc-ibm-ldouble.ver index b27b4b49249..b27b4b49249 100644 --- a/libgcc/config/rs6000/libgcc-ppc64.ver +++ b/libgcc/config/rs6000/libgcc-ibm-ldouble.ver diff --git a/libgcc/config/rs6000/t-darwin b/libgcc/config/rs6000/t-darwin index 4464fd7d6e6..deec5e3a470 100644 --- a/libgcc/config/rs6000/t-darwin +++ b/libgcc/config/rs6000/t-darwin @@ -6,5 +6,3 @@ crt2.o: $(srcdir)/config/rs6000/darwin-crt2.c LIB2ADD += $(srcdir)/config/rs6000/ppc64-fp.c LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c - -SHLIB_VERPFX = $(gcc_srcdir)/config/rs6000/darwin-libgcc diff --git a/libgcc/config/rs6000/t-ibm-ldouble b/libgcc/config/rs6000/t-ibm-ldouble index 3f7a2d847e2..b13278498ec 100644 --- a/libgcc/config/rs6000/t-ibm-ldouble +++ b/libgcc/config/rs6000/t-ibm-ldouble @@ -3,4 +3,4 @@ LIB2ADD += $(srcdir)/config/rs6000/ibm-ldouble.c HOST_LIBGCC2_CFLAGS += -mlong-double-128 -SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc64.ver +SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ibm-ldouble.ver diff --git a/libgcc/config/rs6000/t-ldbl128 b/libgcc/config/rs6000/t-ldbl128 deleted file mode 100644 index ecc3581b1a0..00000000000 --- a/libgcc/config/rs6000/t-ldbl128 +++ /dev/null @@ -1,3 +0,0 @@ -SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc-glibc.ver - -HOST_LIBGCC2_CFLAGS += -mlong-double-128 diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux new file mode 100644 index 00000000000..dcf7ffc255e --- /dev/null +++ b/libgcc/config/rs6000/t-linux @@ -0,0 +1,3 @@ +SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver + +HOST_LIBGCC2_CFLAGS += -mlong-double-128 diff --git a/libgcc/config/rs6000/t-slibgcc-aix b/libgcc/config/rs6000/t-slibgcc-aix new file mode 100644 index 00000000000..a0fdd133926 --- /dev/null +++ b/libgcc/config/rs6000/t-slibgcc-aix @@ -0,0 +1,44 @@ +# Copyright (C) 2002, 2003, 2004, 2005, 2006, +# 2008, 2011 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/>. + +# Build a shared libgcc library. +SHLIB_EXT = .a +SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ + -Wl,-bE:@shlib_map_file@ -o @multilib_dir@/shr.o \ + @multilib_flags@ @shlib_objs@ -lc \ + `case @multilib_dir@ in \ + *pthread*) echo -L$(TARGET_SYSTEM_ROOT)/usr/lib/threads -lpthreads -lc_r $(TARGET_SYSTEM_ROOT)/usr/lib/libc.a ;; \ + *) echo -lc ;; esac` ; \ + rm -f @multilib_dir@/tmp-@shlib_base_name@.a ; \ + $(AR_CREATE_FOR_TARGET) @multilib_dir@/tmp-@shlib_base_name@.a \ + @multilib_dir@/shr.o ; \ + mv @multilib_dir@/tmp-@shlib_base_name@.a \ + @multilib_dir@/@shlib_base_name@.a ; \ + rm -f @multilib_dir@/shr.o +SHLIB_INSTALL = \ + $(mkinstalldirs) $(DESTDIR)$(slibdir)@shlib_slibdir_qual@; \ + $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.a \ + $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/ +SHLIB_LIBS = -lc `case @multilib_dir@ in *pthread*) echo -lpthread ;; esac` +SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk +SHLIB_MAPFILES = libgcc-std.ver +SHLIB_NM_FLAGS = -Bpg -X32_64 + +# Either 32-bit and 64-bit objects in archives. +AR_FLAGS_FOR_TARGET = -X32_64 diff --git a/libgcc/config/sh/libgcc-excl.ver b/libgcc/config/sh/libgcc-excl.ver new file mode 100644 index 00000000000..325c74054ec --- /dev/null +++ b/libgcc/config/sh/libgcc-excl.ver @@ -0,0 +1,8 @@ +# Exclude various symbols which should not be visible in libgcc.so for SH. +%exclude { + __ashlsi3 + __ashrsi3 + __lshrsi3 + __mulsi3 # this is an SH1-only symbol. + __udivsi3 +} diff --git a/libgcc/config/sh/libgcc-glibc.ver b/libgcc/config/sh/libgcc-glibc.ver new file mode 100644 index 00000000000..b8ec3265310 --- /dev/null +++ b/libgcc/config/sh/libgcc-glibc.ver @@ -0,0 +1,48 @@ +# Copyright (C) 2002, 2008 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. + +# Note that we cannot use the default libgcc-glibc.ver file on sh, +# because GLIBC_2.0 does not exist on this architecture, as the first +# ever glibc release on the platform was GLIBC_2.2. + +%exclude { + __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.2 +GLIBC_2.2 { + __register_frame + __register_frame_table + __deregister_frame + __register_frame_info + __deregister_frame_info + __frame_state_for + __register_frame_info_table +} diff --git a/libgcc/config/sh/t-linux b/libgcc/config/sh/t-linux index a98fb18e8d1..af618e260c6 100644 --- a/libgcc/config/sh/t-linux +++ b/libgcc/config/sh/t-linux @@ -6,32 +6,5 @@ HOST_LIBGCC2_CFLAGS = -fpic -mieee -DNO_FPSCR_VALUES # the list from scratch. SHLIB_MAPFILES = \ libgcc-std.ver \ - $(gcc_srcdir)/config/sh/libgcc-excl.ver \ - $(gcc_srcdir)/config/sh/libgcc-glibc.ver - -# Override SHLIB_LINK and SHLIB_INSTALL to use linker script -# libgcc_s.so. -SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ - -Wl,--soname=@shlib_base_name@.so.1 \ - -Wl,--version-script=@shlib_map_file@ \ - -o @multilib_dir@/@shlib_base_name@.so.1.tmp @multilib_flags@ \ - @shlib_objs@ -lc && \ - rm -f @multilib_dir@/@shlib_base_name@.so && \ - if [ -f @multilib_dir@/@shlib_base_name@.so.1 ]; then \ - mv -f @multilib_dir@/@shlib_base_name@.so.1 \ - @multilib_dir@/@shlib_base_name@.so.1.backup; \ - else true; fi && \ - mv @multilib_dir@/@shlib_base_name@.so.1.tmp \ - @multilib_dir@/@shlib_base_name@.so.1 && \ - (echo "/* GNU ld script"; \ - echo " Use the shared library, but some functions are only in"; \ - echo " the static library. */"; \ - echo "GROUP ( @shlib_base_name@.so.1 libgcc.a )" \ - ) > @multilib_dir@/@shlib_base_name@.so -SHLIB_INSTALL = \ - $(mkinstalldirs) $(DESTDIR)$(slibdir)@shlib_slibdir_qual@; \ - $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.so.1 \ - $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so.1; \ - rm -f $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so; \ - $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.so \ - $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so + $(srcdir)/config/sh/libgcc-excl.ver \ + $(srcdir)/config/sh/libgcc-glibc.ver diff --git a/libgcc/config/sparc/libgcc-glibc.ver b/libgcc/config/sparc/libgcc-glibc.ver new file mode 100644 index 00000000000..91138d3795e --- /dev/null +++ b/libgcc/config/sparc/libgcc-glibc.ver @@ -0,0 +1,93 @@ +# Copyright (C) 2002, 2006, 2008 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. + +%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 +} + +%ifdef __arch64__ +%define GLIBC_VER GLIBC_2.2 +%else +%define GLIBC_VER GLIBC_2.0 +%endif +%inherit GCC_3.0 GLIBC_VER +GLIBC_VER { + # 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 +} + +%if !defined (__arch64__) && defined (__LONG_DOUBLE_128__) + +# long double 128 bit support from 32-bit libgcc_s.so.1 is only available +# when configured with --with-long-double-128. Make sure all the +# symbols are available at @@GCC_LDBL_* versions to make it clear +# there is a configurable symbol set. + +%exclude { + __fixtfdi + __fixunstfdi + __floatditf + + __divtc3 + __multc3 + __powitf2 +} + +%inherit GCC_LDBL_3.0 GCC_3.0 +GCC_LDBL_3.0 { + __fixtfdi + __fixunstfdi + __floatditf +} + +%inherit GCC_LDBL_4.0.0 GCC_4.0.0 +GCC_LDBL_4.0.0 { + __divtc3 + __multc3 + __powitf2 +} + +%endif diff --git a/libgcc/config/sparc/t-linux b/libgcc/config/sparc/t-linux new file mode 100644 index 00000000000..474f1755ea3 --- /dev/null +++ b/libgcc/config/sparc/t-linux @@ -0,0 +1,4 @@ +# Override t-slibgcc-elf-ver to export some libgcc symbols with +# the symbol versions that glibc used. +# Avoid the t-linux version file. +SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/sparc/libgcc-glibc.ver diff --git a/libgcc/config/t-libunwind b/libgcc/config/t-libunwind index 1c7a898675f..135cbe1e82f 100644 --- a/libgcc/config/t-libunwind +++ b/libgcc/config/t-libunwind @@ -1,3 +1,10 @@ +# Use the system libunwind library. + LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c + +# Override the default value from t-slibgcc-elf-ver and mention -lunwind +# so that the resulting libgcc_s.so has the necessary DT_NEEDED entry for +# libunwind. +SHLIB_LC = -lunwind -lc diff --git a/libgcc/config/t-linux b/libgcc/config/t-linux new file mode 100644 index 00000000000..d1bdac4f32d --- /dev/null +++ b/libgcc/config/t-linux @@ -0,0 +1,3 @@ +# Override t-slibgcc-elf-ver to export some libgcc symbols with +# the symbol versions that glibc used. +SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc index 0b5cc4bfc50..3727244c424 100644 --- a/libgcc/config/t-slibgcc +++ b/libgcc/config/t-slibgcc @@ -43,9 +43,12 @@ SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ else true; fi && \ mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \ $(SHLIB_MAKE_SOLINK) + +INSTALL_SHLIB = $(INSTALL_DATA) + SHLIB_INSTALL = \ $(mkinstalldirs) $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL); \ - $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \ + $(INSTALL_SHLIB) $(SHLIB_DIR)/$(SHLIB_SONAME) \ $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \ rm -f $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \ $(SHLIB_INSTALL_SOLINK) diff --git a/libgcc/config/t-slibgcc-darwin b/libgcc/config/t-slibgcc-darwin index bb6569a87d9..9970d003436 100644 --- a/libgcc/config/t-slibgcc-darwin +++ b/libgcc/config/t-slibgcc-darwin @@ -22,9 +22,10 @@ SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -dynamiclib -nodefaultlibs \ $(SHLIB_VERSTRING) \ @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) -SHLIB_MKMAP = $(gcc_srcdir)/mkmap-flat.awk +SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk SHLIB_MKMAP_OPTS = -v leading_underscore=1 -SHLIB_MAPFILES += libgcc-std.ver $(gcc_srcdir)/libgcc-libsystem.ver +SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/libgcc-libsystem.ver +SHLIB_VERPFX = $(srcdir)/config/$(cpu_type)/libgcc-darwin # we're only going to build the stubs if the target slib is /usr/lib # there is no other case in which they're useful in a live system. diff --git a/libgcc/config/t-slibgcc-elf-ver b/libgcc/config/t-slibgcc-elf-ver index 2616d31cae5..4a00edc9663 100644 --- a/libgcc/config/t-slibgcc-elf-ver +++ b/libgcc/config/t-slibgcc-elf-ver @@ -1,4 +1,4 @@ # Build a shared libgcc library for ELF with symbol versioning. -SHLIB_MKMAP = $(gcc_srcdir)/mkmap-symver.awk +SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk SHLIB_MAPFILES = libgcc-std.ver diff --git a/libgcc/config/t-slibgcc-gld-nover b/libgcc/config/t-slibgcc-gld-nover new file mode 100644 index 00000000000..e9b78ea9410 --- /dev/null +++ b/libgcc/config/t-slibgcc-gld-nover @@ -0,0 +1,3 @@ +# Build a shared libgcc library for ELF with the GNU linker. + +SHLIB_LDFLAGS = -Wl,--soname=$(SHLIB_SONAME) diff --git a/libgcc/config/t-slibgcc-hpux b/libgcc/config/t-slibgcc-hpux new file mode 100644 index 00000000000..866457fe9ae --- /dev/null +++ b/libgcc/config/t-slibgcc-hpux @@ -0,0 +1,7 @@ +# Build a shared libgcc library with the HP-UX linker. + +SHLIB_LDFLAGS = -Wl,+h,$(SHLIB_SONAME) + +INSTALL_SHLIB = $(INSTALL_DATA) -m 555 + +SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk diff --git a/libgcc/config/t-slibgcc-libgcc b/libgcc/config/t-slibgcc-libgcc new file mode 100644 index 00000000000..ec36b2727ae --- /dev/null +++ b/libgcc/config/t-slibgcc-libgcc @@ -0,0 +1,32 @@ +# Copyright (C) 2009, 2011 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/>. + +# Instead of creating $(SHLIB_SOLINK) symlink create a GNU ld +# linker script which sources in both $(SHLIB_SONAME) and libgcc.a. +# This is needed on targets where libgcc.a contains routines that aren't in +# $(SHLIB_SONAME) and are needed for shared libraries. + +SHLIB_MAKE_SOLINK = \ + (echo "/* GNU ld script"; \ + echo " Use the shared library, but some functions are only in"; \ + echo " the static library. */"; \ + echo "GROUP ( $(SHLIB_SONAME) libgcc.a )" \ + ) > $(SHLIB_DIR)/$(SHLIB_SOLINK) +SHLIB_INSTALL_SOLINK = \ + $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SOLINK) \ + $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) diff --git a/libgcc/config/t-slibgcc-nolc-override b/libgcc/config/t-slibgcc-nolc-override new file mode 100644 index 00000000000..959d2cc2a1f --- /dev/null +++ b/libgcc/config/t-slibgcc-nolc-override @@ -0,0 +1 @@ +SHLIB_LC = diff --git a/libgcc/config/t-slibgcc-vms b/libgcc/config/t-slibgcc-vms new file mode 100644 index 00000000000..d01c34341c8 --- /dev/null +++ b/libgcc/config/t-slibgcc-vms @@ -0,0 +1,28 @@ +shlib_version:=$(shell $(CC) --version 2>&1 | \ + sed -n 's/^.*(GCC).* \([0-9]*\.[0-9.]*\).*$/\1/p' | \ + sed -e 's/\./,/' -e 's/\.//g') +SHLIB_EXT = .exe +SHLIB_OBJS = @shlib_objs@ +SHLIB_NAME = @shlib_base_name@.exe +SHLIB_MULTILIB = +SHLIB_INSTALL = $(INSTALL_DATA) $(SHLIB_NAME) $(DESTDIR)$(libsubdir)/$(SHLIB_NAME) +SHLIB_SYMVEC = \ + grep -F -e "\$$BSS\$$" -e "\$$DATA\$$" -e " sdata " -e " data.rel " -e " data.rel.ro " -e " sbss " \ + -e "\$$LINK\$$" -e "\$$READONLY\$$" | \ + sed -e "s/.*\$$LINK\$$ \(.*\)/SYMBOL_VECTOR=(\1=PROCEDURE)/" \ + -e "s/.*\$$DATA\$$ \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \ + -e "s/.* sbss \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \ + -e "s/.* sdata \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \ + -e "s/.* data.rel \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \ + -e "s/.* data.rel.ro \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \ + -e "s/.*\$$BSS\$$ \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \ + -e "s/.*\$$READONLY\$$ \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" +SHLIB_LINK = \ + echo "case_sensitive=yes" > SYMVEC_$$$$.opt; \ + objdump --syms $(SHLIB_OBJS) | \ + $(SHLIB_SYMVEC) >> SYMVEC_$$$$.opt ; \ + echo "case_sensitive=NO" >> SYMVEC_$$$$.opt; \ + $(CC) $(LIBGCC2_CFLAGS) -nodefaultlibs \ + -shared --for-linker=/noinform -o $(SHLIB_NAME) $(SHLIB_OBJS) \ + --for-linker=SYMVEC_$$$$.opt \ + --for-linker=gsmatch=equal,$(shlib_version) diff --git a/libgcc/config/xtensa/libgcc-glibc.ver b/libgcc/config/xtensa/libgcc-glibc.ver new file mode 100644 index 00000000000..43e7d4fc7c7 --- /dev/null +++ b/libgcc/config/xtensa/libgcc-glibc.ver @@ -0,0 +1,3 @@ +GCC_4.3.0 { + __umulsidi3 +} diff --git a/libgcc/config/xtensa/t-linux b/libgcc/config/xtensa/t-linux new file mode 100644 index 00000000000..6f4ae893486 --- /dev/null +++ b/libgcc/config/xtensa/t-linux @@ -0,0 +1 @@ +SHLIB_MAPFILES += $(srcdir)/config/xtensa/libgcc-glibc.ver |