libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if LIBGCC2_GNU_PREFIX is defined.
authorBernd Schmidt <bernds@codesourcery.com>
Wed, 25 May 2011 12:11:42 +0000 (12:11 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Wed, 25 May 2011 12:11:42 +0000 (12:11 +0000)
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.

From-SVN: r174187

23 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/config/fixed-bit.h
gcc/config/frv/t-linux
gcc/config/i386/t-cygming
gcc/config/i386/t-linux
gcc/config/mips/t-slibgcc-irix
gcc/config/rs6000/t-aix43
gcc/config/rs6000/t-aix52
gcc/config/sparc/t-linux
gcc/config/t-slibgcc-elf-ver
gcc/config/t-slibgcc-sld
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/libgcc2.h
gcc/optabs.c
gcc/system.h
gcc/target.def
gcc/tree.c
libgcc/ChangeLog
libgcc/Makefile.in
libgcc/config/t-gnu-prefix [new file with mode: 0644]
libgcc/libgcc-std.ver.in [new file with mode: 0644]

index 1143fae8a9dd2ef38260d2b9397a035fdea24f88..03f6792099c5b98aff69b3b1ec405cb9af1bac10 100644 (file)
@@ -1,3 +1,42 @@
+2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * 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.
+
 2011-05-25  Jan Hubicka  <jh@suse.cz>
 
        * lto-streamer-out.c (output_record_start): Use lto_output_enum
index 2aee94839970b3cc54a40bb4f6678d93a1341d29..06a4ebce576a7c872feb1a67ec6763ee6b4ecf63 100644 (file)
@@ -1898,7 +1898,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 562772d71cf545e42b80faa4ecf588a2730ea1da..620742c34b6505d46f94c8c8dcf14985187bbf4a 100644 (file)
@@ -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
-
-#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)
+#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)
 
 #if defined (MODE_NAME)
 #if defined (DINT_C_TYPE)
@@ -1146,14 +1150,19 @@ extern FIXED_C_TYPE FIXED_USASHL (FIXED_C_TYPE, word_type);
 #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 13eb5369ed3de6c95cf9641a33c18aefb3c665d8..5b094518a1dd58c48dfb9121bf51d15760806bed 100644 (file)
@@ -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 c4807a0a97b1fb5f5d850ebe6585042f4da221bc..af2c9e41c4de37da4d19ad9c81e4d876f39fd559 100644 (file)
@@ -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 4c6bb51e3b84a144fba26a38fac4db1ea6279a20..500d932fec89158777163af926175c154e89fea8 100644 (file)
@@ -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 6227ccef3fae290f2fafac743ad41bf7ee9ceb5c..e9f168e49d2119620593cb8ef11c2dd2981fbd0c 100644 (file)
@@ -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 3cac73bd923795f97eab76054048bbf7dfa3f29d..705e053122dca41ad687bfb2a9bcf64894ee5c56 100644 (file)
@@ -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 0b4540278ce88b6cc92fe40817088a0c05ab7cb7..e918a2e13a1ac476f0e988a4481bb2175d42a3c2 100644 (file)
@@ -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 a3e513087f5710c9dfbf1c75c4cc4d9a9f64a906..30daa376614379d2ed163d33aa468f7bd9ddf699 100644 (file)
@@ -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 d5ef9ca163f8ae87e7f3e6caa610e7cf102815c6..b90f4fcf3a3b2b80a970ec420854af6102d10aa2 100644 (file)
@@ -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 3a343f5b9ee731bf170fac871a6a34b5a46e0f34..013a0d70e9ee94b68bcb90325d7f60a90f9ebe59 100644 (file)
@@ -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 68d1bb0b4d82f2858e64acd53829520071bd425b..c2aa216dbb593b0e3551f450af89c85decc3efde 100644 (file)
@@ -1581,6 +1581,15 @@ anyway.  If you don't define this and @code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE}
 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 that 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
@@ -5245,6 +5254,15 @@ 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
+If false (the default), internal library routines start with two
+underscores.  If set to true, these routines start with @code{__gnu_}
+instead.  E.g., @code{__muldi3} changes to @code{__gnu_muldi3}.  This
+currently only affects functions defined in @file{libgcc2.c}.  If this
+is set to true, the @file{tm.h} file must also
+@code{#define LIBGCC2_GNU_PREFIX}.
+@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 d31e5e305bbd777ddce1dd40543270c0ff4879c0..ab0b39b2d2b2b417c0058d8c42ae74aca73a2e67 100644 (file)
@@ -1571,6 +1571,15 @@ anyway.  If you don't define this and @code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE}
 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 that 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
@@ -5197,6 +5206,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 4e6fd235988faf030c7288f65418b2212a5a9755..aee6d19c3eade737e6403993975528f351a987aa 100644 (file)
@@ -193,8 +193,13 @@ typedef int shift_count_type __attribute__((mode (__libgcc_shift_count__)));
 #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__((mode (__libgcc_shift_count__)));
 #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__((mode (__libgcc_shift_count__)));
 #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__((mode (__libgcc_shift_count__)));
 #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__((mode (__libgcc_shift_count__)));
 #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 62e123ba514883c2fba20955df66c870d73ad214..1473b0f13aff1caf0f2bf607af270c557eb54ae9 100644 (file)
@@ -5152,13 +5152,22 @@ gen_libfunc (optab optable, const char *opname, int suffix, enum machine_mode mo
   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_optab tab,
 
   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_optab tab,
 
   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_optab tab, const char *opname,
 
   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_optab tab, const char *opname,
   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 a57df7ce753e24a02656cc7f5dc5d58e11426343..e39a6f928e927e0f805115ba6c4850a2e584aef8 100644 (file)
@@ -762,8 +762,8 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
        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
index 754713fe493c747014414e79278cc9db803b1568..6137e976619025d2d6124e3c1a3ada90cdb8f1d4 100644 (file)
@@ -1242,6 +1242,17 @@ DEFHOOK
  void, (void),
  hook_void_void)
 
+ /* Add a __gnu_ prefix to library functions rather than just __.  */
+DEFHOOKPOD
+(libfunc_gnu_prefix,
+ "If false (the default), internal library routines start with two\n\
+underscores.  If set to true, these routines start with @code{__gnu_}\n\
+instead.  E.g., @code{__muldi3} changes to @code{__gnu_muldi3}.  This\n\
+currently only affects functions defined in @file{libgcc2.c}.  If this\n\
+is set to true, the @file{tm.h} file must also\n\
+@code{#define LIBGCC2_GNU_PREFIX}.",
+  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 3357d84666b95a13e57222d0842244c1b03c77fb..63f50b0ad41a11d51ffd9ed1415cf2a8710c27ce 100644 (file)
@@ -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 c0bf9551ae34cbbe34df3f25fc9ca8b14a0dfbc2..6dd2636d1a524f5494c36ba9eb4f70f1a0444406 100644 (file)
@@ -1,3 +1,11 @@
+2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * 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.
+
 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * config/s390/t-tpf (LIB2ADDEH): Remove $(gcc_srcdir)/gthr-gnat.c.
index 7e2ab93fc42f6771d3d448099632807f69b32cd9..557fab36e48be6bc50c4a2505354e8c69340ad7b 100644 (file)
@@ -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.
diff --git a/libgcc/config/t-gnu-prefix b/libgcc/config/t-gnu-prefix
new file mode 100644 (file)
index 0000000..b04b23f
--- /dev/null
@@ -0,0 +1 @@
+LIBGCC_VER_GNU_PREFIX = __gnu_
diff --git a/libgcc/libgcc-std.ver.in b/libgcc/libgcc-std.ver.in
new file mode 100644 (file)
index 0000000..e468ec5
--- /dev/null
@@ -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
+}