diff mbox

Prefixes for libgcc symbols (C6X 9.5/11)

Message ID 4DCD57E7.9020909@codesourcery.com
State New
Headers show

Commit Message

Bernd Schmidt May 13, 2011, 4:10 p.m. UTC
On 05/13/2011 04:26 PM, Joseph S. Myers wrote:
> On Fri, 13 May 2011, Bernd Schmidt wrote:
> 
>> The following patch adds a target hook and a corresponding LIBGCC2_
>> macro which control the generation of library function names. It also
>> makes libgcc-std.ver a generated file, built from libgcc-std.ver.in by
>> replacing some placeholders with the correct prefixes. While I was
>> there, I also added functionality to generate a version of this file
>> with an extra underscore for the Blackfin port.
> 
> But the linker was changed to use C symbol names in linker scripts and I 
> was told that this script in GCC would be removed in consequence.
> 
> http://sourceware.org/ml/binutils/2010-12/msg00375.html

Oh well. Dropped.

> Any new target macro for use only in target libraries should, in my view, 
> be poisoned in the host system.h from the start to ensure that no-one 
> accidentally adds definitions to the host tm.h.  This would be alongside 
> the existing
> 
> /* Target macros only used for code built for the target, that have
>    moved to libgcc-tm.h.  */
>  #pragma GCC poison DECLARE_LIBRARY_RENAMES

Done. New patch below, now testing.


Bernd
gcc/
	* libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
	LIBGCC2_GNU_PREFIX is defined.
	(__N): New macro.
	(__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
	__mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
	__divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
	__clz_tab): Define using __N.
	(__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
	COMPAT_SIMODE_TRAPPING_ARITHMETIC.
	* target.def (libfunc_gnu_prefix): New hook.
	* doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
	(TARGET_LIBFUNC_GNU_PREFIX): Add hook.
	* doc/tm.texi: Regenerate.
	* system.h (LIBGCC2_GNU_PREFIX): Poison.
	* optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
	account.
	(gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
	(init_optabs): Likewise for the bswap libfuncs.
	* tree.c (build_common_builtin_nodes): Likewise for complex multiply
	and divide.
	* config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
	* config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
	* libgcc-std.ver: Remove.
	* Makefile.in (srcdirify): Handle $$(libgcc_objdir).
	* config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
	libgcc-std.ver.
	* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
	* config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
	* config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
	* config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
	* config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
	* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
	* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
	* config/fixed-bit.h (FIXED_OP): Define differently depending on
	LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
	(FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.

	libgcc/
	* libgcc-std.ver.in: New file.
	* Makefile.in (LIBGCC_VER_GNU_PREFIX, LIBGCC_VER_SYMBOLS_PREFIX): New
	variables.
	(libgcc-std.ver): New rule.
	* config/t-gnu-prefix: New file.

Comments

H.J. Lu May 25, 2011, 1:37 p.m. UTC | #1
On Fri, May 13, 2011 at 9:10 AM, Bernd Schmidt <bernds@codesourcery.com> wrote:
> On 05/13/2011 04:26 PM, Joseph S. Myers wrote:
>> On Fri, 13 May 2011, Bernd Schmidt wrote:
>>
>>> The following patch adds a target hook and a corresponding LIBGCC2_
>>> macro which control the generation of library function names. It also
>>> makes libgcc-std.ver a generated file, built from libgcc-std.ver.in by
>>> replacing some placeholders with the correct prefixes. While I was
>>> there, I also added functionality to generate a version of this file
>>> with an extra underscore for the Blackfin port.
>>
>> But the linker was changed to use C symbol names in linker scripts and I
>> was told that this script in GCC would be removed in consequence.
>>
>> http://sourceware.org/ml/binutils/2010-12/msg00375.html
>
> Oh well. Dropped.
>
>> Any new target macro for use only in target libraries should, in my view,
>> be poisoned in the host system.h from the start to ensure that no-one
>> accidentally adds definitions to the host tm.h.  This would be alongside
>> the existing
>>
>> /* Target macros only used for code built for the target, that have
>>    moved to libgcc-tm.h.  */
>>  #pragma GCC poison DECLARE_LIBRARY_RENAMES
>
> Done. New patch below, now testing.
>
>

I think it may have caused:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49160
Bernd Schmidt May 25, 2011, 1:42 p.m. UTC | #2
On 05/25/2011 01:37 PM, H.J. Lu wrote:

> I think it may have caused:
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49160

Looks like it. Not quite sure how to fix it yet. Do you know what files
such as i386/64/_divtc3.c are trying to achieve?


Bernd
H.J. Lu May 25, 2011, 1:45 p.m. UTC | #3
On Wed, May 25, 2011 at 6:42 AM, Bernd Schmidt <bernds@codesourcery.com> wrote:
> On 05/25/2011 01:37 PM, H.J. Lu wrote:
>
>> I think it may have caused:
>>
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49160
>
> Looks like it. Not quite sure how to fix it yet. Do you know what files
> such as i386/64/_divtc3.c are trying to achieve?
>

It provides backward compatibility with symbol versioning:

[hjl@gnu-4 64]$ readelf -s /lib64/libgcc_s.so.1| grep __powitf2
    52: 0000003e8a80d170   167 FUNC    GLOBAL DEFAULT   12 __powitf2@@GCC_4.3.0
    54: 0000003e8a80d170   167 FUNC    GLOBAL DEFAULT   12 __powitf2@GCC_4.0.0
[hjl@gnu-4 64]$
diff mbox

Patch

Index: trunk/gcc/libgcc2.h
===================================================================
--- trunk.orig/gcc/libgcc2.h
+++ trunk/gcc/libgcc2.h
@@ -193,8 +193,13 @@  typedef int shift_count_type __attribute
 #define UHWtype	UDItype
 #define DWtype	TItype
 #define UDWtype	UTItype
+#ifdef LIBGCC2_GNU_PREFIX
+#define __NW(a,b)	__gnu_ ## a ## di ## b
+#define __NDW(a,b)	__gnu_ ## a ## ti ## b
+#else
 #define __NW(a,b)	__ ## a ## di ## b
 #define __NDW(a,b)	__ ## a ## ti ## b
+#endif
 #define COMPAT_SIMODE_TRAPPING_ARITHMETIC
 #elif LIBGCC2_UNITS_PER_WORD == 4
 #define W_TYPE_SIZE (4 * BITS_PER_UNIT)
@@ -204,8 +209,13 @@  typedef int shift_count_type __attribute
 #define UHWtype	USItype
 #define DWtype	DItype
 #define UDWtype	UDItype
+#ifdef LIBGCC2_GNU_PREFIX
+#define __NW(a,b)	__gnu_ ## a ## si ## b
+#define __NDW(a,b)	__gnu_ ## a ## di ## b
+#else
 #define __NW(a,b)	__ ## a ## si ## b
 #define __NDW(a,b)	__ ## a ## di ## b
+#endif
 #elif LIBGCC2_UNITS_PER_WORD == 2
 #define W_TYPE_SIZE (2 * BITS_PER_UNIT)
 #define Wtype	HItype
@@ -214,8 +224,13 @@  typedef int shift_count_type __attribute
 #define UHWtype	UHItype
 #define DWtype	SItype
 #define UDWtype	USItype
+#ifdef LIBGCC2_GNU_PREFIX
+#define __NW(a,b)	__gnu_ ## a ## hi ## b
+#define __NDW(a,b)	__gnu_ ## a ## si ## b
+#else
 #define __NW(a,b)	__ ## a ## hi ## b
 #define __NDW(a,b)	__ ## a ## si ## b
+#endif
 #else
 #define W_TYPE_SIZE BITS_PER_UNIT
 #define Wtype	QItype
@@ -224,10 +239,20 @@  typedef int shift_count_type __attribute
 #define UHWtype	UQItype
 #define DWtype	HItype
 #define UDWtype	UHItype
+#ifdef LIBGCC2_GNU_PREFIX
+#define __NW(a,b)	__gnu_ ## a ## qi ## b
+#define __NDW(a,b)	__gnu_ ## a ## hi ## b
+#else
 #define __NW(a,b)	__ ## a ## qi ## b
 #define __NDW(a,b)	__ ## a ## hi ## b
 #endif
+#endif
 
+#ifdef LIBGCC2_GNU_PREFIX
+#define __N(a)	__gnu_ ## a
+#else
+#define __N(a)	__ ## a
+#endif
 #define Wtype_MAX ((Wtype)(((UWtype)1 << (W_TYPE_SIZE - 1)) - 1))
 #define Wtype_MIN (- Wtype_MAX - 1)
 
@@ -298,6 +323,25 @@  typedef int shift_count_type __attribute
 #define __popcountDI2	__NDW(popcount,2)
 #define __parityDI2	__NDW(parity,2)
 
+#define __clz_tab		__N(clz_tab)
+#define __powisf2		__N(powisf2)
+#define __powidf2		__N(powidf2)
+#define __powitf2		__N(powitf2)
+#define __powixf2		__N(powixf2)
+#define __bswapsi2		__N(bswapsi2)
+#define __bswapdi2		__N(bswapdi2)
+#define __mulsc3		__N(mulsc3)
+#define __muldc3		__N(muldc3)
+#define __mulxc3		__N(mulxc3)
+#define __multc3		__N(multc3)
+#define __divsc3		__N(divsc3)
+#define __divdc3		__N(divdc3)
+#define __divxc3		__N(divxc3)
+#define __divtc3		__N(divtc3)
+#define __udiv_w_sdiv		__N(udiv_w_sdiv)
+#define __clear_cache		__N(clear_cache)
+#define __enable_execute_stack	__N(enable_execute_stack)
+
 extern DWtype __muldi3 (DWtype, DWtype);
 extern DWtype __divdi3 (DWtype, DWtype);
 extern UDWtype __udivdi3 (UDWtype, UDWtype);
@@ -347,6 +391,12 @@  extern DWtype __mulvDI3 (DWtype, DWtype)
 extern DWtype __negvDI2 (DWtype);
 
 #ifdef COMPAT_SIMODE_TRAPPING_ARITHMETIC
+#define __absvsi2	__N(absvsi2)
+#define __negvsi2	__N(negvsi2)
+#define __addvsi3	__N(addvsi3)
+#define __subvsi3	__N(subvsi3)
+#define __mulvsi3	__N(mulvsi3)
+
 extern SItype __absvsi2 (SItype);
 extern SItype __addvsi3 (SItype, SItype);
 extern SItype __subvsi3 (SItype, SItype);
Index: trunk/gcc/target.def
===================================================================
--- trunk.orig/gcc/target.def
+++ trunk/gcc/target.def
@@ -1258,6 +1258,16 @@  DEFHOOK
  void, (void),
  hook_void_void)
 
+ /* Add a __gnu_ prefix to library functions rather than just __.  */
+DEFHOOKPOD
+(libfunc_gnu_prefix,
+ "This hook can be used to override the default prefix given to library\n\
+routines. Normally, this is just two underscores, @code{__}, but\n\
+it if changed to true, then for example a name like @code{__gnu_muldi3}\n\
+is used instead of the default @code{__muldi3}. This applies only to\n\
+functions defined in @file{libgcc2.c}.",
+  bool, false)
+
 /* Given a decl, a section name, and whether the decl initializer
    has relocs, choose attributes for the section.  */
 /* ??? Should be merged with SELECT_SECTION and UNIQUE_SECTION.  */
Index: trunk/gcc/doc/tm.texi
===================================================================
--- trunk.orig/gcc/doc/tm.texi
+++ trunk/gcc/doc/tm.texi
@@ -1588,6 +1588,15 @@  anyway.  If you don't define this and @c
 is 128 then the default is 1, otherwise it is 0.
 @end defmac
 
+@defmac LIBGCC2_GNU_PREFIX
+This macro corresponds to the @code{TARGET_LIBFUNC_GNU_PREFIX} target
+hook and should be defined if this hook is overriden to be true.  It
+causes function names in libgcc to be changed to use a @code{__gnu_}
+prefix for their name rather than the default @code{__}.  A port which
+uses this macro should also arrange to use @file{t-gnu-prefix} in
+the libgcc @file{config.host}.
+@end defmac
+
 @defmac SF_SIZE
 @defmacx DF_SIZE
 @defmacx XF_SIZE
@@ -5260,6 +5269,14 @@  library routines.
 The default is to do nothing.  Most ports don't need to define this hook.
 @end deftypefn
 
+@deftypevr {Target Hook} bool TARGET_LIBFUNC_GNU_PREFIX
+This hook can be used to override the default prefix given to library
+routines. Normally, this is just two underscores, @code{__}, but
+it if changed to true, then for example a name like @code{__gnu_muldi3}
+is used instead of the default @code{__muldi3}. This applies only to
+functions defined in @file{libgcc2.c}.
+@end deftypevr
+
 @defmac FLOAT_LIB_COMPARE_RETURNS_BOOL (@var{mode}, @var{comparison})
 This macro should return @code{true} if the library routine that
 implements the floating point comparison operator @var{comparison} in
Index: trunk/gcc/doc/tm.texi.in
===================================================================
--- trunk.orig/gcc/doc/tm.texi.in
+++ trunk/gcc/doc/tm.texi.in
@@ -1578,6 +1578,15 @@  anyway.  If you don't define this and @c
 is 128 then the default is 1, otherwise it is 0.
 @end defmac
 
+@defmac LIBGCC2_GNU_PREFIX
+This macro corresponds to the @code{TARGET_LIBFUNC_GNU_PREFIX} target
+hook and should be defined if this hook is overriden to be true.  It
+causes function names in libgcc to be changed to use a @code{__gnu_}
+prefix for their name rather than the default @code{__}.  A port which
+uses this macro should also arrange to use @file{t-gnu-prefix} in
+the libgcc @file{config.host}.
+@end defmac
+
 @defmac SF_SIZE
 @defmacx DF_SIZE
 @defmacx XF_SIZE
@@ -5208,6 +5217,8 @@  library routines.
 The default is to do nothing.  Most ports don't need to define this hook.
 @end deftypefn
 
+@hook TARGET_LIBFUNC_GNU_PREFIX
+
 @defmac FLOAT_LIB_COMPARE_RETURNS_BOOL (@var{mode}, @var{comparison})
 This macro should return @code{true} if the library routine that
 implements the floating point comparison operator @var{comparison} in
Index: trunk/gcc/optabs.c
===================================================================
--- trunk.orig/gcc/optabs.c
+++ trunk/gcc/optabs.c
@@ -5152,13 +5152,22 @@  gen_libfunc (optab optable, const char *
   unsigned opname_len = strlen (opname);
   const char *mname = GET_MODE_NAME (mode);
   unsigned mname_len = strlen (mname);
-  char *libfunc_name = XALLOCAVEC (char, 2 + opname_len + mname_len + 1 + 1);
+  int prefix_len = targetm.libfunc_gnu_prefix ? 6 : 2;
+  int len = prefix_len + opname_len + mname_len + 1 + 1;
+  char *libfunc_name = XALLOCAVEC (char, len);
   char *p;
   const char *q;
 
   p = libfunc_name;
   *p++ = '_';
   *p++ = '_';
+  if (targetm.libfunc_gnu_prefix)
+    {
+      *p++ = 'g';
+      *p++ = 'n';
+      *p++ = 'u';
+      *p++ = '_';
+    }
   for (q = opname; *q; )
     *p++ = *q++;
   for (q = mname; *q; q++)
@@ -5362,6 +5371,7 @@  gen_interclass_conv_libfunc (convert_opt
 
   const char *fname, *tname;
   const char *q;
+  int prefix_len = targetm.libfunc_gnu_prefix ? 6 : 2;
   char *libfunc_name, *suffix;
   char *nondec_name, *dec_name, *nondec_suffix, *dec_suffix;
   char *p;
@@ -5372,11 +5382,19 @@  gen_interclass_conv_libfunc (convert_opt
 
   mname_len = strlen (GET_MODE_NAME (tmode)) + strlen (GET_MODE_NAME (fmode));
 
-  nondec_name = XALLOCAVEC (char, 2 + opname_len + mname_len + 1 + 1);
+  nondec_name = XALLOCAVEC (char, prefix_len + opname_len + mname_len + 1 + 1);
   nondec_name[0] = '_';
   nondec_name[1] = '_';
-  memcpy (&nondec_name[2], opname, opname_len);
-  nondec_suffix = nondec_name + opname_len + 2;
+  if (targetm.libfunc_gnu_prefix)
+    {
+      nondec_name[2] = 'g';
+      nondec_name[3] = 'n';
+      nondec_name[4] = 'u';
+      nondec_name[5] = '_';
+    }
+
+  memcpy (&nondec_name[prefix_len], opname, opname_len);
+  nondec_suffix = nondec_name + opname_len + prefix_len;
 
   dec_name = XALLOCAVEC (char, 2 + dec_len + opname_len + mname_len + 1 + 1);
   dec_name[0] = '_';
@@ -5487,6 +5505,7 @@  gen_intraclass_conv_libfunc (convert_opt
 
   const char *fname, *tname;
   const char *q;
+  int prefix_len = targetm.libfunc_gnu_prefix ? 6 : 2;
   char *nondec_name, *dec_name, *nondec_suffix, *dec_suffix;
   char *libfunc_name, *suffix;
   char *p;
@@ -5500,8 +5519,15 @@  gen_intraclass_conv_libfunc (convert_opt
   nondec_name = XALLOCAVEC (char, 2 + opname_len + mname_len + 1 + 1);
   nondec_name[0] = '_';
   nondec_name[1] = '_';
-  memcpy (&nondec_name[2], opname, opname_len);
-  nondec_suffix = nondec_name + opname_len + 2;
+  if (targetm.libfunc_gnu_prefix)
+    {
+      nondec_name[2] = 'g';
+      nondec_name[3] = 'n';
+      nondec_name[4] = 'u';
+      nondec_name[5] = '_';
+    }
+  memcpy (&nondec_name[prefix_len], opname, opname_len);
+  nondec_suffix = nondec_name + opname_len + prefix_len;
 
   dec_name = XALLOCAVEC (char, 2 + dec_len + opname_len + mname_len + 1 + 1);
   dec_name[0] = '_';
@@ -6231,8 +6257,16 @@  init_optabs (void)
 
   /* Explicitly initialize the bswap libfuncs since we need them to be
      valid for things other than word_mode.  */
-  set_optab_libfunc (bswap_optab, SImode, "__bswapsi2");
-  set_optab_libfunc (bswap_optab, DImode, "__bswapdi2");
+  if (targetm.libfunc_gnu_prefix)
+    {
+      set_optab_libfunc (bswap_optab, SImode, "__gnu_bswapsi2");
+      set_optab_libfunc (bswap_optab, DImode, "__gnu_bswapdi2");
+    }
+  else
+    {
+      set_optab_libfunc (bswap_optab, SImode, "__bswapsi2");
+      set_optab_libfunc (bswap_optab, DImode, "__bswapdi2");
+    }
 
   /* Use cabs for double complex abs, since systems generally have cabs.
      Don't define any libcall for float complex, so that cabs will be used.  */
Index: trunk/gcc/config/t-slibgcc-elf-ver
===================================================================
--- trunk.orig/gcc/config/t-slibgcc-elf-ver
+++ trunk/gcc/config/t-slibgcc-elf-ver
@@ -53,4 +53,4 @@  SHLIB_INSTALL = \
 	rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
 	$(SHLIB_INSTALL_SOLINK)
 SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
+SHLIB_MAPFILES = $$(libgcc_objdir)/libgcc-std.ver
Index: trunk/gcc/config/t-slibgcc-sld
===================================================================
--- trunk.orig/gcc/config/t-slibgcc-sld
+++ trunk/gcc/config/t-slibgcc-sld
@@ -47,4 +47,4 @@  SHLIB_INSTALL = \
 	$(LN_S) $(SHLIB_SONAME) \
 	  $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
 SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
+SHLIB_MAPFILES = $(libgcc_objdir)/libgcc-std.ver
Index: trunk/gcc/libgcc-std.ver
===================================================================
--- trunk.orig/gcc/libgcc-std.ver
+++ /dev/null
@@ -1,1921 +0,0 @@ 
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-# 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/>.
-
-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 {
-}
-
-%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
-}
-
-%inherit GCC_4.6.0 GCC_4.5.0
-GCC_4.6.0 {
-  __morestack_segments
-  __morestack_current_segment
-  __morestack_initial_sp
-  __splitstack_find
-}
Index: trunk/libgcc/libgcc-std.ver.in
===================================================================
--- /dev/null
+++ trunk/libgcc/libgcc-std.ver.in
@@ -0,0 +1,1922 @@ 
+# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+# 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/>.
+
+GCC_3.0 {
+  # libgcc1 integer symbols
+  __PFX__absvsi2
+  __PFX__addvsi3
+  __PFX__ashlsi3
+  __PFX__ashrsi3
+  __PFX__divsi3
+  __PFX__lshrsi3
+  __PFX__modsi3
+  __PFX__mulsi3
+  __PFX__mulvsi3
+  __PFX__negvsi2
+  __PFX__subvsi3
+  __PFX__udivsi3
+  __PFX__umodsi3
+
+  # libgcc1 floating point symbols
+  __PFX__addsf3
+  __PFX__adddf3
+  __PFX__addxf3
+  __PFX__addtf3
+  __PFX__divsf3
+  __PFX__divdf3
+  __PFX__divxf3
+  __PFX__divtf3
+  __PFX__eqsf2
+  __PFX__eqdf2
+  __PFX__eqxf2
+  __PFX__eqtf2
+  __PFX__extenddfxf2
+  __PFX__extenddftf2
+  __PFX__extendsfdf2
+  __PFX__extendsfxf2
+  __PFX__extendsftf2
+  __PFX__fixsfsi
+  __PFX__fixdfsi
+  __PFX__fixxfsi
+  __PFX__fixtfsi
+  __PFX__floatsisf
+  __PFX__floatsidf
+  __PFX__floatsixf
+  __PFX__floatsitf
+  __PFX__gesf2
+  __PFX__gedf2
+  __PFX__gexf2
+  __PFX__getf2
+  __PFX__gtsf2
+  __PFX__gtdf2
+  __PFX__gtxf2
+  __PFX__gttf2
+  __PFX__lesf2
+  __PFX__ledf2
+  __PFX__lexf2
+  __PFX__letf2
+  __PFX__ltsf2
+  __PFX__ltdf2
+  __PFX__ltxf2
+  __PFX__lttf2
+  __PFX__mulsf3
+  __PFX__muldf3
+  __PFX__mulxf3
+  __PFX__multf3
+  __PFX__negsf2
+  __PFX__negdf2
+  __PFX__negxf2
+  __PFX__negtf2
+  __PFX__nesf2
+  __PFX__nedf2
+  __PFX__nexf2
+  __PFX__netf2
+  __PFX__subsf3
+  __PFX__subdf3
+  __PFX__subxf3
+  __PFX__subtf3
+  __PFX__truncdfsf2
+  __PFX__truncxfsf2
+  __PFX__trunctfsf2
+  __PFX__truncxfdf2
+  __PFX__trunctfdf2
+
+  # libgcc2 DImode arithmetic (for 32-bit targets).
+  __PFX__absvdi2
+  __PFX__addvdi3
+  __PFX__ashldi3
+  __PFX__ashrdi3
+  __PFX__cmpdi2
+  __PFX__divdi3
+  __PFX__ffsdi2
+  __PFX__fixdfdi
+  __PFX__fixsfdi
+  __PFX__fixtfdi
+  __PFX__fixxfdi
+  __PFX__fixunsdfdi
+  __PFX__fixunsdfsi
+  __PFX__fixunssfsi
+  __PFX__fixunssfdi
+  __PFX__fixunstfdi
+  __PFX__fixunstfsi
+  __PFX__fixunsxfdi
+  __PFX__fixunsxfsi
+  __PFX__floatdidf
+  __PFX__floatdisf
+  __PFX__floatdixf
+  __PFX__floatditf
+  __PFX__lshrdi3
+  __PFX__moddi3
+  __PFX__muldi3
+  __PFX__mulvdi3
+  __PFX__negdi2
+  __PFX__negvdi2
+  __PFX__subvdi3
+  __PFX__ucmpdi2
+  __PFX__udivdi3
+  __PFX__udivmoddi4
+  __PFX__umoddi3
+
+  # libgcc2 TImode arithmetic (for 64-bit targets).
+  __PFX__ashlti3
+  __PFX__ashrti3
+  __PFX__cmpti2
+  __PFX__divti3
+  __PFX__ffsti2
+  __PFX__fixdfti
+  __PFX__fixsfti
+  __PFX__fixtfti
+  __PFX__fixxfti
+  __PFX__lshrti3
+  __PFX__modti3
+  __PFX__multi3
+  __PFX__negti2
+  __PFX__ucmpti2
+  __PFX__udivmodti4
+  __PFX__udivti3
+  __PFX__umodti3
+  __PFX__fixunsdfti
+  __PFX__fixunssfti
+  __PFX__fixunstfti
+  __PFX__fixunsxfti
+  __PFX__floattidf
+  __PFX__floattisf
+  __PFX__floattixf
+  __PFX__floattitf
+
+  # Used to deal with trampoline initialization on some platforms
+  __PFX__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 {
+  __PFX__unorddf2
+  __PFX__unordsf2
+}
+
+%inherit GCC_3.4 GCC_3.3.4
+GCC_3.4 {
+  # bit scanning and counting built-ins
+  __PFX__clzsi2
+  __PFX__clzdi2
+  __PFX__clzti2
+  __PFX__ctzsi2
+  __PFX__ctzdi2
+  __PFX__ctzti2
+  __PFX__popcountsi2
+  __PFX__popcountdi2
+  __PFX__popcountti2
+  __PFX__paritysi2
+  __PFX__paritydi2
+  __PFX__parityti2
+}
+
+%inherit GCC_3.4.2 GCC_3.4
+GCC_3.4.2 {
+  # Used to deal with trampoline initialization on some platforms
+  __PFX__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).
+  __PFX__absvti2
+  __PFX__addvti3
+  __PFX__mulvti3
+  __PFX__negvti2
+  __PFX__subvti3
+}
+
+%inherit GCC_4.0.0 GCC_3.4.4
+GCC_4.0.0 {
+  # libgcc2 __builtin_powi helpers.
+  __PFX__powisf2
+  __PFX__powidf2
+  __PFX__powixf2
+  __PFX__powitf2
+
+  # c99 compliant complex arithmetic
+  __PFX__divsc3
+  __PFX__divdc3
+  __PFX__divxc3
+  __PFX__divtc3
+  __PFX__mulsc3
+  __PFX__muldc3
+  __PFX__mulxc3
+  __PFX__multc3
+}
+
+%inherit GCC_4.1.0 GCC_4.0.0
+GCC_4.1.0 {
+}
+
+%inherit GCC_4.2.0 GCC_4.1.0
+GCC_4.2.0 {
+  # unsigned-to-floating conversions
+  __PFX__floatunsisf
+  __PFX__floatunsidf
+  __PFX__floatunsixf
+  __PFX__floatunsitf
+  __PFX__floatundidf
+  __PFX__floatundisf
+  __PFX__floatundixf
+  __PFX__floatunditf
+  __PFX__floatuntidf
+  __PFX__floatuntisf
+  __PFX__floatuntixf
+  __PFX__floatuntitf
+  _Unwind_GetIPInfo
+}
+
+%inherit GCC_4.3.0 GCC_4.2.0
+GCC_4.3.0 {
+  # byte swapping routines
+  __PFX__bswapsi2
+  __PFX__bswapdi2
+
+  __emutls_get_address
+  __emutls_register_common
+  __PFX__ffssi2
+  __PFX__extendxftf2
+  __PFX__trunctfxf2
+
+  # fixed-point routines
+  __PFX__addqq3
+  __PFX__addhq3
+  __PFX__addsq3
+  __PFX__adddq3
+  __PFX__addtq3
+  __PFX__adduqq3
+  __PFX__adduhq3
+  __PFX__addusq3
+  __PFX__addudq3
+  __PFX__addutq3
+  __PFX__addha3
+  __PFX__addsa3
+  __PFX__addda3
+  __PFX__addta3
+  __PFX__adduha3
+  __PFX__addusa3
+  __PFX__adduda3
+  __PFX__adduta3
+  __PFX__ssaddqq3
+  __PFX__ssaddhq3
+  __PFX__ssaddsq3
+  __PFX__ssadddq3
+  __PFX__ssaddtq3
+  __PFX__ssaddha3
+  __PFX__ssaddsa3
+  __PFX__ssaddda3
+  __PFX__ssaddta3
+  __PFX__usadduqq3
+  __PFX__usadduhq3
+  __PFX__usaddusq3
+  __PFX__usaddudq3
+  __PFX__usaddutq3
+  __PFX__usadduha3
+  __PFX__usaddusa3
+  __PFX__usadduda3
+  __PFX__usadduta3
+  __PFX__subqq3
+  __PFX__subhq3
+  __PFX__subsq3
+  __PFX__subdq3
+  __PFX__subtq3
+  __PFX__subuqq3
+  __PFX__subuhq3
+  __PFX__subusq3
+  __PFX__subudq3
+  __PFX__subutq3
+  __PFX__subha3
+  __PFX__subsa3
+  __PFX__subda3
+  __PFX__subta3
+  __PFX__subuha3
+  __PFX__subusa3
+  __PFX__subuda3
+  __PFX__subuta3
+  __PFX__sssubqq3
+  __PFX__sssubhq3
+  __PFX__sssubsq3
+  __PFX__sssubdq3
+  __PFX__sssubtq3
+  __PFX__sssubha3
+  __PFX__sssubsa3
+  __PFX__sssubda3
+  __PFX__sssubta3
+  __PFX__ussubuqq3
+  __PFX__ussubuhq3
+  __PFX__ussubusq3
+  __PFX__ussubudq3
+  __PFX__ussubutq3
+  __PFX__ussubuha3
+  __PFX__ussubusa3
+  __PFX__ussubuda3
+  __PFX__ussubuta3
+  __PFX__mulqq3
+  __PFX__mulhq3
+  __PFX__mulsq3
+  __PFX__muldq3
+  __PFX__multq3
+  __PFX__muluqq3
+  __PFX__muluhq3
+  __PFX__mulusq3
+  __PFX__muludq3
+  __PFX__mulutq3
+  __PFX__mulha3
+  __PFX__mulsa3
+  __PFX__mulda3
+  __PFX__multa3
+  __PFX__muluha3
+  __PFX__mulusa3
+  __PFX__muluda3
+  __PFX__muluta3
+  __PFX__ssmulqq3
+  __PFX__ssmulhq3
+  __PFX__ssmulsq3
+  __PFX__ssmuldq3
+  __PFX__ssmultq3
+  __PFX__ssmulha3
+  __PFX__ssmulsa3
+  __PFX__ssmulda3
+  __PFX__ssmulta3
+  __PFX__usmuluqq3
+  __PFX__usmuluhq3
+  __PFX__usmulusq3
+  __PFX__usmuludq3
+  __PFX__usmulutq3
+  __PFX__usmuluha3
+  __PFX__usmulusa3
+  __PFX__usmuluda3
+  __PFX__usmuluta3
+  __PFX__divqq3
+  __PFX__divhq3
+  __PFX__divsq3
+  __PFX__divdq3
+  __PFX__divtq3
+  __PFX__divha3
+  __PFX__divsa3
+  __PFX__divda3
+  __PFX__divta3
+  __PFX__udivuqq3
+  __PFX__udivuhq3
+  __PFX__udivusq3
+  __PFX__udivudq3
+  __PFX__udivutq3
+  __PFX__udivuha3
+  __PFX__udivusa3
+  __PFX__udivuda3
+  __PFX__udivuta3
+  __PFX__ssdivqq3
+  __PFX__ssdivhq3
+  __PFX__ssdivsq3
+  __PFX__ssdivdq3
+  __PFX__ssdivtq3
+  __PFX__ssdivha3
+  __PFX__ssdivsa3
+  __PFX__ssdivda3
+  __PFX__ssdivta3
+  __PFX__usdivuqq3
+  __PFX__usdivuhq3
+  __PFX__usdivusq3
+  __PFX__usdivudq3
+  __PFX__usdivutq3
+  __PFX__usdivuha3
+  __PFX__usdivusa3
+  __PFX__usdivuda3
+  __PFX__usdivuta3
+  __PFX__negqq2
+  __PFX__neghq2
+  __PFX__negsq2
+  __PFX__negdq2
+  __PFX__negtq2
+  __PFX__neguqq2
+  __PFX__neguhq2
+  __PFX__negusq2
+  __PFX__negudq2
+  __PFX__negutq2
+  __PFX__negha2
+  __PFX__negsa2
+  __PFX__negda2
+  __PFX__negta2
+  __PFX__neguha2
+  __PFX__negusa2
+  __PFX__neguda2
+  __PFX__neguta2
+  __PFX__ssnegqq2
+  __PFX__ssneghq2
+  __PFX__ssnegsq2
+  __PFX__ssnegdq2
+  __PFX__ssnegtq2
+  __PFX__ssnegha2
+  __PFX__ssnegsa2
+  __PFX__ssnegda2
+  __PFX__ssnegta2
+  __PFX__usneguqq2
+  __PFX__usneguhq2
+  __PFX__usnegusq2
+  __PFX__usnegudq2
+  __PFX__usnegutq2
+  __PFX__usneguha2
+  __PFX__usnegusa2
+  __PFX__usneguda2
+  __PFX__usneguta2
+  __PFX__ashlqq3
+  __PFX__ashlhq3
+  __PFX__ashlsq3
+  __PFX__ashldq3
+  __PFX__ashltq3
+  __PFX__ashluqq3
+  __PFX__ashluhq3
+  __PFX__ashlusq3
+  __PFX__ashludq3
+  __PFX__ashlutq3
+  __PFX__ashlha3
+  __PFX__ashlsa3
+  __PFX__ashlda3
+  __PFX__ashlta3
+  __PFX__ashluha3
+  __PFX__ashlusa3
+  __PFX__ashluda3
+  __PFX__ashluta3
+  __PFX__ashrqq3
+  __PFX__ashrhq3
+  __PFX__ashrsq3
+  __PFX__ashrdq3
+  __PFX__ashrtq3
+  __PFX__ashrha3
+  __PFX__ashrsa3
+  __PFX__ashrda3
+  __PFX__ashrta3
+  __PFX__lshruqq3
+  __PFX__lshruhq3
+  __PFX__lshrusq3
+  __PFX__lshrudq3
+  __PFX__lshrutq3
+  __PFX__lshruha3
+  __PFX__lshrusa3
+  __PFX__lshruda3
+  __PFX__lshruta3
+  __PFX__ssashlqq3
+  __PFX__ssashlhq3
+  __PFX__ssashlsq3
+  __PFX__ssashldq3
+  __PFX__ssashltq3
+  __PFX__ssashlha3
+  __PFX__ssashlsa3
+  __PFX__ssashlda3
+  __PFX__ssashlta3
+  __PFX__usashluqq3
+  __PFX__usashluhq3
+  __PFX__usashlusq3
+  __PFX__usashludq3
+  __PFX__usashlutq3
+  __PFX__usashluha3
+  __PFX__usashlusa3
+  __PFX__usashluda3
+  __PFX__usashluta3
+  __PFX__cmpqq2
+  __PFX__cmphq2
+  __PFX__cmpsq2
+  __PFX__cmpdq2
+  __PFX__cmptq2
+  __PFX__cmpuqq2
+  __PFX__cmpuhq2
+  __PFX__cmpusq2
+  __PFX__cmpudq2
+  __PFX__cmputq2
+  __PFX__cmpha2
+  __PFX__cmpsa2
+  __PFX__cmpda2
+  __PFX__cmpta2
+  __PFX__cmpuha2
+  __PFX__cmpusa2
+  __PFX__cmpuda2
+  __PFX__cmputa2
+  __PFX__fractqqhq2
+  __PFX__fractqqsq2
+  __PFX__fractqqdq2
+  __PFX__fractqqtq2
+  __PFX__fractqqha
+  __PFX__fractqqsa
+  __PFX__fractqqda
+  __PFX__fractqqta
+  __PFX__fractqquqq
+  __PFX__fractqquhq
+  __PFX__fractqqusq
+  __PFX__fractqqudq
+  __PFX__fractqqutq
+  __PFX__fractqquha
+  __PFX__fractqqusa
+  __PFX__fractqquda
+  __PFX__fractqquta
+  __PFX__fractqqqi
+  __PFX__fractqqhi
+  __PFX__fractqqsi
+  __PFX__fractqqdi
+  __PFX__fractqqti
+  __PFX__fractqqsf
+  __PFX__fractqqdf
+  __PFX__fracthqqq2
+  __PFX__fracthqsq2
+  __PFX__fracthqdq2
+  __PFX__fracthqtq2
+  __PFX__fracthqha
+  __PFX__fracthqsa
+  __PFX__fracthqda
+  __PFX__fracthqta
+  __PFX__fracthquqq
+  __PFX__fracthquhq
+  __PFX__fracthqusq
+  __PFX__fracthqudq
+  __PFX__fracthqutq
+  __PFX__fracthquha
+  __PFX__fracthqusa
+  __PFX__fracthquda
+  __PFX__fracthquta
+  __PFX__fracthqqi
+  __PFX__fracthqhi
+  __PFX__fracthqsi
+  __PFX__fracthqdi
+  __PFX__fracthqti
+  __PFX__fracthqsf
+  __PFX__fracthqdf
+  __PFX__fractsqqq2
+  __PFX__fractsqhq2
+  __PFX__fractsqdq2
+  __PFX__fractsqtq2
+  __PFX__fractsqha
+  __PFX__fractsqsa
+  __PFX__fractsqda
+  __PFX__fractsqta
+  __PFX__fractsquqq
+  __PFX__fractsquhq
+  __PFX__fractsqusq
+  __PFX__fractsqudq
+  __PFX__fractsqutq
+  __PFX__fractsquha
+  __PFX__fractsqusa
+  __PFX__fractsquda
+  __PFX__fractsquta
+  __PFX__fractsqqi
+  __PFX__fractsqhi
+  __PFX__fractsqsi
+  __PFX__fractsqdi
+  __PFX__fractsqti
+  __PFX__fractsqsf
+  __PFX__fractsqdf
+  __PFX__fractdqqq2
+  __PFX__fractdqhq2
+  __PFX__fractdqsq2
+  __PFX__fractdqtq2
+  __PFX__fractdqha
+  __PFX__fractdqsa
+  __PFX__fractdqda
+  __PFX__fractdqta
+  __PFX__fractdquqq
+  __PFX__fractdquhq
+  __PFX__fractdqusq
+  __PFX__fractdqudq
+  __PFX__fractdqutq
+  __PFX__fractdquha
+  __PFX__fractdqusa
+  __PFX__fractdquda
+  __PFX__fractdquta
+  __PFX__fractdqqi
+  __PFX__fractdqhi
+  __PFX__fractdqsi
+  __PFX__fractdqdi
+  __PFX__fractdqti
+  __PFX__fractdqsf
+  __PFX__fractdqdf
+  __PFX__fracttqqq2
+  __PFX__fracttqhq2
+  __PFX__fracttqsq2
+  __PFX__fracttqdq2
+  __PFX__fracttqha
+  __PFX__fracttqsa
+  __PFX__fracttqda
+  __PFX__fracttqta
+  __PFX__fracttquqq
+  __PFX__fracttquhq
+  __PFX__fracttqusq
+  __PFX__fracttqudq
+  __PFX__fracttqutq
+  __PFX__fracttquha
+  __PFX__fracttqusa
+  __PFX__fracttquda
+  __PFX__fracttquta
+  __PFX__fracttqqi
+  __PFX__fracttqhi
+  __PFX__fracttqsi
+  __PFX__fracttqdi
+  __PFX__fracttqti
+  __PFX__fracttqsf
+  __PFX__fracttqdf
+  __PFX__fracthaqq
+  __PFX__fracthahq
+  __PFX__fracthasq
+  __PFX__fracthadq
+  __PFX__fracthatq
+  __PFX__fracthasa2
+  __PFX__fracthada2
+  __PFX__fracthata2
+  __PFX__fracthauqq
+  __PFX__fracthauhq
+  __PFX__fracthausq
+  __PFX__fracthaudq
+  __PFX__fracthautq
+  __PFX__fracthauha
+  __PFX__fracthausa
+  __PFX__fracthauda
+  __PFX__fracthauta
+  __PFX__fracthaqi
+  __PFX__fracthahi
+  __PFX__fracthasi
+  __PFX__fracthadi
+  __PFX__fracthati
+  __PFX__fracthasf
+  __PFX__fracthadf
+  __PFX__fractsaqq
+  __PFX__fractsahq
+  __PFX__fractsasq
+  __PFX__fractsadq
+  __PFX__fractsatq
+  __PFX__fractsaha2
+  __PFX__fractsada2
+  __PFX__fractsata2
+  __PFX__fractsauqq
+  __PFX__fractsauhq
+  __PFX__fractsausq
+  __PFX__fractsaudq
+  __PFX__fractsautq
+  __PFX__fractsauha
+  __PFX__fractsausa
+  __PFX__fractsauda
+  __PFX__fractsauta
+  __PFX__fractsaqi
+  __PFX__fractsahi
+  __PFX__fractsasi
+  __PFX__fractsadi
+  __PFX__fractsati
+  __PFX__fractsasf
+  __PFX__fractsadf
+  __PFX__fractdaqq
+  __PFX__fractdahq
+  __PFX__fractdasq
+  __PFX__fractdadq
+  __PFX__fractdatq
+  __PFX__fractdaha2
+  __PFX__fractdasa2
+  __PFX__fractdata2
+  __PFX__fractdauqq
+  __PFX__fractdauhq
+  __PFX__fractdausq
+  __PFX__fractdaudq
+  __PFX__fractdautq
+  __PFX__fractdauha
+  __PFX__fractdausa
+  __PFX__fractdauda
+  __PFX__fractdauta
+  __PFX__fractdaqi
+  __PFX__fractdahi
+  __PFX__fractdasi
+  __PFX__fractdadi
+  __PFX__fractdati
+  __PFX__fractdasf
+  __PFX__fractdadf
+  __PFX__fracttaqq
+  __PFX__fracttahq
+  __PFX__fracttasq
+  __PFX__fracttadq
+  __PFX__fracttatq
+  __PFX__fracttaha2
+  __PFX__fracttasa2
+  __PFX__fracttada2
+  __PFX__fracttauqq
+  __PFX__fracttauhq
+  __PFX__fracttausq
+  __PFX__fracttaudq
+  __PFX__fracttautq
+  __PFX__fracttauha
+  __PFX__fracttausa
+  __PFX__fracttauda
+  __PFX__fracttauta
+  __PFX__fracttaqi
+  __PFX__fracttahi
+  __PFX__fracttasi
+  __PFX__fracttadi
+  __PFX__fracttati
+  __PFX__fracttasf
+  __PFX__fracttadf
+  __PFX__fractuqqqq
+  __PFX__fractuqqhq
+  __PFX__fractuqqsq
+  __PFX__fractuqqdq
+  __PFX__fractuqqtq
+  __PFX__fractuqqha
+  __PFX__fractuqqsa
+  __PFX__fractuqqda
+  __PFX__fractuqqta
+  __PFX__fractuqquhq2
+  __PFX__fractuqqusq2
+  __PFX__fractuqqudq2
+  __PFX__fractuqqutq2
+  __PFX__fractuqquha
+  __PFX__fractuqqusa
+  __PFX__fractuqquda
+  __PFX__fractuqquta
+  __PFX__fractuqqqi
+  __PFX__fractuqqhi
+  __PFX__fractuqqsi
+  __PFX__fractuqqdi
+  __PFX__fractuqqti
+  __PFX__fractuqqsf
+  __PFX__fractuqqdf
+  __PFX__fractuhqqq
+  __PFX__fractuhqhq
+  __PFX__fractuhqsq
+  __PFX__fractuhqdq
+  __PFX__fractuhqtq
+  __PFX__fractuhqha
+  __PFX__fractuhqsa
+  __PFX__fractuhqda
+  __PFX__fractuhqta
+  __PFX__fractuhquqq2
+  __PFX__fractuhqusq2
+  __PFX__fractuhqudq2
+  __PFX__fractuhqutq2
+  __PFX__fractuhquha
+  __PFX__fractuhqusa
+  __PFX__fractuhquda
+  __PFX__fractuhquta
+  __PFX__fractuhqqi
+  __PFX__fractuhqhi
+  __PFX__fractuhqsi
+  __PFX__fractuhqdi
+  __PFX__fractuhqti
+  __PFX__fractuhqsf
+  __PFX__fractuhqdf
+  __PFX__fractusqqq
+  __PFX__fractusqhq
+  __PFX__fractusqsq
+  __PFX__fractusqdq
+  __PFX__fractusqtq
+  __PFX__fractusqha
+  __PFX__fractusqsa
+  __PFX__fractusqda
+  __PFX__fractusqta
+  __PFX__fractusquqq2
+  __PFX__fractusquhq2
+  __PFX__fractusqudq2
+  __PFX__fractusqutq2
+  __PFX__fractusquha
+  __PFX__fractusqusa
+  __PFX__fractusquda
+  __PFX__fractusquta
+  __PFX__fractusqqi
+  __PFX__fractusqhi
+  __PFX__fractusqsi
+  __PFX__fractusqdi
+  __PFX__fractusqti
+  __PFX__fractusqsf
+  __PFX__fractusqdf
+  __PFX__fractudqqq
+  __PFX__fractudqhq
+  __PFX__fractudqsq
+  __PFX__fractudqdq
+  __PFX__fractudqtq
+  __PFX__fractudqha
+  __PFX__fractudqsa
+  __PFX__fractudqda
+  __PFX__fractudqta
+  __PFX__fractudquqq2
+  __PFX__fractudquhq2
+  __PFX__fractudqusq2
+  __PFX__fractudqutq2
+  __PFX__fractudquha
+  __PFX__fractudqusa
+  __PFX__fractudquda
+  __PFX__fractudquta
+  __PFX__fractudqqi
+  __PFX__fractudqhi
+  __PFX__fractudqsi
+  __PFX__fractudqdi
+  __PFX__fractudqti
+  __PFX__fractudqsf
+  __PFX__fractudqdf
+  __PFX__fractutqqq
+  __PFX__fractutqhq
+  __PFX__fractutqsq
+  __PFX__fractutqdq
+  __PFX__fractutqtq
+  __PFX__fractutqha
+  __PFX__fractutqsa
+  __PFX__fractutqda
+  __PFX__fractutqta
+  __PFX__fractutquqq2
+  __PFX__fractutquhq2
+  __PFX__fractutqusq2
+  __PFX__fractutqudq2
+  __PFX__fractutquha
+  __PFX__fractutqusa
+  __PFX__fractutquda
+  __PFX__fractutquta
+  __PFX__fractutqqi
+  __PFX__fractutqhi
+  __PFX__fractutqsi
+  __PFX__fractutqdi
+  __PFX__fractutqti
+  __PFX__fractutqsf
+  __PFX__fractutqdf
+  __PFX__fractuhaqq
+  __PFX__fractuhahq
+  __PFX__fractuhasq
+  __PFX__fractuhadq
+  __PFX__fractuhatq
+  __PFX__fractuhaha
+  __PFX__fractuhasa
+  __PFX__fractuhada
+  __PFX__fractuhata
+  __PFX__fractuhauqq
+  __PFX__fractuhauhq
+  __PFX__fractuhausq
+  __PFX__fractuhaudq
+  __PFX__fractuhautq
+  __PFX__fractuhausa2
+  __PFX__fractuhauda2
+  __PFX__fractuhauta2
+  __PFX__fractuhaqi
+  __PFX__fractuhahi
+  __PFX__fractuhasi
+  __PFX__fractuhadi
+  __PFX__fractuhati
+  __PFX__fractuhasf
+  __PFX__fractuhadf
+  __PFX__fractusaqq
+  __PFX__fractusahq
+  __PFX__fractusasq
+  __PFX__fractusadq
+  __PFX__fractusatq
+  __PFX__fractusaha
+  __PFX__fractusasa
+  __PFX__fractusada
+  __PFX__fractusata
+  __PFX__fractusauqq
+  __PFX__fractusauhq
+  __PFX__fractusausq
+  __PFX__fractusaudq
+  __PFX__fractusautq
+  __PFX__fractusauha2
+  __PFX__fractusauda2
+  __PFX__fractusauta2
+  __PFX__fractusaqi
+  __PFX__fractusahi
+  __PFX__fractusasi
+  __PFX__fractusadi
+  __PFX__fractusati
+  __PFX__fractusasf
+  __PFX__fractusadf
+  __PFX__fractudaqq
+  __PFX__fractudahq
+  __PFX__fractudasq
+  __PFX__fractudadq
+  __PFX__fractudatq
+  __PFX__fractudaha
+  __PFX__fractudasa
+  __PFX__fractudada
+  __PFX__fractudata
+  __PFX__fractudauqq
+  __PFX__fractudauhq
+  __PFX__fractudausq
+  __PFX__fractudaudq
+  __PFX__fractudautq
+  __PFX__fractudauha2
+  __PFX__fractudausa2
+  __PFX__fractudauta2
+  __PFX__fractudaqi
+  __PFX__fractudahi
+  __PFX__fractudasi
+  __PFX__fractudadi
+  __PFX__fractudati
+  __PFX__fractudasf
+  __PFX__fractudadf
+  __PFX__fractutaqq
+  __PFX__fractutahq
+  __PFX__fractutasq
+  __PFX__fractutadq
+  __PFX__fractutatq
+  __PFX__fractutaha
+  __PFX__fractutasa
+  __PFX__fractutada
+  __PFX__fractutata
+  __PFX__fractutauqq
+  __PFX__fractutauhq
+  __PFX__fractutausq
+  __PFX__fractutaudq
+  __PFX__fractutautq
+  __PFX__fractutauha2
+  __PFX__fractutausa2
+  __PFX__fractutauda2
+  __PFX__fractutaqi
+  __PFX__fractutahi
+  __PFX__fractutasi
+  __PFX__fractutadi
+  __PFX__fractutati
+  __PFX__fractutasf
+  __PFX__fractutadf
+  __PFX__fractqiqq
+  __PFX__fractqihq
+  __PFX__fractqisq
+  __PFX__fractqidq
+  __PFX__fractqitq
+  __PFX__fractqiha
+  __PFX__fractqisa
+  __PFX__fractqida
+  __PFX__fractqita
+  __PFX__fractqiuqq
+  __PFX__fractqiuhq
+  __PFX__fractqiusq
+  __PFX__fractqiudq
+  __PFX__fractqiutq
+  __PFX__fractqiuha
+  __PFX__fractqiusa
+  __PFX__fractqiuda
+  __PFX__fractqiuta
+  __PFX__fracthiqq
+  __PFX__fracthihq
+  __PFX__fracthisq
+  __PFX__fracthidq
+  __PFX__fracthitq
+  __PFX__fracthiha
+  __PFX__fracthisa
+  __PFX__fracthida
+  __PFX__fracthita
+  __PFX__fracthiuqq
+  __PFX__fracthiuhq
+  __PFX__fracthiusq
+  __PFX__fracthiudq
+  __PFX__fracthiutq
+  __PFX__fracthiuha
+  __PFX__fracthiusa
+  __PFX__fracthiuda
+  __PFX__fracthiuta
+  __PFX__fractsiqq
+  __PFX__fractsihq
+  __PFX__fractsisq
+  __PFX__fractsidq
+  __PFX__fractsitq
+  __PFX__fractsiha
+  __PFX__fractsisa
+  __PFX__fractsida
+  __PFX__fractsita
+  __PFX__fractsiuqq
+  __PFX__fractsiuhq
+  __PFX__fractsiusq
+  __PFX__fractsiudq
+  __PFX__fractsiutq
+  __PFX__fractsiuha
+  __PFX__fractsiusa
+  __PFX__fractsiuda
+  __PFX__fractsiuta
+  __PFX__fractdiqq
+  __PFX__fractdihq
+  __PFX__fractdisq
+  __PFX__fractdidq
+  __PFX__fractditq
+  __PFX__fractdiha
+  __PFX__fractdisa
+  __PFX__fractdida
+  __PFX__fractdita
+  __PFX__fractdiuqq
+  __PFX__fractdiuhq
+  __PFX__fractdiusq
+  __PFX__fractdiudq
+  __PFX__fractdiutq
+  __PFX__fractdiuha
+  __PFX__fractdiusa
+  __PFX__fractdiuda
+  __PFX__fractdiuta
+  __PFX__fracttiqq
+  __PFX__fracttihq
+  __PFX__fracttisq
+  __PFX__fracttidq
+  __PFX__fracttitq
+  __PFX__fracttiha
+  __PFX__fracttisa
+  __PFX__fracttida
+  __PFX__fracttita
+  __PFX__fracttiuqq
+  __PFX__fracttiuhq
+  __PFX__fracttiusq
+  __PFX__fracttiudq
+  __PFX__fracttiutq
+  __PFX__fracttiuha
+  __PFX__fracttiusa
+  __PFX__fracttiuda
+  __PFX__fracttiuta
+  __PFX__fractsfqq
+  __PFX__fractsfhq
+  __PFX__fractsfsq
+  __PFX__fractsfdq
+  __PFX__fractsftq
+  __PFX__fractsfha
+  __PFX__fractsfsa
+  __PFX__fractsfda
+  __PFX__fractsfta
+  __PFX__fractsfuqq
+  __PFX__fractsfuhq
+  __PFX__fractsfusq
+  __PFX__fractsfudq
+  __PFX__fractsfutq
+  __PFX__fractsfuha
+  __PFX__fractsfusa
+  __PFX__fractsfuda
+  __PFX__fractsfuta
+  __PFX__fractdfqq
+  __PFX__fractdfhq
+  __PFX__fractdfsq
+  __PFX__fractdfdq
+  __PFX__fractdftq
+  __PFX__fractdfha
+  __PFX__fractdfsa
+  __PFX__fractdfda
+  __PFX__fractdfta
+  __PFX__fractdfuqq
+  __PFX__fractdfuhq
+  __PFX__fractdfusq
+  __PFX__fractdfudq
+  __PFX__fractdfutq
+  __PFX__fractdfuha
+  __PFX__fractdfusa
+  __PFX__fractdfuda
+  __PFX__fractdfuta
+  __PFX__satfractqqhq2
+  __PFX__satfractqqsq2
+  __PFX__satfractqqdq2
+  __PFX__satfractqqtq2
+  __PFX__satfractqqha
+  __PFX__satfractqqsa
+  __PFX__satfractqqda
+  __PFX__satfractqqta
+  __PFX__satfractqquqq
+  __PFX__satfractqquhq
+  __PFX__satfractqqusq
+  __PFX__satfractqqudq
+  __PFX__satfractqqutq
+  __PFX__satfractqquha
+  __PFX__satfractqqusa
+  __PFX__satfractqquda
+  __PFX__satfractqquta
+  __PFX__satfracthqqq2
+  __PFX__satfracthqsq2
+  __PFX__satfracthqdq2
+  __PFX__satfracthqtq2
+  __PFX__satfracthqha
+  __PFX__satfracthqsa
+  __PFX__satfracthqda
+  __PFX__satfracthqta
+  __PFX__satfracthquqq
+  __PFX__satfracthquhq
+  __PFX__satfracthqusq
+  __PFX__satfracthqudq
+  __PFX__satfracthqutq
+  __PFX__satfracthquha
+  __PFX__satfracthqusa
+  __PFX__satfracthquda
+  __PFX__satfracthquta
+  __PFX__satfractsqqq2
+  __PFX__satfractsqhq2
+  __PFX__satfractsqdq2
+  __PFX__satfractsqtq2
+  __PFX__satfractsqha
+  __PFX__satfractsqsa
+  __PFX__satfractsqda
+  __PFX__satfractsqta
+  __PFX__satfractsquqq
+  __PFX__satfractsquhq
+  __PFX__satfractsqusq
+  __PFX__satfractsqudq
+  __PFX__satfractsqutq
+  __PFX__satfractsquha
+  __PFX__satfractsqusa
+  __PFX__satfractsquda
+  __PFX__satfractsquta
+  __PFX__satfractdqqq2
+  __PFX__satfractdqhq2
+  __PFX__satfractdqsq2
+  __PFX__satfractdqtq2
+  __PFX__satfractdqha
+  __PFX__satfractdqsa
+  __PFX__satfractdqda
+  __PFX__satfractdqta
+  __PFX__satfractdquqq
+  __PFX__satfractdquhq
+  __PFX__satfractdqusq
+  __PFX__satfractdqudq
+  __PFX__satfractdqutq
+  __PFX__satfractdquha
+  __PFX__satfractdqusa
+  __PFX__satfractdquda
+  __PFX__satfractdquta
+  __PFX__satfracttqqq2
+  __PFX__satfracttqhq2
+  __PFX__satfracttqsq2
+  __PFX__satfracttqdq2
+  __PFX__satfracttqha
+  __PFX__satfracttqsa
+  __PFX__satfracttqda
+  __PFX__satfracttqta
+  __PFX__satfracttquqq
+  __PFX__satfracttquhq
+  __PFX__satfracttqusq
+  __PFX__satfracttqudq
+  __PFX__satfracttqutq
+  __PFX__satfracttquha
+  __PFX__satfracttqusa
+  __PFX__satfracttquda
+  __PFX__satfracttquta
+  __PFX__satfracthaqq
+  __PFX__satfracthahq
+  __PFX__satfracthasq
+  __PFX__satfracthadq
+  __PFX__satfracthatq
+  __PFX__satfracthasa2
+  __PFX__satfracthada2
+  __PFX__satfracthata2
+  __PFX__satfracthauqq
+  __PFX__satfracthauhq
+  __PFX__satfracthausq
+  __PFX__satfracthaudq
+  __PFX__satfracthautq
+  __PFX__satfracthauha
+  __PFX__satfracthausa
+  __PFX__satfracthauda
+  __PFX__satfracthauta
+  __PFX__satfractsaqq
+  __PFX__satfractsahq
+  __PFX__satfractsasq
+  __PFX__satfractsadq
+  __PFX__satfractsatq
+  __PFX__satfractsaha2
+  __PFX__satfractsada2
+  __PFX__satfractsata2
+  __PFX__satfractsauqq
+  __PFX__satfractsauhq
+  __PFX__satfractsausq
+  __PFX__satfractsaudq
+  __PFX__satfractsautq
+  __PFX__satfractsauha
+  __PFX__satfractsausa
+  __PFX__satfractsauda
+  __PFX__satfractsauta
+  __PFX__satfractdaqq
+  __PFX__satfractdahq
+  __PFX__satfractdasq
+  __PFX__satfractdadq
+  __PFX__satfractdatq
+  __PFX__satfractdaha2
+  __PFX__satfractdasa2
+  __PFX__satfractdata2
+  __PFX__satfractdauqq
+  __PFX__satfractdauhq
+  __PFX__satfractdausq
+  __PFX__satfractdaudq
+  __PFX__satfractdautq
+  __PFX__satfractdauha
+  __PFX__satfractdausa
+  __PFX__satfractdauda
+  __PFX__satfractdauta
+  __PFX__satfracttaqq
+  __PFX__satfracttahq
+  __PFX__satfracttasq
+  __PFX__satfracttadq
+  __PFX__satfracttatq
+  __PFX__satfracttaha2
+  __PFX__satfracttasa2
+  __PFX__satfracttada2
+  __PFX__satfracttauqq
+  __PFX__satfracttauhq
+  __PFX__satfracttausq
+  __PFX__satfracttaudq
+  __PFX__satfracttautq
+  __PFX__satfracttauha
+  __PFX__satfracttausa
+  __PFX__satfracttauda
+  __PFX__satfracttauta
+  __PFX__satfractuqqqq
+  __PFX__satfractuqqhq
+  __PFX__satfractuqqsq
+  __PFX__satfractuqqdq
+  __PFX__satfractuqqtq
+  __PFX__satfractuqqha
+  __PFX__satfractuqqsa
+  __PFX__satfractuqqda
+  __PFX__satfractuqqta
+  __PFX__satfractuqquhq2
+  __PFX__satfractuqqusq2
+  __PFX__satfractuqqudq2
+  __PFX__satfractuqqutq2
+  __PFX__satfractuqquha
+  __PFX__satfractuqqusa
+  __PFX__satfractuqquda
+  __PFX__satfractuqquta
+  __PFX__satfractuhqqq
+  __PFX__satfractuhqhq
+  __PFX__satfractuhqsq
+  __PFX__satfractuhqdq
+  __PFX__satfractuhqtq
+  __PFX__satfractuhqha
+  __PFX__satfractuhqsa
+  __PFX__satfractuhqda
+  __PFX__satfractuhqta
+  __PFX__satfractuhquqq2
+  __PFX__satfractuhqusq2
+  __PFX__satfractuhqudq2
+  __PFX__satfractuhqutq2
+  __PFX__satfractuhquha
+  __PFX__satfractuhqusa
+  __PFX__satfractuhquda
+  __PFX__satfractuhquta
+  __PFX__satfractusqqq
+  __PFX__satfractusqhq
+  __PFX__satfractusqsq
+  __PFX__satfractusqdq
+  __PFX__satfractusqtq
+  __PFX__satfractusqha
+  __PFX__satfractusqsa
+  __PFX__satfractusqda
+  __PFX__satfractusqta
+  __PFX__satfractusquqq2
+  __PFX__satfractusquhq2
+  __PFX__satfractusqudq2
+  __PFX__satfractusqutq2
+  __PFX__satfractusquha
+  __PFX__satfractusqusa
+  __PFX__satfractusquda
+  __PFX__satfractusquta
+  __PFX__satfractudqqq
+  __PFX__satfractudqhq
+  __PFX__satfractudqsq
+  __PFX__satfractudqdq
+  __PFX__satfractudqtq
+  __PFX__satfractudqha
+  __PFX__satfractudqsa
+  __PFX__satfractudqda
+  __PFX__satfractudqta
+  __PFX__satfractudquqq2
+  __PFX__satfractudquhq2
+  __PFX__satfractudqusq2
+  __PFX__satfractudqutq2
+  __PFX__satfractudquha
+  __PFX__satfractudqusa
+  __PFX__satfractudquda
+  __PFX__satfractudquta
+  __PFX__satfractutqqq
+  __PFX__satfractutqhq
+  __PFX__satfractutqsq
+  __PFX__satfractutqdq
+  __PFX__satfractutqtq
+  __PFX__satfractutqha
+  __PFX__satfractutqsa
+  __PFX__satfractutqda
+  __PFX__satfractutqta
+  __PFX__satfractutquqq2
+  __PFX__satfractutquhq2
+  __PFX__satfractutqusq2
+  __PFX__satfractutqudq2
+  __PFX__satfractutquha
+  __PFX__satfractutqusa
+  __PFX__satfractutquda
+  __PFX__satfractutquta
+  __PFX__satfractuhaqq
+  __PFX__satfractuhahq
+  __PFX__satfractuhasq
+  __PFX__satfractuhadq
+  __PFX__satfractuhatq
+  __PFX__satfractuhaha
+  __PFX__satfractuhasa
+  __PFX__satfractuhada
+  __PFX__satfractuhata
+  __PFX__satfractuhauqq
+  __PFX__satfractuhauhq
+  __PFX__satfractuhausq
+  __PFX__satfractuhaudq
+  __PFX__satfractuhautq
+  __PFX__satfractuhausa2
+  __PFX__satfractuhauda2
+  __PFX__satfractuhauta2
+  __PFX__satfractusaqq
+  __PFX__satfractusahq
+  __PFX__satfractusasq
+  __PFX__satfractusadq
+  __PFX__satfractusatq
+  __PFX__satfractusaha
+  __PFX__satfractusasa
+  __PFX__satfractusada
+  __PFX__satfractusata
+  __PFX__satfractusauqq
+  __PFX__satfractusauhq
+  __PFX__satfractusausq
+  __PFX__satfractusaudq
+  __PFX__satfractusautq
+  __PFX__satfractusauha2
+  __PFX__satfractusauda2
+  __PFX__satfractusauta2
+  __PFX__satfractudaqq
+  __PFX__satfractudahq
+  __PFX__satfractudasq
+  __PFX__satfractudadq
+  __PFX__satfractudatq
+  __PFX__satfractudaha
+  __PFX__satfractudasa
+  __PFX__satfractudada
+  __PFX__satfractudata
+  __PFX__satfractudauqq
+  __PFX__satfractudauhq
+  __PFX__satfractudausq
+  __PFX__satfractudaudq
+  __PFX__satfractudautq
+  __PFX__satfractudauha2
+  __PFX__satfractudausa2
+  __PFX__satfractudauta2
+  __PFX__satfractutaqq
+  __PFX__satfractutahq
+  __PFX__satfractutasq
+  __PFX__satfractutadq
+  __PFX__satfractutatq
+  __PFX__satfractutaha
+  __PFX__satfractutasa
+  __PFX__satfractutada
+  __PFX__satfractutata
+  __PFX__satfractutauqq
+  __PFX__satfractutauhq
+  __PFX__satfractutausq
+  __PFX__satfractutaudq
+  __PFX__satfractutautq
+  __PFX__satfractutauha2
+  __PFX__satfractutausa2
+  __PFX__satfractutauda2
+  __PFX__satfractqiqq
+  __PFX__satfractqihq
+  __PFX__satfractqisq
+  __PFX__satfractqidq
+  __PFX__satfractqitq
+  __PFX__satfractqiha
+  __PFX__satfractqisa
+  __PFX__satfractqida
+  __PFX__satfractqita
+  __PFX__satfractqiuqq
+  __PFX__satfractqiuhq
+  __PFX__satfractqiusq
+  __PFX__satfractqiudq
+  __PFX__satfractqiutq
+  __PFX__satfractqiuha
+  __PFX__satfractqiusa
+  __PFX__satfractqiuda
+  __PFX__satfractqiuta
+  __PFX__satfracthiqq
+  __PFX__satfracthihq
+  __PFX__satfracthisq
+  __PFX__satfracthidq
+  __PFX__satfracthitq
+  __PFX__satfracthiha
+  __PFX__satfracthisa
+  __PFX__satfracthida
+  __PFX__satfracthita
+  __PFX__satfracthiuqq
+  __PFX__satfracthiuhq
+  __PFX__satfracthiusq
+  __PFX__satfracthiudq
+  __PFX__satfracthiutq
+  __PFX__satfracthiuha
+  __PFX__satfracthiusa
+  __PFX__satfracthiuda
+  __PFX__satfracthiuta
+  __PFX__satfractsiqq
+  __PFX__satfractsihq
+  __PFX__satfractsisq
+  __PFX__satfractsidq
+  __PFX__satfractsitq
+  __PFX__satfractsiha
+  __PFX__satfractsisa
+  __PFX__satfractsida
+  __PFX__satfractsita
+  __PFX__satfractsiuqq
+  __PFX__satfractsiuhq
+  __PFX__satfractsiusq
+  __PFX__satfractsiudq
+  __PFX__satfractsiutq
+  __PFX__satfractsiuha
+  __PFX__satfractsiusa
+  __PFX__satfractsiuda
+  __PFX__satfractsiuta
+  __PFX__satfractdiqq
+  __PFX__satfractdihq
+  __PFX__satfractdisq
+  __PFX__satfractdidq
+  __PFX__satfractditq
+  __PFX__satfractdiha
+  __PFX__satfractdisa
+  __PFX__satfractdida
+  __PFX__satfractdita
+  __PFX__satfractdiuqq
+  __PFX__satfractdiuhq
+  __PFX__satfractdiusq
+  __PFX__satfractdiudq
+  __PFX__satfractdiutq
+  __PFX__satfractdiuha
+  __PFX__satfractdiusa
+  __PFX__satfractdiuda
+  __PFX__satfractdiuta
+  __PFX__satfracttiqq
+  __PFX__satfracttihq
+  __PFX__satfracttisq
+  __PFX__satfracttidq
+  __PFX__satfracttitq
+  __PFX__satfracttiha
+  __PFX__satfracttisa
+  __PFX__satfracttida
+  __PFX__satfracttita
+  __PFX__satfracttiuqq
+  __PFX__satfracttiuhq
+  __PFX__satfracttiusq
+  __PFX__satfracttiudq
+  __PFX__satfracttiutq
+  __PFX__satfracttiuha
+  __PFX__satfracttiusa
+  __PFX__satfracttiuda
+  __PFX__satfracttiuta
+  __PFX__satfractsfqq
+  __PFX__satfractsfhq
+  __PFX__satfractsfsq
+  __PFX__satfractsfdq
+  __PFX__satfractsftq
+  __PFX__satfractsfha
+  __PFX__satfractsfsa
+  __PFX__satfractsfda
+  __PFX__satfractsfta
+  __PFX__satfractsfuqq
+  __PFX__satfractsfuhq
+  __PFX__satfractsfusq
+  __PFX__satfractsfudq
+  __PFX__satfractsfutq
+  __PFX__satfractsfuha
+  __PFX__satfractsfusa
+  __PFX__satfractsfuda
+  __PFX__satfractsfuta
+  __PFX__satfractdfqq
+  __PFX__satfractdfhq
+  __PFX__satfractdfsq
+  __PFX__satfractdfdq
+  __PFX__satfractdftq
+  __PFX__satfractdfha
+  __PFX__satfractdfsa
+  __PFX__satfractdfda
+  __PFX__satfractdfta
+  __PFX__satfractdfuqq
+  __PFX__satfractdfuhq
+  __PFX__satfractdfusq
+  __PFX__satfractdfudq
+  __PFX__satfractdfutq
+  __PFX__satfractdfuha
+  __PFX__satfractdfusa
+  __PFX__satfractdfuda
+  __PFX__satfractdfuta
+  __PFX__fractunsqqqi
+  __PFX__fractunsqqhi
+  __PFX__fractunsqqsi
+  __PFX__fractunsqqdi
+  __PFX__fractunsqqti
+  __PFX__fractunshqqi
+  __PFX__fractunshqhi
+  __PFX__fractunshqsi
+  __PFX__fractunshqdi
+  __PFX__fractunshqti
+  __PFX__fractunssqqi
+  __PFX__fractunssqhi
+  __PFX__fractunssqsi
+  __PFX__fractunssqdi
+  __PFX__fractunssqti
+  __PFX__fractunsdqqi
+  __PFX__fractunsdqhi
+  __PFX__fractunsdqsi
+  __PFX__fractunsdqdi
+  __PFX__fractunsdqti
+  __PFX__fractunstqqi
+  __PFX__fractunstqhi
+  __PFX__fractunstqsi
+  __PFX__fractunstqdi
+  __PFX__fractunstqti
+  __PFX__fractunshaqi
+  __PFX__fractunshahi
+  __PFX__fractunshasi
+  __PFX__fractunshadi
+  __PFX__fractunshati
+  __PFX__fractunssaqi
+  __PFX__fractunssahi
+  __PFX__fractunssasi
+  __PFX__fractunssadi
+  __PFX__fractunssati
+  __PFX__fractunsdaqi
+  __PFX__fractunsdahi
+  __PFX__fractunsdasi
+  __PFX__fractunsdadi
+  __PFX__fractunsdati
+  __PFX__fractunstaqi
+  __PFX__fractunstahi
+  __PFX__fractunstasi
+  __PFX__fractunstadi
+  __PFX__fractunstati
+  __PFX__fractunsuqqqi
+  __PFX__fractunsuqqhi
+  __PFX__fractunsuqqsi
+  __PFX__fractunsuqqdi
+  __PFX__fractunsuqqti
+  __PFX__fractunsuhqqi
+  __PFX__fractunsuhqhi
+  __PFX__fractunsuhqsi
+  __PFX__fractunsuhqdi
+  __PFX__fractunsuhqti
+  __PFX__fractunsusqqi
+  __PFX__fractunsusqhi
+  __PFX__fractunsusqsi
+  __PFX__fractunsusqdi
+  __PFX__fractunsusqti
+  __PFX__fractunsudqqi
+  __PFX__fractunsudqhi
+  __PFX__fractunsudqsi
+  __PFX__fractunsudqdi
+  __PFX__fractunsudqti
+  __PFX__fractunsutqqi
+  __PFX__fractunsutqhi
+  __PFX__fractunsutqsi
+  __PFX__fractunsutqdi
+  __PFX__fractunsutqti
+  __PFX__fractunsuhaqi
+  __PFX__fractunsuhahi
+  __PFX__fractunsuhasi
+  __PFX__fractunsuhadi
+  __PFX__fractunsuhati
+  __PFX__fractunsusaqi
+  __PFX__fractunsusahi
+  __PFX__fractunsusasi
+  __PFX__fractunsusadi
+  __PFX__fractunsusati
+  __PFX__fractunsudaqi
+  __PFX__fractunsudahi
+  __PFX__fractunsudasi
+  __PFX__fractunsudadi
+  __PFX__fractunsudati
+  __PFX__fractunsutaqi
+  __PFX__fractunsutahi
+  __PFX__fractunsutasi
+  __PFX__fractunsutadi
+  __PFX__fractunsutati
+  __PFX__fractunsqiqq
+  __PFX__fractunsqihq
+  __PFX__fractunsqisq
+  __PFX__fractunsqidq
+  __PFX__fractunsqitq
+  __PFX__fractunsqiha
+  __PFX__fractunsqisa
+  __PFX__fractunsqida
+  __PFX__fractunsqita
+  __PFX__fractunsqiuqq
+  __PFX__fractunsqiuhq
+  __PFX__fractunsqiusq
+  __PFX__fractunsqiudq
+  __PFX__fractunsqiutq
+  __PFX__fractunsqiuha
+  __PFX__fractunsqiusa
+  __PFX__fractunsqiuda
+  __PFX__fractunsqiuta
+  __PFX__fractunshiqq
+  __PFX__fractunshihq
+  __PFX__fractunshisq
+  __PFX__fractunshidq
+  __PFX__fractunshitq
+  __PFX__fractunshiha
+  __PFX__fractunshisa
+  __PFX__fractunshida
+  __PFX__fractunshita
+  __PFX__fractunshiuqq
+  __PFX__fractunshiuhq
+  __PFX__fractunshiusq
+  __PFX__fractunshiudq
+  __PFX__fractunshiutq
+  __PFX__fractunshiuha
+  __PFX__fractunshiusa
+  __PFX__fractunshiuda
+  __PFX__fractunshiuta
+  __PFX__fractunssiqq
+  __PFX__fractunssihq
+  __PFX__fractunssisq
+  __PFX__fractunssidq
+  __PFX__fractunssitq
+  __PFX__fractunssiha
+  __PFX__fractunssisa
+  __PFX__fractunssida
+  __PFX__fractunssita
+  __PFX__fractunssiuqq
+  __PFX__fractunssiuhq
+  __PFX__fractunssiusq
+  __PFX__fractunssiudq
+  __PFX__fractunssiutq
+  __PFX__fractunssiuha
+  __PFX__fractunssiusa
+  __PFX__fractunssiuda
+  __PFX__fractunssiuta
+  __PFX__fractunsdiqq
+  __PFX__fractunsdihq
+  __PFX__fractunsdisq
+  __PFX__fractunsdidq
+  __PFX__fractunsditq
+  __PFX__fractunsdiha
+  __PFX__fractunsdisa
+  __PFX__fractunsdida
+  __PFX__fractunsdita
+  __PFX__fractunsdiuqq
+  __PFX__fractunsdiuhq
+  __PFX__fractunsdiusq
+  __PFX__fractunsdiudq
+  __PFX__fractunsdiutq
+  __PFX__fractunsdiuha
+  __PFX__fractunsdiusa
+  __PFX__fractunsdiuda
+  __PFX__fractunsdiuta
+  __PFX__fractunstiqq
+  __PFX__fractunstihq
+  __PFX__fractunstisq
+  __PFX__fractunstidq
+  __PFX__fractunstitq
+  __PFX__fractunstiha
+  __PFX__fractunstisa
+  __PFX__fractunstida
+  __PFX__fractunstita
+  __PFX__fractunstiuqq
+  __PFX__fractunstiuhq
+  __PFX__fractunstiusq
+  __PFX__fractunstiudq
+  __PFX__fractunstiutq
+  __PFX__fractunstiuha
+  __PFX__fractunstiusa
+  __PFX__fractunstiuda
+  __PFX__fractunstiuta
+  __PFX__satfractunsqiqq
+  __PFX__satfractunsqihq
+  __PFX__satfractunsqisq
+  __PFX__satfractunsqidq
+  __PFX__satfractunsqitq
+  __PFX__satfractunsqiha
+  __PFX__satfractunsqisa
+  __PFX__satfractunsqida
+  __PFX__satfractunsqita
+  __PFX__satfractunsqiuqq
+  __PFX__satfractunsqiuhq
+  __PFX__satfractunsqiusq
+  __PFX__satfractunsqiudq
+  __PFX__satfractunsqiutq
+  __PFX__satfractunsqiuha
+  __PFX__satfractunsqiusa
+  __PFX__satfractunsqiuda
+  __PFX__satfractunsqiuta
+  __PFX__satfractunshiqq
+  __PFX__satfractunshihq
+  __PFX__satfractunshisq
+  __PFX__satfractunshidq
+  __PFX__satfractunshitq
+  __PFX__satfractunshiha
+  __PFX__satfractunshisa
+  __PFX__satfractunshida
+  __PFX__satfractunshita
+  __PFX__satfractunshiuqq
+  __PFX__satfractunshiuhq
+  __PFX__satfractunshiusq
+  __PFX__satfractunshiudq
+  __PFX__satfractunshiutq
+  __PFX__satfractunshiuha
+  __PFX__satfractunshiusa
+  __PFX__satfractunshiuda
+  __PFX__satfractunshiuta
+  __PFX__satfractunssiqq
+  __PFX__satfractunssihq
+  __PFX__satfractunssisq
+  __PFX__satfractunssidq
+  __PFX__satfractunssitq
+  __PFX__satfractunssiha
+  __PFX__satfractunssisa
+  __PFX__satfractunssida
+  __PFX__satfractunssita
+  __PFX__satfractunssiuqq
+  __PFX__satfractunssiuhq
+  __PFX__satfractunssiusq
+  __PFX__satfractunssiudq
+  __PFX__satfractunssiutq
+  __PFX__satfractunssiuha
+  __PFX__satfractunssiusa
+  __PFX__satfractunssiuda
+  __PFX__satfractunssiuta
+  __PFX__satfractunsdiqq
+  __PFX__satfractunsdihq
+  __PFX__satfractunsdisq
+  __PFX__satfractunsdidq
+  __PFX__satfractunsditq
+  __PFX__satfractunsdiha
+  __PFX__satfractunsdisa
+  __PFX__satfractunsdida
+  __PFX__satfractunsdita
+  __PFX__satfractunsdiuqq
+  __PFX__satfractunsdiuhq
+  __PFX__satfractunsdiusq
+  __PFX__satfractunsdiudq
+  __PFX__satfractunsdiutq
+  __PFX__satfractunsdiuha
+  __PFX__satfractunsdiusa
+  __PFX__satfractunsdiuda
+  __PFX__satfractunsdiuta
+  __PFX__satfractunstiqq
+  __PFX__satfractunstihq
+  __PFX__satfractunstisq
+  __PFX__satfractunstidq
+  __PFX__satfractunstitq
+  __PFX__satfractunstiha
+  __PFX__satfractunstisa
+  __PFX__satfractunstida
+  __PFX__satfractunstita
+  __PFX__satfractunstiuqq
+  __PFX__satfractunstiuhq
+  __PFX__satfractunstiusq
+  __PFX__satfractunstiudq
+  __PFX__satfractunstiutq
+  __PFX__satfractunstiuha
+  __PFX__satfractunstiusa
+  __PFX__satfractunstiuda
+  __PFX__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
+}
+
+%inherit GCC_4.6.0 GCC_4.5.0
+GCC_4.6.0 {
+  __morestack_segments
+  __morestack_current_segment
+  __morestack_initial_sp
+  __splitstack_find
+}
Index: trunk/libgcc/Makefile.in
===================================================================
--- trunk.orig/libgcc/Makefile.in
+++ trunk/libgcc/Makefile.in
@@ -250,6 +250,10 @@  gcc_s_compile = $(gcc_compile) -DSHARED
 objects = $(filter %$(objext),$^)
 
 # Collect any host-specific information from Makefile fragments.
+
+LIBGCC_VER_GNU_PREFIX = __
+LIBGCC_VER_SYMBOLS_PREFIX =
+
 tmake_file = @tmake_file@
 include $(srcdir)/empty.mk $(tmake_file)
 
@@ -795,6 +799,9 @@  libgcc_s$(SHLIB_EXT): libgcc.map
 mapfile = libgcc.map
 endif
 
+libgcc-std.ver: $(srcdir)/libgcc-std.ver.in
+	sed -e 's/__PFX__/$(LIBGCC_VER_GNU_PREFIX)/g' < $< > $@
+
 libgcc_s$(SHLIB_EXT): $(libgcc-s-objects) $(extra-parts)
 	# @multilib_flags@ is still needed because this may use
 	# $(GCC_FOR_TARGET) and $(LIBGCC2_CFLAGS) directly.
Index: trunk/gcc/Makefile.in
===================================================================
--- trunk.orig/gcc/Makefile.in
+++ trunk/gcc/Makefile.in
@@ -1892,7 +1892,10 @@  LIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA)
 # which case they will start with $(srcdir)), or generated into the build
 # directory (in which case they will be relative paths).
 srcdirify = $(patsubst $(srcdir)%,$$(gcc_srcdir)%,$(filter $(srcdir)%,$(1))) \
-            $(patsubst %,$$(gcc_objdir)/%,$(filter-out $(srcdir)%,$(1)))
+            $(patsubst $$(libgcc_objdir)/%,%, \
+		$(filter $$(libgcc_objdir)%,$(1))) \
+            $(patsubst %,$$(gcc_objdir)/%, \
+		$(filter-out $(srcdir)% $$(libgcc_objdir)%,$(1)))
 
 # The distinction between these two variables is no longer relevant,
 # so we combine them.  Sort removes duplicates.
Index: trunk/libgcc/config/t-gnu-prefix
===================================================================
--- /dev/null
+++ trunk/libgcc/config/t-gnu-prefix
@@ -0,0 +1 @@ 
+LIBGCC_VER_GNU_PREFIX = __gnu_
Index: trunk/gcc/config/frv/t-linux
===================================================================
--- trunk.orig/gcc/config/frv/t-linux
+++ trunk/gcc/config/frv/t-linux
@@ -29,5 +29,5 @@  EXTRA_MULTILIB_PARTS =
 CRTSTUFF_T_CFLAGS = -fPIC
 TARGET_LIBGCC2_CFLAGS = -fPIC
 
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \
+SHLIB_MAPFILES = $$(libgcc_objdir)/libgcc-std.ver \
 		 $(srcdir)/config/frv/libgcc-frv.ver
Index: trunk/gcc/config/i386/t-cygming
===================================================================
--- trunk.orig/gcc/config/i386/t-cygming
+++ trunk/gcc/config/i386/t-cygming
@@ -113,4 +113,4 @@  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 = $(srcdir)/libgcc-std.ver
+SHLIB_MAPFILES = $$(libgcc_objdir)/libgcc-std.ver
Index: trunk/gcc/config/i386/t-linux
===================================================================
--- trunk.orig/gcc/config/i386/t-linux
+++ trunk/gcc/config/i386/t-linux
@@ -1,5 +1,5 @@ 
 # 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 = $(srcdir)/libgcc-std.ver \
+SHLIB_MAPFILES = $$(libgcc_objdir)/libgcc-std.ver \
 		 $(srcdir)/config/i386/libgcc-glibc.ver
Index: trunk/gcc/config/mips/t-slibgcc-irix
===================================================================
--- trunk.orig/gcc/config/mips/t-slibgcc-irix
+++ trunk/gcc/config/mips/t-slibgcc-irix
@@ -49,4 +49,4 @@  SHLIB_INSTALL = \
 	$(LN_S) $(SHLIB_SONAME) \
 	  $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
 SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
+SHLIB_MAPFILES = $$(libgcc_objdir)/libgcc-std.ver
Index: trunk/gcc/config/rs6000/t-aix43
===================================================================
--- trunk.orig/gcc/config/rs6000/t-aix43
+++ trunk/gcc/config/rs6000/t-aix43
@@ -82,7 +82,7 @@  SHLIB_INSTALL = \
 		$$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/
 SHLIB_LIBS = -lc `case @multilib_dir@ in *pthread*) echo -lpthread ;; esac`
 SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
+SHLIB_MAPFILES = $$(libgcc_objdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
 SHLIB_NM_FLAGS = -Bpg -X32_64
 
 # GCC 128-bit long double support routines.
Index: trunk/gcc/config/rs6000/t-aix52
===================================================================
--- trunk.orig/gcc/config/rs6000/t-aix52
+++ trunk/gcc/config/rs6000/t-aix52
@@ -63,7 +63,7 @@  SHLIB_INSTALL = \
 		$$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/
 SHLIB_LIBS = -lc `case @multilib_dir@ in *pthread*) echo -lpthread ;; esac`
 SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
+SHLIB_MAPFILES = $$(libgcc_objdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
 SHLIB_NM_FLAGS = -Bpg -X32_64
 
 # GCC 128-bit long double support routines.
Index: trunk/gcc/config/sparc/t-linux
===================================================================
--- trunk.orig/gcc/config/sparc/t-linux
+++ trunk/gcc/config/sparc/t-linux
@@ -1,5 +1,5 @@ 
 # 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 = $(srcdir)/libgcc-std.ver \
+SHLIB_MAPFILES = $$(libgcc_objdir)/libgcc-std.ver \
 		 $(srcdir)/config/sparc/libgcc-sparc-glibc.ver
Index: trunk/gcc/tree.c
===================================================================
--- trunk.orig/gcc/tree.c
+++ trunk/gcc/tree.c
@@ -9525,6 +9525,10 @@  build_common_builtin_nodes (void)
 	const char *p;
 	enum built_in_function mcode, dcode;
 	tree type, inner_type;
+	const char *prefix = "__";
+
+	if (targetm.libfunc_gnu_prefix)
+	  prefix = "__gnu_";
 
 	type = lang_hooks.types.type_for_mode ((enum machine_mode) mode, 0);
 	if (type == NULL)
@@ -9543,13 +9547,17 @@  build_common_builtin_nodes (void)
 	  *q = TOLOWER (*p);
 	*q = '\0';
 
-	built_in_names[mcode] = concat ("__mul", mode_name_buf, "3", NULL);
+	built_in_names[mcode] = concat (prefix, "mul", mode_name_buf, "3",
+					NULL);
         local_define_builtin (built_in_names[mcode], ftype, mcode,
-			      built_in_names[mcode], ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+			      built_in_names[mcode],
+			      ECF_CONST | ECF_NOTHROW | ECF_LEAF);
 
-	built_in_names[dcode] = concat ("__div", mode_name_buf, "3", NULL);
+	built_in_names[dcode] = concat (prefix, "div", mode_name_buf, "3",
+					NULL);
         local_define_builtin (built_in_names[dcode], ftype, dcode,
-			      built_in_names[dcode], ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+			      built_in_names[dcode],
+			      ECF_CONST | ECF_NOTHROW | ECF_LEAF);
       }
   }
 }
Index: trunk/gcc/config/fixed-bit.h
===================================================================
--- trunk.orig/gcc/config/fixed-bit.h
+++ trunk/gcc/config/fixed-bit.h
@@ -445,35 +445,39 @@  typedef union
 #define IBITS		IBITS2(MODE_NAME)
 #define I_F_BITS	(FBITS + IBITS)
 
-#define FIXED_OP(OP,MODE,NUM)	OP ## MODE ## NUM
+#ifdef LIBGCC2_GNU_PREFIX
+#define FIXED_OP(OP,MODE,NUM)	__gnu_ ## OP ## MODE ## NUM
+#else
+#define FIXED_OP(OP,MODE,NUM)	__ ## OP ## MODE ## NUM
+#endif
 
-#define FIXED_SATURATE1_TEMP(NAME)	FIXED_OP(__saturate1,NAME,)
-#define FIXED_SATURATE2_TEMP(NAME)	FIXED_OP(__saturate2,NAME,)
-#define FIXED_MULHELPER_TEMP(NAME)	FIXED_OP(__mulhelper,NAME,)
-#define FIXED_DIVHELPER_TEMP(NAME)	FIXED_OP(__divhelper,NAME,)
-#define FIXED_ASHLHELPER_TEMP(NAME)	FIXED_OP(__ashlhelper,NAME,)
-#define FIXED_ADD_TEMP(NAME)	FIXED_OP(__add,NAME,3)
-#define FIXED_SSADD_TEMP(NAME)	FIXED_OP(__ssadd,NAME,3)
-#define FIXED_USADD_TEMP(NAME)	FIXED_OP(__usadd,NAME,3)
-#define FIXED_SUB_TEMP(NAME)	FIXED_OP(__sub,NAME,3)
-#define FIXED_SSSUB_TEMP(NAME)	FIXED_OP(__sssub,NAME,3)
-#define FIXED_USSUB_TEMP(NAME)	FIXED_OP(__ussub,NAME,3)
-#define FIXED_MUL_TEMP(NAME)	FIXED_OP(__mul,NAME,3)
-#define FIXED_SSMUL_TEMP(NAME)	FIXED_OP(__ssmul,NAME,3)
-#define FIXED_USMUL_TEMP(NAME)	FIXED_OP(__usmul,NAME,3)
-#define FIXED_DIV_TEMP(NAME)	FIXED_OP(__div,NAME,3)
-#define FIXED_UDIV_TEMP(NAME)	FIXED_OP(__udiv,NAME,3)
-#define FIXED_SSDIV_TEMP(NAME)	FIXED_OP(__ssdiv,NAME,3)
-#define FIXED_USDIV_TEMP(NAME)	FIXED_OP(__usdiv,NAME,3)
-#define FIXED_NEG_TEMP(NAME)	FIXED_OP(__neg,NAME,2)
-#define FIXED_SSNEG_TEMP(NAME)	FIXED_OP(__ssneg,NAME,2)
-#define FIXED_USNEG_TEMP(NAME)	FIXED_OP(__usneg,NAME,2)
-#define FIXED_ASHL_TEMP(NAME)	FIXED_OP(__ashl,NAME,3)
-#define FIXED_ASHR_TEMP(NAME)	FIXED_OP(__ashr,NAME,3)
-#define FIXED_LSHR_TEMP(NAME)	FIXED_OP(__lshr,NAME,3)
-#define FIXED_SSASHL_TEMP(NAME)	FIXED_OP(__ssashl,NAME,3)
-#define FIXED_USASHL_TEMP(NAME)	FIXED_OP(__usashl,NAME,3)
-#define FIXED_CMP_TEMP(NAME)	FIXED_OP(__cmp,NAME,2)
+#define FIXED_SATURATE1_TEMP(NAME)	FIXED_OP(saturate1,NAME,)
+#define FIXED_SATURATE2_TEMP(NAME)	FIXED_OP(saturate2,NAME,)
+#define FIXED_MULHELPER_TEMP(NAME)	FIXED_OP(mulhelper,NAME,)
+#define FIXED_DIVHELPER_TEMP(NAME)	FIXED_OP(divhelper,NAME,)
+#define FIXED_ASHLHELPER_TEMP(NAME)	FIXED_OP(ashlhelper,NAME,)
+#define FIXED_ADD_TEMP(NAME)	FIXED_OP(add,NAME,3)
+#define FIXED_SSADD_TEMP(NAME)	FIXED_OP(ssadd,NAME,3)
+#define FIXED_USADD_TEMP(NAME)	FIXED_OP(usadd,NAME,3)
+#define FIXED_SUB_TEMP(NAME)	FIXED_OP(sub,NAME,3)
+#define FIXED_SSSUB_TEMP(NAME)	FIXED_OP(sssub,NAME,3)
+#define FIXED_USSUB_TEMP(NAME)	FIXED_OP(ussub,NAME,3)
+#define FIXED_MUL_TEMP(NAME)	FIXED_OP(mul,NAME,3)
+#define FIXED_SSMUL_TEMP(NAME)	FIXED_OP(ssmul,NAME,3)
+#define FIXED_USMUL_TEMP(NAME)	FIXED_OP(usmul,NAME,3)
+#define FIXED_DIV_TEMP(NAME)	FIXED_OP(div,NAME,3)
+#define FIXED_UDIV_TEMP(NAME)	FIXED_OP(udiv,NAME,3)
+#define FIXED_SSDIV_TEMP(NAME)	FIXED_OP(ssdiv,NAME,3)
+#define FIXED_USDIV_TEMP(NAME)	FIXED_OP(usdiv,NAME,3)
+#define FIXED_NEG_TEMP(NAME)	FIXED_OP(neg,NAME,2)
+#define FIXED_SSNEG_TEMP(NAME)	FIXED_OP(ssneg,NAME,2)
+#define FIXED_USNEG_TEMP(NAME)	FIXED_OP(usneg,NAME,2)
+#define FIXED_ASHL_TEMP(NAME)	FIXED_OP(ashl,NAME,3)
+#define FIXED_ASHR_TEMP(NAME)	FIXED_OP(ashr,NAME,3)
+#define FIXED_LSHR_TEMP(NAME)	FIXED_OP(lshr,NAME,3)
+#define FIXED_SSASHL_TEMP(NAME)	FIXED_OP(ssashl,NAME,3)
+#define FIXED_USASHL_TEMP(NAME)	FIXED_OP(usashl,NAME,3)
+#define FIXED_CMP_TEMP(NAME)	FIXED_OP(cmp,NAME,2)
 
 #if defined (MODE_NAME)
 #if defined (DINT_C_TYPE)
@@ -1146,14 +1150,19 @@  extern FIXED_C_TYPE FIXED_USASHL (FIXED_
 #define TO_HAVE_PADDING_BITS	(TO_PADDING_BITS > 0)
 #endif /* TO_TYPE == 4  */
 
-#define FIXED_CONVERT_OP(OP,FROM,TO)	OP ## FROM ## TO
-#define FIXED_CONVERT_OP2(OP,FROM,TO)	OP ## FROM ## TO ## 2
-#define FRACT_TEMP(N1,N2)		FIXED_CONVERT_OP(__fract,N1,N2)
-#define FRACT2_TEMP(N1,N2)		FIXED_CONVERT_OP2(__fract,N1,N2)
-#define SATFRACT_TEMP(N1,N2)		FIXED_CONVERT_OP(__satfract,N1,N2)
-#define SATFRACT2_TEMP(N1,N2)		FIXED_CONVERT_OP2(__satfract,N1,N2)
-#define FRACTUNS_TEMP(N1,N2)		FIXED_CONVERT_OP(__fractuns,N1,N2)
-#define SATFRACTUNS_TEMP(N1,N2)		FIXED_CONVERT_OP(__satfractuns,N1,N2)
+#ifdef LIBGCC2_GNU_PREFIX
+#define FIXED_CONVERT_OP(OP,FROM,TO)	__gnu_ ## OP ## FROM ## TO
+#define FIXED_CONVERT_OP2(OP,FROM,TO)	__gnu_ ## OP ## FROM ## TO ## 2
+#else
+#define FIXED_CONVERT_OP(OP,FROM,TO)	__ OP ## FROM ## TO
+#define FIXED_CONVERT_OP2(OP,FROM,TO)	__ OP ## FROM ## TO ## 2
+#endif
+#define FRACT_TEMP(N1,N2)		FIXED_CONVERT_OP(fract,N1,N2)
+#define FRACT2_TEMP(N1,N2)		FIXED_CONVERT_OP2(fract,N1,N2)
+#define SATFRACT_TEMP(N1,N2)		FIXED_CONVERT_OP(satfract,N1,N2)
+#define SATFRACT2_TEMP(N1,N2)		FIXED_CONVERT_OP2(satfract,N1,N2)
+#define FRACTUNS_TEMP(N1,N2)		FIXED_CONVERT_OP(fractuns,N1,N2)
+#define SATFRACTUNS_TEMP(N1,N2)		FIXED_CONVERT_OP(satfractuns,N1,N2)
 
 /* Define conversions from fixed-point to fixed-point.  */
 #if FROM_TYPE == 4 && TO_TYPE == 4
Index: trunk/gcc/system.h
===================================================================
--- trunk.orig/gcc/system.h
+++ trunk/gcc/system.h
@@ -762,8 +762,8 @@  extern void fancy_abort (const char *, i
 	HOT_TEXT_SECTION_NAME LEGITIMATE_CONSTANT_P
 
 /* Target macros only used for code built for the target, that have
-   moved to libgcc-tm.h.  */
- #pragma GCC poison DECLARE_LIBRARY_RENAMES
+   moved to libgcc-tm.h or have never been present elsewhere.  */
+ #pragma GCC poison DECLARE_LIBRARY_RENAMES LIBGCC2_GNU_PREFIX
 
 /* Other obsolete target macros, or macros that used to be in target
    headers and were not used, and may be obsolete or may never have